@Test public void testStatusOverrideDeleteIsAppliedToRegistryAndProvidedStatusIsSet() throws Exception { // Override instance status registry.register(testInstanceInfo, false); registry.statusUpdate(testInstanceInfo.getAppName(), testInstanceInfo.getId(), InstanceStatus.OUT_OF_SERVICE, "0", false); assertThat(testInstanceInfo.getStatus(), is(equalTo(InstanceStatus.OUT_OF_SERVICE))); // Remove the override Response response = instanceResource.deleteStatusUpdate("false", "DOWN", "0"); assertThat(response.getStatus(), is(equalTo(200))); assertThat(testInstanceInfo.getStatus(), is(equalTo(InstanceStatus.DOWN))); } }
@Test public void testStatusOverrideDeleteIsAppliedToRegistry() throws Exception { // Override instance status registry.register(testInstanceInfo, false); registry.statusUpdate(testInstanceInfo.getAppName(), testInstanceInfo.getId(), InstanceStatus.OUT_OF_SERVICE, "0", false); assertThat(testInstanceInfo.getStatus(), is(equalTo(InstanceStatus.OUT_OF_SERVICE))); // Remove the override Response response = instanceResource.deleteStatusUpdate("false", null, "0"); assertThat(response.getStatus(), is(equalTo(200))); assertThat(testInstanceInfo.getStatus(), is(equalTo(InstanceStatus.UNKNOWN))); }
@Test public void testStatusOverrideStartingStatus() throws Exception { // Regular registration first InstanceInfo myInstance = createLocalInstance(LOCAL_REGION_INSTANCE_1_HOSTNAME); registerInstanceLocally(myInstance); verifyLocalInstanceStatus(myInstance.getId(), InstanceStatus.UP); // Override status boolean statusResult = registry.statusUpdate(LOCAL_REGION_APP_NAME, myInstance.getId(), InstanceStatus.OUT_OF_SERVICE, "0", false); assertThat("Couldn't override instance status", statusResult, is(true)); verifyLocalInstanceStatus(myInstance.getId(), InstanceStatus.OUT_OF_SERVICE); // If we are not UP or OUT_OF_SERVICE, the OUT_OF_SERVICE override does not apply. It gets trumped by the current // status (STARTING or DOWN). Here we test with STARTING. myInstance = createLocalStartingInstance(LOCAL_REGION_INSTANCE_1_HOSTNAME); registerInstanceLocally(myInstance); verifyLocalInstanceStatus(myInstance.getId(), InstanceStatus.STARTING); }
@Test public void testStatusOverrideSetAndRemoval() throws Exception { InstanceInfo seed = createLocalInstance(LOCAL_REGION_INSTANCE_1_HOSTNAME); seed.setLastDirtyTimestamp(100l); // Regular registration first InstanceInfo myInstance1 = new InstanceInfo(seed); registerInstanceLocally(myInstance1); verifyLocalInstanceStatus(myInstance1.getId(), InstanceStatus.UP); // Override status boolean statusResult = registry.statusUpdate(LOCAL_REGION_APP_NAME, seed.getId(), InstanceStatus.OUT_OF_SERVICE, "0", false); assertThat("Couldn't override instance status", statusResult, is(true)); verifyLocalInstanceStatus(seed.getId(), InstanceStatus.OUT_OF_SERVICE); // Register again with status UP to verify that the override is still in place even if the dirtytimestamp is higher InstanceInfo myInstance2 = new InstanceInfo(seed); // clone to avoid object state in this test myInstance2.setLastDirtyTimestamp(200l); // use a later 'client side' dirty timestamp registry.register(myInstance2, 10000000, false); verifyLocalInstanceStatus(seed.getId(), InstanceStatus.OUT_OF_SERVICE); // Now remove override statusResult = registry.deleteStatusOverride(LOCAL_REGION_APP_NAME, seed.getId(), InstanceStatus.DOWN, "0", false); assertThat("Couldn't remove status override", statusResult, is(true)); verifyLocalInstanceStatus(seed.getId(), InstanceStatus.DOWN); // Register again with status UP after the override deletion, keeping myInstance2's dirtyTimestamp (== no client side change) InstanceInfo myInstance3 = new InstanceInfo(seed); // clone to avoid object state in this test myInstance3.setLastDirtyTimestamp(200l); // use a later 'client side' dirty timestamp registry.register(myInstance3, 10000000, false); verifyLocalInstanceStatus(seed.getId(), InstanceStatus.UP); }
boolean statusResult = registry.statusUpdate(LOCAL_REGION_APP_NAME, seed.getId(), InstanceStatus.OUT_OF_SERVICE, "0", false); assertThat("Couldn't override instance status", statusResult, is(true)); verifyLocalInstanceStatus(seed.getId(), InstanceStatus.OUT_OF_SERVICE);