@Override protected String getValue(InstanceInfo data) { return data.getApp(); } }
@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 String getValue(InstanceInfo instanceInfo) { return instanceInfo.getApp(); } });
@Override public int compare(InstanceInfo o1, InstanceInfo o2) { if (o1 != null && o2 != null && o1.getApp() != null && o2.getApp() != null) { return o2.getApp().compareToIgnoreCase(o1.getApp()); } if (o1 != null && o1.getApp() != null) { return -1; } if (o2 != null && o2.getApp() != null) { return 1; } return 0; } });
@Override public int compare(InstanceInfo o1, InstanceInfo o2) { if (o1 != null && o2 != null && o1.getApp() != null && o2.getApp() != null) { return o1.getApp().compareToIgnoreCase(o2.getApp()); } if (o1 != null && o1.getApp() != null) { return 1; } if (o2 != null && o2.getApp() != null) { return -1; } return 0; } });
private void publishEurekaServerStatus() { final Map<String, InstanceInfo> regCache = registryCache.getCache(); List<InstanceInfo> eurekaInstances = new ArrayList<>(); for (Map.Entry<String, InstanceInfo> instanceInfo : regCache.entrySet()) { if (instanceInfo.getValue().getApp().toLowerCase().startsWith("eureka")) { eurekaInstances.add(instanceInfo.getValue()); } } registryBehaviorSubject.onNext(eurekaInstances); }
/** * Upload a given number of instances to the registry, forged from the provided * template. */ public void uploadClusterToRegistry(InstanceInfo template, int size) { Iterator<InstanceInfo> instanceIt = SampleInstanceInfo.collectionOf(template.getApp(), template); for (int i = 0; i < size; i++) { uploadToRegistry(instanceIt.next()); } }
private void refresh() { final Map<String, InstanceInfo> regCache = registryCache.getCache(); List<RegistryItem> registryItemsCurrent = new ArrayList<>(); for (Map.Entry<String, InstanceInfo> instanceInfo : regCache.entrySet()) { registryItemsCurrent.add(new RegistryItem(instanceInfo.getKey(), instanceInfo.getValue().getApp(), instanceInfo.getValue().getVipAddress(), instanceInfo.getValue().getStatus().name())); } if (isCurrentSnapshotSafeToRefresh(registryItemsCurrent.size())) { registryItemsRef.set(registryItemsCurrent); } }
@Override public Interest<InstanceInfo> build() { return Interests.forApplications(SampleInstanceInfo.ZuulServer.build().getApp()); } },
/** * Upload a given number of instances to the registry. */ public String uploadClusterToRegistry(SampleInstanceInfo sample, int size) { String appName = null; for (InstanceInfo item : sample.clusterOf(size)) { appName = item.getApp(); uploadToRegistry(item); } return appName; }
@Override public Interest<InstanceInfo> build() { return Interests.forApplications(SampleInstanceInfo.DiscoveryServer.build().getApp()); } },
private Collection<InstanceInfo> applyFiltering(Collection<InstanceInfo> instanceInfoList) { if (searchTerm != null && !searchTerm.isEmpty()) { List<InstanceInfo> result = new ArrayList<>(); for (InstanceInfo instanceInfo : instanceInfoList) { final String app = instanceInfo.getApp(); if (containsIn(instanceInfo.getApp()) || containsIn(instanceInfo.getVipAddress()) || (instanceInfo.getStatus() != null && containsIn(instanceInfo.getStatus().name()))) { result.add(instanceInfo); } } numFilteredRecords = result.size(); return result; } else { numFilteredRecords = instanceInfoList.size(); return instanceInfoList; } }
public void uploadClusterBatchToRegistry(InstanceInfo template, int size) { Iterator<InstanceInfo> instanceIt = SampleInstanceInfo.collectionOf(template.getApp(), template); InstanceInfo first = instanceIt.next(); batchStartFor(first); uploadToRegistry(first); for (int i = 1; i < size; i++) { uploadToRegistry(instanceIt.next()); } batchEndFor(first); }
@Override public JsonElement serialize(InstanceInfo instanceInfo, Type typeOfSrc, JsonSerializationContext context) { JsonObject result = new JsonObject(); if (AwsDataCenterInfo.class.isAssignableFrom(instanceInfo.getDataCenterInfo().getClass())) { final AwsDataCenterInfo dataCenterInfo = (AwsDataCenterInfo) instanceInfo.getDataCenterInfo(); result.addProperty("instId", dataCenterInfo.getInstanceId()); if(dataCenterInfo.getPublicAddress() != null) { result.addProperty("ip", dataCenterInfo.getPublicAddress().getIpAddress()); result.addProperty("hostname", dataCenterInfo.getPublicAddress().getHostName()); } result.addProperty("zone", dataCenterInfo.getZone()); result.addProperty("reg", dataCenterInfo.getRegion()); } result.addProperty("appId", instanceInfo.getApp()); result.addProperty("status", instanceInfo.getStatus().name()); result.addProperty("vip", instanceInfo.getVipAddress()); return result; } }
public String uploadClusterBatchToRegistry(SampleInstanceInfo sample, int size) { InstanceInfo first = null; for (InstanceInfo item : sample.clusterOf(size)) { if (first == null) { first = item; batchStartFor(item); } uploadToRegistry(item); } batchEndFor(first); return first.getApp(); }
protected Observable<Void> handleChangeNotification(ChangeNotification<InstanceInfo> notification) { if (notification.isDataNotification()) { metrics.incrementApplicationNotificationCounter(notification.getData().getApp()); } Observable<Void> sendResult = sendNotification(notification); if (sendResult != null) { return subscribeToTransportSend(sendResult, "notification"); } else { // TODO: how to report effectively invariant violations that should never happen in a valid code, but are not errors? logger.warn("No-effect modify in the interest channel: {}", notification); return Observable.empty(); } }