use of org.platformlayer.service.cloud.direct.model.DirectNetwork in project platformlayer by platformlayer.
the class DirectCloudUtils method getAddressPool6.
public OpsProvider<ResourcePool<AddressModel>> getAddressPool6() {
OpsProvider<PoolBuilder<AddressModel>> poolBuilder = new OpsProvider<PoolBuilder<AddressModel>>() {
@Override
public PoolBuilder<AddressModel> get() throws OpsException {
DirectHost host = OpsContext.get().getInstance(DirectHost.class);
PlatformLayerKey sharedNetworkKey = getSharedNetworkKey();
// Skip the first entries in the CIDR as it's probably not valid
// 0: Network identifier
// 1: Gateway
// 2: Host
int skipCount = 3;
if (sharedNetworkKey != null) {
DirectNetwork network = platformLayer.getItem(sharedNetworkKey, DirectNetwork.class);
for (AddressModel net : network.getNetworks()) {
if (Strings.isNullOrEmpty(net.cidr)) {
continue;
}
IpRange cidr = IpRange.parse(net.cidr);
if (!cidr.isIpv6()) {
continue;
}
return new NetworkPoolBuilder(net.cidr, skipCount, net);
}
log.warn("Unable to find an IPV6 network configured on " + sharedNetworkKey);
return null;
} else {
String privateCidr = host.ipv6;
if (privateCidr != null) {
return new NetworkPoolBuilder(privateCidr, skipCount, null);
}
return null;
}
}
};
return getNetworkPoolProvider(AddressModel.class, "addresses-ipv6", poolBuilder);
}
Aggregations