@Override public NetworkAddress next() { int hostPart = (int) (counter.incrementAndGet() % finalMask); String nextIp = nextIpAddress(networkAddressPrefix, hostPart, finalParts); String nextHostName = hostNameFrom(hostDomain, nextIp); return aNetworkAddress() .withHostName(nextHostName) .withIpAddress(nextIp) .withLabel(label) .withProtocolType(ProtocolType.IPv4) .build(); }
@Override public DataCenterInfo dataCenterFromV1(com.netflix.appinfo.InstanceInfo v1Info) { DataCenterInfo.DataCenterInfoBuilder builder; com.netflix.appinfo.DataCenterInfo v1DataCenterInfo = v1Info.getDataCenterInfo(); if (v1DataCenterInfo instanceof AmazonInfo) { AmazonInfo v1AmazonInfo = (AmazonInfo) v1DataCenterInfo; builder = new AwsDataCenterInfo.Builder() .withZone(v1AmazonInfo.get(AmazonInfo.MetaDataKey.availabilityZone)) .withAmiId(v1AmazonInfo.get(AmazonInfo.MetaDataKey.amiId)) .withInstanceId(v1AmazonInfo.get(AmazonInfo.MetaDataKey.instanceId)) .withInstanceType(v1AmazonInfo.get(AmazonInfo.MetaDataKey.instanceType)) .withPrivateIPv4(v1AmazonInfo.get(AmazonInfo.MetaDataKey.localIpv4)) .withPublicIPv4(v1AmazonInfo.get(AmazonInfo.MetaDataKey.publicIpv4)) .withPublicHostName(v1AmazonInfo.get(AmazonInfo.MetaDataKey.publicHostname)); } else { NetworkAddress address = aNetworkAddress() .withIpAddress(v1Info.getIPAddr()) .withHostName(v1Info.getHostName()) .withLabel(NetworkAddress.PUBLIC_ADDRESS) // best guess .withProtocolType(NetworkAddress.ProtocolType.IPv4) // best guess .build(); builder = new BasicDataCenterInfo.Builder<>() .withName(v1DataCenterInfo.getName().name()) .withAddresses(address); } return builder.build(); }
private AwsDataCenterInfo(Builder builder) { region = builder.region; zone = builder.zone; placementGroup = builder.placementGroup; amiId = builder.amiId; name = instanceId = builder.instanceId; instanceType = builder.instanceType; eth0mac = builder.eth0mac; vpcId = builder.vpcId; accountId = builder.accountId; if (builder.privateIP != null || builder.privateHostName != null) { privateAddress = aNetworkAddress().withLabel(PRIVATE_ADDRESS).withProtocolType(ProtocolType.IPv4) .withHostName(builder.privateHostName).withIpAddress(builder.privateIP).build(); } else { privateAddress = null; } if (builder.publicIP != null || builder.publicHostName != null) { publicAddress = aNetworkAddress().withLabel(PUBLIC_ADDRESS).withProtocolType(ProtocolType.IPv4) .withHostName(builder.publicHostName).withIpAddress(builder.publicIP).build(); } else { publicAddress = null; } }
public static BasicDataCenterInfo fromSystemData() { Builder<BasicDataCenterInfo> builder = new Builder<>(); builder.withName(SystemUtil.getHostName()); for (String ip : SystemUtil.getLocalIPs()) { if (!SystemUtil.isLoopbackIP(ip)) { boolean isPublic = SystemUtil.isPublic(ip); ProtocolType protocol = SystemUtil.isIPv6(ip) ? ProtocolType.IPv6 : ProtocolType.IPv4; builder.withAddresses( aNetworkAddress() .withLabel(isPublic ? PUBLIC_ADDRESS : NetworkAddress.PRIVATE_ADDRESS) .withProtocolType(protocol) .withIpAddress(ip) .build() ); } } return builder.build(); }
public NetworkAddress build() { return builder().build(); }
public NetworkAddressBuilder but() { return aNetworkAddress().withProtocolType(protocolType).withLabel(label).withIpAddress(ipAddress).withHostName(hostName); }
public static NetworkAddressBuilder aNetworkAddress() { return new NetworkAddressBuilder(); }
@Override public NetworkAddressBuilder builder() { return aNetworkAddress() .withHostName("test.public.host") .withIpAddress("11.11.0.1") .withProtocolType(ProtocolType.IPv4); } },
@Override public NetworkAddressBuilder builder() { return aNetworkAddress() .withHostName("test.private.host") .withIpAddress("192.168.0.1") .withProtocolType(ProtocolType.IPv4); } };