@Override protected boolean matches(Boolean value, NetworkAddress endpoint) { String ipAddress = endpoint.getIpAddress(); if (ipAddress == null) { return false; } return SystemUtil.isPublic(ipAddress) == value; } }
public List<String> returnNameOrIpList(List<NetworkAddress> addresses) { Iterator<NetworkAddress> it = applyQuery(addresses.iterator()); List<String> addressList = new ArrayList<>(); while (it.hasNext()) { NetworkAddress address = it.next(); addressList.add(address.getHostName() != null ? address.getHostName() : address.getIpAddress()); } return addressList; }
public String returnNameOrIp(List<NetworkAddress> addresses) { Iterator<NetworkAddress> it = applyQuery(addresses.iterator()); if (it.hasNext()) { NetworkAddress address = it.next(); return address.getHostName() != null ? address.getHostName() : address.getIpAddress(); } return null; }
@Override protected boolean matches(Boolean value, ServiceEndpoint endpoint) { String ipAddress = endpoint.getAddress().getIpAddress(); if (ipAddress == null) { return false; } return SystemUtil.isPublic(ipAddress) == value; } }
@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; } }
@Override public AwsDataCenterInfo next() { NetworkAddress publicAddress = publicAddresses.next(); NetworkAddress privateAddress = privateAddresses.next(); return new AwsDataCenterInfo.Builder() .withAwsDataCenter(template) .withInstanceId(String.format("id-%08d", ++instanceId)) .withPublicHostName(publicAddress.getHostName()) .withPublicIPv4(publicAddress.getIpAddress()) .withPrivateHostName(privateAddress.getHostName()) .withPrivateIPv4(privateAddress.getIpAddress()) .build(); }
public InetSocketAddress returnServiceAddress(InstanceInfo instanceInfo) { ServiceEndpoint endpoint = returnServiceEndpoint(instanceInfo); if (endpoint == null) { return null; } String address = endpoint.getAddress().getHostName(); if (address == null) { address = endpoint.getAddress().getIpAddress(); } return new InetSocketAddress(address, endpoint.getServicePort().getPort()); }
private static Observable<Void> redirectTo(InstanceInfo readServerInfo, HttpServerRequest<ByteBuf> request, HttpServerResponse<ByteBuf> response) { ServiceEndpoint serviceEndpoint = HTTP_PUBLIC_SERVICE_SELECTOR.returnServiceEndpoint(readServerInfo); String redirectHost = serviceEndpoint == null ? null : serviceEndpoint.getAddress().getHostName(); if(redirectHost == null) { serviceEndpoint = HTTP_PRIVATE_SERVICE_SELECTOR.returnServiceEndpoint(readServerInfo); redirectHost = serviceEndpoint.getAddress().getIpAddress(); } StringBuilder redirectBuilder = new StringBuilder("http://") .append(redirectHost) .append(':') .append(serviceEndpoint.getServicePort().getPort()) .append(request.getPath()); if (request.getQueryString() != null) { redirectBuilder.append('?').append(request.getQueryString()); } response.getHeaders().add(Names.LOCATION, redirectBuilder.toString()); response.setStatus(HttpResponseStatus.FOUND); return Observable.empty(); } }
public Builder withAwsDataCenter(AwsDataCenterInfo dataCenter) { this.region = dataCenter.getRegion(); this.zone = dataCenter.getZone(); this.placementGroup = dataCenter.getPlacementGroup(); this.amiId = dataCenter.getAmiId(); this.instanceId = dataCenter.getInstanceId(); this.instanceType = dataCenter.getInstanceType(); this.privateIP = dataCenter.getPrivateAddress().getIpAddress(); this.privateHostName = dataCenter.getPrivateAddress().getHostName(); this.publicIP = dataCenter.getPublicAddress().getIpAddress(); this.publicHostName = dataCenter.getPublicAddress().getHostName(); this.eth0mac = dataCenter.getEth0mac(); this.vpcId = dataCenter.getVpcId(); this.accountId = dataCenter.getAccountId(); return this; }
@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(); }