Add the global admin context to BaseCloudStackClientLiveTest

This commit is contained in:
Richard Downer 2011-12-05 14:25:36 +02:00
parent da56c047a1
commit bdaebf8ce1
1 changed files with 36 additions and 9 deletions

View File

@ -29,11 +29,7 @@ import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.jclouds.cloudstack.CloudStackAsyncClient; import org.jclouds.cloudstack.*;
import org.jclouds.cloudstack.CloudStackClient;
import org.jclouds.cloudstack.CloudStackContext;
import org.jclouds.cloudstack.CloudStackDomainAsyncClient;
import org.jclouds.cloudstack.CloudStackDomainClient;
import org.jclouds.cloudstack.domain.Account; import org.jclouds.cloudstack.domain.Account;
import org.jclouds.cloudstack.domain.Template; import org.jclouds.cloudstack.domain.Template;
import org.jclouds.cloudstack.domain.User; import org.jclouds.cloudstack.domain.User;
@ -78,6 +74,8 @@ import com.google.inject.Module;
public class BaseCloudStackClientLiveTest extends BaseVersionedServiceLiveTest { public class BaseCloudStackClientLiveTest extends BaseVersionedServiceLiveTest {
protected String domainAdminIdentity; protected String domainAdminIdentity;
protected String domainAdminCredential; protected String domainAdminCredential;
protected String globalAdminIdentity;
protected String globalAdminCredential;
public BaseCloudStackClientLiveTest() { public BaseCloudStackClientLiveTest() {
provider = "cloudstack"; provider = "cloudstack";
@ -88,9 +86,11 @@ public class BaseCloudStackClientLiveTest extends BaseVersionedServiceLiveTest {
super.setupCredentials(); super.setupCredentials();
domainAdminIdentity = emptyToNull(System.getProperty("test." + provider + ".domainAdminIdentity")); domainAdminIdentity = emptyToNull(System.getProperty("test." + provider + ".domainAdminIdentity"));
domainAdminCredential = emptyToNull(System.getProperty("test." + provider + ".domainAdminCredential")); domainAdminCredential = emptyToNull(System.getProperty("test." + provider + ".domainAdminCredential"));
globalAdminIdentity = emptyToNull(System.getProperty("test." + provider + ".globalAdminIdentity"));
globalAdminCredential = emptyToNull(System.getProperty("test." + provider + ".globalAdminCredential"));
} }
protected Properties setupAdminProperties() { protected Properties setupDomainAdminProperties() {
if (domainAdminIdentity != null && domainAdminCredential != null) { if (domainAdminIdentity != null && domainAdminCredential != null) {
Properties overrides = setupProperties(); Properties overrides = setupProperties();
overrides.setProperty(provider + ".identity", domainAdminIdentity); overrides.setProperty(provider + ".identity", domainAdminIdentity);
@ -101,6 +101,17 @@ public class BaseCloudStackClientLiveTest extends BaseVersionedServiceLiveTest {
} }
} }
protected Properties setupGlobalAdminProperties() {
if (globalAdminIdentity != null && globalAdminCredential != null) {
Properties overrides = setupProperties();
overrides.setProperty(provider + ".identity", globalAdminIdentity);
overrides.setProperty(provider + ".credential", globalAdminCredential);
return overrides;
} else {
return null;
}
}
public static long defaultTemplateOrPreferredInZone(Long defaultTemplate, CloudStackClient client, long zoneId) { public static long defaultTemplateOrPreferredInZone(Long defaultTemplate, CloudStackClient client, long zoneId) {
long templateId = defaultTemplate != null ? defaultTemplate : getTemplateForZone(client, zoneId); long templateId = defaultTemplate != null ? defaultTemplate : getTemplateForZone(client, zoneId);
return templateId; return templateId;
@ -157,6 +168,12 @@ public class BaseCloudStackClientLiveTest extends BaseVersionedServiceLiveTest {
protected CloudStackClient domainAdminClient; protected CloudStackClient domainAdminClient;
protected User domainAdminUser; protected User domainAdminUser;
protected boolean globalAdminEnabled;
protected CloudStackContext globalAdminComputeContext;
protected RestContext<CloudStackGlobalClient, CloudStackGlobalAsyncClient> globalAdminContext;
protected CloudStackGlobalClient globalAdminClient;
protected User globalAdminUser;
protected void checkSSH(IPSocket socket) { protected void checkSSH(IPSocket socket) {
socketTester.apply(socket); socketTester.apply(socket);
SshClient client = sshFactory.create(socket, new Credentials("root", password)); SshClient client = sshFactory.create(socket, new Credentials("root", password));
@ -183,18 +200,28 @@ public class BaseCloudStackClientLiveTest extends BaseVersionedServiceLiveTest {
client = context.getApi(); client = context.getApi();
user = verifyCurrentUserIsOfType(context, Account.Type.USER); user = verifyCurrentUserIsOfType(context, Account.Type.USER);
domainAdminEnabled = setupAdminProperties() != null; domainAdminEnabled = setupDomainAdminProperties() != null;
if (domainAdminEnabled) { if (domainAdminEnabled) {
domainAdminComputeContext = CloudStackContext.class.cast(new ComputeServiceContextFactory(setupRestProperties()). domainAdminComputeContext = CloudStackContext.class.cast(new ComputeServiceContextFactory(setupRestProperties()).
createContext(provider, ImmutableSet.<Module> of( createContext(provider, ImmutableSet.<Module> of(
new Log4JLoggingModule(), new SshjSshClientModule()), setupAdminProperties())); new Log4JLoggingModule(), new SshjSshClientModule()), setupDomainAdminProperties()));
domainAdminContext = domainAdminComputeContext.getDomainContext(); domainAdminContext = domainAdminComputeContext.getDomainContext();
domainAdminClient = domainAdminContext.getApi(); domainAdminClient = domainAdminContext.getApi();
domainAdminUser = verifyCurrentUserIsOfType(domainAdminContext, Account.Type.DOMAIN_ADMIN); domainAdminUser = verifyCurrentUserIsOfType(domainAdminContext, Account.Type.DOMAIN_ADMIN);
adminClient = domainAdminContext.getApi(); adminClient = domainAdminContext.getApi();
} }
globalAdminEnabled = setupDomainAdminProperties() != null;
if (globalAdminEnabled) {
globalAdminComputeContext = CloudStackContext.class.cast(new ComputeServiceContextFactory(setupRestProperties()).
createContext(provider, ImmutableSet.<Module> of(
new Log4JLoggingModule(), new SshjSshClientModule()), setupGlobalAdminProperties()));
globalAdminContext = globalAdminComputeContext.getGlobalContext();
globalAdminClient = globalAdminContext.getApi();
globalAdminUser = verifyCurrentUserIsOfType(globalAdminContext, Account.Type.ADMIN);
adminClient = globalAdminContext.getApi();
}
injector = Guice.createInjector(new SshjSshClientModule(), new Log4JLoggingModule()); injector = Guice.createInjector(new SshjSshClientModule(), new Log4JLoggingModule());
sshFactory = injector.getInstance(SshClient.Factory.class); sshFactory = injector.getInstance(SshClient.Factory.class);
socketTester = new RetryablePredicate<IPSocket>(new InetSocketAddressConnect(), 180, 1, 1, TimeUnit.SECONDS); socketTester = new RetryablePredicate<IPSocket>(new InetSocketAddressConnect(), 180, 1, 1, TimeUnit.SECONDS);