Search in sources :

Example 1 with Network

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;
}
Also used : Addresses(org.openstack.model.compute.Addresses) Ip(org.openstack.model.compute.Addresses.Network.Ip) Network(org.openstack.model.compute.Addresses.Network)

Aggregations

Addresses (org.openstack.model.compute.Addresses)1 Network (org.openstack.model.compute.Addresses.Network)1 Ip (org.openstack.model.compute.Addresses.Network.Ip)1