@Override public DeployVirtualMachineOptions apply(CloudStackTemplateOptions templateOptions, Map<String, Network> networks, String zoneId, DeployVirtualMachineOptions options) { // security groups not allowed. // at least one network must be given to CloudStack, // but jclouds will try to autodetect an appropriate network if none given. checkArgument(templateOptions.getSecurityGroupIds().isEmpty(), "security groups cannot be specified for locations (zones) that use advanced networking"); if (templateOptions.getNetworkIds().size() > 0) { options.networkIds(templateOptions.getNetworkIds()); } else if (templateOptions.getIpsToNetworks().isEmpty()) { checkArgument(!networks.isEmpty(), "please setup a network for zone: " + zoneId); Network defaultNetworkInZone = Iterables.getFirst(filter(networks.values(), and(defaultNetworkInZone(zoneId), supportsStaticNAT())), null); if(defaultNetworkInZone == null) { defaultNetworkInZone = Iterables.getFirst(filter(networks.values(), isIsolatedNetwork()), null); } if (defaultNetworkInZone == null) { throw new IllegalArgumentException("please choose a specific network in zone " + zoneId + ": " + networks); } else { options.networkId(defaultNetworkInZone.getId()); } } return options; } }
public void testHasLoadBalancerService() { Network network = Network.builder().id("204").services(ImmutableSet.of(NetworkService.builder().name("Lb").build())).build(); assert hasLoadBalancerService().apply(network); assert !supportsStaticNAT().apply(network); assert !supportsPortForwarding().apply(network); }
public void testDefaultNetworkInZone() { Network defaultInZone = Network.builder().id("42-1").isDefault(true).zoneId("42").build(); Network defaultNotInZone = Network.builder().id("200-1").isDefault(true).zoneId("200").build(); Network notDefaultInZone = Network.builder().id("42-2").isDefault(false).zoneId("42").build(); Network notDefaultNotInZone = Network.builder().id("200-2").isDefault(false).zoneId("200").build(); Predicate<Network> predicate = defaultNetworkInZone("42"); assertTrue(predicate.apply(defaultInZone)); assertFalse(predicate.apply(defaultNotInZone)); assertFalse(predicate.apply(notDefaultInZone)); assertFalse(predicate.apply(notDefaultNotInZone)); } }
@BeforeGroups(groups = "live") public void setupClient() { super.setupContext(); prefix += "nat"; try { network = find(client.getNetworkApi().listNetworks(), NetworkPredicates.supportsStaticNAT()); String defaultTemplate = templateBuilderSpec != null ? templateBuilderSpec.getImageId() : null; vm = VirtualMachineApiLiveTest.createVirtualMachineInNetwork(network, defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()), client, jobComplete, virtualMachineRunning); if (vm.getPassword() != null && !loginCredentials.getOptionalPassword().isPresent()) loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build(); } catch (NoSuchElementException e) { networksDisabled = true; } }
@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; } }
@BeforeGroups(groups = "live") public void setupContext() { super.setupContext(); prefix += "rule"; try { network = find(client.getNetworkApi().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 = templateBuilderSpec != null ? templateBuilderSpec.getImageId() : null; vm = VirtualMachineApiLiveTest.createVirtualMachineInNetwork(network, defaultTemplateOrPreferredInZone(defaultTemplate, client, network.getZoneId()), client, jobComplete, virtualMachineRunning); if (vm.getPassword() != null && !loginCredentials.getOptionalPassword().isPresent()) loginCredentials = loginCredentials.toBuilder().password(vm.getPassword()).build(); } catch (NoSuchElementException e) { networksDisabled = true; } }
public void testDefaultNetworkInZone() { Network defaultInZone = Network.builder().id("42-1").isDefault(true).zoneId("42").build(); Network defaultNotInZone = Network.builder().id("200-1").isDefault(true).zoneId("200").build(); Network notDefaultInZone = Network.builder().id("42-2").isDefault(false).zoneId("42").build(); Network notDefaultNotInZone = Network.builder().id("200-2").isDefault(false).zoneId("200").build(); Predicate<Network> predicate = defaultNetworkInZone("42"); assertTrue(predicate.apply(defaultInZone)); assertFalse(predicate.apply(defaultNotInZone)); assertFalse(predicate.apply(notDefaultInZone)); assertFalse(predicate.apply(notDefaultNotInZone)); } }
@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; } }
@BeforeGroups(groups = "live") public void setupContext() { super.setupContext(); loadBalancerRuleActive = retry(new LoadBalancerRuleActive(client), 60, 1, 1, SECONDS); prefix += "rule"; try { network = find(client.getNetworkApi().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; } }
@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; } }
public void testSupportsPortForwardingAndStaticNATWhenFirewallHasFeatures() { Network network = Network .builder() .id("204") .services( ImmutableSet.of(NetworkService.builder().name("Firewall").capabilities( ImmutableMap.<String, String> of("StaticNat", "true", "PortForwarding", "true")).build())).build(); assert Predicates.and(supportsPortForwarding(), supportsStaticNAT()).apply(network); assert !hasLoadBalancerService().apply(network); }
@Override public DeployVirtualMachineOptions apply(CloudStackTemplateOptions templateOptions, Map<String, Network> networks, String zoneId, DeployVirtualMachineOptions options) { // security groups not allowed. // at least one network must be given to CloudStack, // but jclouds will try to autodetect an appropriate network if none given. checkArgument(templateOptions.getSecurityGroupIds().isEmpty(), "security groups cannot be specified for locations (zones) that use advanced networking"); if (templateOptions.getNetworkIds().size() > 0) { options.networkIds(templateOptions.getNetworkIds()); } else if (templateOptions.getIpsToNetworks().isEmpty()) { checkArgument(!networks.isEmpty(), "please setup a network for zone: " + zoneId); Network defaultNetworkInZone = Iterables.getFirst(filter(networks.values(), and(defaultNetworkInZone(zoneId), supportsStaticNAT())), null); if(defaultNetworkInZone == null) { defaultNetworkInZone = Iterables.getFirst(filter(networks.values(), isIsolatedNetwork()), null); } if (defaultNetworkInZone == null) { throw new IllegalArgumentException("please choose a specific network in zone " + zoneId + ": " + networks); } else { options.networkId(defaultNetworkInZone.getId()); } } return options; } }
public void testSupportsStaticNATFindsWhenFirewallHasStaticNatFeature() { Network network = Network .builder() .id("204") .services( ImmutableSet.of(NetworkService.builder().name("Firewall").capabilities( ImmutableMap.<String, String> of("StaticNat", "true")).build())) .build(); assert !hasLoadBalancerService().apply(network); assert supportsStaticNAT().apply(network); assert !supportsPortForwarding().apply(network); }
@Override public DeployVirtualMachineOptions apply(CloudStackTemplateOptions templateOptions, Map<String, Network> networks, String zoneId, DeployVirtualMachineOptions options) { // security groups not allowed. // at least one network must be given to CloudStack, // but jclouds will try to autodetect an appropriate network if none given. checkArgument(templateOptions.getSecurityGroupIds().isEmpty(), "security groups cannot be specified for locations (zones) that use advanced networking"); if (!templateOptions.getNetworks().isEmpty()) { options.networkIds(templateOptions.getNetworks()); } else if (templateOptions.getIpsToNetworks().isEmpty()) { checkArgument(!networks.isEmpty(), "please setup a network for zone: " + zoneId); Network defaultNetworkInZone = Iterables.getFirst(filter(networks.values(), and(defaultNetworkInZone(zoneId), supportsStaticNAT())), null); if (defaultNetworkInZone == null) { defaultNetworkInZone = Iterables.getFirst(filter(networks.values(), isIsolatedNetwork()), null); } if (defaultNetworkInZone == null) { throw new IllegalArgumentException("please choose a specific network in zone " + zoneId + ": " + networks); } else { options.networkId(defaultNetworkInZone.getId()); } } return options; } }
public void testNoSupport() { Network network = Network.builder().id("204") .services(ImmutableSet.of(NetworkService.builder().name("Firewall").capabilities( ImmutableMap.<String, String> of()).build())).build(); assert !hasLoadBalancerService().apply(network); assert !supportsStaticNAT().apply(network); assert !supportsPortForwarding().apply(network); }
public void testSupportsPortForwardingFindsWhenFirewallHasPortForwardingFeature() { Network network = Network .builder() .id("204") .services( ImmutableSet.of(NetworkService.builder().name("Firewall").capabilities( ImmutableMap.<String, String> of("PortForwarding", "true")).build())).build(); assert !hasLoadBalancerService().apply(network); assert !supportsStaticNAT().apply(network); assert supportsPortForwarding().apply(network); }
public void testHasLoadBalancerService() { Network network = Network.builder().id("204").services(ImmutableSet.of(NetworkService.builder().name("Lb").build())).build(); assert hasLoadBalancerService().apply(network); assert !supportsStaticNAT().apply(network); assert !supportsPortForwarding().apply(network); }
public void testSupportsStaticNATFindsWhenFirewallHasStaticNatFeature() { Network network = Network .builder() .id("204") .services( ImmutableSet.of(NetworkService.builder().name("Firewall").capabilities( ImmutableMap.<String, String> of("StaticNat", "true")).build())) .build(); assert !hasLoadBalancerService().apply(network); assert supportsStaticNAT().apply(network); assert !supportsPortForwarding().apply(network); }
public void testSupportsPortForwardingFindsWhenFirewallHasPortForwardingFeature() { Network network = Network .builder() .id("204") .services( ImmutableSet.of(NetworkService.builder().name("Firewall").capabilities( ImmutableMap.<String, String> of("PortForwarding", "true")).build())).build(); assert !hasLoadBalancerService().apply(network); assert !supportsStaticNAT().apply(network); assert supportsPortForwarding().apply(network); }
public void testSupportsPortForwardingAndStaticNATWhenFirewallHasFeatures() { Network network = Network .builder() .id("204") .services( ImmutableSet.of(NetworkService.builder().name("Firewall").capabilities( ImmutableMap.<String, String> of("StaticNat", "true", "PortForwarding", "true")).build())).build(); assert Predicates.and(supportsPortForwarding(), supportsStaticNAT()).apply(network); assert !hasLoadBalancerService().apply(network); }