mirror of https://github.com/apache/jclouds.git
Issue 343 removed buggy hosting.com vcloudexpress
This commit is contained in:
parent
ae5381d2bd
commit
a87747a6b2
|
@ -26,8 +26,9 @@ freedom to use portable abstractions or cloud-specific features.
|
||||||
our current version is 1.0-beta-6
|
our current version is 1.0-beta-6
|
||||||
our dev version is 1.0-SNAPSHOT
|
our dev version is 1.0-SNAPSHOT
|
||||||
|
|
||||||
our compute api supports: ec2, gogrid, rackspace, rimuhosting, vcloud, terremark,
|
our compute api supports: ec2, gogrid, rackspace, rimuhosting, vcloud, trmk-ecloud,
|
||||||
eucalyptus, hosting.com, bluelock, ibmdev, slicehost
|
trmk-vcloudexpress, eucalyptus, bluelock-vclouddirector,
|
||||||
|
bluelock-vcloudexpress, ibmdev, slicehost
|
||||||
|
|
||||||
* note * the pom dependency org.jclouds/jclouds-allcompute gives you access to
|
* note * the pom dependency org.jclouds/jclouds-allcompute gives you access to
|
||||||
to all of these providers
|
to all of these providers
|
||||||
|
|
|
@ -243,33 +243,6 @@
|
||||||
<outputDirectory>providers/azure</outputDirectory>
|
<outputDirectory>providers/azure</outputDirectory>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
|
|
||||||
<!-- providers: hostingdotcom -->
|
|
||||||
<fileSet>
|
|
||||||
<directory>vcloud/hostingdotcom/target</directory>
|
|
||||||
<includes>
|
|
||||||
<include>jclouds-hostingdotcom-${project.version}.jar</include>
|
|
||||||
</includes>
|
|
||||||
<outputDirectory>providers/hostingdotcom/lib</outputDirectory>
|
|
||||||
</fileSet>
|
|
||||||
<fileSet>
|
|
||||||
<directory>vcloud/hostingdotcom/target</directory>
|
|
||||||
<includes>
|
|
||||||
<include>jclouds-hostingdotcom-${project.version}-sources.jar</include>
|
|
||||||
</includes>
|
|
||||||
<outputDirectory>providers/hostingdotcom/src</outputDirectory>
|
|
||||||
</fileSet>
|
|
||||||
<fileSet>
|
|
||||||
<directory>vcloud/hostingdotcom/target/apidocs</directory>
|
|
||||||
<outputDirectory>providers/hostingdotcom/docs</outputDirectory>
|
|
||||||
</fileSet>
|
|
||||||
<fileSet>
|
|
||||||
<directory>vcloud/hostingdotcom</directory>
|
|
||||||
<includes>
|
|
||||||
<include>README.txt</include>
|
|
||||||
</includes>
|
|
||||||
<outputDirectory>providers/hostingdotcom</outputDirectory>
|
|
||||||
</fileSet>
|
|
||||||
|
|
||||||
<!-- providers: mezeo -->
|
<!-- providers: mezeo -->
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>mezeo/pcs2/target</directory>
|
<directory>mezeo/pcs2/target</directory>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
Current supported services are:
|
Current supported services are:
|
||||||
[ec2, rimuhosting, cloudservers, trmk-ecloud, trmk-vcloudexpress, vcloud, bluelock,
|
[ec2, rimuhosting, cloudservers, trmk-ecloud, trmk-vcloudexpress, vcloud, bluelock,
|
||||||
ibmdev, eucalyptus, hostingdotcom, slicehost]
|
ibmdev, eucalyptus, slicehost]
|
||||||
|
|
||||||
Here's an example of getting some compute configuration from rackspace:
|
Here's an example of getting some compute configuration from rackspace:
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,6 @@ import org.jclouds.compute.predicates.OperatingSystemPredicates;
|
||||||
import org.jclouds.domain.Credentials;
|
import org.jclouds.domain.Credentials;
|
||||||
import org.jclouds.domain.Location;
|
import org.jclouds.domain.Location;
|
||||||
import org.jclouds.domain.LocationScope;
|
import org.jclouds.domain.LocationScope;
|
||||||
import org.jclouds.http.HttpResponseException;
|
|
||||||
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
||||||
import org.jclouds.net.IPSocket;
|
import org.jclouds.net.IPSocket;
|
||||||
import org.jclouds.predicates.RetryablePredicate;
|
import org.jclouds.predicates.RetryablePredicate;
|
||||||
|
@ -266,8 +265,6 @@ public abstract class BaseComputeServiceLiveTest {
|
||||||
public void testCreateTwoNodesWithRunScript() throws Exception {
|
public void testCreateTwoNodesWithRunScript() throws Exception {
|
||||||
try {
|
try {
|
||||||
client.destroyNodesMatching(withTag(tag));
|
client.destroyNodesMatching(withTag(tag));
|
||||||
} catch (HttpResponseException e) {
|
|
||||||
// TODO hosting.com throws 400 when we try to delete a vApp
|
|
||||||
} catch (NoSuchElementException e) {
|
} catch (NoSuchElementException e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,9 +59,6 @@ trmk-vcloudexpress.propertiesbuilder=org.jclouds.vcloud.terremark.TerremarkVClou
|
||||||
trmk-ecloud.contextbuilder=org.jclouds.vcloud.terremark.TerremarkECloudContextBuilder
|
trmk-ecloud.contextbuilder=org.jclouds.vcloud.terremark.TerremarkECloudContextBuilder
|
||||||
trmk-ecloud.propertiesbuilder=org.jclouds.vcloud.terremark.TerremarkECloudPropertiesBuilder
|
trmk-ecloud.propertiesbuilder=org.jclouds.vcloud.terremark.TerremarkECloudPropertiesBuilder
|
||||||
|
|
||||||
hostingdotcom.contextbuilder=org.jclouds.vcloud.hostingdotcom.HostingDotComVCloudContextBuilder
|
|
||||||
hostingdotcom.propertiesbuilder=org.jclouds.vcloud.hostingdotcom.HostingDotComVCloudPropertiesBuilder
|
|
||||||
|
|
||||||
chef.contextbuilder=org.jclouds.chef.ChefContextBuilder
|
chef.contextbuilder=org.jclouds.chef.ChefContextBuilder
|
||||||
chef.propertiesbuilder=org.jclouds.chef.ChefPropertiesBuilder
|
chef.propertiesbuilder=org.jclouds.chef.ChefPropertiesBuilder
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class CredentialsTest {
|
||||||
assertEquals(creds.credential, "Base64==");
|
assertEquals(creds.credential, "Base64==");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testHosting() {
|
public void testDollar() {
|
||||||
Credentials creds = Credentials.parse(URI
|
Credentials creds = Credentials.parse(URI
|
||||||
.create("compute://user%40domain:pa%24sword@hostingdotcom"));
|
.create("compute://user%40domain:pa%24sword@hostingdotcom"));
|
||||||
assertEquals(creds.identity, "user@domain");
|
assertEquals(creds.identity, "user@domain");
|
||||||
|
|
|
@ -136,10 +136,10 @@ public class HttpUtilsTest extends PerformanceTest {
|
||||||
assertEquals(creds, URI.create("compute://identity:Base64==@azureblob/container-hyphen/prefix"));
|
assertEquals(creds, URI.create("compute://identity:Base64==@azureblob/container-hyphen/prefix"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testHosting() {
|
public void testDollar() {
|
||||||
URI creds = HttpUtils.createUri("compute://user@domain:pa$sword@hostingdotcom");
|
URI creds = HttpUtils.createUri("compute://user@domain:pa$sword@host");
|
||||||
assertEquals(creds.getUserInfo(), "user@domain:pa$sword");
|
assertEquals(creds.getUserInfo(), "user@domain:pa$sword");
|
||||||
assertEquals(creds, URI.create("compute://user%40domain:pa%24sword@hostingdotcom"));
|
assertEquals(creds, URI.create("compute://user%40domain:pa%24sword@host"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testTerremark() {
|
public void testTerremark() {
|
||||||
|
|
|
@ -39,14 +39,14 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<input
|
<input
|
||||||
message="Which service would you like to use (ec2, cloudservers, vcloud, terremark, rimuhosting, hostingdotcom)?"
|
message="Which service would you like to use (ec2, cloudservers, vcloud, terremark, rimuhosting)?"
|
||||||
validargs="ec2,cloudservers,vcloud,terremark,rimuhosting,hostingdotcom"
|
validargs="ec2,cloudservers,vcloud,terremark,rimuhosting"
|
||||||
addproperty="service"
|
addproperty="service"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
message="Which driver does ${service} use?"
|
message="Which driver does ${service} use?"
|
||||||
validargs="aws,rackspace,vcloud,terremark,rimuhosting,hostingdotcom"
|
validargs="aws,rackspace,vcloud,terremark,rimuhosting"
|
||||||
addproperty="driver"
|
addproperty="driver"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
|
@ -30,14 +30,14 @@
|
||||||
<get src="http://apache.imghat.com/maven/binaries/maven-ant-tasks-2.1.0.jar" dest="build/maven-ant-tasks-2.1.0.jar"/>
|
<get src="http://apache.imghat.com/maven/binaries/maven-ant-tasks-2.1.0.jar" dest="build/maven-ant-tasks-2.1.0.jar"/>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
message="Which service would you like to use (ec2, cloudservers, vcloud, terremark, rimuhosting, hostingdotcom)?"
|
message="Which service would you like to use (ec2, cloudservers, vcloud, terremark, rimuhosting)?"
|
||||||
validargs="ec2,cloudservers,vcloud,terremark,rimuhosting,hostingdotcom"
|
validargs="ec2,cloudservers,vcloud,terremark,rimuhosting"
|
||||||
addproperty="service"
|
addproperty="service"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
message="Which driver does ${service} use?"
|
message="Which driver does ${service} use?"
|
||||||
validargs="aws,rackspace,vcloud,bluelock,gogrid,terremark,rimuhosting,hostingdotcom"
|
validargs="aws,rackspace,vcloud,bluelock,gogrid,terremark,rimuhosting"
|
||||||
addproperty="driver"
|
addproperty="driver"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class VAppImpl implements VApp {
|
||||||
this.name = checkNotNull(name, "name");
|
this.name = checkNotNull(name, "name");
|
||||||
this.id = checkNotNull(id, "id");
|
this.id = checkNotNull(id, "id");
|
||||||
this.status = checkNotNull(status, "status");
|
this.status = checkNotNull(status, "status");
|
||||||
this.size = size;// hostingdotcom
|
this.size = size;
|
||||||
this.vDC = vDC;
|
this.vDC = vDC;
|
||||||
this.networkToAddresses = checkNotNull(networkToAddresses, "networkToAddresses");
|
this.networkToAddresses = checkNotNull(networkToAddresses, "networkToAddresses");
|
||||||
this.osType = osType;
|
this.osType = osType;
|
||||||
|
|
|
@ -748,7 +748,8 @@ public class VCloudExpressAsyncClientTest extends RestClientTest<VCloudExpressAs
|
||||||
VCloudExpressMediaType.CATALOG_XML, URI
|
VCloudExpressMediaType.CATALOG_XML, URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1"))), ImmutableMap
|
.create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1"))), ImmutableMap
|
||||||
.<String, NamedResource> of("vdc", new NamedResourceImpl("vdc", VCloudExpressMediaType.VDC_XML,
|
.<String, NamedResource> of("vdc", new NamedResourceImpl("vdc", VCloudExpressMediaType.VDC_XML,
|
||||||
URI.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/1"))), null,
|
URI.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/1"))), ImmutableMap
|
||||||
|
.<String, NamedResource> of(),
|
||||||
new NamedResourceImpl("tasksList", VCloudExpressMediaType.TASKSLIST_XML, URI
|
new NamedResourceImpl("tasksList", VCloudExpressMediaType.TASKSLIST_XML, URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/1")), ImmutableList
|
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/1")), ImmutableList
|
||||||
.<Task> of()));
|
.<Task> of()));
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
====
|
|
||||||
|
|
||||||
Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
|
|
||||||
====================================================================
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
====================================================================
|
|
||||||
====
|
|
||||||
|
|
||||||
#
|
|
||||||
# The jclouds provider for Hosting.com's vCloud Express (http://www.hosting.com/vcloudexpress/) platform.
|
|
||||||
#
|
|
||||||
# TODO: Implementation status.
|
|
||||||
# TODO: Supported features.
|
|
||||||
# TODO: Usage example.
|
|
|
@ -1,60 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
|
|
||||||
|
|
||||||
Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
|
|
||||||
====================================================================
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
====================================================================
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<parent>
|
|
||||||
<groupId>org.jclouds</groupId>
|
|
||||||
<artifactId>jclouds-vcloud-project</artifactId>
|
|
||||||
<version>1.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
<groupId>org.jclouds</groupId>
|
|
||||||
<artifactId>jclouds-hostingdotcom</artifactId>
|
|
||||||
<name>jclouds hostingdotcom Components Core</name>
|
|
||||||
<description>jclouds core components to access hostingdotcom</description>
|
|
||||||
<properties>
|
|
||||||
<jclouds.test.identity>${jclouds.hostingdotcom.user}</jclouds.test.identity>
|
|
||||||
<jclouds.test.credential>${jclouds.hostingdotcom.password}</jclouds.test.credential>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<scm>
|
|
||||||
<connection>scm:svn:http://jclouds.googlecode.com/svn/trunk/vcloud/hostingdotcom</connection>
|
|
||||||
<developerConnection>scm:svn:https://jclouds.googlecode.com/svn/trunk/vcloud/hostingdotcom</developerConnection>
|
|
||||||
<url>http://jclouds.googlecode.com/svn/trunk/vcloud/hostingdotcom</url>
|
|
||||||
</scm>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>${project.groupId}</groupId>
|
|
||||||
<artifactId>jclouds-vcloud</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>${project.groupId}</groupId>
|
|
||||||
<artifactId>jclouds-vcloud</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
<type>test-jar</type>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -1,80 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom;
|
|
||||||
|
|
||||||
import static org.jclouds.vcloud.VCloudMediaType.VAPP_XML;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
|
|
||||||
import javax.ws.rs.Consumes;
|
|
||||||
import javax.ws.rs.GET;
|
|
||||||
import javax.ws.rs.POST;
|
|
||||||
import javax.ws.rs.Path;
|
|
||||||
import javax.ws.rs.Produces;
|
|
||||||
|
|
||||||
import org.jclouds.predicates.validators.DnsNameValidator;
|
|
||||||
import org.jclouds.rest.annotations.EndpointParam;
|
|
||||||
import org.jclouds.rest.annotations.ExceptionParser;
|
|
||||||
import org.jclouds.rest.annotations.MapBinder;
|
|
||||||
import org.jclouds.rest.annotations.MapPayloadParam;
|
|
||||||
import org.jclouds.rest.annotations.ParamValidators;
|
|
||||||
import org.jclouds.rest.annotations.RequestFilters;
|
|
||||||
import org.jclouds.rest.annotations.XMLResponseParser;
|
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressAsyncClient;
|
|
||||||
import org.jclouds.vcloud.binders.BindInstantiateVAppTemplateParamsToXmlPayload;
|
|
||||||
import org.jclouds.vcloud.filters.SetVCloudTokenCookie;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.HostingDotComVApp;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.xml.HostingDotComVAppHandler;
|
|
||||||
import org.jclouds.vcloud.options.InstantiateVAppTemplateOptions;
|
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides access to VCloud resources via their REST API.
|
|
||||||
* <p/>
|
|
||||||
*
|
|
||||||
* @see <a href="https://community.vcloudexpress.terremark.com/en-us/discussion_forums/f/60.aspx" />
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@RequestFilters(SetVCloudTokenCookie.class)
|
|
||||||
public interface HostingDotComVCloudAsyncClient extends VCloudExpressAsyncClient {
|
|
||||||
|
|
||||||
@GET
|
|
||||||
@Consumes(VAPP_XML)
|
|
||||||
@XMLResponseParser(HostingDotComVAppHandler.class)
|
|
||||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
|
||||||
@Override
|
|
||||||
ListenableFuture<? extends HostingDotComVApp> getVApp(@EndpointParam URI appId);
|
|
||||||
|
|
||||||
@POST
|
|
||||||
@Path("/action/instantiateVAppTemplate")
|
|
||||||
@Produces("application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml")
|
|
||||||
@Consumes(VAPP_XML)
|
|
||||||
// required for hosting.com to operate
|
|
||||||
@XMLResponseParser(HostingDotComVAppHandler.class)
|
|
||||||
@MapBinder(BindInstantiateVAppTemplateParamsToXmlPayload.class)
|
|
||||||
@Override
|
|
||||||
ListenableFuture<? extends HostingDotComVApp> instantiateVAppTemplateInVDC(@EndpointParam URI vdc,
|
|
||||||
@MapPayloadParam("template") URI template,
|
|
||||||
@MapPayloadParam("name") @ParamValidators(DnsNameValidator.class) String appName,
|
|
||||||
InstantiateVAppTemplateOptions... options);
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import org.jclouds.concurrent.Timeout;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressClient;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.HostingDotComVApp;
|
|
||||||
import org.jclouds.vcloud.options.InstantiateVAppTemplateOptions;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides access to VCloud resources via their REST API.
|
|
||||||
* <p/>
|
|
||||||
*
|
|
||||||
* @see <a href="https://community.vcloudexpress.terremark.com/en-us/discussion_forums/f/60.aspx"
|
|
||||||
* />
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@Timeout(duration = 180, timeUnit = TimeUnit.SECONDS)
|
|
||||||
public interface HostingDotComVCloudClient extends VCloudExpressClient {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Timeout(duration = 600, timeUnit = TimeUnit.SECONDS)
|
|
||||||
HostingDotComVApp instantiateVAppTemplateInVDC(URI vDC, URI template, String appName,
|
|
||||||
InstantiateVAppTemplateOptions... options);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Timeout(duration = 180, timeUnit = TimeUnit.SECONDS)
|
|
||||||
HostingDotComVApp getVApp(URI vAppId);
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
|
|
||||||
import org.jclouds.logging.jdk.config.JDKLoggingModule;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressContextBuilder;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.compute.config.HostingDotComVCloudComputeServiceContextModule;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.config.HostingDotComVCloudRestClientModule;
|
|
||||||
|
|
||||||
import com.google.inject.Injector;
|
|
||||||
import com.google.inject.Module;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates {@link HostingDotComVCloudComputeServiceContext} or {@link Injector} instances based on
|
|
||||||
* the most commonly requested arguments.
|
|
||||||
* <p/>
|
|
||||||
* Note that Threadsafe objects will be bound as singletons to the Injector or Context provided.
|
|
||||||
* <p/>
|
|
||||||
* <p/>
|
|
||||||
* If no <code>Module</code>s are specified, the default {@link JDKLoggingModule logging} and
|
|
||||||
* {@link JavaUrlHttpCommandExecutorServiceModule http transports} will be installed.
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
* @see HostingDotComVCloudComputeServiceContext
|
|
||||||
*/
|
|
||||||
public class HostingDotComVCloudContextBuilder extends VCloudExpressContextBuilder {
|
|
||||||
|
|
||||||
public HostingDotComVCloudContextBuilder(Properties props) {
|
|
||||||
super(props);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void addContextModule(List<Module> modules) {
|
|
||||||
modules.add(new HostingDotComVCloudComputeServiceContextModule());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void addClientModule(List<Module> modules) {
|
|
||||||
modules.add(new HostingDotComVCloudRestClientModule());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom;
|
|
||||||
|
|
||||||
import static org.jclouds.Constants.PROPERTY_ENDPOINT;
|
|
||||||
import static org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED;
|
|
||||||
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.jclouds.vcloud.VCloudExpressPropertiesBuilder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builds properties used in hosting.com VCloud Clients
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
public class HostingDotComVCloudPropertiesBuilder extends VCloudExpressPropertiesBuilder {
|
|
||||||
@Override
|
|
||||||
protected Properties defaultProperties() {
|
|
||||||
Properties properties = super.defaultProperties();
|
|
||||||
properties.setProperty(PROPERTY_ENDPOINT, "https://vcloud.safesecureweb.com/api");
|
|
||||||
properties.setProperty(PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED, 45 * 60 * 1000l + "");
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public HostingDotComVCloudPropertiesBuilder(Properties properties) {
|
|
||||||
super(properties);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.compute;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import javax.inject.Singleton;
|
|
||||||
|
|
||||||
import org.jclouds.compute.domain.NodeState;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressClient;
|
|
||||||
import org.jclouds.vcloud.compute.internal.VCloudExpressComputeClientImpl;
|
|
||||||
import org.jclouds.vcloud.domain.VApp;
|
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
|
||||||
import org.jclouds.vcloud.domain.VAppTemplate;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.HostingDotComVApp;
|
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@Singleton
|
|
||||||
public class HostingDotComVCloudComputeClient extends VCloudExpressComputeClientImpl {
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
protected HostingDotComVCloudComputeClient(VCloudExpressClient client, Predicate<URI> successTester,
|
|
||||||
Map<VAppStatus, NodeState> vAppStatusToNodeState) {
|
|
||||||
super(client, successTester, vAppStatusToNodeState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Map<String, String> parseResponse(VAppTemplate template, VApp vAppResponse) {
|
|
||||||
HostingDotComVApp hVApp = HostingDotComVApp.class.cast(vAppResponse);
|
|
||||||
return ImmutableMap.<String, String> of("id", vAppResponse.getId().toASCIIString(), "username", hVApp
|
|
||||||
.getUsername(), "password", hVApp.getPassword());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.compute.config;
|
|
||||||
|
|
||||||
import static org.jclouds.compute.domain.OsFamily.CENTOS;
|
|
||||||
|
|
||||||
import org.jclouds.compute.domain.TemplateBuilder;
|
|
||||||
import org.jclouds.vcloud.compute.VCloudExpressComputeClient;
|
|
||||||
import org.jclouds.vcloud.compute.config.VCloudExpressComputeServiceContextModule;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.compute.HostingDotComVCloudComputeClient;
|
|
||||||
|
|
||||||
import com.google.inject.Injector;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configures the {@link HostingDotComVCloudComputeServiceContext}; requires
|
|
||||||
* {@link HostingDotComVCloudComputeClient} bound.
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
public class HostingDotComVCloudComputeServiceContextModule extends VCloudExpressComputeServiceContextModule {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void configure() {
|
|
||||||
super.configure();
|
|
||||||
bind(VCloudExpressComputeClient.class).to(HostingDotComVCloudComputeClient.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected TemplateBuilder provideTemplate(Injector injector, TemplateBuilder template) {
|
|
||||||
return template.osFamily(CENTOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.config;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
|
||||||
|
|
||||||
import org.jclouds.http.RequiresHttp;
|
|
||||||
import org.jclouds.rest.ConfiguresRestClient;
|
|
||||||
import org.jclouds.vcloud.CommonVCloudClient;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressAsyncClient;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressClient;
|
|
||||||
import org.jclouds.vcloud.config.BaseVCloudExpressRestClientModule;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.HostingDotComVCloudAsyncClient;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.HostingDotComVCloudClient;
|
|
||||||
|
|
||||||
import com.google.inject.Provides;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configures the VCloud authentication service connection, including logging and http transport.
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@RequiresHttp
|
|
||||||
@ConfiguresRestClient
|
|
||||||
public class HostingDotComVCloudRestClientModule extends
|
|
||||||
BaseVCloudExpressRestClientModule<HostingDotComVCloudClient, HostingDotComVCloudAsyncClient> {
|
|
||||||
|
|
||||||
public HostingDotComVCloudRestClientModule() {
|
|
||||||
super(HostingDotComVCloudClient.class, HostingDotComVCloudAsyncClient.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
protected VCloudExpressAsyncClient provideVCloudAsyncClient(HostingDotComVCloudAsyncClient in) {
|
|
||||||
return in;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
protected VCloudExpressClient provideVCloudClient(HostingDotComVCloudClient in) {
|
|
||||||
return in;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected URI provideDefaultNetwork(CommonVCloudClient client) {
|
|
||||||
return URI.create("https://vcloud.safesecureweb.com/network/1990");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.domain;
|
|
||||||
|
|
||||||
import org.jclouds.vcloud.domain.VApp;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.internal.HostingDotComVAppImpl;
|
|
||||||
|
|
||||||
import com.google.inject.ImplementedBy;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@ImplementedBy(HostingDotComVAppImpl.class)
|
|
||||||
public interface HostingDotComVApp extends VApp {
|
|
||||||
|
|
||||||
String getUsername();
|
|
||||||
|
|
||||||
String getPassword();
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.domain.internal;
|
|
||||||
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.jclouds.vcloud.domain.NamedResource;
|
|
||||||
import org.jclouds.vcloud.domain.ResourceAllocation;
|
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
|
||||||
import org.jclouds.vcloud.domain.VirtualSystem;
|
|
||||||
import org.jclouds.vcloud.domain.internal.VAppImpl;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.HostingDotComVApp;
|
|
||||||
|
|
||||||
import com.google.common.collect.ListMultimap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locations of resources in vCloud
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class HostingDotComVAppImpl extends VAppImpl implements HostingDotComVApp {
|
|
||||||
|
|
||||||
private final String username;
|
|
||||||
private final String password;;
|
|
||||||
|
|
||||||
/** The serialVersionUID */
|
|
||||||
private static final long serialVersionUID = 8464716396538298809L;
|
|
||||||
|
|
||||||
public HostingDotComVAppImpl(String name, URI location, VAppStatus status, Long size, NamedResource vDC,
|
|
||||||
ListMultimap<String, String> networkToAddresses, Integer osType, String operatingSystemDescription,
|
|
||||||
VirtualSystem system, Set<ResourceAllocation> resourceAllocations, String username, String password) {
|
|
||||||
super(name, location, status, size, vDC, networkToAddresses, osType, operatingSystemDescription, system,
|
|
||||||
resourceAllocations);
|
|
||||||
this.username = username;
|
|
||||||
this.password = password;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUsername() {
|
|
||||||
return username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword() {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
final int prime = 31;
|
|
||||||
int result = super.hashCode();
|
|
||||||
result = prime * result + ((password == null) ? 0 : password.hashCode());
|
|
||||||
result = prime * result + ((username == null) ? 0 : username.hashCode());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (!super.equals(obj))
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
HostingDotComVAppImpl other = (HostingDotComVAppImpl) obj;
|
|
||||||
if (password == null) {
|
|
||||||
if (other.password != null)
|
|
||||||
return false;
|
|
||||||
} else if (!password.equals(other.password))
|
|
||||||
return false;
|
|
||||||
if (username == null) {
|
|
||||||
if (other.username != null)
|
|
||||||
return false;
|
|
||||||
} else if (!username.equals(other.username))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.xml;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.HostingDotComVApp;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.internal.HostingDotComVAppImpl;
|
|
||||||
import org.jclouds.vcloud.xml.ResourceAllocationHandler;
|
|
||||||
import org.jclouds.vcloud.xml.VAppHandler;
|
|
||||||
import org.jclouds.vcloud.xml.VirtualSystemHandler;
|
|
||||||
import org.xml.sax.Attributes;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
public class HostingDotComVAppHandler extends VAppHandler {
|
|
||||||
|
|
||||||
private String username;
|
|
||||||
private String password;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public HostingDotComVAppHandler(VirtualSystemHandler systemHandler, ResourceAllocationHandler allocationHandler) {
|
|
||||||
super(systemHandler, allocationHandler);
|
|
||||||
}
|
|
||||||
|
|
||||||
public HostingDotComVApp getResult() {
|
|
||||||
return new HostingDotComVAppImpl(name, location, status, size, vDC, networkToAddresses, osType,
|
|
||||||
operatingSystemDescription, system, allocations, username, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
|
|
||||||
super.startElement(uri, localName, qName, attributes);
|
|
||||||
if (attributes.getIndex("key") != -1) {
|
|
||||||
String key = attributes.getValue(attributes.getIndex("key"));
|
|
||||||
if ("username".equals(key)) {
|
|
||||||
username = attributes.getValue(attributes.getIndex("value"));
|
|
||||||
} else if ("password".equals(key)) {
|
|
||||||
password = attributes.getValue(attributes.getIndex("value"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.jclouds.compute.ComputeServiceContextFactory;
|
|
||||||
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressClientLiveTest;
|
|
||||||
import org.testng.annotations.BeforeGroups;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
import com.google.inject.Module;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests behavior of {@code HostingDotComVCloudClient}
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@Test(groups = "live", sequential = true, testName = "vcloud.HostingDotComVCloudClientLiveTest")
|
|
||||||
public class HostingDotComVCloudClientLiveTest extends VCloudExpressClientLiveTest {
|
|
||||||
|
|
||||||
@BeforeGroups(groups = { "live" })
|
|
||||||
@Override
|
|
||||||
public void setupClient() {
|
|
||||||
identity = checkNotNull(System.getProperty("jclouds.test.identity"), "jclouds.test.identity");
|
|
||||||
String credential = checkNotNull(System.getProperty("jclouds.test.credential"), "jclouds.test.credential");
|
|
||||||
|
|
||||||
context = new ComputeServiceContextFactory().createContext("hostingdotcom", identity, credential,
|
|
||||||
ImmutableSet.<Module> of(new Log4JLoggingModule()), new Properties()).getProviderSpecificContext();
|
|
||||||
connection = context.getApi();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom;
|
|
||||||
|
|
||||||
import org.jclouds.compute.util.ComputeServiceUtils;
|
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Test(groups = "unit")
|
|
||||||
public class ProvidersInPropertiesTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSupportedProviders() {
|
|
||||||
Iterable<String> providers = Utils.getSupportedProviders();
|
|
||||||
assert Iterables.contains(providers, "hostingdotcom") : providers;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSupportedComputeServiceProviders() {
|
|
||||||
Iterable<String> providers = ComputeServiceUtils.getSupportedProviders();
|
|
||||||
assert Iterables.contains(providers, "hostingdotcom") : providers;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,69 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.compute;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.jclouds.compute.domain.OsFamily;
|
|
||||||
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
|
||||||
import org.jclouds.rest.RestContextFactory;
|
|
||||||
import org.jclouds.vcloud.compute.VCloudExpressComputeClientLiveTest;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.HostingDotComVCloudClient;
|
|
||||||
import org.testng.annotations.BeforeGroups;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
|
||||||
import com.google.inject.Injector;
|
|
||||||
import com.google.inject.Key;
|
|
||||||
import com.google.inject.Module;
|
|
||||||
import com.google.inject.TypeLiteral;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests behavior of {@code HostingDotComVCloudComputeClient}
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@Test(groups = "live", enabled = true, sequential = true, testName = "vcloud.HostingDotComVCloudComputeClientLiveTest")
|
|
||||||
public class HostingDotComVCloudComputeClientLiveTest extends VCloudExpressComputeClientLiveTest {
|
|
||||||
|
|
||||||
@BeforeGroups(groups = { "live" })
|
|
||||||
@Override
|
|
||||||
public void setupClient() {
|
|
||||||
String identity = checkNotNull(System.getProperty("jclouds.test.identity"), "jclouds.test.identity");
|
|
||||||
String credential = checkNotNull(System.getProperty("jclouds.test.credential"), "jclouds.test.credential");
|
|
||||||
Injector injector = new RestContextFactory().createContextBuilder("hostingdotcom", identity,
|
|
||||||
credential, ImmutableSet.<Module> of(new Log4JLoggingModule()), new Properties())
|
|
||||||
.buildInjector();
|
|
||||||
|
|
||||||
computeClient = injector.getInstance(HostingDotComVCloudComputeClient.class);
|
|
||||||
client = injector.getInstance(HostingDotComVCloudClient.class);
|
|
||||||
addressTester = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
|
|
||||||
}));
|
|
||||||
expectationMap = ImmutableMap.<OsFamily, Expectation> builder().put(OsFamily.CENTOS,
|
|
||||||
new Expectation(4194304 / 2 * 10, "Red Hat Enterprise Linux 5 (64-bit)")).build();
|
|
||||||
provider = "vcloudtest";
|
|
||||||
templateName = "3";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.compute;
|
|
||||||
|
|
||||||
import static org.testng.Assert.assertEquals;
|
|
||||||
|
|
||||||
import org.jclouds.compute.domain.OsFamily;
|
|
||||||
import org.jclouds.compute.domain.Template;
|
|
||||||
import org.jclouds.vcloud.compute.VCloudExpressComputeServiceLiveTest;
|
|
||||||
import org.testng.annotations.BeforeClass;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@Test(groups = "live", enabled = true, sequential = true, testName = "compute.HostingDotComVCloudComputeServiceLiveTest")
|
|
||||||
public class HostingDotComVCloudComputeServiceLiveTest extends VCloudExpressComputeServiceLiveTest {
|
|
||||||
@BeforeClass
|
|
||||||
@Override
|
|
||||||
public void setServiceDefaults() {
|
|
||||||
provider = "hostingdotcom";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testTemplateBuilder() {
|
|
||||||
Template defaultTemplate = client.templateBuilder().build();
|
|
||||||
assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
|
|
||||||
assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.CENTOS);
|
|
||||||
assertEquals(defaultTemplate.getLocation().getId(), "188849");
|
|
||||||
assertEquals(defaultTemplate.getSize().getCores(), 1.0d);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
* ====================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jclouds.vcloud.hostingdotcom.xml;
|
|
||||||
|
|
||||||
import static org.testng.Assert.assertEquals;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.net.URI;
|
|
||||||
import java.net.UnknownHostException;
|
|
||||||
|
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
|
||||||
import org.jclouds.vcloud.domain.ResourceAllocation;
|
|
||||||
import org.jclouds.vcloud.domain.VAppStatus;
|
|
||||||
import org.jclouds.vcloud.domain.internal.NamedResourceImpl;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.HostingDotComVApp;
|
|
||||||
import org.jclouds.vcloud.hostingdotcom.domain.internal.HostingDotComVAppImpl;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableListMultimap;
|
|
||||||
import com.google.common.collect.ImmutableSortedSet;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests behavior of {@code HostingDotComVAppHandler}
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
@Test(groups = "unit", testName = "vcloud.HostingDotComVAppHandlerTest")
|
|
||||||
public class HostingDotComVAppHandlerTest extends BaseHandlerTest {
|
|
||||||
|
|
||||||
public void testApplyInputStream() throws UnknownHostException {
|
|
||||||
InputStream is = getClass().getResourceAsStream("/hostingdotcom/instantiatevapp.xml");
|
|
||||||
|
|
||||||
HostingDotComVApp result = (HostingDotComVApp) factory.create(
|
|
||||||
injector.getInstance(HostingDotComVAppHandler.class)).parse(is);
|
|
||||||
|
|
||||||
HostingDotComVApp expects = new HostingDotComVAppImpl("188849-33", URI
|
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/vapp/188849-33"), VAppStatus.RESOLVED, null,
|
|
||||||
new NamedResourceImpl(null, "application/vnd.vmware.vcloud.vdc+xml", URI
|
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/188849")), ImmutableListMultimap
|
|
||||||
.<String, String> of(), null, null, null, ImmutableSortedSet.<ResourceAllocation> of(), "root",
|
|
||||||
"meatisyummy");
|
|
||||||
|
|
||||||
assertEquals(result, expects);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<VApp name="188849-33" status="1"
|
|
||||||
href="https://vcloud.safesecureweb.com/api/v0.8/vapp/188849-33"
|
|
||||||
xmlns="http://www.vmware.com/vcloud/v0.8"
|
|
||||||
xmlns:hmsns="https://vcloud.safesecureweb.com/ns/v1/VApp"
|
|
||||||
xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://www.vmware.com/vcloud/1
|
|
||||||
https://vcloud.safesecureweb.com/ns/vcloud.xsd">
|
|
||||||
<Link rel="up" href="https://vcloud.safesecureweb.com/api/v0.8/vdc/188849" type="application/vnd.vmware.vcloud.vdc+xml" />
|
|
||||||
<ovf:ProductSection>
|
|
||||||
<ovf:Info>Product Section Details</ovf:Info>
|
|
||||||
<Property key="username" value="root" />
|
|
||||||
<Property key="password" value="meatisyummy" />
|
|
||||||
</ovf:ProductSection>
|
|
||||||
</VApp>
|
|
|
@ -1,170 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
|
|
||||||
|
|
||||||
Copyright (C) 2010 Cloud Conscious, LLC.
|
|
||||||
<info@cloudconscious.com>
|
|
||||||
|
|
||||||
====================================================================
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
|
||||||
applicable law or agreed to in writing, software distributed
|
|
||||||
under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions
|
|
||||||
and limitations under the License.
|
|
||||||
====================================================================
|
|
||||||
-->
|
|
||||||
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
|
|
||||||
|
|
||||||
<!--
|
|
||||||
For more configuration infromation and examples see the Apache
|
|
||||||
Log4j website: http://logging.apache.org/log4j/
|
|
||||||
-->
|
|
||||||
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
|
|
||||||
debug="false">
|
|
||||||
|
|
||||||
<!-- A time/date based rolling appender -->
|
|
||||||
<appender name="WIREFILE" class="org.apache.log4j.DailyRollingFileAppender">
|
|
||||||
<param name="File" value="target/test-data/jclouds-wire.log" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
|
|
||||||
<!-- Rollover at midnight each day -->
|
|
||||||
<param name="DatePattern" value="'.'yyyy-MM-dd" />
|
|
||||||
|
|
||||||
<param name="Threshold" value="TRACE" />
|
|
||||||
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<!-- The default pattern: Date Priority [Category] Message\n -->
|
|
||||||
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
The full pattern: Date MS Priority [Category]
|
|
||||||
(Thread:NDC) Message\n <param name="ConversionPattern"
|
|
||||||
value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
|
|
||||||
-->
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- A time/date based rolling appender -->
|
|
||||||
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
|
|
||||||
<param name="File" value="target/test-data/jclouds.log" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
|
|
||||||
<!-- Rollover at midnight each day -->
|
|
||||||
<param name="DatePattern" value="'.'yyyy-MM-dd" />
|
|
||||||
|
|
||||||
<param name="Threshold" value="TRACE" />
|
|
||||||
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<!-- The default pattern: Date Priority [Category] Message\n -->
|
|
||||||
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
The full pattern: Date MS Priority [Category]
|
|
||||||
(Thread:NDC) Message\n <param name="ConversionPattern"
|
|
||||||
value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
|
|
||||||
-->
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- A time/date based rolling appender -->
|
|
||||||
<appender name="COMPUTEFILE" class="org.apache.log4j.DailyRollingFileAppender">
|
|
||||||
<param name="File" value="target/test-data/jclouds-compute.log" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
|
|
||||||
<!-- Rollover at midnight each day -->
|
|
||||||
<param name="DatePattern" value="'.'yyyy-MM-dd" />
|
|
||||||
|
|
||||||
<param name="Threshold" value="TRACE" />
|
|
||||||
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<!-- The default pattern: Date Priority [Category] Message\n -->
|
|
||||||
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
The full pattern: Date MS Priority [Category]
|
|
||||||
(Thread:NDC) Message\n <param name="ConversionPattern"
|
|
||||||
value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
|
|
||||||
-->
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- A time/date based rolling appender -->
|
|
||||||
<appender name="SSHFILE" class="org.apache.log4j.DailyRollingFileAppender">
|
|
||||||
<param name="File" value="target/test-data/jclouds-ssh.log" />
|
|
||||||
<param name="Append" value="true" />
|
|
||||||
|
|
||||||
<!-- Rollover at midnight each day -->
|
|
||||||
<param name="DatePattern" value="'.'yyyy-MM-dd" />
|
|
||||||
|
|
||||||
<param name="Threshold" value="TRACE" />
|
|
||||||
|
|
||||||
<layout class="org.apache.log4j.PatternLayout">
|
|
||||||
<!-- The default pattern: Date Priority [Category] Message\n -->
|
|
||||||
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
The full pattern: Date MS Priority [Category]
|
|
||||||
(Thread:NDC) Message\n <param name="ConversionPattern"
|
|
||||||
value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
|
|
||||||
-->
|
|
||||||
</layout>
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<appender name="ASYNCCOMPUTE" class="org.apache.log4j.AsyncAppender">
|
|
||||||
<appender-ref ref="COMPUTEFILE" />
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<appender name="ASYNCSSH" class="org.apache.log4j.AsyncAppender">
|
|
||||||
<appender-ref ref="SSHFILE" />
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
|
|
||||||
<appender-ref ref="FILE" />
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<appender name="ASYNCWIRE" class="org.apache.log4j.AsyncAppender">
|
|
||||||
<appender-ref ref="WIREFILE" />
|
|
||||||
</appender>
|
|
||||||
|
|
||||||
<!-- ================ -->
|
|
||||||
<!-- Limit categories -->
|
|
||||||
<!-- ================ -->
|
|
||||||
|
|
||||||
<category name="org.jclouds">
|
|
||||||
<priority value="DEBUG" />
|
|
||||||
<appender-ref ref="ASYNC" />
|
|
||||||
</category>
|
|
||||||
|
|
||||||
<category name="jclouds.headers">
|
|
||||||
<priority value="DEBUG" />
|
|
||||||
<appender-ref ref="ASYNCWIRE" />
|
|
||||||
</category>
|
|
||||||
|
|
||||||
<category name="jclouds.ssh">
|
|
||||||
<priority value="DEBUG" />
|
|
||||||
<appender-ref ref="ASYNCSSH" />
|
|
||||||
</category>
|
|
||||||
|
|
||||||
<category name="jclouds.wire">
|
|
||||||
<priority value="DEBUG" />
|
|
||||||
<appender-ref ref="ASYNCWIRE" />
|
|
||||||
</category>
|
|
||||||
|
|
||||||
<category name="jclouds.compute">
|
|
||||||
<priority value="TRACE" />
|
|
||||||
<appender-ref ref="ASYNCCOMPUTE" />
|
|
||||||
</category>
|
|
||||||
<!-- ======================= -->
|
|
||||||
<!-- Setup the Root category -->
|
|
||||||
<!-- ======================= -->
|
|
||||||
|
|
||||||
<root>
|
|
||||||
<priority value="WARN" />
|
|
||||||
</root>
|
|
||||||
|
|
||||||
</log4j:configuration>
|
|
|
@ -34,7 +34,6 @@
|
||||||
<modules>
|
<modules>
|
||||||
<module>core</module>
|
<module>core</module>
|
||||||
<module>terremark</module>
|
<module>terremark</module>
|
||||||
<module>hostingdotcom</module>
|
|
||||||
<module>bluelock</module>
|
<module>bluelock</module>
|
||||||
</modules>
|
</modules>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
|
@ -681,8 +681,9 @@ public class TerremarkVCloudExpressAsyncClientTest extends RestClientTest<Terrem
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1"))), ImmutableMap
|
.create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1"))), ImmutableMap
|
||||||
.<String, NamedResource> of("vdc", new NamedResourceImpl("vdc",
|
.<String, NamedResource> of("vdc", new NamedResourceImpl("vdc",
|
||||||
TerremarkVCloudExpressMediaType.VDC_XML, URI
|
TerremarkVCloudExpressMediaType.VDC_XML, URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/1"))), null,
|
.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/1"))), ImmutableMap
|
||||||
new NamedResourceImpl("tasksList", TerremarkVCloudExpressMediaType.TASKSLIST_XML, URI
|
.<String, NamedResource> of(), new NamedResourceImpl("tasksList",
|
||||||
|
TerremarkVCloudExpressMediaType.TASKSLIST_XML, URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/1")), new NamedResourceImpl(
|
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/1")), new NamedResourceImpl(
|
||||||
"keysList", TerremarkVCloudExpressMediaType.KEYSLIST_XML, URI
|
"keysList", TerremarkVCloudExpressMediaType.KEYSLIST_XML, URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/keysList/1"))));
|
.create("https://vcloud.safesecureweb.com/api/v0.8/keysList/1"))));
|
||||||
|
|
Loading…
Reference in New Issue