Repository: jclouds Updated Branches: refs/heads/master c10540b04 -> a1f6b7ebf
update CloudstackTemplateOptions pattern Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a1f6b7eb Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a1f6b7eb Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a1f6b7eb Branch: refs/heads/master Commit: a1f6b7ebf2683ba89e1c8d1ca7a2d6b9f799d1d6 Parents: c10540b Author: Andrea Turli <[email protected]> Authored: Thu May 19 10:57:03 2016 +0200 Committer: Ignasi Barrera <[email protected]> Committed: Tue Oct 25 15:49:46 2016 +0200 ---------------------------------------------------------------------- .../options/CloudStackTemplateOptions.java | 523 +++++++++---------- .../CloudStackComputeServiceAdapter.java | 3 +- .../options/CloudStackTemplateOptionsTest.java | 60 +-- .../compute/strategy/OptionsConverterTest.java | 26 +- 4 files changed, 271 insertions(+), 341 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1f6b7eb/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java ---------------------------------------------------------------------- diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java index 59ceff9..baa2e2e 100644 --- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java +++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java @@ -18,14 +18,21 @@ package org.jclouds.cloudstack.compute.options; import static com.google.common.base.Preconditions.checkNotNull; +import java.io.IOException; +import java.net.URL; +import java.util.Arrays; import java.util.Map; import java.util.Set; import org.jclouds.compute.options.TemplateOptions; +import org.jclouds.domain.LoginCredentials; +import org.jclouds.scriptbuilder.domain.Statement; -import com.google.common.collect.Iterables; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; +import com.google.common.base.Charsets; +import com.google.common.base.Objects; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.io.Resources; /** * Contains options supported by the @@ -48,265 +55,208 @@ import com.google.common.collect.Sets; */ public class CloudStackTemplateOptions extends TemplateOptions implements Cloneable { - protected Set<String> securityGroupIds = Sets.<String> newLinkedHashSet(); - protected Map<String, String> ipsToNetworks = Maps.<String, String>newLinkedHashMap(); - protected String ipOnDefaultNetwork; - protected String keyPair; - protected boolean setupStaticNat = true; - protected String account; - protected String domainId; - protected boolean generateKeyPair = false; - protected boolean generateSecurityGroup = false; - protected String diskOfferingId; - protected int dataDiskSize; - protected byte[] unencodedData; + private Set<String> securityGroupIds = ImmutableSet.of(); + private Map<String, String> ipsToNetworks = ImmutableMap.of(); + private String ipOnDefaultNetwork; + private String keyPair; + private boolean setupStaticNat = true; + private String account; + private String domainId; + private boolean generateKeyPair = false; + private boolean generateSecurityGroup = false; + private String diskOfferingId; + private int dataDiskSize; + private byte[] userData; - @Override - public CloudStackTemplateOptions clone() { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - copyTo(options); - return options; - } - - @Override - public void copyTo(TemplateOptions to) { - super.copyTo(to); - if (to instanceof CloudStackTemplateOptions) { - CloudStackTemplateOptions eTo = CloudStackTemplateOptions.class.cast(to); - eTo.securityGroupIds(this.securityGroupIds); - eTo.ipsToNetworks(this.ipsToNetworks); - eTo.ipOnDefaultNetwork(this.ipOnDefaultNetwork); - eTo.keyPair(this.keyPair); - eTo.generateKeyPair(shouldGenerateKeyPair()); - eTo.generateSecurityGroup(shouldGenerateSecurityGroup()); - eTo.account(this.account); - eTo.domainId(this.domainId); - eTo.setupStaticNat(setupStaticNat); - eTo.diskOfferingId(diskOfferingId); - eTo.dataDiskSize(dataDiskSize); - eTo.userData(unencodedData); - } - } - - /** - * @see org.jclouds.cloudstack.options.DeployVirtualMachineOptions#diskOfferingId - */ - public CloudStackTemplateOptions diskOfferingId(String diskOfferingId) { - this.diskOfferingId = diskOfferingId; + public CloudStackTemplateOptions securityGroupIds(Iterable<String> securityGroupIds) { + this.securityGroupIds = ImmutableSet.copyOf(securityGroupIds); return this; } - public String getDiskOfferingId() { - return diskOfferingId; - } - - /** - * @see DeployVirtualMachineOptions#dataDiskSize - */ - public CloudStackTemplateOptions dataDiskSize(int dataDiskSize) { - this.dataDiskSize = dataDiskSize; + public CloudStackTemplateOptions ipsToNetworks(Map<String, String> ipsToNetworks) { + this.ipsToNetworks = ImmutableMap.copyOf(ipsToNetworks); return this; } - public int getDataDiskSize() { - return dataDiskSize; + public CloudStackTemplateOptions ipOnDefaultNetwork(String ipOnDefaultNetwork) { + this.ipOnDefaultNetwork = ipOnDefaultNetwork; + return this; } - /** - * @see DeployVirtualMachineOptions#userData - */ - public CloudStackTemplateOptions userData(byte[] unencodedData) { - this.unencodedData = unencodedData; + public CloudStackTemplateOptions keyPair(String keyPair) { + this.keyPair = keyPair; return this; } - public byte[] getUserData() { - return unencodedData; + public CloudStackTemplateOptions setupStaticNat(boolean setupStaticNat) { + this.setupStaticNat = setupStaticNat; + return this; } - /** - * @see DeployVirtualMachineOptions#securityGroupId - */ - public CloudStackTemplateOptions securityGroupId(String securityGroupId) { - this.securityGroupIds.add(securityGroupId); + public CloudStackTemplateOptions account(String account) { + this.account = account; return this; } - /** - * @see DeployVirtualMachineOptions#securityGroupIds - */ - public CloudStackTemplateOptions securityGroupIds(Iterable<String> securityGroupIds) { - Iterables.addAll(this.securityGroupIds, checkNotNull(securityGroupIds, "securityGroupIds was null")); + public CloudStackTemplateOptions domainId(String domainId) { + this.domainId = domainId; return this; } - public Set<String> getSecurityGroupIds() { - return securityGroupIds; + public CloudStackTemplateOptions generateKeyPair(boolean generateKeyPair) { + this.generateKeyPair = generateKeyPair; + return this; } - /** - * @see #shouldGenerateKeyPair() - */ - public CloudStackTemplateOptions generateSecurityGroup(boolean enable) { - this.generateSecurityGroup = enable; + public CloudStackTemplateOptions generateSecurityGroup(boolean generateSecurityGroup) { + this.generateSecurityGroup = generateSecurityGroup; return this; } - /** - * @return true if auto generation of keypairs is enabled - */ - public boolean shouldGenerateSecurityGroup() { - return generateSecurityGroup; + public CloudStackTemplateOptions diskOfferingId(String diskOfferingId) { + this.diskOfferingId = diskOfferingId; + return this; } - /** - * @deprecated See TemplateOptions#networks - * @see DeployVirtualMachineOptions#networkId - */ - @Deprecated - public CloudStackTemplateOptions networkId(String networkId) { - this.networks.add(networkId); + public CloudStackTemplateOptions dataDiskSize(int dataDiskSize) { + this.dataDiskSize = dataDiskSize; return this; } - /** - * @deprecated See TemplateOptions#networks - * @see DeployVirtualMachineOptions#networkIds - */ - @Deprecated - public CloudStackTemplateOptions networkIds(Iterable<String> networkIds) { - Iterables.addAll(this.networks, checkNotNull(networkIds, "networkIds was null")); + public CloudStackTemplateOptions userData(byte[] userData) { + this.userData = userData; return this; } - /** - * @deprecated See TemplateOptions#getNetworks - */ - @Deprecated - public Set<String> getNetworkIds() { - return this.getNetworks(); + public CloudStackTemplateOptions userData(String userData) { + this.userData = checkNotNull(userData, "userdata").getBytes(Charsets.UTF_8); + return this; } - public CloudStackTemplateOptions setupStaticNat(boolean setupStaticNat) { - this.setupStaticNat = setupStaticNat; + public CloudStackTemplateOptions userData(URL userDataUrl) throws IOException { + this.userData = Resources.toString(checkNotNull(userDataUrl, "userDataUrl"), Charsets.UTF_8).getBytes(Charsets.UTF_8); return this; } - public boolean shouldSetupStaticNat() { - return this.setupStaticNat; + public Set<String> getSecurityGroupIds() { + return securityGroupIds; } - /** - * @see DeployVirtualMachineOptions#ipOnDefaultNetwork - */ - public CloudStackTemplateOptions ipOnDefaultNetwork(String ipOnDefaultNetwork) { - this.ipOnDefaultNetwork = ipOnDefaultNetwork; - return this; + public Map<String, String> getIpsToNetworks() { + return ipsToNetworks; } public String getIpOnDefaultNetwork() { return ipOnDefaultNetwork; } - /** - * @see DeployVirtualMachineOptions#ipOnDefaultNetwork(String) - */ - public CloudStackTemplateOptions ipsToNetworks(Map<String, String> ipsToNetworks) { - this.ipsToNetworks.putAll(ipsToNetworks); - return this; - } - - public Map<String, String> getIpsToNetworks() { - return ipsToNetworks; + public String getKeyPair() { + return keyPair; } - /** - * @see DeployVirtualMachineOptions#keyPair(String) - */ - public CloudStackTemplateOptions keyPair(String keyPair) { - this.keyPair = keyPair; - return this; + public boolean shouldSetupStaticNat() { + return setupStaticNat; } - public String getKeyPair() { - return keyPair; + public String getAccount() { + return account; } - /** - * @see #shouldGenerateKeyPair() - */ - public CloudStackTemplateOptions generateKeyPair(boolean enable) { - this.generateKeyPair = enable; - return this; + public String getDomainId() { + return domainId; } - /** - * @return true if auto generation of keypairs is enabled - */ public boolean shouldGenerateKeyPair() { return generateKeyPair; } - /** - * @see DeployVirtualMachineOptions#accountInDomain(String,String) - */ - public CloudStackTemplateOptions account(String account) { - this.account = account; - return this; + public boolean shouldGenerateSecurityGroup() { + return generateSecurityGroup; } - public String getAccount() { - return account; + public String getDiskOfferingId() { + return diskOfferingId; } - /** - * @see DeployVirtualMachineOptions#accountInDomain(String,String) - * @see DeployVirtualMachineOptions#domainId(String) - */ - public CloudStackTemplateOptions domainId(String domainId) { - this.domainId = domainId; - return this; + public int getDataDiskSize() { + return dataDiskSize; } - public String getDomainId() { - return domainId; + public byte[] getUserData() { + return userData; } - public static final CloudStackTemplateOptions NONE = new CloudStackTemplateOptions(); - - public static class Builder { + @Override + public CloudStackTemplateOptions clone() { + CloudStackTemplateOptions options = new CloudStackTemplateOptions(); + copyTo(options); + return options; + } - /** - * @see CloudStackTemplateOptions#diskOfferingId - */ - public static CloudStackTemplateOptions diskOfferingId(String diskOfferingId) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return options.diskOfferingId(diskOfferingId); + @Override + public void copyTo(TemplateOptions to) { + super.copyTo(to); + if (to instanceof CloudStackTemplateOptions) { + CloudStackTemplateOptions eTo = CloudStackTemplateOptions.class.cast(to); + eTo.securityGroupIds(securityGroupIds); + eTo.ipsToNetworks(ipsToNetworks); + eTo.ipOnDefaultNetwork(ipOnDefaultNetwork); + eTo.keyPair(keyPair); + eTo.generateKeyPair(generateKeyPair); + eTo.generateSecurityGroup(generateSecurityGroup); + eTo.account(account); + eTo.domainId(domainId); + eTo.setupStaticNat(setupStaticNat); + eTo.diskOfferingId(diskOfferingId); + eTo.dataDiskSize(dataDiskSize); + eTo.userData(userData); } + } - /** - * @see CloudStackTemplateOptions#dataDiskSize - */ - public static CloudStackTemplateOptions dataDiskSize(int dataDiskSize) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return options.dataDiskSize(dataDiskSize); - } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof CloudStackTemplateOptions)) return false; + if (!super.equals(o)) return false; + CloudStackTemplateOptions that = (CloudStackTemplateOptions) o; + return setupStaticNat == that.setupStaticNat && + generateKeyPair == that.generateKeyPair && + generateSecurityGroup == that.generateSecurityGroup && + dataDiskSize == that.dataDiskSize && + Objects.equal(securityGroupIds, that.securityGroupIds) && + Objects.equal(ipsToNetworks, that.ipsToNetworks) && + Objects.equal(ipOnDefaultNetwork, that.ipOnDefaultNetwork) && + Objects.equal(keyPair, that.keyPair) && + Objects.equal(account, that.account) && + Objects.equal(domainId, that.domainId) && + Objects.equal(diskOfferingId, that.diskOfferingId) && + Arrays.equals(userData, that.userData); + } - /** - * @see CloudStackTemplateOptions#userData - */ - public static CloudStackTemplateOptions userData(byte[] unencodedData) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return options.userData(unencodedData); - } + @Override + public int hashCode() { + return Objects.hashCode(super.hashCode(), securityGroupIds, ipsToNetworks, ipOnDefaultNetwork, keyPair, setupStaticNat, account, domainId, generateKeyPair, generateSecurityGroup, diskOfferingId, dataDiskSize, Arrays.hashCode(userData)); + } - /** - * @see CloudStackTemplateOptions#securityGroupId - */ - public static CloudStackTemplateOptions securityGroupId(String id) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return options.securityGroupId(id); - } + @Override + public String toString() { + return Objects.toStringHelper(this) + .add("securityGroupIds", securityGroupIds) + .add("ipsToNetworks", ipsToNetworks) + .add("ipOnDefaultNetwork", ipOnDefaultNetwork) + .add("keyPair", keyPair) + .add("setupStaticNat", setupStaticNat) + .add("account", account) + .add("domainId", domainId) + .add("generateKeyPair", generateKeyPair) + .add("generateSecurityGroup", generateSecurityGroup) + .add("diskOfferingId", diskOfferingId) + .add("dataDiskSize", dataDiskSize) + .add("userData", userData) + .toString(); + } + + public static class Builder { /** * @see CloudStackTemplateOptions#securityGroupIds @@ -317,39 +267,6 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea } /** - * @see CloudStackTemplateOptions#shouldGenerateSecurityGroup() - */ - public static CloudStackTemplateOptions generateSecurityGroup(boolean enable) { - return new CloudStackTemplateOptions().generateSecurityGroup(enable); - } - - /** - * @deprecated See TemplateOptions#networks - * @see CloudStackTemplateOptions#networkId - */ - @Deprecated - public static CloudStackTemplateOptions networkId(String id) { - return networks(id); - } - - /** - * @deprecated see TemplateOptions#networks - * @see CloudStackTemplateOptions#networkIds - */ - @Deprecated - public static CloudStackTemplateOptions networkIds(Iterable<String> networkIds) { - return networks(networkIds); - } - - /** - * @see CloudStackTemplateOptions#ipOnDefaultNetwork - */ - public static CloudStackTemplateOptions ipOnDefaultNetwork(String ipAddress) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return options.ipOnDefaultNetwork(ipAddress); - } - - /** * @see CloudStackTemplateOptions#ipsToNetworks */ public static CloudStackTemplateOptions ipsToNetworks(Map<String, String> ipToNetworkMap) { @@ -358,11 +275,11 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea } /** - * @see CloudStackTemplateOptions#setupStaticNat + * @see CloudStackTemplateOptions#ipOnDefaultNetwork */ - public static CloudStackTemplateOptions setupStaticNat(boolean setupStaticNat) { + public static CloudStackTemplateOptions ipOnDefaultNetwork(String ipAddress) { CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return options.setupStaticNat(setupStaticNat); + return options.ipOnDefaultNetwork(ipAddress); } /** @@ -374,10 +291,11 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea } /** - * @see CloudStackTemplateOptions#shouldGenerateKeyPair() + * @see CloudStackTemplateOptions#setupStaticNat */ - public static CloudStackTemplateOptions generateKeyPair(boolean enable) { - return new CloudStackTemplateOptions().generateKeyPair(enable); + public static CloudStackTemplateOptions setupStaticNat(boolean setupStaticNat) { + CloudStackTemplateOptions options = new CloudStackTemplateOptions(); + return options.setupStaticNat(setupStaticNat); } /** @@ -396,69 +314,50 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea return options.domainId(domainId); } - // methods that only facilitate returning the correct object type - - /** - * @see TemplateOptions#inboundPorts(int...) - */ - public static CloudStackTemplateOptions inboundPorts(int... ports) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return CloudStackTemplateOptions.class.cast(options.inboundPorts(ports)); - } - /** - * @see TemplateOptions#blockOnPort(int, int) + * @see CloudStackTemplateOptions#generateKeyPair(boolean) */ - public static CloudStackTemplateOptions blockOnPort(int port, int seconds) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return CloudStackTemplateOptions.class.cast(options.blockOnPort(port, seconds)); + public static CloudStackTemplateOptions generateKeyPair(boolean enable) { + return new CloudStackTemplateOptions().generateKeyPair(enable); } /** - * @see TemplateOptions#userMetadata(Map) + * @see CloudStackTemplateOptions#generateSecurityGroup(boolean) */ - public static CloudStackTemplateOptions userMetadata(Map<String, String> userMetadata) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return CloudStackTemplateOptions.class.cast(options.userMetadata(userMetadata)); + public static CloudStackTemplateOptions generateSecurityGroup(boolean enable) { + return new CloudStackTemplateOptions().generateSecurityGroup(enable); } /** - * @see TemplateOptions#userMetadata(String, String) + * @see CloudStackTemplateOptions#diskOfferingId */ - public static CloudStackTemplateOptions userMetadata(String key, String value) { + public static CloudStackTemplateOptions diskOfferingId(String diskOfferingId) { CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return CloudStackTemplateOptions.class.cast(options.userMetadata(key, value)); + return options.diskOfferingId(diskOfferingId); } /** - * @see TemplateOptions#nodeNames(Iterable) + * @see CloudStackTemplateOptions#dataDiskSize */ - public static CloudStackTemplateOptions nodeNames(Iterable<String> nodeNames) { + public static CloudStackTemplateOptions dataDiskSize(int dataDiskSize) { CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return CloudStackTemplateOptions.class.cast(options.nodeNames(nodeNames)); + return options.dataDiskSize(dataDiskSize); } /** - * @see TemplateOptions#networks(Iterable) + * @see CloudStackTemplateOptions#userData */ - public static CloudStackTemplateOptions networks(Iterable<String> networks) { + public static CloudStackTemplateOptions userData(byte[] userData) { CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return CloudStackTemplateOptions.class.cast(options.networks(networks)); + return options.userData(userData); } - /** - * @see TemplateOptions#networks(String...) - */ - public static CloudStackTemplateOptions networks(String... networks) { - CloudStackTemplateOptions options = new CloudStackTemplateOptions(); - return CloudStackTemplateOptions.class.cast(options.networks(networks)); - } } // methods that only facilitate returning the correct object type /** - * @see TemplateOptions#blockOnPort(int, int) + * {@inheritDoc} */ @Override public CloudStackTemplateOptions blockOnPort(int port, int seconds) { @@ -466,7 +365,7 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea } /** - * @see TemplateOptions#inboundPorts(int...) + * {@inheritDoc} */ @Override public CloudStackTemplateOptions inboundPorts(int... ports) { @@ -474,7 +373,7 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea } /** - * @see TemplateOptions#authorizePublicKey(String) + * {@inheritDoc} */ @Override public CloudStackTemplateOptions authorizePublicKey(String publicKey) { @@ -482,7 +381,7 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea } /** - * @see TemplateOptions#installPrivateKey(String) + * {@inheritDoc} */ @Override public CloudStackTemplateOptions installPrivateKey(String privateKey) { @@ -493,6 +392,86 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea * {@inheritDoc} */ @Override + public CloudStackTemplateOptions blockUntilRunning(boolean blockUntilRunning) { + return CloudStackTemplateOptions.class.cast(super.blockUntilRunning(blockUntilRunning)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions dontAuthorizePublicKey() { + return CloudStackTemplateOptions.class.cast(super.dontAuthorizePublicKey()); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions nameTask(String name) { + return CloudStackTemplateOptions.class.cast(super.nameTask(name)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions runAsRoot(boolean runAsRoot) { + return CloudStackTemplateOptions.class.cast(super.runAsRoot(runAsRoot)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions runScript(Statement script) { + return CloudStackTemplateOptions.class.cast(super.runScript(script)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions overrideLoginCredentials(LoginCredentials overridingCredentials) { + return CloudStackTemplateOptions.class.cast(super.overrideLoginCredentials(overridingCredentials)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions overrideLoginPassword(String password) { + return CloudStackTemplateOptions.class.cast(super.overrideLoginPassword(password)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions overrideLoginPrivateKey(String privateKey) { + return CloudStackTemplateOptions.class.cast(super.overrideLoginPrivateKey(privateKey)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions overrideLoginUser(String loginUser) { + return CloudStackTemplateOptions.class.cast(super.overrideLoginUser(loginUser)); + } + + /** + * {@inheritDoc} + */ + @Override + public CloudStackTemplateOptions overrideAuthenticateSudo(boolean authenticateSudo) { + return CloudStackTemplateOptions.class.cast(super.overrideAuthenticateSudo(authenticateSudo)); + } + + /** + * {@inheritDoc} + */ + @Override public CloudStackTemplateOptions userMetadata(Map<String, String> userMetadata) { return CloudStackTemplateOptions.class.cast(super.userMetadata(userMetadata)); } @@ -520,12 +499,4 @@ public class CloudStackTemplateOptions extends TemplateOptions implements Clonea public CloudStackTemplateOptions networks(Iterable<String> networks) { return CloudStackTemplateOptions.class.cast(super.networks(networks)); } - - /** - * {@inheritDoc} - */ - @Override - public CloudStackTemplateOptions networks(String... networks) { - return CloudStackTemplateOptions.class.cast(super.networks(networks)); - } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1f6b7eb/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java ---------------------------------------------------------------------- diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java index 005902b..e0ed197 100644 --- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java +++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java @@ -205,8 +205,7 @@ public class CloudStackComputeServiceAdapter implements options.keyPair(keyPair.getName()); } } else if (templateOptions.shouldGenerateKeyPair()) { - SshKeyPair keyPair = keyPairCache.getUnchecked(namingConvention.create() - .sharedNameForGroup(group)); + SshKeyPair keyPair = keyPairCache.getUnchecked(namingConvention.create().sharedNameForGroup(group)); keyPairCache.asMap().put(keyPair.getName(), keyPair); templateOptions.keyPair(keyPair.getName()); options.keyPair(keyPair.getName()); http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1f6b7eb/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptionsTest.java ---------------------------------------------------------------------- diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptionsTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptionsTest.java index 6c29f83..8108b09 100644 --- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptionsTest.java +++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptionsTest.java @@ -16,13 +16,6 @@ */ package org.jclouds.cloudstack.compute.options; -import com.google.common.collect.ImmutableSet; -import org.jclouds.compute.options.TemplateOptions; -import org.testng.annotations.Test; -import org.testng.collections.Maps; - -import java.util.Map; - import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.account; import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.dataDiskSize; import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.diskOfferingId; @@ -32,14 +25,19 @@ import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.B import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.ipOnDefaultNetwork; import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.ipsToNetworks; import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.keyPair; -import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.networks; -import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.securityGroupId; import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.securityGroupIds; import static org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions.Builder.setupStaticNat; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; + +import java.util.Map; + +import org.jclouds.compute.options.TemplateOptions; +import org.testng.annotations.Test; +import org.testng.collections.Maps; + +import com.google.common.collect.ImmutableSet; /** * Tests possible uses of {@code CloudStackTemplateOptions} and @@ -50,7 +48,7 @@ import static org.testng.Assert.fail; @Test(groups = "unit", testName = "CloudStackTemplateOptionsTest") public class CloudStackTemplateOptionsTest { //TODO: test clone(); - + @Test public void testAs() { TemplateOptions options = new CloudStackTemplateOptions(); @@ -64,18 +62,6 @@ public class CloudStackTemplateOptionsTest { } @Test - public void testSecurityGroupId() { - TemplateOptions options = new CloudStackTemplateOptions().securityGroupId("3"); - assertEquals(options.as(CloudStackTemplateOptions.class).getSecurityGroupIds(), ImmutableSet.of("3")); - } - - @Test - public void testSecurityGroupIdStatic() { - TemplateOptions options = securityGroupId("3"); - assertEquals(options.as(CloudStackTemplateOptions.class).getSecurityGroupIds(), ImmutableSet.of("3")); - } - - @Test public void testSecurityGroupIds() { TemplateOptions options = new CloudStackTemplateOptions().securityGroupIds(ImmutableSet.of("3")); assertEquals(options.as(CloudStackTemplateOptions.class).getSecurityGroupIds(), ImmutableSet.of("3")); @@ -121,24 +107,6 @@ public class CloudStackTemplateOptionsTest { } @Test - public void testNetworkIdStatic() { - TemplateOptions options = networks(ImmutableSet.of("3")); - assertEquals(options.as(CloudStackTemplateOptions.class).getNetworks(), ImmutableSet.of("3")); - } - - @Test - public void testNetworkIds() { - TemplateOptions options = new CloudStackTemplateOptions().networks(ImmutableSet.of("3")); - assertEquals(options.as(CloudStackTemplateOptions.class).getNetworks(), ImmutableSet.of("3")); - } - - @Test - public void testNetworkIdsStatic() { - TemplateOptions options = networks(ImmutableSet.of("3")); - assertEquals(options.as(CloudStackTemplateOptions.class).getNetworks(), ImmutableSet.of("3")); - } - - @Test public void testIpOnDefaultNetwork() { TemplateOptions options = new CloudStackTemplateOptions().ipOnDefaultNetwork("10.0.0.1"); assertEquals(options.as(CloudStackTemplateOptions.class).getIpOnDefaultNetwork(), "10.0.0.1"); @@ -248,14 +216,4 @@ public class CloudStackTemplateOptionsTest { assertEquals(options.as(CloudStackTemplateOptions.class).getDomainId(), "test"); } - @Test - public void testSecurityGroupIdsNullHasDecentMessage() { - try { - new CloudStackTemplateOptions().securityGroupIds(null); - fail("should NPE"); - } catch (NullPointerException e) { - assertEquals(e.getMessage(), "securityGroupIds was null"); - } - } - } http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1f6b7eb/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/strategy/OptionsConverterTest.java ---------------------------------------------------------------------- diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/strategy/OptionsConverterTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/strategy/OptionsConverterTest.java index d44ba77..60baace 100644 --- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/strategy/OptionsConverterTest.java +++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/strategy/OptionsConverterTest.java @@ -16,18 +16,20 @@ */ package org.jclouds.cloudstack.compute.strategy; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +import java.util.Map; + import org.jclouds.cloudstack.compute.options.CloudStackTemplateOptions; import org.jclouds.cloudstack.domain.Network; import org.jclouds.cloudstack.domain.NetworkService; import org.jclouds.cloudstack.options.DeployVirtualMachineOptions; import org.testng.annotations.Test; -import java.util.Map; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; @Test(singleThreaded = true, testName = "OptionsConverterTest") public class OptionsConverterTest { @@ -41,7 +43,7 @@ public class OptionsConverterTest { public void testBasicNetworkOptionsConverter() { BasicNetworkOptionsConverter converter = new BasicNetworkOptionsConverter(); - CloudStackTemplateOptions optionsIn = CloudStackTemplateOptions.Builder.securityGroupId("42").networks("46"); + CloudStackTemplateOptions optionsIn = CloudStackTemplateOptions.Builder.securityGroupIds(ImmutableList.of("42")).networks(ImmutableList.of("46")); DeployVirtualMachineOptions optionsOut = new DeployVirtualMachineOptions(); DeployVirtualMachineOptions optionsOut2 = converter.apply(optionsIn, EMPTY_NETWORKS_MAP, ZONE_ID, optionsOut); @@ -55,7 +57,7 @@ public class OptionsConverterTest { public void testAdvancedSecurityGroupsNotAllowed() { boolean exceptionThrown = false; AdvancedNetworkOptionsConverter converter = new AdvancedNetworkOptionsConverter(); - CloudStackTemplateOptions optionsIn = CloudStackTemplateOptions.Builder.securityGroupId("42"); + CloudStackTemplateOptions optionsIn = CloudStackTemplateOptions.Builder.securityGroupIds(ImmutableList.of("42")); try { converter.apply(optionsIn, EMPTY_NETWORKS_MAP, ZONE_ID, DeployVirtualMachineOptions.NONE); @@ -69,7 +71,7 @@ public class OptionsConverterTest { @Test public void testAdvancedExplicitNetworkSelection() { AdvancedNetworkOptionsConverter converter = new AdvancedNetworkOptionsConverter(); - DeployVirtualMachineOptions optionsActual = converter.apply(CloudStackTemplateOptions.Builder.networks("42"), + DeployVirtualMachineOptions optionsActual = converter.apply(new CloudStackTemplateOptions().networks(ImmutableList.of("42")), EMPTY_NETWORKS_MAP, ZONE_ID, DeployVirtualMachineOptions.NONE); DeployVirtualMachineOptions optionsExpected = DeployVirtualMachineOptions.Builder.networkId("42"); assertEquals(optionsActual, optionsExpected); @@ -82,7 +84,7 @@ public class OptionsConverterTest { Network eligibleNetwork = Network.builder() .id("25").zoneId(ZONE_ID).isDefault(true).services(ImmutableSet.of(firewallServiceWithStaticNat)) .build(); - DeployVirtualMachineOptions optionsActual = converter.apply(CloudStackTemplateOptions.NONE, + DeployVirtualMachineOptions optionsActual = converter.apply(new CloudStackTemplateOptions(), ImmutableMap.of(eligibleNetwork.getId(), eligibleNetwork), ZONE_ID, DeployVirtualMachineOptions.NONE); DeployVirtualMachineOptions optionsExpected = DeployVirtualMachineOptions.Builder.networkId("25"); assertEquals(optionsActual, optionsExpected); @@ -93,7 +95,7 @@ public class OptionsConverterTest { AdvancedNetworkOptionsConverter converter = new AdvancedNetworkOptionsConverter(); boolean exceptionThrown = false; try { - converter.apply(CloudStackTemplateOptions.NONE, EMPTY_NETWORKS_MAP, ZONE_ID, DeployVirtualMachineOptions.NONE); + converter.apply(new CloudStackTemplateOptions(), EMPTY_NETWORKS_MAP, ZONE_ID, DeployVirtualMachineOptions.NONE); } catch (IllegalArgumentException e) { exceptionThrown = true; } @@ -109,7 +111,7 @@ public class OptionsConverterTest { boolean exceptionThrown = false; try { - converter.apply(CloudStackTemplateOptions.NONE, ImmutableMap.of(unsuitableNetwork.getId(), unsuitableNetwork), ZONE_ID, DeployVirtualMachineOptions.NONE); + converter.apply(new CloudStackTemplateOptions(), ImmutableMap.of(unsuitableNetwork.getId(), unsuitableNetwork), ZONE_ID, DeployVirtualMachineOptions.NONE); } catch (IllegalArgumentException e) { exceptionThrown = true; }
