/** * Returns the first network with the given name. * * @throws NoSuchElementException if no network is found * @throws IllegalArgumentException if more networks with the same name are found */ public static Network getByName(CloudStackClient client, final String networkName) { Set<Network> networks = Sets.filter(client.getNetworkClient().listNetworks(), new Predicate<Network>() { @Override public boolean apply(Network input) { return input.getName().equals(networkName); } }); return Iterables.getOnlyElement(networks); } }
@Override public void execute(CloudStackClient cloudStackClient, Pool pool, DelegateExecution execution) { if (execution.getVariable(ProcessVariables.NETWORK_ID) != null) { LOG.warn("Network process variable ({}) will be overwritten!", ProcessVariables.NETWORK_ID); } Network network; final String existingNetwork = pool.getNetwork().getOption(NetworkOptions.EXISTING_NETWORK_ID); if (existingNetwork != null) { network = checkNotNull(cloudStackClient.getNetworkClient().getNetwork(existingNetwork), "Network with id " + existingNetwork + " does not exist"); } else { final String networkName = Networks.formatNameFromBusinessKey(execution.getProcessBusinessKey()); final String zoneId = pool.getProvider().getOption(ProviderOptions.ZONE_ID); final String networkOfferingId = pool.getProvider().getOption(ProviderOptions.NETWORK_OFFERING_ID); try { network = Networks.getByName(cloudStackClient, networkName); LOG.info("Network with name {} exists.", networkName); } catch (NoSuchElementException e) { LOG.info(String.format("Creating network %s in zone %s with offering %s", networkName, zoneId, networkOfferingId)); network = cloudStackClient.getNetworkClient().createNetworkInZone(zoneId, networkOfferingId, networkName, networkName, CreateNetworkOptions.NONE); } } LOG.info("Storing network id {} in process variable {}", network.getId(), ProcessVariables.NETWORK_ID); execution.setVariable(ProcessVariables.NETWORK_ID, network.getId()); } }
@Test public void testListNetworks() throws Exception { if (!networksSupported) return; Set<Network> response = client.getNetworkClient().listNetworks( accountInDomain(user.getAccount(), user.getDomainId())); assert null != response; long networkCount = response.size(); assertTrue(networkCount >= 0); for (Network network : response) { Network newDetails = getOnlyElement(client.getNetworkClient().listNetworks(id(network.getId()))); assertEquals(network, newDetails); assertEquals(network, client.getNetworkClient().getNetwork(network.getId())); checkNetwork(network); } }
logger.info("Using template: " + template); Set<Network> allSafeNetworksInZone = adminClient.getNetworkClient().listNetworks( ListNetworksOptions.Builder.zoneId(template.getZoneId()).isSystem(false)); for(Network net : allSafeNetworksInZone) { adminClient.getNetworkClient().deleteNetwork(net.getId())), net.toString()); logger.info("Using network offering: " + offering); network = adminClient.getNetworkClient().createNetworkInZone( template.getZoneId(), offering.getId(), prefix + "-ip-network", "", CreateNetworkOptions.Builder.startIP("192.168.0.1").endIP("192.168.0.5") logger.info("Created network: " + network); Network requiredNetwork = getOnlyElement(filter(adminClient.getNetworkClient().listNetworks( ListNetworksOptions.Builder.zoneId(template.getZoneId())), new Predicate<Network>() { @Override String jobId = adminClient.getNetworkClient().deleteNetwork(network.getId()); adminJobComplete.apply(jobId); network = null;
NetworkOfferingPredicates.supportsGuestVirtualNetworks()); Set<Network> suitableNetworks = Sets.filter(client.getNetworkClient().listNetworks( zoneId(zone.getId()).isSystem(false).trafficType(TrafficType.GUEST)), new Predicate<Network>() { network = client.getNetworkClient().createNetworkInZone(zone.getId(), offering.getId(), "net-" + prefix, "jclouds test " + prefix); usingExistingNetwork = false;
protected void deleteNetworksInZoneWithVlanId(String zoneId, String vlanId) { Set<Network> networks = domainAdminClient.getNetworkClient().listNetworks( ListNetworksOptions.Builder .isDefault(false) .isSystem(false) .zoneId(zoneId) .trafficType(TrafficType.GUEST) ); // Warning: the vlan id is not set in the response - using an workaround URI broadcastUri = URI.create("vlan://" + vlanId); for (Network net : networks) { if (broadcastUri.equals(net.getBroadcastURI())) { String jobId = domainAdminClient.getNetworkClient().deleteNetwork(net.getId()); adminJobComplete.apply(jobId); } } }
@Test public void testCreateGuestVirtualNetwork() { if (!networksSupported) return; final NetworkOffering offering; try { offering = find(client.getOfferingClient().listNetworkOfferings(), NetworkOfferingPredicates.supportsGuestVirtualNetworks()); } catch (NoSuchElementException e) { Logger.getAnonymousLogger().log(Level.SEVERE, "guest networks not supported, skipping test"); return; } String name = prefix + "-virtual"; Network network = null; try { network = client.getNetworkClient().createNetworkInZone(zone.getId(), offering.getId(), name, name); checkNetwork(network); } catch (IllegalStateException e) { Logger.getAnonymousLogger().log(Level.SEVERE, "couldn't create a network, skipping test", e); } finally { if (network != null) { String jobId = client.getNetworkClient().deleteNetwork(network.getId()); if (jobId != null) jobComplete.apply(jobId); } } }
@AfterGroups(groups = "live") @Override protected void tearDownContext() { if (range != null) { globalAdminClient.getVlanClient().deleteVlanIPRange(range.getId()); range = null; } if (network != null && !usingExistingNetwork) { client.getNetworkClient().deleteNetwork(network.getId()); network = null; } super.tearDownContext(); }
.getNetworkClient() .createNetworkInZone(zone.getId(), offering.getId(), name, name, vlan("65").startIP("192.168.1.2").netmask("255.255.255.0").gateway("192.168.1.1")); checkNetwork(network); } finally { if (network != null) { String jobId = adminClient.getNetworkClient().deleteNetwork(network.getId()); if (jobId != null) adminJobComplete.apply(jobId);
@Override public Map<String, Network> get() { User currentUser = currentUserSupplier.get(); NetworkClient networkClient = client.getNetworkClient(); return Maps.uniqueIndex( networkClient.listNetworks(accountInDomain(currentUser.getAccount(), currentUser.getDomainId())), new Function<Network, String>() { @Override public String apply(Network arg0) { return arg0.getId(); } }); } }
.getNetworkClient() .createNetworkInZone(zoneId, offeringId, group, group, vlan(vlanId).startIP("192.168.1.2").netmask("255.255.255.0").gateway("192.168.1.1")); view.getComputeService().destroyNodesMatching(NodePredicates.inGroup(group)); if (network != null) domainAdminClient.getNetworkClient().deleteNetwork(network.getId());
@Override public Map<String, Network> get() { User currentUser = currentUserSupplier.get(); NetworkClient networkClient = client.getNetworkClient(); return Maps.uniqueIndex( networkClient.listNetworks(accountInDomain(currentUser.getAccount(), currentUser.getDomainId())), new Function<Network, String>() { @Override public String apply(Network arg0) { return arg0.getId(); } }); } }
@BeforeGroups(groups = "live") void networksEnabled() { networksEnabled = client.getNetworkClient().listNetworks().size() > 0; }
public void testAssociateDisassociatePublicIPAddress() throws Exception { if (!networksEnabled) return; AsyncCreateResponse job = client.getAddressClient().associateIPAddressInZone( Iterables.get(client.getNetworkClient().listNetworks(), 0).getZoneId()); checkState(jobComplete.apply(job.getJobId()), "job %s failed to complete", job.getJobId()); ip = client.getAsyncJobClient().<PublicIPAddress> getAsyncJob(job.getJobId()).getResult(); checkIP(ip); }
@BeforeGroups(groups = "live") public void setupContext() { super.setupContext(); loadBalancerRuleActive = retry(new LoadBalancerRuleActive(client), 60, 1, 1, SECONDS); prefix += "rule"; try { network = find(client.getNetworkClient().listNetworks(), Predicates.and(hasLoadBalancerService(), isVirtualNetwork(), new Predicate<Network>() { @Override public boolean apply(Network network) { return network.isDefault() && !network.isSecurityGroupEnabled() && !network.isSystem() && network.getAccount().equals(user.getName()); } })); } catch (NoSuchElementException e) { networksDisabled = true; } }
Zone zone = Iterables.getFirst(client.getZoneClient().listZones(), null); assertNotNull(zone); Iterable<Network> networks = client.getNetworkClient().listNetworks(ListNetworksOptions.Builder.zoneId(zone.getId()).isDefault(true)); networks = Iterables.filter(networks, new Predicate<Network>() { @Override
@Test(enabled = true) public void testCreateTemplate() throws Exception { Zone zone = Iterables.getFirst(client.getZoneClient().listZones(), null); assertNotNull(zone); Iterable<Network> networks = client.getNetworkClient().listNetworks(ListNetworksOptions.Builder.zoneId(zone.getId()).isDefault(true)); networks = Iterables.filter(networks, new Predicate<Network>() { @Override public boolean apply(Network network) { return network != null && network.getState().equals("Implemented"); } }); assertTrue(Iterables.size(networks) >= 1); Network network = Iterables.get(networks, 0); assertNotNull(network); // Create a VM and stop it String defaultTemplate = template != null ? template.getImageId() : null; vmForCreation = VirtualMachineClientLiveTest.createVirtualMachineInNetwork(network, defaultTemplate, client, jobComplete, virtualMachineRunning); assertTrue(jobComplete.apply(client.getVirtualMachineClient().stopVirtualMachine(vmForCreation.getId())), vmForCreation.toString()); // Work out the VM's volume Set<Volume> volumes = client.getVolumeClient().listVolumes(ListVolumesOptions.Builder.virtualMachineId(vmForCreation.getId())); assertEquals(volumes.size(), 1); Volume volume = Iterables.getOnlyElement(volumes); // Create a template CreateTemplateOptions options = CreateTemplateOptions.Builder.volumeId(volume.getId()); AsyncCreateResponse response = client.getTemplateClient().createTemplate(TemplateMetadata.builder().name(prefix+"-createTemplate").osTypeId(vmForCreation.getGuestOSId()).displayText("jclouds live testCreateTemplate").build(), options); assertTrue(jobComplete.apply(response.getJobId()), vmForCreation.toString()); createdTemplate = client.getTemplateClient().getTemplateInZone(response.getId(), vmForCreation.getZoneId()); // Assertions assertNotNull(createdTemplate); }
public static VirtualMachine createVirtualMachine(CloudStackClient client, String defaultTemplate, Predicate<String> jobComplete, Predicate<VirtualMachine> virtualMachineRunning) { Set<Network> networks = client.getNetworkClient().listNetworks(isDefault(true)); if (networks.size() > 0) { Network network = get(filter(networks, new Predicate<Network>() { @Override public boolean apply(Network network) { return network != null && network.getState().equals("Implemented"); } }), 0); return createVirtualMachineInNetwork(network, defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()), client, jobComplete, virtualMachineRunning); } else { String zoneId = find(client.getZoneClient().listZones(), new Predicate<Zone>() { @Override public boolean apply(Zone arg0) { return arg0.isSecurityGroupsEnabled(); } }).getId(); return createVirtualMachineWithSecurityGroupInZone(zoneId, defaultTemplateOrPreferredInZone(defaultTemplate, client, zoneId), get(client.getSecurityGroupClient().listSecurityGroups(), 0).getId(), client, jobComplete, virtualMachineRunning); } }
@BeforeGroups(groups = "live") public void setupContext() { super.setupContext(); prefix += "rule"; try { network = find(client.getNetworkClient().listNetworks(), Predicates.and(supportsPortForwarding(), new Predicate<Network>() { @Override public boolean apply(Network network) { return network.isDefault() && !network.isSecurityGroupEnabled() && network.getAccount().equals(user.getAccount()); } })); String defaultTemplate = template != null ? template.getImageId() : null; vm = VirtualMachineClientLiveTest.createVirtualMachineInNetwork(network, defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()), client, jobComplete, virtualMachineRunning); if (vm.getPassword() != null && loginCredentials.getOptionalPassword() == null) loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build(); } catch (NoSuchElementException e) { networksDisabled = true; } }
@BeforeGroups(groups = "live") public void setupClient() { super.setupContext(); prefix += "nat"; try { network = find(client.getNetworkClient().listNetworks(), NetworkPredicates.supportsStaticNAT()); String defaultTemplate = template != null ? template.getImageId() : null; vm = VirtualMachineClientLiveTest.createVirtualMachineInNetwork(network, defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()), client, jobComplete, virtualMachineRunning); if (vm.getPassword() != null && loginCredentials.getOptionalPassword() == null) loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build(); } catch (NoSuchElementException e) { networksDisabled = true; } }