protected Builder templateFor(String name) { HashSet<String> healthCheckUrls = new HashSet<>(); healthCheckUrls.add("http://eureka/healthCheck/" + name); healthCheckUrls.add("https://eureka/healthCheck/" + name); HashSet<Integer> ports = new HashSet<>(); ports.add(80); ports.add(8080); HashSet<Integer> securePorts = new HashSet<>(); securePorts.add(443); securePorts.add(8443); return new Builder() .withId("id#" + name + "_" + UUID.randomUUID().toString()) .withApp("app#" + name) .withAppGroup("group#" + name) .withAsg("asg#" + name) .withHealthCheckUrls(healthCheckUrls) .withHomePageUrl("http://eureka/home/" + name) .withPorts(ExtCollections.asSet(new ServicePort(7200, false), new ServicePort(7210, true))) .withSecureVipAddress("vipSecure#" + name) .withStatus(Status.UP) .withStatusPageUrl("http://eureka/status/" + name) .withVipAddress("vip#" + name) .withMetaData("optionA", "valueA") .withMetaData("optionB", "valueB") .withDataCenterInfo(SampleAwsDataCenterInfo.UsEast1a.build()); }
@Override public InstanceInfo.Builder call(DataCenterInfo dataCenterInfo) { final String instanceId = config.getAppName() + '#' + UUID.randomUUID().toString();; String address = AddressSelector.selectBy().publicIp(true).or().any().returnNameOrIp(dataCenterInfo.getAddresses()); HashSet<String> healthCheckUrls = new HashSet<>(); healthCheckUrls.add("http://" + address + ':' + config.getWebAdminPort() + "/healthcheck"); return new InstanceInfo.Builder() .withId(instanceId) .withApp(config.getAppName()) .withVipAddress(config.getVipAddress()) .withHealthCheckUrls(healthCheckUrls) .withDataCenterInfo(dataCenterInfo) .withStatus(InstanceInfo.Status.STARTING); } })
public static Service createServiceOf(String serverId, Application application, DataCenterInfoGenerator dataCenterInfoGenerator) { String id = application.getServiceName(); HashSet<String> healthcheckURLs = new HashSet<>(); healthcheckURLs.add("TODO"); Map<String, String> metaData = new HashMap<>(); metaData.put("key1", "value1"); Builder builder = new Builder() .withId(id) .withApp(application.getName()) .withAppGroup(application.getName() + "_group") .withAsg(application.getName() + "_asg") .withDataCenterInfo(dataCenterInfoGenerator.next()) .withHealthCheckUrls(healthcheckURLs) .withHomePageUrl("TODO") .withMetaData(metaData) .withPorts(SampleServicePort.httpPorts()) .withVipAddress(application.getName() + "_vip") .withSecureVipAddress(application.getName() + "_secureVip") .withStatus(Status.UP) .withStatusPageUrl("TODO"); if (serverId != null) { builder.withMetaData(TopologyFunctions.SERVER_ID_KEY, serverId); } InstanceInfo selfInfo = builder.build(); return new Service(application, selfInfo); } }
@Override public InstanceInfo next() { int cidx = idx.incrementAndGet(); String name = baseName + '_' + cidx; NetworkAddress publicAddress = publicAddresses.next(); NetworkAddress privateAddress = privateAddresses.next(); DataCenterInfo dataCenter = new AwsDataCenterInfo.Builder() .withAwsDataCenter(templateDataCenter) .withInstanceId(String.format("i-%s-%08d", baseName, cidx)) .withPublicHostName(publicAddress.getHostName()) .withPublicIPv4(publicAddress.getIpAddress()) .withPrivateHostName(privateAddress.getHostName()) .withPrivateIPv4(privateAddress.getIpAddress()) .build(); return new InstanceInfo.Builder() .withId("id#" + name) .withApp(template.getApp()) .withAppGroup(template.getAppGroup()) .withAsg(template.getAsg()) .withHealthCheckUrls(template.getHealthCheckUrls()) .withHomePageUrl(template.getHomePageUrl()) .withPorts(template.getPorts()) .withSecureVipAddress(template.getSecureVipAddress()) .withStatus(template.getStatus()) .withStatusPageUrl(template.getStatusPageUrl()) .withVipAddress(template.getVipAddress()) .withMetaData(template.getMetaData()) .withDataCenterInfo(dataCenter) .build(); }
@Override public InstanceInfo fromV1(com.netflix.appinfo.InstanceInfo v1Info) { InstanceInfo.Builder builder = new InstanceInfo.Builder() .withId(v1Info.getAppName() + "_" + v1Info.getId()) // instanceId is not unique for v1Data .withAppGroup(v1Info.getAppGroupName()) .withApp(v1Info.getAppName()) .withAsg(v1Info.getASGName()) .withVipAddress(v1Info.getVIPAddress()) .withSecureVipAddress(v1Info.getSecureVipAddress()) .withPorts(toSet(new ServicePort(v1Info.getPort(), false), new ServicePort(v1Info.getSecurePort(), true))) .withStatus(fromV1(v1Info.getStatus())) .withHomePageUrl(v1Info.getHomePageUrl()) .withStatusPageUrl(v1Info.getStatusPageUrl()) .withHealthCheckUrls(new HashSet<>(v1Info.getHealthCheckUrls())) .withMetaData(v1Info.getMetadata()) .withDataCenterInfo(dataCenterFromV1(v1Info)); return builder.build(); }
@Override public InstanceInfo.Builder update(InstanceInfo.Builder builder, DataCenterInfo value) { return builder.withDataCenterInfo(value); }