use of org.openstack.model.compute.Addresses.Network in project platformlayer by platformlayer.
the class OpenstackCloudHelpers method findPublicIps.
public List<Ip> findPublicIps(OpenstackCloud cloud, Server server) {
List<Ip> ips = Lists.newArrayList();
// {
// String ip = server.getAccessIpV4();
// if (!Strings.isNullOrEmpty(ip)) {
// tags.add(new Tag(Tag.NETWORK_ADDRESS, ip));
// }
// }
Addresses addresses = server.getAddresses();
for (Network network : addresses.getNetworks()) {
if ("public".equals(network.getId())) {
for (Ip ip : network.getIps()) {
if (Strings.isNullOrEmpty(ip.getAddr())) {
continue;
}
ips.add(ip);
}
}
}
CloudBehaviours behaviours = new CloudBehaviours(cloud);
if (behaviours.publicIpsReportedAsPrivate()) {
for (Network network : addresses.getNetworks()) {
if ("private".equals(network.getId())) {
for (Ip ip : network.getIps()) {
if (Strings.isNullOrEmpty(ip.getAddr())) {
continue;
}
if (behaviours.isPublic(ip)) {
ips.add(ip);
}
}
}
}
}
return ips;
}