You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2016/10/25 13:56:45 UTC
jclouds git commit: update CloudstackTemplateOptions pattern
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 <an...@gmail.com>
Authored: Thu May 19 10:57:03 2016 +0200
Committer: Ignasi Barrera <na...@apache.org>
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;
}