builder.setStatus(InstanceStatus.toEnum(reader.getValue())); } else if (ELEM_OVERRIDDEN_STATUS.equals(nodeName)) { builder.setOverriddenStatus(InstanceStatus.toEnum(reader
builder.setStatus(statusLookup.find(jp, InstanceStatus.UNKNOWN)); break; case OVERRIDDEN_STATUS:
.setIPAddr("1.1.1.1") .setHostName(hostname) .setStatus(InstanceInfo.InstanceStatus.toEnum(statusStr)) .setDataCenterInfo(new DataCenterInfo() { @Override
@Test public void notificationStatusCallsEurekaClient() { InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() .setAppName(NOTIFICATIONS) .setStatus(InstanceInfo.InstanceStatus.STARTING) .build(); when(discoveryClient.getNextServerFromEureka(NOTIFICATIONS, false)) .thenReturn(instanceInfo); assertThat(notificationService.notificationsStatus()) .isEqualTo(instanceInfo.getStatus()); }
.setStatusPageUrl("/status", unsecureURL + "/status") .setLeaseInfo(leaseInfo) .setStatus(InstanceStatus.UP) .setVIPAddress(appName + ":8080") .setSecureVIPAddress(appName + ":8081")
InstanceStatus initialStatus = InstanceStatus.STARTING; LOG.info("Setting initial instance status as: {}", initialStatus); builder.setStatus(initialStatus); } else { LOG.info("Setting initial instance status as: {}. This may be too early for the instance to advertise "
.setIPAddr(seed.getIPAddr()) .setDataCenterInfo(seed.getDataCenterInfo()) .setStatus(InstanceInfo.InstanceStatus.STARTING) .setLastDirtyTimestamp(11111l) .build(); .setIPAddr(seed.getIPAddr()) .setDataCenterInfo(seed.getDataCenterInfo()) .setStatus(InstanceInfo.InstanceStatus.UP) .setLastDirtyTimestamp(22222l) .build();
.build(); InstanceInfo instanceInfo = new InstanceInfo.Builder(seed) .setStatus(InstanceInfo.InstanceStatus.STARTING) .setLeaseInfo(leaseInfo) .build();
@Test public void testInfoDetailApplications(){ DataCenterInfo myDCI = new DataCenterInfo() { public DataCenterInfo.Name getName() { return DataCenterInfo.Name.MyOwn; } }; InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() .setInstanceId("test.id") .setAppName("test") .setHostName("test.hostname") .setStatus(InstanceStatus.UP) .setIPAddr("test.testip:1") .setPort(8080) .setSecurePort(443) .setDataCenterInfo(myDCI) .build(); Application application = new Application("Test App"); application.addInstance(instanceInfo); Applications applications = new Applications(); applications.addApplication(application); List<InstanceInfo> instanceInfos = application.getInstances(); Assert.assertEquals(1, instanceInfos.size()); Assert.assertTrue(instanceInfos.contains(instanceInfo)); List<Application> appsList = applications.getRegisteredApplications(); Assert.assertEquals(1, appsList.size()); Assert.assertTrue(appsList.contains(application)); Assert.assertEquals(application, applications.getRegisteredApplications(application.getName())); }
@Test public void testApplyDeltaWithBadInstanceInfoDataCenterInfoAsNull() throws Exception { InstanceInfoGenerator instanceGen = InstanceInfoGenerator.newBuilder(2, "testApp").build(); // Full fetch with one item InstanceInfo first = instanceGen.first(); Applications initial = toApplications(first); when(requestHandler.getApplications(TEST_REMOTE_REGION)).thenReturn( anEurekaHttpResponse(200, initial).type(MediaType.APPLICATION_JSON_TYPE).build() ); EurekaClient client = discoveryClientResource.getClient(); assertThat(client.getApplications().getAppsHashCode(), is(equalTo("UP_1_"))); // Delta with one add InstanceInfo second = new InstanceInfo.Builder(instanceGen.take(1)).setInstanceId("foo1").setStatus(InstanceStatus.DOWN).setDataCenterInfo(null).build(); InstanceInfo third = new InstanceInfo.Builder(instanceGen.take(1)).setInstanceId("foo2").setStatus(InstanceStatus.UP).setDataCenterInfo(new DataCenterInfo() { @Override public Name getName() { return null; } }).build(); Applications delta = toApplications(second, third); delta.setAppsHashCode("DOWN_1_UP_2_"); when(requestHandler.getDelta(TEST_REMOTE_REGION)).thenReturn( anEurekaHttpResponse(200, delta).type(MediaType.APPLICATION_JSON_TYPE).build() ); assertThat(discoveryClientResource.awaitCacheUpdate(5, TimeUnit.SECONDS), is(true)); assertThat(client.getApplications().getAppsHashCode(), is(equalTo("DOWN_1_UP_2_"))); }
@Test public void testInstanceFiltering() { DataCenterInfo myDCI = new DataCenterInfo() { public DataCenterInfo.Name getName() { return DataCenterInfo.Name.MyOwn; } }; InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() .setAppName("test") .setVIPAddress("test.testname:1") .setSecureVIPAddress("securetest.testname:7102") .setDataCenterInfo(myDCI) .setHostName("test.hostname") .setStatus(InstanceStatus.DOWN) .build(); Application application = new Application("TestApp"); application.addInstance(instanceInfo); Applications applications = new Applications(); applications.addApplication(application); applications.shuffleInstances(true); assertNotNull(applications.getRegisteredApplications("TestApp").getByInstanceId("test.hostname")); assertTrue(applications.getInstancesBySecureVirtualHostName("securetest.testname:7102").isEmpty()); assertTrue(applications.getInstancesBySecureVirtualHostName("test.testname:1").isEmpty()); }
@Test public void testGetNextIndex() { DataCenterInfo myDCI = new DataCenterInfo() { public DataCenterInfo.Name getName() { return DataCenterInfo.Name.MyOwn; } }; InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() .setAppName("test") .setVIPAddress("test.testname:1") .setSecureVIPAddress("securetest.testname:7102") .setDataCenterInfo(myDCI) .setHostName("test.hostname") .setStatus(InstanceStatus.UP) .build(); Application application = new Application("TestApp"); application.addInstance(instanceInfo); Applications applications = new Applications(); applications.addApplication(application); assertNotNull(applications.getNextIndex("test.testname:1", false)); assertEquals(0L, applications.getNextIndex("test.testname:1", false).get()); assertNotNull(applications.getNextIndex("securetest.testname:7102", true)); assertEquals(0L, applications.getNextIndex("securetest.testname:7102", true).get()); assertNotSame(applications.getNextIndex("test.testname:1", false), applications.getNextIndex("securetest.testname:7102", true)); }
@Test public void testPopulateInstanceCount() { DataCenterInfo myDCI = new DataCenterInfo() { public DataCenterInfo.Name getName() { return DataCenterInfo.Name.MyOwn; } }; InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() .setAppName("test") .setVIPAddress("test.testname:1") .setSecureVIPAddress("securetest.testname:7102") .setDataCenterInfo(myDCI) .setHostName("test.hostname") .setStatus(InstanceStatus.UP) .build(); Application application = new Application("TestApp"); application.addInstance(instanceInfo); Applications applications = new Applications(); applications.addApplication(application); TreeMap<String, AtomicInteger> instanceCountMap = new TreeMap<>(); applications.populateInstanceCountMap(instanceCountMap); assertEquals(1, instanceCountMap.size()); assertNotNull(instanceCountMap.get(InstanceStatus.UP.name())); assertEquals(1, instanceCountMap.get(InstanceStatus.UP.name()).get()); }
@Test public void testReconcileHashcode() { DataCenterInfo myDCI = new DataCenterInfo() { public DataCenterInfo.Name getName() { return DataCenterInfo.Name.MyOwn; } }; InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() .setAppName("test") .setVIPAddress("test.testname:1") .setSecureVIPAddress("securetest.testname:7102") .setDataCenterInfo(myDCI) .setHostName("test.hostname") .setStatus(InstanceStatus.UP) .build(); Application application = new Application("TestApp"); application.addInstance(instanceInfo); Applications applications = new Applications(); String hashCode = applications.getReconcileHashCode(); assertTrue(hashCode.isEmpty()); applications.addApplication(application); hashCode = applications.getReconcileHashCode(); assertFalse(hashCode.isEmpty()); assertEquals("UP_1_", hashCode); }
@Test public void testCopyConstructor() { DataCenterInfo myDCI = new DataCenterInfo() { public DataCenterInfo.Name getName() { return DataCenterInfo.Name.MyOwn; } }; InstanceInfo smallII1 = newBuilder().setAppName("test").setDataCenterInfo(myDCI).build(); InstanceInfo smallII2 = new InstanceInfo(smallII1); assertNotSame(smallII1, smallII2); Assert.assertEquals(smallII1, smallII2); InstanceInfo fullII1 = newBuilder().setMetadata(null) .setOverriddenStatus(InstanceInfo.InstanceStatus.UNKNOWN) .setHostName("localhost") .setSecureVIPAddress("testSecureVIP:22") .setStatus(InstanceInfo.InstanceStatus.UNKNOWN) .setStatusPageUrl("relative", "explicit/relative") .setVIPAddress("testVIP:21") .setAppName("test").setASGName("testASG").setDataCenterInfo(myDCI) .setHealthCheckUrls("relative", "explicit/relative", "secureExplicit/relative") .setHomePageUrl("relativeHP", "explicitHP/relativeHP") .setIPAddr("127.0.0.1") .setPort(21).setSecurePort(22).build(); InstanceInfo fullII2 = new InstanceInfo(fullII1); assertNotSame(fullII1, fullII2); Assert.assertEquals(fullII1, fullII2); }
@Test public void testAppsHashCodeAfterRefresh() throws Exception { InstanceInfoGenerator instanceGen = InstanceInfoGenerator.newBuilder(2, "testApp").build(); // Full fetch with one item InstanceInfo first = instanceGen.first(); Applications initial = toApplications(first); when(requestHandler.getApplications(TEST_REMOTE_REGION)).thenReturn( anEurekaHttpResponse(200, initial).type(MediaType.APPLICATION_JSON_TYPE).build() ); EurekaClient client = discoveryClientResource.getClient(); assertThat(client.getApplications().getAppsHashCode(), is(equalTo("UP_1_"))); // Delta with one add InstanceInfo second = new InstanceInfo.Builder(instanceGen.take(1)).setStatus(InstanceStatus.DOWN).build(); Applications delta = toApplications(second); delta.setAppsHashCode("DOWN_1_UP_1_"); when(requestHandler.getDelta(TEST_REMOTE_REGION)).thenReturn( anEurekaHttpResponse(200, delta).type(MediaType.APPLICATION_JSON_TYPE).build() ); assertThat(discoveryClientResource.awaitCacheUpdate(5, TimeUnit.SECONDS), is(true)); assertThat(client.getApplications().getAppsHashCode(), is(equalTo("DOWN_1_UP_1_"))); }
private static InstanceInfo createLocalInstanceWithStatus(String hostname, InstanceInfo.InstanceStatus status) { InstanceInfo.Builder instanceBuilder = InstanceInfo.Builder.newBuilder(); instanceBuilder.setInstanceId("foo"); instanceBuilder.setAppName(LOCAL_REGION_APP_NAME); instanceBuilder.setHostName(hostname); instanceBuilder.setIPAddr("10.10.101.1"); instanceBuilder.setDataCenterInfo(getAmazonInfo(null, hostname)); instanceBuilder.setLeaseInfo(LeaseInfo.Builder.newBuilder().build()); instanceBuilder.setStatus(status); return instanceBuilder.build(); }
private static InstanceInfo createLocalUpInstanceWithAsg(String hostname) { InstanceInfo.Builder instanceBuilder = InstanceInfo.Builder.newBuilder(); instanceBuilder.setAppName(LOCAL_REGION_APP_NAME); instanceBuilder.setHostName(hostname); instanceBuilder.setIPAddr("10.10.101.1"); instanceBuilder.setDataCenterInfo(getAmazonInfo(hostname)); instanceBuilder.setLeaseInfo(LeaseInfo.Builder.newBuilder().build()); instanceBuilder.setStatus(InstanceStatus.UP); instanceBuilder.setASGName("ASG-YO-HO"); return instanceBuilder.build(); }
protected static InstanceInfo createLocalInstanceWithIdAndStatus(String hostname, String id, InstanceInfo.InstanceStatus status) { InstanceInfo.Builder instanceBuilder = InstanceInfo.Builder.newBuilder(); instanceBuilder.setInstanceId(id); instanceBuilder.setAppName(LOCAL_REGION_APP_NAME); instanceBuilder.setHostName(hostname); instanceBuilder.setIPAddr("10.10.101.1"); instanceBuilder.setDataCenterInfo(getAmazonInfo(null, hostname)); instanceBuilder.setLeaseInfo(LeaseInfo.Builder.newBuilder().build()); instanceBuilder.setStatus(status); return instanceBuilder.build(); }
@Override protected InstanceInfo.Builder newInstanceInfoBuilder(int renewalIntervalInSecs) { InstanceInfo.Builder builder = super.newInstanceInfoBuilder(renewalIntervalInSecs); builder.setStatus(InstanceInfo.InstanceStatus.STARTING); return builder; }