@Override public void copyTo(TemplateOptions to) { super.copyTo(to); if (to instanceof NovaTemplateOptions) { NovaTemplateOptions eTo = NovaTemplateOptions.class.cast(to); eTo.autoAssignFloatingIp(shouldAutoAssignFloatingIp()); if (getFloatingIpPoolNames().isPresent()) eTo.floatingIpPoolNames(getFloatingIpPoolNames().get()); eTo.generateKeyPair(shouldGenerateKeyPair()); eTo.keyPairName(getKeyPairName()); if (getUserData() != null) { eTo.userData(getUserData()); } if (getDiskConfig() != null) { eTo.diskConfig(getDiskConfig()); } eTo.configDrive(getConfigDrive()); eTo.novaNetworks(getNovaNetworks()); eTo.availabilityZone(getAvailabilityZone()); eTo.blockDeviceMappings(getBlockDeviceMappings()); } }
/** * @see NovaTemplateOptions#getKeyPairName() */ public static NovaTemplateOptions keyPairName(String keyPairName) { return new NovaTemplateOptions().keyPairName(keyPairName); }
/** * @see TemplateOptions#authorizePublicKey */ public static NovaTemplateOptions authorizePublicKey(String rsaKey) { NovaTemplateOptions options = new NovaTemplateOptions(); return NovaTemplateOptions.class.cast(options.authorizePublicKey(rsaKey)); }
/** * @see TemplateOptions#overrideLoginPassword */ public static NovaTemplateOptions overrideLoginPassword(String password) { NovaTemplateOptions options = new NovaTemplateOptions(); return options.overrideLoginPassword(password); }
@Override public NovaTemplateOptions clone() { NovaTemplateOptions options = new NovaTemplateOptions(); copyTo(options); return options; }
@Override public void copyTo(TemplateOptions to) { super.copyTo(to); if (to instanceof NovaTemplateOptions) { NovaTemplateOptions eTo = NovaTemplateOptions.class.cast(to); eTo.autoAssignFloatingIp(shouldAutoAssignFloatingIp()); if (getSecurityGroupNames().isPresent()) eTo.securityGroupNames(getSecurityGroupNames().get()); eTo.generateKeyPair(shouldGenerateKeyPair()); eTo.keyPairName(getKeyPairName()); if (getUserData() != null) { eTo.userData(getUserData()); } if (getDiskConfig() != null) { eTo.diskConfig(getDiskConfig()); } eTo.configDrive(getConfigDrive()); } }
if (templateOptions.shouldAutoAssignFloatingIp()) { checkArgument(novaApi.getFloatingIPExtensionForZone(zone).isPresent(), "Floating IPs are required by options, but the extension is not available! options: %s", if (templateOptions.shouldGenerateKeyPair()) { checkArgument(keyPairExtensionPresent, "Key Pairs are required by options, but the extension is not available! options: %s", templateOptions); .sharedNameForGroup(group))); keyPairCache.asMap().put(ZoneAndName.fromZoneAndName(zone, keyPair.getName()), keyPair); templateOptions.keyPairName(keyPair.getName()); } else if (templateOptions.getKeyPairName() != null) { checkArgument(keyPairExtensionPresent, "Key Pairs are required by options, but the extension is not available! options: %s", templateOptions); if (templateOptions.getLoginPrivateKey() != null) { String pem = templateOptions.getLoginPrivateKey(); KeyPair keyPair = KeyPair.builder().name(templateOptions.getKeyPairName()) .fingerprint(fingerprintPrivateKey(pem)).privateKey(pem).build(); keyPairCache.asMap().put(ZoneAndName.fromZoneAndName(zone, keyPair.getName()), keyPair); List<Integer> inboundPorts = Ints.asList(templateOptions.getInboundPorts()); if (templateOptions.getSecurityGroupNames().isPresent() && templateOptions.getSecurityGroupNames().get().size() > 0) { checkArgument(securityGroupExtensionPresent, "Security groups are required by options, but the extension is not available! options: %s", templateOptions); } else if (securityGroupExtensionPresent) { if (!templateOptions.getSecurityGroupNames().isPresent() && inboundPorts.size() > 0) { String securityGroupName = namingConvention.create().sharedNameForGroup(group);
@Override public void copyTo(TemplateOptions to) { super.copyTo(to); if (to instanceof NovaTemplateOptions) { NovaTemplateOptions eTo = NovaTemplateOptions.class.cast(to); eTo.autoAssignFloatingIp(shouldAutoAssignFloatingIp()); if (getSecurityGroupNames().isPresent()) eTo.securityGroupNames(getSecurityGroupNames().get()); eTo.generateKeyPair(shouldGenerateKeyPair()); eTo.keyPairName(getKeyPairName()); if (getUserData() != null) { eTo.userData(getUserData()); } } }
if (templateOptions.shouldAutoAssignFloatingIp()) { checkArgument(novaApi.getFloatingIPApi(region).isPresent(), "Floating IPs are required by options, but the extension is not available! options: %s", templateOptions); if (templateOptions.shouldGenerateKeyPair() || templateOptions.getKeyPairName() != null) { checkArgument(novaApi.getKeyPairApi(region).isPresent(), "Key Pairs are required by options, but the extension is not available! options: %s", templateOptions); final List<Integer> inboundPorts = Ints.asList(templateOptions.getInboundPorts()); if (templateOptions.shouldGenerateKeyPair()) { keyPair = generateKeyPair(region, namingConvention.create().sharedNameForGroup(group)); if (Strings.isNullOrEmpty(templateOptions.getLoginPrivateKey())) { templateOptions.overrideLoginPrivateKey(keyPair.getPrivateKey()); } else if (templateOptions.getKeyPairName() != null) { keyPair = checkNotNull(novaApi.getKeyPairApi(region).get().get(templateOptions.getKeyPairName()), "keypair %s doesn't exist", templateOptions.getKeyPairName()); templateOptions.keyPairName(keyPair.getName()); if (!templateOptions.getGroups().isEmpty()) { Iterable<String> securityGroupNames = Iterables.transform(securityGroupExtension.listSecurityGroups(), new Function<org.jclouds.compute.domain.SecurityGroup, String>() { @Override for (String securityGroupName : templateOptions.getGroups()) { checkState(Iterables.contains(securityGroupNames, securityGroupName), "Cannot find security group with name " + securityGroupName + ". \nSecurity groups available are: \n" + Iterables.toString(securityGroupNames)); // {
Map<String, String> metadataAndTagsAsCommaDelimitedValue = metadataAndTagsAsCommaDelimitedValue(template.getOptions()); options.metadata(metadataAndTagsAsCommaDelimitedValue); if (!templateOptions.getGroups().isEmpty()) options.securityGroupNames(templateOptions.getGroups()); options.userData(templateOptions.getUserData()); options.diskConfig(templateOptions.getDiskConfig()); options.configDrive(templateOptions.getConfigDrive()); options.availabilityZone(templateOptions.getAvailabilityZone()); if (templateOptions.getNovaNetworks() != null) { options.novaNetworks(templateOptions.getNovaNetworks()); if (templateOptions.getNetworks() != null) { options.networks(templateOptions.getNetworks()); if (templateOptions.getKeyPairName() != null) { options.keyPairName(templateOptions.getKeyPairName()); if (!templateOptions.getBlockDeviceMappings().isEmpty()) options.blockDeviceMappings(templateOptions.getBlockDeviceMappings()); if (templateOptions.getLoginPrivateKey() != null) { credentialsBuilder.privateKey(templateOptions.getLoginPrivateKey());
/** * @see TemplateOptions#port */ public static NovaTemplateOptions blockOnPort(int port, int seconds) { NovaTemplateOptions options = new NovaTemplateOptions(); return NovaTemplateOptions.class.cast(options.blockOnPort(port, seconds)); }
@Override protected TemplateOptions provideTemplateOptions(Injector injector, TemplateOptions options) { return options.as(NovaTemplateOptions.class) .autoAssignFloatingIp(injector.getInstance( Key.get(boolean.class, Names.named(AUTO_ALLOCATE_FLOATING_IPS)))) .generateKeyPair(injector.getInstance( Key.get(boolean.class, Names.named(AUTO_GENERATE_KEYPAIRS)))); }
/** * @see NovaTemplateOptions#shouldAutoAssignFloatingIp() */ public static NovaTemplateOptions autoAssignFloatingIp(boolean enable) { return new NovaTemplateOptions().autoAssignFloatingIp(enable); }
@Test public void testautoAssignFloatingIp() { NovaTemplateOptions options = new NovaTemplateOptions().autoAssignFloatingIp(true); assert options.shouldAutoAssignFloatingIp(); }
/** * @see TemplateOptions#blockUntilRunning */ public static NovaTemplateOptions blockUntilRunning(boolean blockUntilRunning) { NovaTemplateOptions options = new NovaTemplateOptions(); return options.blockUntilRunning(blockUntilRunning); }
/** * @see NovaTemplateOptions#shouldGenerateKeyPair() */ public static NovaTemplateOptions generateKeyPair(boolean enable) { return new NovaTemplateOptions().generateKeyPair(enable); }
if (templateOptions.getSecurityGroupNames().isPresent()) options.securityGroupNames(templateOptions.getSecurityGroupNames().get()); options.userData(templateOptions.getUserData()); options.diskConfig(templateOptions.getDiskConfig()); options.configDrive(templateOptions.getConfigDrive()); options.networks(templateOptions.getNetworks()); if (templateOptions.getKeyPairName() != null) { options.keyPairName(templateOptions.getKeyPairName()); KeyPair keyPair = keyPairCache.getIfPresent(ZoneAndName.fromZoneAndName(template.getLocation().getId(), templateOptions.getKeyPairName())); if (keyPair != null && keyPair.getPrivateKey() != null) { privateKey = Optional.of(keyPair.getPrivateKey());
@Test public void testinboundPorts() { NovaTemplateOptions options = new NovaTemplateOptions(); options.inboundPorts(22, 30); assertEquals(options.getInboundPorts()[0], 22); assertEquals(options.getInboundPorts()[1], 30); }
@Test public void testGenerateKeyPair() { NovaTemplateOptions options = new NovaTemplateOptions().generateKeyPair(true); assert options.shouldGenerateKeyPair(); }
@Test public void testblockOnPort() { NovaTemplateOptions options = new NovaTemplateOptions(); options.blockOnPort(22, 30); assertEquals(options.getPort(), 22); assertEquals(options.getSeconds(), 30); }