use of com.woorea.openstack.nova.model.Server.Addresses in project AJSC by att.
the class OpenStackNetworkService method reserveFreeFloatingIPAddress.
/**
* This method is used o determine which IP addresses in the floating ip address pool specified are free, and to
* reserve the first one
*
* @param pool
* The name of the pool to be searched, or null if we are searching all pools available to the tenant
* @return The reserved IP address (or null if there are none available in the pool)
* @throws OpenStackResponseException
* @throws OpenStackConnectException
*/
@SuppressWarnings("nls")
private String reserveFreeFloatingIPAddress(String pool) throws OpenStackConnectException, OpenStackResponseException {
Nova client = novaConnector.getClient();
HashSet<String> available = new HashSet<>();
Context context = getContext();
FloatingIps ips = client.floatingIps().list().execute();
for (FloatingIp ip : ips.getList()) {
if (pool == null || pool.equalsIgnoreCase(ip.getPool())) {
available.add(ip.getIp());
}
}
Servers servers = client.servers().list(true).execute();
for (com.woorea.openstack.nova.model.Server server : servers.getList()) {
Addresses allocatedAddresses = server.getAddresses();
Map<String, List<Address>> addressMap = allocatedAddresses.getAddresses();
for (Map.Entry<String, List<Address>> entry : addressMap.entrySet()) {
List<Address> addressList = entry.getValue();
for (Address address : addressList) {
if (address.getType().equalsIgnoreCase("floating")) {
available.remove(address.getAddr());
}
}
}
}
if (!available.isEmpty()) {
Iterator<String> it = available.iterator();
while (it.hasNext()) {
String ip = it.next();
if (((OpenStackContext) context).allocateFloatingIP(ip)) {
return ip;
}
}
}
return null;
}
use of com.woorea.openstack.nova.model.Server.Addresses in project AJSC by att.
the class TestOpenstackServerMapping method testMapJsonToServer.
@Test
public void testMapJsonToServer() throws JsonParseException, JsonMappingException, IOException {
Server server = om.readValue(json, Server.class);
assertNotNull(server);
Server.Addresses addresses = server.getAddresses();
assertNotNull(addresses);
Map<String, List<Server.Addresses.Address>> map = addresses.getAddresses();
assertNotNull(map);
assertFalse(map.isEmpty());
assertEquals(1, map.size());
List<Server.Addresses.Address> list = map.get("VLAN_OVERLAY_422");
assertNotNull(list);
assertFalse(list.isEmpty());
Server.Addresses.Address entry = list.get(0);
assertNotNull(entry);
assertEquals("135.144.122.121", entry.getAddr());
}
Aggregations