Fix missing hostPendingActionNotificationResponses in PollMessage.OneTime (#1426)

This commit is contained in:
sarahcaseybot 2021-12-02 16:06:02 -05:00 committed by GitHub
parent 18d051ef87
commit cff8f9a1cd
5 changed files with 76 additions and 4 deletions

View file

@ -354,6 +354,10 @@ public abstract class PollMessage extends ImmutableObject
@Column(name = "transfer_response_contact_id") @Column(name = "transfer_response_contact_id")
String contactId; String contactId;
@Ignore
@Column(name = "transfer_response_host_id")
String hostId;
@Override @Override
public VKey<OneTime> createVKey() { public VKey<OneTime> createVKey() {
return VKey.create(OneTime.class, getId(), Key.create(this)); return VKey.create(OneTime.class, getId(), Key.create(this));
@ -393,6 +397,9 @@ public abstract class PollMessage extends ImmutableObject
if (!isNullOrEmpty(contactPendingActionNotificationResponses)) { if (!isNullOrEmpty(contactPendingActionNotificationResponses)) {
pendingActionNotificationResponse = contactPendingActionNotificationResponses.get(0); pendingActionNotificationResponse = contactPendingActionNotificationResponses.get(0);
} }
if (!isNullOrEmpty(hostPendingActionNotificationResponses)) {
pendingActionNotificationResponse = hostPendingActionNotificationResponses.get(0);
}
if (!isNullOrEmpty(contactTransferResponses)) { if (!isNullOrEmpty(contactTransferResponses)) {
contactId = contactTransferResponses.get(0).getContactId(); contactId = contactTransferResponses.get(0).getContactId();
transferResponse = contactTransferResponses.get(0); transferResponse = contactTransferResponses.get(0);
@ -433,6 +440,16 @@ public abstract class PollMessage extends ImmutableObject
pendingActionNotificationResponse.processedDate); pendingActionNotificationResponse.processedDate);
pendingActionNotificationResponse = domainPendingResponse; pendingActionNotificationResponse = domainPendingResponse;
domainPendingActionNotificationResponses = ImmutableList.of(domainPendingResponse); domainPendingActionNotificationResponses = ImmutableList.of(domainPendingResponse);
} else if (hostId != null) {
HostPendingActionNotificationResponse hostPendingActionNotificationResponse =
HostPendingActionNotificationResponse.create(
pendingActionNotificationResponse.nameOrId.value,
pendingActionNotificationResponse.getActionResult(),
pendingActionNotificationResponse.getTrid(),
pendingActionNotificationResponse.processedDate);
pendingActionNotificationResponse = hostPendingActionNotificationResponse;
hostPendingActionNotificationResponses =
ImmutableList.of(hostPendingActionNotificationResponse);
} }
} }
if (transferResponse != null) { if (transferResponse != null) {
@ -527,6 +544,7 @@ public abstract class PollMessage extends ImmutableObject
} else if (instance.hostPendingActionNotificationResponses != null) { } else if (instance.hostPendingActionNotificationResponses != null) {
instance.pendingActionNotificationResponse = instance.pendingActionNotificationResponse =
instance.hostPendingActionNotificationResponses.get(0); instance.hostPendingActionNotificationResponses.get(0);
instance.hostId = instance.hostPendingActionNotificationResponses.get(0).nameOrId.value;
} }
// Set the generic transfer response field as appropriate // Set the generic transfer response field as appropriate
if (instance.contactTransferResponses != null) { if (instance.contactTransferResponses != null) {

View file

@ -24,12 +24,14 @@ import static google.registry.testing.DatabaseHelper.persistActiveContact;
import static google.registry.testing.DatabaseHelper.persistResource; import static google.registry.testing.DatabaseHelper.persistResource;
import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.collect.ImmutableList;
import google.registry.model.EntityTestCase; import google.registry.model.EntityTestCase;
import google.registry.model.contact.ContactResource; import google.registry.model.contact.ContactResource;
import google.registry.model.domain.DomainBase; import google.registry.model.domain.DomainBase;
import google.registry.model.domain.DomainHistory; import google.registry.model.domain.DomainHistory;
import google.registry.model.domain.Period; import google.registry.model.domain.Period;
import google.registry.model.eppcommon.Trid; import google.registry.model.eppcommon.Trid;
import google.registry.model.poll.PendingActionNotificationResponse.HostPendingActionNotificationResponse;
import google.registry.model.reporting.HistoryEntry; import google.registry.model.reporting.HistoryEntry;
import google.registry.persistence.VKey; import google.registry.persistence.VKey;
import google.registry.testing.DualDatabaseTest; import google.registry.testing.DualDatabaseTest;
@ -119,6 +121,32 @@ public class PollMessageTest extends EntityTestCase {
assertThat(tm().transact(() -> tm().loadByEntity(pollMessage))).isEqualTo(pollMessage); assertThat(tm().transact(() -> tm().loadByEntity(pollMessage))).isEqualTo(pollMessage);
} }
@TestOfyAndSql
void testPersistenceOneTime_hostPendingActionNotification() {
HostPendingActionNotificationResponse hostPendingActionNotificationResponse =
HostPendingActionNotificationResponse.create(
"test.example",
true,
Trid.create("ABC-123", "server-trid"),
fakeClock.nowUtc().minusDays(5));
PollMessage.OneTime pollMessage =
new PollMessage.OneTime.Builder()
.setRegistrarId("TheRegistrar")
.setEventTime(fakeClock.nowUtc())
.setMsg("Test poll message")
.setParent(historyEntry)
.setResponseData(ImmutableList.of(hostPendingActionNotificationResponse))
.build();
persistResource(pollMessage);
assertThat(tm().transact(() -> tm().loadByEntity(pollMessage).getMsg()))
.isEqualTo(pollMessage.msg);
assertThat(
tm().transact(() -> tm().loadByEntity(pollMessage))
.hostPendingActionNotificationResponses)
.contains(hostPendingActionNotificationResponse);
}
@TestSqlOnly @TestSqlOnly
void testSerializableOneTime() { void testSerializableOneTime() {
PollMessage.OneTime pollMessage = PollMessage.OneTime pollMessage =

View file

@ -261,11 +261,19 @@ td.section {
</tr> </tr>
<tr> <tr>
<td class="property_name">generated on</td> <td class="property_name">generated on</td>
<<<<<<< HEAD
<td class="property_value">2021-11-23 20:43:41.968049</td> <td class="property_value">2021-11-23 20:43:41.968049</td>
</tr> </tr>
<tr> <tr>
<td class="property_name">last flyway file</td> <td class="property_name">last flyway file</td>
<td id="lastFlywayFile" class="property_value">V104__add_transfer_response_host_id_to_poll_message.sql</td> <td id="lastFlywayFile" class="property_value">V104__add_transfer_response_host_id_to_poll_message.sql</td>
=======
<td class="property_value">2021-11-17 21:23:12.62481</td>
</tr>
<tr>
<td class="property_name">last flyway file</td>
<td id="lastFlywayFile" class="property_value">V103__add_transfer_response_host_id_to_poll_message.sql</td>
>>>>>>> 19aa29939 (Fix missing hostPendingActionNotificationResponses in PollMessage.OneTime)
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -274,19 +282,24 @@ td.section {
<svg viewbox="0.00 0.00 4249.00 2901.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2897.5)"> <svg viewbox="0.00 0.00 4249.00 2901.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="erDiagram" style="overflow: hidden; width: 100%; height: 800px"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2897.5)">
<title>SchemaCrawler_Diagram</title> <title>SchemaCrawler_Diagram</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-2897.5 4245,-2897.5 4245,4 -4,4" /> <polygon fill="white" stroke="transparent" points="-4,4 -4,-2897.5 4245,-2897.5 4245,4 -4,4" />
<text text-anchor="start" x="3972.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00"> <text text-anchor="start" x="3980.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">
generated by generated by
</text> </text>
<text text-anchor="start" x="4055.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00"> <text text-anchor="start" x="4063.5" y="-29.8" font-family="Helvetica,sans-Serif" font-size="14.00">
SchemaCrawler 16.10.1 SchemaCrawler 16.10.1
</text> </text>
<text text-anchor="start" x="3971.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00"> <text text-anchor="start" x="3979.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">
generated on generated on
</text> </text>
<<<<<<< HEAD
<text text-anchor="start" x="4055.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00"> <text text-anchor="start" x="4055.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">
2021-11-23 20:43:41.968049 2021-11-23 20:43:41.968049
=======
<text text-anchor="start" x="4063.5" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">
2021-11-17 21:23:12.62481
>>>>>>> 19aa29939 (Fix missing hostPendingActionNotificationResponses in PollMessage.OneTime)
</text> </text>
<polygon fill="none" stroke="#888888" points="3968,-4 3968,-44 4233,-44 4233,-4 3968,-4" /> <!-- allocationtoken_a08ccbef --> <polygon fill="none" stroke="#888888" points="3976,-4 3976,-44 4233,-44 4233,-4 3976,-4" /> <!-- allocationtoken_a08ccbef -->
<g id="node1" class="node"> <g id="node1" class="node">
<title>allocationtoken_a08ccbef</title> <title>allocationtoken_a08ccbef</title>
<polygon fill="#ebcef2" stroke="transparent" points="2538.5,-233 2538.5,-252 2691.5,-252 2691.5,-233 2538.5,-233" /> <polygon fill="#ebcef2" stroke="transparent" points="2538.5,-233 2538.5,-252 2691.5,-252 2691.5,-233 2538.5,-233" />

View file

@ -261,11 +261,19 @@ td.section {
</tr> </tr>
<tr> <tr>
<td class="property_name">generated on</td> <td class="property_name">generated on</td>
<<<<<<< HEAD
<td class="property_value">2021-11-23 20:43:39.672931</td> <td class="property_value">2021-11-23 20:43:39.672931</td>
</tr> </tr>
<tr> <tr>
<td class="property_name">last flyway file</td> <td class="property_name">last flyway file</td>
<td id="lastFlywayFile" class="property_value">V104__add_transfer_response_host_id_to_poll_message.sql</td> <td id="lastFlywayFile" class="property_value">V104__add_transfer_response_host_id_to_poll_message.sql</td>
=======
<td class="property_value">2021-11-17 21:23:10.198048</td>
</tr>
<tr>
<td class="property_name">last flyway file</td>
<td id="lastFlywayFile" class="property_value">V103__add_transfer_response_host_id_to_poll_message.sql</td>
>>>>>>> 19aa29939 (Fix missing hostPendingActionNotificationResponses in PollMessage.OneTime)
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -284,7 +292,11 @@ td.section {
generated on generated on
</text> </text>
<text text-anchor="start" x="4755.52" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00"> <text text-anchor="start" x="4755.52" y="-10.8" font-family="Helvetica,sans-Serif" font-size="14.00">
<<<<<<< HEAD
2021-11-23 20:43:39.672931 2021-11-23 20:43:39.672931
=======
2021-11-17 21:23:10.198048
>>>>>>> 19aa29939 (Fix missing hostPendingActionNotificationResponses in PollMessage.OneTime)
</text> </text>
<polygon fill="none" stroke="#888888" points="4668.02,-4 4668.02,-44 4933.02,-44 4933.02,-4 4668.02,-4" /> <!-- allocationtoken_a08ccbef --> <polygon fill="none" stroke="#888888" points="4668.02,-4 4668.02,-44 4933.02,-44 4933.02,-4 4668.02,-4" /> <!-- allocationtoken_a08ccbef -->
<g id="node1" class="node"> <g id="node1" class="node">

View file

@ -523,6 +523,7 @@
transfer_response_contact_id text, transfer_response_contact_id text,
transfer_response_domain_expiration_time timestamptz, transfer_response_domain_expiration_time timestamptz,
transfer_response_domain_name text, transfer_response_domain_name text,
transfer_response_host_id text,
pending_action_response_action_result boolean, pending_action_response_action_result boolean,
pending_action_response_name_or_id text, pending_action_response_name_or_id text,
pending_action_response_processed_date timestamptz, pending_action_response_processed_date timestamptz,