mirror of https://github.com/apache/jclouds.git
Issue 112: terremark now supports clone
git-svn-id: http://jclouds.googlecode.com/svn/trunk@2622 3d8758e0-26b5-11de-8745-db77d3ebf521
This commit is contained in:
parent
b9de6558d5
commit
480fc9b31a
|
@ -96,7 +96,7 @@ public class TerremarkVAppHandler extends ParseSax.HandlerWithResult<TerremarkVA
|
|||
size = Integer.parseInt(attributes.getValue(attributes.getIndex("size")));
|
||||
} else if (qName.equals("OperatingSystemSection")) {
|
||||
inOs = true;
|
||||
} else if (qName.equals("q1:NetworkConnection")) {
|
||||
} else if (qName.equals("NetworkConnection")) {
|
||||
networkName = attributes.getValue(attributes.getIndex("Network"));
|
||||
} else {
|
||||
systemHandler.startElement(uri, localName, qName, attributes);
|
||||
|
@ -111,7 +111,7 @@ public class TerremarkVAppHandler extends ParseSax.HandlerWithResult<TerremarkVA
|
|||
inOs = false;
|
||||
} else if (inOs && qName.equals("Description")) {
|
||||
operatingSystemDescription = currentText.toString().trim();
|
||||
} else if (qName.equals("q1:IpAddress")) {
|
||||
} else if (qName.equals("IpAddress")) {
|
||||
networkToAddresses.put(networkName, parseInetAddress(currentText.toString().trim()));
|
||||
} else if (qName.equals("System")) {
|
||||
systemHandler.endElement(uri, localName, qName);
|
||||
|
|
|
@ -191,7 +191,7 @@ public class TerremarkVCloudClientLiveTest extends VCloudClientLiveTest {
|
|||
vApp = tmClient.instantiateVAppTemplateInVDC(vDCId, serverName, vAppTemplateId,
|
||||
instantiateOptions);
|
||||
|
||||
assertEquals(vApp.getStatus(), VAppStatus.UNRESOLVED);
|
||||
assertEquals(vApp.getStatus(), VAppStatus.RESOLVED);
|
||||
|
||||
// in terremark, this should be a no-op, as it should simply return the above task, which is
|
||||
// already deploying
|
||||
|
@ -203,7 +203,7 @@ public class TerremarkVCloudClientLiveTest extends VCloudClientLiveTest {
|
|||
|
||||
vApp = tmClient.getVApp(vApp.getId());
|
||||
|
||||
assertEquals(vApp.getStatus(), VAppStatus.UNRESOLVED);
|
||||
assertEquals(vApp.getStatus(), VAppStatus.RESOLVED);
|
||||
|
||||
try {// per docs, this is not supported
|
||||
tmClient.cancelTask(deployTask.getId());
|
||||
|
@ -250,9 +250,11 @@ public class TerremarkVCloudClientLiveTest extends VCloudClientLiveTest {
|
|||
assertEquals(is.getDescription(), "holy cow");
|
||||
}
|
||||
|
||||
// 500 errors
|
||||
@Test(dependsOnMethods = { "testInstantiateAndPowerOn" }, expectedExceptions = HttpResponseException.class)
|
||||
@Test(dependsOnMethods = { "testInstantiateAndPowerOn" })
|
||||
public void testCloneVApp() {
|
||||
assert successTester.apply(tmClient.powerOffVApp(vApp.getId()).getId());
|
||||
System.out.printf("%d: done powering off vApp%n", System.currentTimeMillis());
|
||||
|
||||
// lookup the id of the datacenter you are deploying into
|
||||
String vDCId = tmClient.getDefaultVDC().getId();
|
||||
|
||||
|
@ -269,7 +271,10 @@ public class TerremarkVCloudClientLiveTest extends VCloudClientLiveTest {
|
|||
// wait for the task to complete
|
||||
assert successTester.apply(task.getId());
|
||||
System.out.printf("%d: done cloning vApp%n", System.currentTimeMillis());
|
||||
|
||||
|
||||
assert successTester.apply(tmClient.powerOnVApp(vApp.getId()).getId());
|
||||
System.out.printf("%d: done powering on vApp%n", System.currentTimeMillis());
|
||||
|
||||
// refresh task to get the new vApp location
|
||||
task = tmClient.getTask(task.getId());
|
||||
|
||||
|
@ -350,13 +355,14 @@ public class TerremarkVCloudClientLiveTest extends VCloudClientLiveTest {
|
|||
vApp.getResourceAllocationByType().get(ResourceType.MEMORY)).getVirtualQuantity(),
|
||||
1024);
|
||||
assertEquals(vApp.getResourceAllocationByType().get(ResourceType.DISK_DRIVE).size(), 2);
|
||||
|
||||
|
||||
// extract the disks on the vApp sorted by addressOnParent
|
||||
List<ResourceAllocation> disks = Lists.newArrayList(vApp.getResourceAllocationByType()
|
||||
.get(ResourceType.DISK_DRIVE));
|
||||
|
||||
List<ResourceAllocation> disks = Lists.newArrayList(vApp.getResourceAllocationByType().get(
|
||||
ResourceType.DISK_DRIVE));
|
||||
|
||||
// delete the second disk
|
||||
task = tmClient.configureVApp(vApp, deleteDiskWithAddressOnParent(disks.get(1).getAddressOnParent()));
|
||||
task = tmClient.configureVApp(vApp, deleteDiskWithAddressOnParent(disks.get(1)
|
||||
.getAddressOnParent()));
|
||||
|
||||
assert successTester.apply(task.getId());
|
||||
|
||||
|
@ -420,7 +426,6 @@ public class TerremarkVCloudClientLiveTest extends VCloudClientLiveTest {
|
|||
}
|
||||
tmClient.deleteVApp(vApp.getId());
|
||||
}
|
||||
|
||||
if (clone != null) {
|
||||
try {
|
||||
successTester.apply(tmClient.powerOffVApp(clone.getId()).getId());
|
||||
|
|
|
@ -101,23 +101,23 @@ public class TerremarkVAppHandlerTest extends BaseHandlerTest {
|
|||
|
||||
TerremarkVApp result = (TerremarkVApp) factory.create(
|
||||
injector.getInstance(TerremarkVAppHandler.class)).parse(is);
|
||||
assertEquals(result.getId(), 16161 + "");
|
||||
assertEquals(result.getId(), 16238 + "");
|
||||
|
||||
assertEquals(result.getName(), "centos-53");
|
||||
assertEquals(result.getStatus(), VAppStatus.ON);
|
||||
assertEquals(result.getStatus(), VAppStatus.OFF);
|
||||
|
||||
assertEquals(result.getSize().longValue(), 10485760);
|
||||
assertEquals(result.getOperatingSystemDescription(), "Red Hat Enterprise Linux 5 (64-bit)");
|
||||
|
||||
assertEquals(result.getLocation(), URI
|
||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16161"));
|
||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16238"));
|
||||
assertEquals(result.getVDC(), new NamedResourceImpl("32", null, VCloudMediaType.VDC_XML, URI
|
||||
.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32")));
|
||||
|
||||
assertEquals(result.getSystem(), new TerremarkVirtualSystem(null, null, null, null, null,
|
||||
null, null, null, null, null, null, "Virtual Hardware Family", 0, null, null, null,
|
||||
null, null, "centos-53", "vmx-07"));
|
||||
assertEquals(result.getNetworkToAddresses().get("Internal"), ImmutableList.<InetAddress>of());
|
||||
assertEquals(result.getNetworkToAddresses().get("Internal"), ImmutableList.<InetAddress>of(InetAddress.getByName("10.114.34.132")));
|
||||
|
||||
ResourceAllocation cpu = new ResourceAllocation(1, "1 virtual CPU(s)",
|
||||
"Number of Virtual CPUs", ResourceType.PROCESSOR, null, null, null, null, null,
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
<VApp href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16161"
|
||||
<VApp href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16238"
|
||||
type="application/vnd.vmware.vcloud.vApp+xml" name="centos-53"
|
||||
status="4" size="10485760" xmlns="http://www.vmware.com/vcloud/v0.8"
|
||||
status="2" size="10485760" xmlns="http://www.vmware.com/vcloud/v0.8"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Link rel="up"
|
||||
href="https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32"
|
||||
type="application/vnd.vmware.vcloud.vdc+xml" />
|
||||
<Link rel="down"
|
||||
href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16161/options/compute"
|
||||
href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16238/options/compute"
|
||||
type="application/xml" name="Compute Options" />
|
||||
<Link rel="down"
|
||||
href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16161/options/customization"
|
||||
href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/16238/options/customization"
|
||||
type="application/xml" name="Customization Options" />
|
||||
<NetworkConnectionSection xmlns="http://schemas.dmtf.org/ovf/envelope/1">
|
||||
<NetworkConnection Network="Internal"
|
||||
xmlns="http://www.vmware.com/vcloud/v0.8" />
|
||||
xmlns="http://www.vmware.com/vcloud/v0.8">
|
||||
<IpAddress>10.114.34.132</IpAddress>
|
||||
</NetworkConnection>
|
||||
</NetworkConnectionSection>
|
||||
<OperatingSystemSection d2p1:id="26"
|
||||
xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:d2p1="http://schemas.dmtf.org/ovf/envelope/1">
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
<Link rel="down"
|
||||
href="https://services.vcloudexpress.terremark.com/api/v0.8/vapp/15639/options/customization"
|
||||
type="application/xml" name="Customization Options" />
|
||||
<Section xsi:type="q1:NetworkConnectionSectionType" xmlns="http://schemas.dmtf.org/ovf/envelope/1"
|
||||
<Section xsi:type="NetworkConnectionSectionType" xmlns="http://schemas.dmtf.org/ovf/envelope/1"
|
||||
xmlns:q1="http://www.vmware.com/vcloud/v1">
|
||||
<q1:NetworkConnection Network="Internal">
|
||||
<q1:IpAddress>10.114.34.131</q1:IpAddress>
|
||||
</q1:NetworkConnection>
|
||||
<NetworkConnection Network="Internal">
|
||||
<IpAddress>10.114.34.131</IpAddress>
|
||||
</NetworkConnection>
|
||||
</Section>
|
||||
<OperatingSystemSection d2p1:id="45"
|
||||
xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:d2p1="http://schemas.dmtf.org/ovf/envelope/1">
|
||||
|
|
Loading…
Reference in New Issue