@Override public boolean apply(Network network) { return names.contains(network.getName()); } };
@Override public boolean apply(Network network) { return availabilityZone.equals(network.getAvailabilityZone()) && network.getExternal(); } };
/** * No-parameters constructor used when updating. * */ private Builder() { network = new Network(); }
@Override public void testCreateUpdateAndDeleteNetwork() { for (String region : api.getConfiguredRegions()) { NetworkApi networkApi = api.getNetworkApi(region); Network net = networkApi.create(Network.createBuilder("jclouds-test").build()); Network test = networkApi.create(Network.createBuilder("jclouds-test").build()); assertNotNull(net); /* List and get tests */ Network networkList = api.getNetworkApi(region).list().concat().toSet().iterator().next(); assertNotNull(networkList); Network networkGet = api.getNetworkApi(region).get(networkList.getId()); assertEquals(networkList, networkGet); /****/ Network network = networkApi.get(net.getId()); assertEquals(network.getId(), net.getId()); assertEquals(network.getName(), "jclouds-test"); assertTrue(network.getSubnets().isEmpty()); assertNotNull(networkApi.update(net.getId(), Network.updateBuilder().name("jclouds-live-test").build())); network = networkApi.get(net.getId()); assertEquals(network.getId(), net.getId()); assertEquals(network.getName(), "jclouds-live-test"); assertTrue(network.getSubnets().isEmpty()); Network net2 = networkApi.create(Network.createBuilder("jclouds-test2").build()); assertNotNull(net2); assertTrue(networkApi.delete(net.getId())); assertTrue(networkApi.delete(net2.getId())); assertTrue(networkApi.delete(test.getId())); } }
public void testBulkCreateNetwork() { for (String region : api.getConfiguredRegions()) { NetworkApi networkApi = api.getNetworkApi(region); Set<Network> nets = networkApi.createBulk( ImmutableList.of( Network.createBuilder("jclouds-live-test-1").networkType(NetworkType.LOCAL).adminStateUp(true).build(), Network.createBuilder("jclouds-live-test-2").networkType(NetworkType.LOCAL).adminStateUp(false).build(), Network.createBuilder("jclouds-live-test-3").networkType(NetworkType.LOCAL).adminStateUp(false).build() ) ).toSet(); Set<Network> existingNets = networkApi.list().concat().toSet(); assertNotNull(nets); assertTrue(!nets.isEmpty()); assertEquals(nets.size(), 3); for (Network net : nets) { Predicate<Network> idEqualsPredicate = PredicateUtil.createIdEqualsPredicate(net.getId()); assertEquals(1, Sets.filter(existingNets, idEqualsPredicate).size()); assertTrue(networkApi.delete(net.getId())); } } } }
NetworkApi api = neutronApi.getNetworkApi("RegionOne"); Network.CreateNetwork createNetwork1 = Network.createBuilder("jclouds-wibble") .networkType(NetworkType.LOCAL) .build(); Network.CreateNetwork createNetwork2 = Network.createBuilder("jclouds-wibble2") .networkType(NetworkType.LOCAL) .build(); assertEquals(networks.get(0).getName(), "jclouds-wibble"); assertEquals(networks.get(0).getNetworkType(), NetworkType.LOCAL); assertEquals(networks.get(0).getTenantId(), "1234567890"); assertEquals(networks.get(0).getStatus(), NetworkStatus.ACTIVE); assertEquals(networks.get(0).getId(), "624312ff-d14b-4ba3-9834-1c78d23d574d"); assertEquals(networks.get(1).getName(), "jclouds-wibble2"); assertEquals(networks.get(1).getNetworkType(), NetworkType.LOCAL); assertEquals(networks.get(1).getTenantId(), "1234567890"); assertEquals(networks.get(1).getStatus(), NetworkStatus.ACTIVE); assertEquals(networks.get(1).getId(), "624312ff-d14b-4ba3-9834-1c78d23d574e"); } finally { server.shutdown();
public void testUpdateNetwork() throws IOException, InterruptedException, URISyntaxException { MockWebServer server = mockOpenStackServer(); server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(201).setBody(stringFromResource("/network_update_response.json")))); try { NeutronApi neutronApi = api(server.getUrl("/").toString(), "openstack-neutron", overrides); NetworkApi api = neutronApi.getNetworkApi("RegionOne"); Network.UpdateNetwork updateNetwork = Network.updateBuilder() .name("jclouds-wibble-updated") .networkType(NetworkType.LOCAL) .build(); Network network = api.update("123456", updateNetwork); /* * Check request */ assertAuthentication(server); assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/networks/123456", "/network_update_request.json"); /* * Check response */ assertNotNull(network); assertEquals(network.getName(), "updated_name"); assertEquals(network.getId(), "fc68ea2c-b60b-4b4f-bd82-94ec81110766"); } finally { server.shutdown(); } }
private org.jclouds.openstack.neutron.v2.domain.FloatingIP createFloatingIpUsingNeutron(org.jclouds.openstack.neutron.v2.features.FloatingIPApi neutronFloatingApi, NodeMetadata node, Optional<Set<String>> poolNames, final String availabilityZone) { String regionId = node.getLocation().getParent().getId(); List<Network> networks = getSuitableNetworks(regionId, availabilityZone, poolNames.or(Sets.<String>newHashSet())); org.jclouds.openstack.neutron.v2.domain.FloatingIP floatingIP = null; for (Network network : networks) { try { logger.debug(">> allocating floating IP from network %s for node(%s)", network, node); org.jclouds.openstack.neutron.v2.domain.FloatingIP createFloatingIP = org.jclouds.openstack.neutron.v2.domain.FloatingIP.CreateFloatingIP.createBuilder(network.getId()).availabilityZone(network.getAvailabilityZone()).build(); floatingIP = neutronFloatingApi.create((org.jclouds.openstack.neutron.v2.domain.FloatingIP.CreateFloatingIP) createFloatingIP); logger.debug(">> allocated floating IP(%s) from network(%s) for node(%s)", floatingIP, network, node); floatingIpCache.asMap().put(RegionAndId.fromSlashEncoded(node.getId()), ImmutableList.of(FloatingIpForServer.create(RegionAndId.fromSlashEncoded(node.getId()), floatingIP.getId(), floatingIP.getFloatingIpAddress()))); return floatingIP; } catch (Exception ex) { logger.trace("<< [%s] failed to allocate a floating IP from network %s for node(%s)", ex.getMessage(), network, node); } } throw new IllegalStateException("Failed to allocate a floating IP for node " + node + ".\n" + "Failed to find suitable external networks or to allocate from poolNames specified: " + Iterables.toString(poolNames.get())); }
public void testGetNetwork() throws IOException, InterruptedException, URISyntaxException { MockWebServer server = mockOpenStackServer(); server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(200).setBody(stringFromResource("/network_get_response.json")))); try { NeutronApi neutronApi = api(server.getUrl("/").toString(), "openstack-neutron", overrides); NetworkApi api = neutronApi.getNetworkApi("RegionOne"); Network network = api.get("12345"); /* * Check request */ assertEquals(server.getRequestCount(), 2); assertAuthentication(server); assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks/12345"); /* * Check response */ assertNotNull(network); assertEquals(network.getName(), "jclouds-wibble"); assertEquals(network.getId(), "624312ff-d14b-4ba3-9834-1c78d23d574d"); } finally { server.shutdown(); } }
@AfterClass public void deleteSubnets() { for (String region : api.getConfiguredRegions()) { NetworkApi networkApi = api.getNetworkApi(region); SubnetApi subnetApi = api.getSubnetApi(region); try { Subnet subnet = subnets.get(region); if (subnet != null) { assertTrue(subnetApi.delete(subnet.getId())); } } finally { Network network = networks.get(region); if (network != null) { assertTrue(networkApi.delete(network.getId())); } } } }
@Override public boolean apply(Network input) { return input.getExternal(); } }).orNull();
@Override public void testCreateUpdateAndDeleteNetwork() { for (String region : api.getConfiguredRegions()) { NetworkApi networkApi = api.getNetworkApi(region); Network net = networkApi.create(Network.createBuilder("jclouds-test").build()); Network test = networkApi.create(Network.createBuilder("jclouds-test").build()); assertNotNull(net); /* List and get tests */ Network networkList = api.getNetworkApi(region).list().concat().toSet().iterator().next(); assertNotNull(networkList); Network networkGet = api.getNetworkApi(region).get(networkList.getId()); assertEquals(networkList, networkGet); /****/ Network network = networkApi.get(net.getId()); assertEquals(network.getId(), net.getId()); assertEquals(network.getName(), "jclouds-test"); assertTrue(network.getSubnets().isEmpty()); assertNotNull(networkApi.update(net.getId(), Network.updateBuilder().name("jclouds-live-test").build())); network = networkApi.get(net.getId()); assertEquals(network.getId(), net.getId()); assertEquals(network.getName(), "jclouds-live-test"); assertTrue(network.getSubnets().isEmpty()); Network net2 = networkApi.create(Network.createBuilder("jclouds-test2").build()); assertNotNull(net2); assertTrue(networkApi.delete(net.getId())); assertTrue(networkApi.delete(net2.getId())); assertTrue(networkApi.delete(test.getId())); } }
@BeforeClass public void createSubnets() { for (String region : api.getConfiguredRegions()) { Optional<LBaaSApi> lbaasApiExtension = api.getLBaaSApi(region); if (!lbaasApiExtension.isPresent()) { continue; } NetworkApi networkApi = api.getNetworkApi(region); SubnetApi subnetApi = api.getSubnetApi(region); Network network = networkApi.create(Network.createBuilder("jclouds-lbaas-test-network").networkType(NetworkType.LOCAL).build()); assertNotNull(network); networks.put(region, network); Subnet subnet = subnetApi.create(Subnet.createBuilder(network.getId(), "10.0.0.0/24").ipVersion(4).name("jclouds-lbaas-test-subnet").build()); assertNotNull(subnet); subnets.put(region, subnet); } }
public void testCreateNetwork() throws IOException, InterruptedException, URISyntaxException { MockWebServer server = mockOpenStackServer(); server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(201).setBody(stringFromResource("/network_create_response.json")))); try { NeutronApi neutronApi = api(server.getUrl("/").toString(), "openstack-neutron", overrides); NetworkApi api = neutronApi.getNetworkApi("RegionOne"); Network.CreateNetwork createNetwork = Network.createBuilder("jclouds-wibble") .networkType(NetworkType.LOCAL) .build(); Network network = api.create(createNetwork); /* * Check request */ assertAuthentication(server); assertRequest(server.takeRequest(), "POST", uriApiVersion + "/networks", "/network_create_request.json"); /* * Check response */ assertNotNull(network); assertEquals(network.getName(), "jclouds-wibble"); assertEquals(network.getNetworkType(), NetworkType.LOCAL); assertEquals(network.getTenantId(), "1234567890"); assertEquals(network.getStatus(), NetworkStatus.ACTIVE); assertEquals(network.getId(), "624312ff-d14b-4ba3-9834-1c78d23d574d"); } finally { server.shutdown(); } }
private org.jclouds.openstack.neutron.v2.domain.FloatingIP createFloatingIpUsingNeutron(org.jclouds.openstack.neutron.v2.features.FloatingIPApi neutronFloatingApi, NodeMetadata node, Optional<Set<String>> poolNames, final String availabilityZone) { String regionId = node.getLocation().getParent().getId(); List<Network> networks = getSuitableNetworks(regionId, availabilityZone, poolNames.or(Sets.<String>newHashSet())); org.jclouds.openstack.neutron.v2.domain.FloatingIP floatingIP = null; for (Network network : networks) { try { logger.debug(">> allocating floating IP from network %s for node(%s)", network, node); org.jclouds.openstack.neutron.v2.domain.FloatingIP createFloatingIP = org.jclouds.openstack.neutron.v2.domain.FloatingIP.CreateFloatingIP.createBuilder(network.getId()).availabilityZone(network.getAvailabilityZone()).build(); floatingIP = neutronFloatingApi.create((org.jclouds.openstack.neutron.v2.domain.FloatingIP.CreateFloatingIP) createFloatingIP); logger.debug(">> allocated floating IP(%s) from network(%s) for node(%s)", floatingIP, network, node); floatingIpCache.asMap().put(RegionAndId.fromSlashEncoded(node.getId()), ImmutableList.of(FloatingIpForServer.create(RegionAndId.fromSlashEncoded(node.getId()), floatingIP.getId(), floatingIP.getFloatingIpAddress()))); return floatingIP; } catch (Exception ex) { logger.trace("<< [%s] failed to allocate a floating IP from network %s for node(%s)", ex.getMessage(), network, node); } } throw new IllegalStateException("Failed to allocate a floating IP for node " + node + ".\n" + "Failed to find suitable external networks or to allocate from poolNames specified: " + Iterables.toString(poolNames.get())); }
public void testListPagedNetwork() throws IOException, InterruptedException, URISyntaxException { MockWebServer server = mockOpenStackServer(); server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json")))); server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(200).setBody(stringFromResource("/network_list_response_paged1.json")))); server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(200).setBody(stringFromResource("/network_list_response_paged2.json")))); try { NeutronApi neutronApi = api(server.getUrl("/").toString(), "openstack-neutron", overrides); NetworkApi api = neutronApi.getNetworkApi("RegionOne"); // Note: Lazy! Have to actually look at the collection. List<Network> networks = api.list().concat().toList(); assertEquals(networks.size(), 4); // look at last element assertEquals(networks.get(3).getId(), "71c1e68c-171a-4aa2-aca5-50ea153a3718_2"); /* * Check request */ assertEquals(server.getRequestCount(), 3); assertAuthentication(server); assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks"); assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718"); /* * Check response */ assertNotNull(networks); assertEquals(networks.get(0).getId(), "396f12f8-521e-4b91-8e21-2e003500433a"); assertEquals(networks.get(3).getId(), "71c1e68c-171a-4aa2-aca5-50ea153a3718_2"); } finally { server.shutdown(); } }
public void testCreateUpdateAndDeleteNetwork() { for (String region : api.getConfiguredRegions()) { NetworkApi networkApi = api.getNetworkApi(region); Network net = networkApi.create(Network.createBuilder("jclouds-test").networkType(NetworkType.LOCAL).build()); Network test = networkApi.create(Network.createBuilder("jclouds-test").build()); assertNotNull(net); /* List and get tests */ Network networkList = api.getNetworkApi(region).list().concat().toSet().iterator().next(); assertNotNull(networkList); Network networkGet = api.getNetworkApi(region).get(networkList.getId()); assertEquals(networkList, networkGet); /****/ Network network = networkApi.get(net.getId()); assertEquals(network.getId(), net.getId()); assertEquals(network.getName(), "jclouds-test"); assertEquals(network.getNetworkType(), NetworkType.LOCAL); assertTrue(network.getSubnets().isEmpty()); assertNotNull(networkApi.update(net.getId(), Network.updateBuilder().name("jclouds-live-test").build())); network = networkApi.get(net.getId()); assertEquals(network.getId(), net.getId()); assertEquals(network.getName(), "jclouds-live-test"); assertTrue(network.getSubnets().isEmpty()); Network net2 = networkApi.create(Network.createBuilder("jclouds-test2").networkType(NetworkType.LOCAL).build()); assertNotNull(net2); assertTrue(networkApi.delete(net.getId())); assertTrue(networkApi.delete(net2.getId())); assertTrue(networkApi.delete(test.getId())); } }
public void testCreateAndDeleteRouterInterfaceForSubnet() { for (String region : api.getConfiguredRegions()) { RouterApi routerApi = api.getRouterApi(region).get(); NetworkApi networkApi = api.getNetworkApi(region); SubnetApi subnetApi = api.getSubnetApi(region); Network network = networkApi.create(Network.createBuilder("jclouds-network-test").external(true).networkType(NetworkType.LOCAL).build()); assertNotNull(network); Subnet subnet = subnetApi.create(Subnet.createBuilder(network.getId(), "192.168.0.0/16").ipVersion(4).build()); assertNotNull(subnet); Network network2 = networkApi.create(Network.createBuilder("jclouds-network-test2").external(true).networkType(NetworkType.LOCAL).build()); assertNotNull(network2); Subnet subnet2 = subnetApi.create(Subnet.createBuilder(network2.getId(), "192.169.0.0/16").ipVersion(4).build()); assertNotNull(subnet2); Router router = routerApi.create(Router.createBuilder().name("jclouds-router-test").build()); assertNotNull(router); RouterInterface routerInterface = routerApi.addInterfaceForSubnet(router.getId(), subnet.getId()); assertNotNull(routerInterface); RouterInterface routerInterface2 = routerApi.addInterfaceForSubnet(router.getId(), subnet2.getId()); assertNotNull(routerInterface2); assertTrue(routerApi.removeInterfaceForSubnet(router.getId(), subnet.getId())); assertTrue(routerApi.removeInterfaceForSubnet(router.getId(), subnet2.getId())); assertTrue(routerApi.delete(router.getId())); assertTrue(subnetApi.delete(subnet.getId())); assertTrue(networkApi.delete(network.getId())); assertTrue(subnetApi.delete(subnet2.getId())); assertTrue(networkApi.delete(network2.getId())); } }
public void testCreateUpdateAndDeleteFloatingIP() { for (String region : api.getConfiguredRegions()) { FloatingIPApi floatingIPApi = api.getFloatingIPApi(region); NetworkApi networkApi = api.getNetworkApi(region); FloatingIP floatingIPGet = null; Network network; try { network = networkApi.list().concat().firstMatch(new Predicate<Network>() { @Override public boolean apply(Network input) { return input.getExternal(); } }).orNull(); if (network == null) Assert.fail("Cannot find a suitable external network. Please add it manually or contact your administrator"); FloatingIP floatingIP = floatingIPApi.create(FloatingIP.createBuilder(network.getId()).availabilityZone(network.getAvailabilityZone()).build()); /* List and Get test */ Set<FloatingIP> floatingIPs = floatingIPApi.list().concat().toSet(); floatingIPGet = floatingIPApi.get(floatingIP.getId()); assertNotNull(floatingIPGet); assertTrue(floatingIPs.contains(floatingIP)); } finally { assertTrue(floatingIPApi.delete(floatingIPGet.getId())); } } }
public Network findNetworkByName(String name) { FluentIterable<Network> networks = networkApi.list().concat(); for (Network network : networks) { if (Objects.equals(network.getName(), name)) { return network; } } return null; }