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 AwsDataCenterInfo build() { if (region == null && zone != null && !zone.isEmpty()) { // We will take it from zone name region = zone.substring(0, zone.length() - 1); } return new AwsDataCenterInfo(this); } }
@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; } }
private static String extractInstanceId(InstanceInfo instanceInfo) { if (instanceInfo != null && instanceInfo.getDataCenterInfo() != null && AwsDataCenterInfo.class.isAssignableFrom(instanceInfo.getDataCenterInfo().getClass())) { final AwsDataCenterInfo dataCenterInfo = (AwsDataCenterInfo) instanceInfo.getDataCenterInfo(); return dataCenterInfo.getInstanceId(); } return instanceInfo.getId(); }
public static String extractHostname(InstanceInfo instanceInfo) { if (AwsDataCenterInfo.class.isAssignableFrom(instanceInfo.getDataCenterInfo().getClass())) { final AwsDataCenterInfo dataCenterInfo = (AwsDataCenterInfo) instanceInfo.getDataCenterInfo(); return dataCenterInfo.getPublicAddress().getHostName(); } return ""; }
private static String extractInstanceId(InstanceInfo instanceInfo) { if (instanceInfo != null && instanceInfo.getDataCenterInfo() != null && AwsDataCenterInfo.class.isAssignableFrom(instanceInfo.getDataCenterInfo().getClass())) { final AwsDataCenterInfo dataCenterInfo = (AwsDataCenterInfo) instanceInfo.getDataCenterInfo(); return dataCenterInfo.getInstanceId(); } return instanceInfo.getId(); }