You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/11/17 17:21:16 UTC

[09/32] jclouds-labs git commit: JCLOUDS-780 Remove vcloud-director.

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/775b89fd/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApiLiveTest.java
deleted file mode 100644
index 2ebc07e..0000000
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateApiLiveTest.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.director.v1_5.features;
-
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkCustomizationSection;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkLeaseSettingsSection;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkMetadata;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkMetadataFor;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkMetadataKeyAbsentFor;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkNetworkConfigSection;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkOvfEnvelope;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkOvfNetworkSection;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkOwner;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkProductSectionList;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.checkVAppTemplate;
-import static org.jclouds.vcloud.director.v1_5.domain.Checks.metadataToMap;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-import java.net.URI;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.jclouds.dmtf.ovf.NetworkSection;
-import org.jclouds.vcloud.director.v1_5.AbstractVAppApiLiveTest;
-import org.jclouds.vcloud.director.v1_5.domain.Link;
-import org.jclouds.vcloud.director.v1_5.domain.Link.Rel;
-import org.jclouds.vcloud.director.v1_5.domain.Metadata;
-import org.jclouds.vcloud.director.v1_5.domain.MetadataEntry;
-import org.jclouds.vcloud.director.v1_5.domain.Owner;
-import org.jclouds.vcloud.director.v1_5.domain.ProductSectionList;
-import org.jclouds.vcloud.director.v1_5.domain.Reference;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
-import org.jclouds.vcloud.director.v1_5.domain.dmtf.Envelope;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.domain.section.CustomizationSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.LeaseSettingsSection;
-import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConfigSection;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicates;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Iterables;
-
-/**
- * NOTE The environment MUST have at least one template configured
- */
-@Test(groups = { "live", "user" }, singleThreaded = true, testName = "VAppTemplateApiLiveTest")
-public class VAppTemplateApiLiveTest extends AbstractVAppApiLiveTest {
-
-   private URI vAppTemplateHref;
-   private String key;
-   private String val;
-
-   @BeforeClass
-   void setUp() {
-      vAppTemplateHref = context.resolveIdToHref(vAppTemplateId);
-   }
-
-   @AfterClass(alwaysRun = true, dependsOnMethods = { "cleanUpEnvironment" })
-   protected void tidyUp() {
-      if (key != null) {
-         try {
-            Task remove = context.getApi().getMetadataApi(vAppTemplateHref).remove(key);
-            taskDoneEventually(remove);
-         } catch (Exception e) {
-            logger.warn(e, "Error when deleting metadata entry '%s'", key);
-         }
-      }
-   }
-
-   private VAppTemplate cloneVAppTemplate(boolean waitForTask) throws Exception {
-      CloneVAppTemplateParams cloneVAppTemplateParams = CloneVAppTemplateParams.builder()
-               .source(Reference.builder().href(lazyGetVAppTemplate().getHref()).build()).isSourceDelete(false)
-               .name("clone").build();
-      VAppTemplate clonedVappTemplate = vdcApi
-            .cloneVAppTemplate(context.resolveIdToHref(vdcId), cloneVAppTemplateParams);
-
-      if (waitForTask) {
-         Task cloneTask = Iterables.getFirst(clonedVappTemplate.getTasks(), null);
-         assertNotNull(cloneTask, "vdcApi.cloneVAppTemplate returned VAppTemplate that did not contain any tasks");
-         assertTaskSucceeds(cloneTask);
-      }
-      return clonedVappTemplate;
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}")
-   public void testGetVAppTemplate() {
-      vAppTemplate = vAppTemplateApi.get(vAppTemplateHref);
-
-      checkVAppTemplate(vAppTemplate);
-      assertEquals(vAppTemplate.getId(), vAppTemplateId);
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}/owner")
-   public void testGetVAppTemplateOwner() {
-      Owner owner = vAppTemplateApi.getOwner(vAppTemplateHref);
-
-      checkOwner(owner);
-      assertEquals(owner.getUser(), vAppTemplateApi.get(vAppTemplateHref).getOwner().getUser());
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}/customizationSection")
-   public void testGetCustomizationSection() {
-      CustomizationSection customizationSection = vAppTemplateApi.getCustomizationSection(vAppTemplateHref);
-
-      checkCustomizationSection(customizationSection);
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}/productSections")
-   public void testGetProductSections() {
-      ProductSectionList productSectionList = vAppTemplateApi.getProductSections(vAppTemplateHref);
-
-      checkProductSectionList(productSectionList);
-   }
-   
-   @Test(description = "GET /vAppTemplate/{id}/leaseSettingsSection")
-   public void testGetLeaseSettingsSection() {
-      LeaseSettingsSection leaseSettingsSection = vAppTemplateApi.getLeaseSettingsSection(vAppTemplateHref);
-
-      checkLeaseSettingsSection(leaseSettingsSection);
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}/metadata", dependsOnMethods = { "testEditMetadataValue" })
-   public void testGetVAppTemplateMetadata() {
-      Metadata metadata = context.getApi().getMetadataApi(vAppTemplateHref).get();
-
-      checkMetadata(metadata);
-   }
-
-   // implicitly tested by testEditVAppTemplateMetadataValue, which first adds the metadata entry;
-   // otherwise no entry may exist
-   @Test(description = "GET /vAppTemplate/{id}/metadata/{key}", dependsOnMethods = { "testGetVAppTemplateMetadata" })
-   public void testGetMetadataValue() {
-      Metadata metadata = context.getApi().getMetadataApi(vAppTemplateHref).get();
-      MetadataEntry entry = Iterables.get(metadata.getMetadataEntries(), 0);
-
-      String val = context.getApi().getMetadataApi(vAppTemplateHref).get(entry.getKey());
-
-      assertEquals(val, entry.getValue());
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}/networkConfigSection")
-   public void testGetVAppTemplateNetworkConfigSection() {
-      NetworkConfigSection networkConfigSection = vAppTemplateApi.getNetworkConfigSection(vAppTemplateHref);
-
-      checkNetworkConfigSection(networkConfigSection);
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}/networkSection")
-   public void testGetVAppTemplateNetworkSection() {
-      NetworkSection networkSection = vAppTemplateApi.getNetworkSection(vAppTemplateHref);
-
-      checkOvfNetworkSection(networkSection);
-   }
-
-   @Test(description = "GET /vAppTemplate/{id}/ovf")
-   public void testGetVAppTemplateOvf() {
-      Envelope envelope = vAppTemplateApi.getOvf(vAppTemplateHref);
-
-      checkOvfEnvelope(envelope);
-   }
-
-   @Test(description = "PUT /vAppTemplate/{id}")
-   public void testEditVAppTemplate() {
-      String name = name("myname-");
-      String description = name("Description ");
-      VAppTemplate template = VAppTemplate.builder().name(name).description(description).build();
-
-      final Task task = vAppTemplateApi.edit(vAppTemplateHref, template);
-      assertTaskSucceeds(task);
-
-      VAppTemplate newTemplate = vAppTemplateApi.get(vAppTemplateHref);
-      assertEquals(newTemplate.getName(), name);
-      assertEquals(newTemplate.getDescription(), description);
-   }
-
-   @Test(description = "POST /vAppTemplate/{id}/metadata", dependsOnMethods = { "testGetVAppTemplate" })
-   public void testEditMetadata() {
-      Metadata oldMetadata = context.getApi().getMetadataApi(vAppTemplateHref).get();
-      Map<String, String> oldMetadataMap = metadataToMap(oldMetadata);
-
-      key = name("key-");
-      val = name("value-");
-
-      final Task task = context.getApi().getMetadataApi(vAppTemplateHref).putAll(ImmutableMap.of(key, val));
-      assertTaskSucceeds(task);
-
-      Metadata newMetadata = context.getApi().getMetadataApi(vAppTemplateHref).get();
-      Map<String, String> expectedMetadataMap = ImmutableMap.<String, String> builder().putAll(oldMetadataMap)
-               .put(key, val).build();
-      checkMetadataFor("vAppTemplate", newMetadata, expectedMetadataMap);
-   }
-
-   @Test(description = "PUT /vAppTemplate/{id}/metadata/{key}", dependsOnMethods = { "testEditMetadata" })
-   public void testEditMetadataValue() {
-      val = "new" + val;
-
-      final Task task = context.getApi().getMetadataApi(vAppTemplateHref).put(key, val);
-      retryTaskSuccess.apply(task);
-
-      String newMetadataValue = context.getApi().getMetadataApi(vAppTemplateHref).get(key);
-      assertEquals(newMetadataValue, val);
-   }
-
-   @Test(description = "DELETE /vAppTemplate/{id}/metadata/{key}", dependsOnMethods = { "testGetMetadataValue" })
-   public void testRemoveVAppTemplateMetadataValue() {
-      final Task deletionTask = context.getApi().getMetadataApi(vAppTemplateHref).remove(key);
-      assertTaskSucceeds(deletionTask);
-
-      Metadata newMetadata = context.getApi().getMetadataApi(vAppTemplateHref).get();
-      checkMetadataKeyAbsentFor("vAppTemplate", newMetadata, key);
-      key = null;
-   }
-
-   // NOTE vAppTemplate supports only storageLease (deployment lease applies to vApp too)
-   @Test(description = "PUT /vAppTemplate/{id}/leaseSettingsSection")
-   public void testEditLeaseSettingsSection() throws Exception {
-      // NOTE use smallish number for storageLeaseInSeconds; it seems to be capped at 5184000?
-      int storageLeaseInSeconds = random.nextInt(10000) + 1;
-
-      LeaseSettingsSection leaseSettingSection = LeaseSettingsSection.builder().info("my info")
-               .storageLeaseInSeconds(storageLeaseInSeconds).build();
-
-      final Task task = vAppTemplateApi.editLeaseSettingsSection(vAppTemplateHref, leaseSettingSection);
-      assertTaskSucceeds(task);
-
-      LeaseSettingsSection newLeaseSettingsSection = vAppTemplateApi.getLeaseSettingsSection(vAppTemplateHref);
-      assertEquals(newLeaseSettingsSection.getStorageLeaseInSeconds(), (Integer) storageLeaseInSeconds);
-   }
-
-   @Test(description = "DELETE /vAppTemplate/{id}", dependsOnMethods = { "testGetVAppTemplate" })
-   public void testRemoveVAppTemplate() throws Exception {
-      VAppTemplate clonedVappTemplate = cloneVAppTemplate(true);
-
-      // Confirm that "get" works pre-remove
-      VAppTemplate vAppTemplatePreDelete = vAppTemplateApi.get(clonedVappTemplate.getHref());
-      checkVAppTemplate(vAppTemplatePreDelete);
-
-      // Delete the template
-      final Task task = vAppTemplateApi.remove(clonedVappTemplate.getHref());
-      assertTaskSucceeds(task);
-
-      // Confirm that can't access post-remove, i.e. template has been removed
-      VAppTemplate removed = vAppTemplateApi.get(clonedVappTemplate.getHref());
-      assertNull(removed);
-   }
-
-   @Test(description = "POST /vAppTemplate/{id}/action/disableDownload")
-   public void testDisableVAppTemplateDownload() throws Exception {
-      vAppTemplateApi.disableDownload(vAppTemplateHref);
-
-      // TODO Check that it really is disabled. The only thing I can see for determining this
-      // is the undocumented "download" link in the VAppTemplate. But that is brittle and we
-      // don't know what timing guarantees there are for adding/removing the link.
-      VAppTemplate vAppTemplate = vAppTemplateApi.get(vAppTemplateHref);
-      Set<Link> links = vAppTemplate.getLinks();
-      assertTrue(Iterables.all(Iterables.transform(links, rel),
-               Predicates.not(Predicates.in(EnumSet.of(Link.Rel.DOWNLOAD_DEFAULT, Link.Rel.DOWNLOAD_ALTERNATE)))),
-               "Should not offer download link after disabling download: " + vAppTemplate);
-   }
-
-   @Test(description = "POST /vAppTemplate/{id}/action/enableDownload")
-   public void testEnableVAppTemplateDownload() throws Exception {
-      // First disable so that enable really has some work to do...
-      vAppTemplateApi.disableDownload(vAppTemplateHref);
-      final Task task = vAppTemplateApi.enableDownload(vAppTemplateHref);
-      assertTaskSucceedsLong(task);
-
-      // TODO Check that it really is enabled. The only thing I can see for determining this
-      // is the undocumented "download" link in the VAppTemplate. But that is brittle and we
-      // don't know what timing guarantees there are for adding/removing the link.
-      VAppTemplate vAppTemplate = vAppTemplateApi.get(vAppTemplateHref);
-      Set<Link> links = vAppTemplate.getLinks();
-      assertTrue(
-               Iterables.any(Iterables.transform(links, rel),
-                        Predicates.in(EnumSet.of(Link.Rel.DOWNLOAD_DEFAULT, Link.Rel.DOWNLOAD_ALTERNATE))),
-               "Should offer download link after enabling download: " + vAppTemplate);
-   }
-
-   private Function<Link, Link.Rel> rel = new Function<Link, Link.Rel>() {
-      @Override
-      public Rel apply(Link input) {
-         return input.getRel();
-      }
-   };
-
-   // This failed previously, but is passing now.
-   // However, it's not part of the official API so not necessary to assert it.
-   @Test(description = "test completed task not included in vAppTemplate")
-   public void testCompletedTaskNotIncludedInVAppTemplate() throws Exception {
-      // Kick off a task, and wait for it to complete
-      vAppTemplateApi.disableDownload(vAppTemplateHref);
-      final Task task = vAppTemplateApi.enableDownload(vAppTemplateHref);
-      assertTaskDoneEventually(task);
-
-      // Ask the VAppTemplate for its tasks, and the status of the matching task if it exists
-      VAppTemplate vAppTemplate = vAppTemplateApi.get(vAppTemplateHref);
-      List<Task> tasks = vAppTemplate.getTasks();
-      for (Task contender : tasks) {
-         if (task.getId().equals(contender.getId())) {
-            Task.Status status = contender.getStatus();
-            if (EnumSet.of(Task.Status.QUEUED, Task.Status.PRE_RUNNING, Task.Status.RUNNING).contains(status)) {
-               fail("Task " + contender + " reported complete, but is included in VAppTemplate in status " + status);
-            }
-         }
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/775b89fd/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiExpectTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiExpectTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiExpectTest.java
deleted file mode 100644
index ddcd6b7..0000000
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiExpectTest.java
+++ /dev/null
@@ -1,575 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.director.v1_5.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.fail;
-
-import java.net.URI;
-import java.text.ParseException;
-
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorException;
-import org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType;
-import org.jclouds.vcloud.director.v1_5.domain.Capabilities;
-import org.jclouds.vcloud.director.v1_5.domain.CapacityWithUsage;
-import org.jclouds.vcloud.director.v1_5.domain.ComputeCapacity;
-import org.jclouds.vcloud.director.v1_5.domain.Error;
-import org.jclouds.vcloud.director.v1_5.domain.Link;
-import org.jclouds.vcloud.director.v1_5.domain.Media;
-import org.jclouds.vcloud.director.v1_5.domain.Media.ImageType;
-import org.jclouds.vcloud.director.v1_5.domain.Metadata;
-import org.jclouds.vcloud.director.v1_5.domain.Owner;
-import org.jclouds.vcloud.director.v1_5.domain.Reference;
-import org.jclouds.vcloud.director.v1_5.domain.User;
-import org.jclouds.vcloud.director.v1_5.domain.VApp;
-import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
-import org.jclouds.vcloud.director.v1_5.domain.Vdc;
-import org.jclouds.vcloud.director.v1_5.domain.params.CaptureVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneMediaParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.ComposeVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.InstantiateVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.UploadVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.internal.VCloudDirectorAdminApiExpectTest;
-import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = { "unit", "user" }, singleThreaded = true, testName = "VdcApiExpectTest")
-public class VdcApiExpectTest extends VCloudDirectorAdminApiExpectTest {
-   
-   private URI vdcURI;
-   
-   @BeforeClass
-   public void before() {
-      String vdcId = "e9cd3387-ac57-4d27-a481-9bee75e0690f";
-      vdcURI = URI.create(endpoint + "/vdc/" + vdcId);
-   }
-   
-   @Test
-   public void testGetVdc() {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("GET", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f")
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/vdc.xml", VCloudDirectorMediaType.VDC)
-               .httpResponseBuilder().build());
-      
-      Vdc expected = getVdc();
-
-      assertEquals(api.getVdcApi().get(vdcURI), expected);
-   }
-
-   @Test
-   public void testResponse400ForInvalidVdcId() {
-      
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("GET", "/vdc/NOTAUUID")
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/error400.xml", VCloudDirectorMediaType.ERROR)
-               .httpResponseBuilder().statusCode(400).build());
-
-      Error expected = Error.builder()
-            .message("validation error : EntityRef has incorrect type, expected type is com.vmware.vcloud.entity.vdc.")
-            .majorErrorCode(400)
-            .minorErrorCode("BAD_REQUEST")
-            .build();
-
-      try {
-         api.getVdcApi().get(URI.create(endpoint + "/vdc/NOTAUUID"));
-         fail("Should give HTTP 400 error");
-      } catch (VCloudDirectorException vde) {
-         assertEquals(vde.getError(), expected);
-      }
-   }
-
-   @Test
-   public void testResponse403ForFakeVdcId() {
-      
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("GET", "/vdc/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/error403-fake.xml", VCloudDirectorMediaType.ERROR)
-               .httpResponseBuilder().statusCode(403).build());
-
-      assertNull(api.getVdcApi().get(URI.create(endpoint + "/vdc/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")));
-   }
-   
-   @Test(enabled = false)
-   public void testCaptureVApp() {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/captureVApp")
-               .xmlFilePayload("/vdc/params/captureVApp.xml", VCloudDirectorMediaType.CAPTURE_VAPP_PARAMS)
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/vdc.xml", VCloudDirectorMediaType.VDC)
-               .httpResponseBuilder().build());
-      
-      VAppTemplate expected = captureVApp();
-
-      // TODO: configure params
-      CaptureVAppParams params = CaptureVAppParams.builder()
-         
-         .build();
-      
-      assertEquals(api.getVdcApi().captureVApp(vdcURI, params), expected);
-   }
-   
-   @Test(enabled = false)
-   public void testResponse4xxForCaptureVAppNoParams() {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/captureVApp")
-               .xmlFilePayload("/vdc/params/captureVApp.xml", VCloudDirectorMediaType.CAPTURE_VAPP_PARAMS)
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/param/error400.xml", VCloudDirectorMediaType.ERROR)
-               .httpResponseBuilder().statusCode(400).build());
-
-      Error expected = Error.builder()
-            .message("?")
-            .majorErrorCode(400)
-            .minorErrorCode("BAD_REQUEST")
-            .build();
-
-      try {
-         api.getVdcApi().captureVApp(vdcURI, null);
-         fail("Should give HTTP 400 error");
-      } catch (VCloudDirectorException vde) {
-         assertEquals(vde.getError(), expected);
-      }
-   }
-   
-   @Test(enabled = false)
-   public void testCloneVApp() {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/cloneVAppTemplate")
-               .xmlFilePayload("/vdc/params/cloneVApp.xml", VCloudDirectorMediaType.CLONE_VAPP_PARAMS)
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/cloneVApp.xml", VCloudDirectorMediaType.VAPP)
-               .httpResponseBuilder().build());
-      
-      VApp expected = cloneVApp();
-
-      // TODO: configure params
-      CloneVAppParams params = CloneVAppParams.builder()
-         
-         .build();
-      
-      assertEquals(api.getVdcApi().cloneVApp(vdcURI, params), expected);
-   }
-   
-   @Test(enabled = false)
-   public void testCloneVAppTemplate() {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/cloneVAppTemplate")
-               .xmlFilePayload("/vdc/params/cloneVAppTemplate.xml", VCloudDirectorMediaType.CLONE_VAPP_TEMPLATE_PARAMS)
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/cloneVAppTemplate.xml", VCloudDirectorMediaType.VAPP_TEMPLATE)
-               .httpResponseBuilder().build());
-      
-      VAppTemplate expected = cloneVAppTemplate();
-
-      // TODO: configure params
-      CloneVAppTemplateParams params = CloneVAppTemplateParams.builder()
-         
-         .build();
-      
-      assertEquals(api.getVdcApi().cloneVAppTemplate(vdcURI, params), expected);
-   }
-
-   @Test(enabled = false)
-   public void testComposeVApp() throws ParseException {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/composeVApp")
-               .xmlFilePayload("/vdc/composeVAppParams.xml", VCloudDirectorMediaType.COMPOSE_VAPP_PARAMS)
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/composeVApp.xml", VCloudDirectorMediaType.VAPP)
-               .httpResponseBuilder().build());
-      
-      VApp expected = composeVApp();
-
-      // TODO: configure params
-      ComposeVAppParams params = ComposeVAppParams.builder()
-         
-         .build();
-      
-      assertEquals(api.getVdcApi().composeVApp(vdcURI, params), expected);
-   }
-
-   @Test(enabled = false)
-   public void testInstantiateVAppTemplate() {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/instantiateVAppTemplate")
-               .xmlFilePayload("/vdc/params/instantiateVAppTemplate.xml", VCloudDirectorMediaType.CAPTURE_VAPP_PARAMS)
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/instantiateVAppTemplate.xml", VCloudDirectorMediaType.VAPP)
-               .httpResponseBuilder().build());
-      
-      VApp expected = instantiateVAppTemplate();
-
-      // TODO: configure params
-      InstantiateVAppTemplateParams params = InstantiateVAppTemplateParams.builder()
-         
-         .build();
-      
-      assertEquals(api.getVdcApi().instantiateVApp(vdcURI, params), expected);
-   }
-
-   @Test(enabled = false)
-   public void testUploadVAppTemplate() {
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/uploadVAppTemplate")
-               .xmlFilePayload("/vdc/params/uploadVAppTemplate.xml", VCloudDirectorMediaType.UPLOAD_VAPP_TEMPLATE_PARAMS)
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/uploadVAppTemplate.xml", VCloudDirectorMediaType.VAPP_TEMPLATE)
-               .httpResponseBuilder().build());
-      
-      VAppTemplate expected = uploadVAppTemplate();
-
-      // TODO: configure params
-      UploadVAppTemplateParams params = UploadVAppTemplateParams.builder()
-         
-         .build();
-      
-      assertEquals(api.getVdcApi().uploadVAppTemplate(vdcURI, params), expected);
-   }
-
-   @Test
-   public void testAddMedia() {
-      URI vdcUri = URI.create(endpoint + "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f");
-
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/media")
-               .acceptMedia(VCloudDirectorMediaType.MEDIA)
-               .xmlFilePayload("/media/addMediaSource.xml", VCloudDirectorMediaType.MEDIA)
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/media/addMedia.xml", VCloudDirectorMediaType.MEDIA)
-               .httpResponseBuilder().statusCode(201).build());
-      
-      Media source = Media.builder()
-         .size(0)
-         .imageType(ImageType.ISO)
-         .name("Test media 1")
-         .type("application/vnd.vmware.vcloud.media+xml")
-         .description("Test media generated by testCreateMedia()")
-         .build();
-      Media expected = MediaApiExpectTest.addMedia();
-      
-      assertEquals(api.getVdcApi().addMedia(vdcUri, source), expected);
-   }
-   
-   @Test
-   public void testCloneMedia() {
-      URI vdcUri = URI.create(endpoint + "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f");
-
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("POST", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/cloneMedia")
-               .acceptMedia(VCloudDirectorMediaType.MEDIA)
-               .xmlFilePayload("/media/cloneMediaParams.xml", VCloudDirectorMediaType.CLONE_MEDIA_PARAMS)
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/media/cloneMedia.xml", VCloudDirectorMediaType.MEDIA)
-               .httpResponseBuilder().statusCode(201).build());
-      
-      CloneMediaParams params = CloneMediaParams.builder()
-         .name("moved test media")
-         .description("moved by testCloneMedia()")
-         .source(Reference.builder()
-               .type("application/vnd.vmware.vcloud.media+xml")
-               .name("copied test media")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/media/da8361af-cccd-4103-a71c-493513c49094"))
-               .build())
-         .isSourceDelete(false)
-         .build();
-      Media expected = MediaApiExpectTest.cloneMedia();
-      
-      assertEquals(api.getVdcApi().cloneMedia(vdcUri, params), expected);
-   }
-   
-   @Test(enabled = false)
-   public void testGetMetadata() {
-      URI vdcUri = URI.create(endpoint + "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f");
-      
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse,
-            new VcloudHttpRequestPrimer()
-                  .apiCommand("GET", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/metadata")
-                  .acceptAnyMedia()
-                  .httpRequestBuilder().build(),
-            new VcloudHttpResponsePrimer()
-                  .xmlFilePayload("/vdc/metadata.xml", VCloudDirectorMediaType.METADATA)
-                  .httpResponseBuilder().build());
-            
-      Metadata expected = metadata();
-
-      assertEquals(api.getMetadataApi(vdcUri).get(), expected);
-   }
-   
-   @Test(enabled = false)
-   public void testGetMetadataValue() {
-      URI vdcUri = URI.create("https://vcloudbeta.bluelock.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f");
-      
-      VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, 
-            new VcloudHttpRequestPrimer()
-               .apiCommand("GET", "/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/metadata/key")
-               .acceptAnyMedia()
-               .httpRequestBuilder().build(), 
-            new VcloudHttpResponsePrimer()
-               .xmlFilePayload("/vdc/metadataValue.xml", VCloudDirectorMediaType.METADATA_VALUE)
-               .httpResponseBuilder().build());
-      
-      assertEquals(api.getMetadataApi(vdcUri).get("key"), "");
-   }
-
-   public static Vdc getVdc() {
-      return Vdc.builder()
-         .status(1)
-         .name("orgVDC-cloudsoft-Tier1-PAYG")
-         .id("urn:vcloud:vdc:e9cd3387-ac57-4d27-a481-9bee75e0690f")
-         .type("application/vnd.vmware.vcloud.vdc+xml")
-         .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f"))
-         .link(Link.builder()
-            .rel("up")
-            .type("application/vnd.vmware.vcloud.org+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/org/c076f90a-397a-49fa-89b8-b294c1599cd0"))
-            .build())
-         .link(Link.builder()
-            .rel("down")
-            .type("application/vnd.vmware.vcloud.metadata+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/metadata"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/uploadVAppTemplate"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.media+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/media"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/instantiateVAppTemplate"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.cloneVAppParams+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/cloneVApp"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.cloneVAppTemplateParams+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/cloneVAppTemplate"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.cloneMediaParams+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/cloneMedia"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.captureVAppParams+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/captureVApp"))
-            .build())
-         .link(Link.builder()
-            .rel("add")
-            .type("application/vnd.vmware.vcloud.composeVAppParams+xml")
-            .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f/action/composeVApp"))
-            .build())
-         .description("Pay As You go resources for organization cloudsoft ")
-         .allocationModel("AllocationVApp")
-         .storageCapacity(new CapacityWithUsage.Builder()
-            .units("MB")
-            .allocated(0l)
-            .limit(0l)
-            .used(4519l)
-            .overhead(0l)
-            .build())
-         .computeCapacity(ComputeCapacity.builder()
-            .cpu(new CapacityWithUsage.Builder()
-               .units("MHz")
-               .allocated(0l)
-               .limit(0l)
-               .used(0l)
-               .overhead(0l)
-               .build())
-            .memory(new CapacityWithUsage.Builder()
-               .units("MB")
-               .allocated(0l)
-               .limit(0l)
-               .used(0l)
-               .overhead(0l)
-               .build())
-            .build())
-        .resourceEntity(Reference.builder()
-               .type("application/vnd.vmware.vcloud.vApp+xml")
-               .name("vcdcap-db9")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/vApp/vapp-e2a4ab74-ea62-4afa-8bb7-0c11259044fb"))
-               .build())
-        .resourceEntity(Reference.builder()
-               .type("application/vnd.vmware.vcloud.vAppTemplate+xml")
-               .name("adriancolecap")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/vAppTemplate/vappTemplate-5571eb21-f532-4506-9737-01a4635a04cb"))
-               .build())
-        .resourceEntity(Reference.builder()
-               .type("application/vnd.vmware.vcloud.media+xml")
-               .name("DansTestMedia")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/media/794eb334-754e-4917-b5a0-5df85cbd61d1"))
-               .build())
-        .network(Reference.builder()
-               .type("application/vnd.vmware.vcloud.network+xml")
-               .name("orgNet-cloudsoft-Isolated")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/network/a604f3c2-0343-453e-ae1f-cddac5b7bd94"))
-               .build())
-        .network(Reference.builder()
-               .type("application/vnd.vmware.vcloud.network+xml")
-               .name("orgNet-cloudsoft-External")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/network/b466c0c5-8a5c-4335-b703-a2e2e6b5f3e1"))
-               .build())
-        .network(Reference.builder()
-               .type("application/vnd.vmware.vcloud.network+xml")
-               .name("orgNet-cloudsoft-Internal-Routed")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/network/6d7392e2-c816-43fb-99be-f9ebcd70abf6"))
-               .build())
-         .capabilities(Capabilities.builder()
-               .supportedHardwareVersion("vmx-04")
-               .supportedHardwareVersion("vmx-07")
-               .supportedHardwareVersion("vmx-08")
-               .build())
-         .nicQuota(0)
-         .networkQuota(10)
-         .vmQuota(10)
-         .isEnabled(true)
-         .build();
-   }
-   
-   private VAppTemplate captureVApp() {
-      // TODO Auto-generated method stub
-      return null;
-   }
-   
-   private VApp cloneVApp() {
-      // TODO Auto-generated method stub
-      return null;
-   }
-   
-   private VAppTemplate cloneVAppTemplate() {
-      // TODO Auto-generated method stub
-      return null;
-   }
-   
-   private VApp composeVApp() throws ParseException {
-
-      return VApp
-               .builder()
-               .status(0)
-               .name("test-vapp")
-               .id("urn:vcloud:vapp:d0e2b6b9-4381-4ddc-9572-cdfae54059be")
-               .type("application/vnd.vmware.vcloud.vApp+xml")
-               .description("Test VApp")
-               .href(URI.create("https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be"))
-               .link(Link
-                        .builder()
-                        .name("orgNet-cloudsoft-External")
-                        .rel("down")
-                        .type("application/vnd.vmware.vcloud.vAppNetwork+xml")
-                        .href(URI.create("https://mycloud.greenhousedata.com/api/network/2a2e2da4-446a-4ebc-a086-06df7c9570f0"))
-                        .build())
-               .link(Link
-                        .builder()
-                        .rel("down")
-                        .type("application/vnd.vmware.vcloud.controlAccess+xml")
-                        .href(URI.create("https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/controlAccess/"))
-                        .build())
-               .link(Link
-                        .builder()
-                        .rel("up")
-                        .type("application/vnd.vmware.vcloud.vdc+xml")
-                        .href(URI.create("https://mycloud.greenhousedata.com/api/vdc/e9cd3387-ac57-4d27-a481-9bee75e0690f"))
-                        .build())
-               .link(Link
-                        .builder()
-                        .rel("down")
-                        .type("application/vnd.vmware.vcloud.owner+xml")
-                        .href(URI.create("https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/owner"))
-                        .build())
-               .link(Link
-                        .builder()
-                        .rel("down")
-                        .type("application/vnd.vmware.vcloud.metadata+xml")
-                        .href(URI.create("https://mycloud.greenhousedata.com/api/vApp/vapp-d0e2b6b9-4381-4ddc-9572-cdfae54059be/metadata"))
-                        .build())
-               .owner(Owner
-                        .builder()
-                        .type("application/vnd.vmware.vcloud.owner+xml")
-                        .user(User
-                                 .builder()
-                                 .type("application/vnd.vmware.admin.user+xml")
-                                 .name("acole")
-                                 .href(URI.create("https://mycloud.greenhousedata.com/api/admin/user/c090335b-708c-4c1c-9e3d-89560d002120"))
-                                 .build().getRole()).build()).build();
-   }
-
-   private VApp instantiateVAppTemplate() {
-      // TODO Auto-generated method stub
-      return null;
-   }
-   
-   private VAppTemplate uploadVAppTemplate() {
-      // TODO Auto-generated method stub
-      return null;
-   }
-   
-   private Metadata metadata() {
-      // TODO Auto-generated method stub
-      return null;
-   }
-   
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/775b89fd/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiLiveTest.java
deleted file mode 100644
index 3e976f0..0000000
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VdcApiLiveTest.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.director.v1_5.features;
-
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorLiveTestConstants.OBJ_FIELD_EQ;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorLiveTestConstants.OBJ_FIELD_REQ_LIVE;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorLiveTestConstants.OBJ_REQ_LIVE;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorLiveTestConstants.URN_REQ_LIVE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-import java.net.URI;
-import java.util.Map;
-import java.util.Set;
-
-import org.jclouds.vcloud.director.v1_5.domain.Checks;
-import org.jclouds.vcloud.director.v1_5.domain.Metadata;
-import org.jclouds.vcloud.director.v1_5.domain.Reference;
-import org.jclouds.vcloud.director.v1_5.domain.ResourceEntity;
-import org.jclouds.vcloud.director.v1_5.domain.Task;
-import org.jclouds.vcloud.director.v1_5.domain.VApp;
-import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
-import org.jclouds.vcloud.director.v1_5.domain.Vdc;
-import org.jclouds.vcloud.director.v1_5.domain.network.Network;
-import org.jclouds.vcloud.director.v1_5.domain.network.Network.FenceMode;
-import org.jclouds.vcloud.director.v1_5.domain.network.NetworkConfiguration;
-import org.jclouds.vcloud.director.v1_5.domain.network.VAppNetworkConfiguration;
-import org.jclouds.vcloud.director.v1_5.domain.params.CaptureVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.CloneVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.ComposeVAppParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.InstantiateVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.InstantiationParams;
-import org.jclouds.vcloud.director.v1_5.domain.params.UploadVAppTemplateParams;
-import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConfigSection;
-import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorApiLiveTest;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-@Test(groups = { "live", "user" }, singleThreaded = true, testName = "VdcApiLiveTest")
-public class VdcApiLiveTest extends BaseVCloudDirectorApiLiveTest {
-
-   public static final String VDC = "vdc";
-
-   /*
-    * Convenience reference to API api.
-    */
-   protected VdcApi vdcApi;
-   protected VAppTemplateApi vappTemplateApi;
-   protected VAppApi vappApi;
-   private URI vdcHref;
-
-   private VApp instantiatedVApp;
-   private VApp clonedVApp;
-   private VApp composedVApp;
-   private VAppTemplate clonedVAppTemplate;
-   private VAppTemplate capturedVAppTemplate;
-   private VAppTemplate uploadedVAppTemplate;
-   private boolean metadataSet = false;
-   private Network network;
-
-   @Override
-   @BeforeClass(alwaysRun = true)
-   public void setupRequiredApis() {
-      vdcApi = context.getApi().getVdcApi();
-      vappTemplateApi = context.getApi().getVAppTemplateApi();
-      vappApi = context.getApi().getVAppApi();
-
-      assertNotNull(vdcId, String.format(URN_REQ_LIVE, VDC));
-      network = lazyGetNetwork();
-      vdcHref = context.resolveIdToHref(vdcId);
-   }
-
-   @AfterClass(alwaysRun = true)
-   public void cleanUp() throws Exception {
-      if (clonedVAppTemplate != null) {
-         cleanUpVAppTemplate(clonedVAppTemplate);
-      }
-      if (capturedVAppTemplate != null) {
-         cleanUpVAppTemplate(capturedVAppTemplate);
-      }
-      if (uploadedVAppTemplate != null) {
-         cleanUpVAppTemplate(uploadedVAppTemplate);
-      }
-      if (instantiatedVApp != null) {
-         cleanUpVApp(instantiatedVApp);
-      }
-      if (clonedVApp != null) {
-         cleanUpVApp(clonedVApp);
-      }
-      if (composedVApp != null) {
-         cleanUpVApp(composedVApp);
-      }
-
-      if (metadataSet) {
-         try {
-            Task remove = adminContext.getApi().getMetadataApi(vdcHref).remove("key");
-            taskDoneEventually(remove);
-         } catch (Exception e) {
-            logger.warn(e, "Error deleting metadata entry");
-         }
-      }
-   }
-
-   @Test(description = "GET /vdc/{id}")
-   public void testGetVdc() {
-      Vdc vdc = lazyGetVdc();
-      assertNotNull(vdc, String.format(OBJ_REQ_LIVE, VDC));
-      assertNotEquals("DO NOT USE", vdc.getDescription(), "vDC isn't to be used for testing");
-      Checks.checkVdc(vdc);
-   }
-
-   @Test(description = "POST /vdc/{id}/action/captureVApp", dependsOnMethods = { "testInstantiateVAppTemplate" })
-   public void testCaptureVApp() {
-      String name = name("captured-");
-
-      CaptureVAppParams captureVappParams = CaptureVAppParams.builder()
-    		  .name(name)
-    		  .source(instantiatedVApp.getHref())
-      // TODO: test optional params
-      // .description("")
-      // .sections(sections) // TODO: ovf sections
-               .build();
-
-      capturedVAppTemplate = vdcApi.captureVApp(vdcHref, captureVappParams);
-
-      Task task = Iterables.getFirst(capturedVAppTemplate.getTasks(), null);
-      assertTaskSucceedsLong(task);
-
-      Checks.checkVAppTemplate(capturedVAppTemplate);
-
-      assertEquals(capturedVAppTemplate.getName(), name,
-               String.format(OBJ_FIELD_EQ, "VAppTemplate", "name", name, capturedVAppTemplate.getName()));
-   }
-
-   @Test(description = "POST /vdc/{id}/action/cloneVApp", dependsOnMethods = { "testInstantiateVAppTemplate" })
-   public void testCloneVApp() {
-      CloneVAppParams cloneVappParams = CloneVAppParams.builder().source(instantiatedVApp.getHref())
-    		  .name(name("vappClone-"))
-    		  .deploy(true)
-		      // TODO: test optional params
-		      // .description("")
-		      // .isSourceDelete(true)
-		      // .powerOn(true)
-		      // .instantiationParams(InstantiationParams.builder()
-		      // .sections(sections) 
-    		  // TODO: ovf sections? various tests?
-		      // .build())
-
-               // Reserved. Unimplemented params; may test eventually when implemented
-               // .vAppParent(vAppParentRef)
-               // .linkedClone(true)
-               .build();
-
-      clonedVApp = vdcApi.cloneVApp(vdcHref, cloneVappParams);
-
-      Task task = Iterables.getFirst(clonedVApp.getTasks(), null);
-      assertNotNull(task, "vdcApi.cloneVApp returned VApp that did not contain any tasks");
-      assertTaskSucceedsLong(task);
-
-      Checks.checkVApp(clonedVApp);
-   }
-
-   @Test(description = "POST /vdc/{id}/action/cloneVAppTemplate")
-   public void testCloneVAppTemplate() {
-      clonedVAppTemplate = vdcApi.cloneVAppTemplate(vdcHref,
-               CloneVAppTemplateParams.builder()
-               	  .name(name("vappTemplateClone-"))
-                  .source(lazyGetVAppTemplate().getHref())
-                  .build());
-
-      Task task = Iterables.getFirst(clonedVAppTemplate.getTasks(), null);
-      assertNotNull(task, "vdcApi.cloneVAppTemplate returned VAppTemplate that did not contain any tasks");
-      assertTaskSucceedsLong(task);
-
-      Checks.checkVAppTemplate(clonedVAppTemplate);
-   }
-
-   @Test(description = "POST /vdc/{id}/action/composeVApp")
-   public void testComposeVApp() {
-      String name = name("composed-");
-
-      composedVApp = vdcApi.composeVApp(vdcHref, ComposeVAppParams.builder().name(name)
-      // TODO: test optional params
-      // .sourcedItem(SourcedCompositionItemParam.builder()
-      // .sourcedItem(vAppTemplateURI)
-      // .build())
-      // .description("")
-      // .deploy(true)
-      // .isSourceDelete(false)
-      // .powerOn(true)
-      // .instantiationParams(InstantiationParams.builder()
-      // .sections(sections) // TODO: ovf sections? various tests?
-      // .build())
-
-               // Reserved. Unimplemented params; may test eventually when implemented
-               // .linkedClone()
-               .build());
-
-      Task task = Iterables.getFirst(composedVApp.getTasks(), null);
-      assertNotNull(task, "vdcApi.composeVApp returned VApp that did not contain any tasks");
-      assertTaskSucceedsLong(task);
-
-      Checks.checkVApp(composedVApp);
-      assertEquals(composedVApp.getName(), name,
-               String.format(OBJ_FIELD_EQ, "VApp", "name", name, composedVApp.getName()));
-   }
-
-   // TODO Duplicates code in VAppApiLiveTest
-   @Test(description = "POST /vdc/{id}/action/instantiateVAppTemplate")
-   public void testInstantiateVAppTemplate() {
-      Vdc vdc = vdcApi.get(vdcHref);
-
-      Set<Reference> networks = vdc.getAvailableNetworks();
-      Optional<Reference> parentNetwork = Iterables.tryFind(networks, new Predicate<Reference>() {
-         @Override
-         public boolean apply(Reference reference) {
-            return reference.getHref().equals(network.getHref());
-         }
-      });
-
-      if (!parentNetwork.isPresent()) {
-         fail(String.format("Could not find network %s in vdc", network.getHref().toASCIIString()));
-      }
-
-      NetworkConfiguration networkConfiguration = NetworkConfiguration.builder().parentNetwork(parentNetwork.get())
-               .fenceMode(FenceMode.BRIDGED).build();
-
-      NetworkConfigSection networkConfigSection = NetworkConfigSection
-               .builder()
-               .info("Configuration parameters for logical networks")
-               .networkConfigs(
-                        ImmutableSet.of(VAppNetworkConfiguration.builder().networkName("vAppNetwork")
-                                 .configuration(networkConfiguration).build())).build();
-
-      InstantiationParams instantiationParams = InstantiationParams.builder()
-               .sections(ImmutableSet.of(networkConfigSection)).build();
-
-      InstantiateVAppTemplateParams instantiate = InstantiateVAppTemplateParams.builder().name(name("test-vapp-"))
-               .notDeploy().notPowerOn().description("Test VApp").instantiationParams(instantiationParams)
-               .source(lazyGetVAppTemplate().getHref()).build();
-
-      instantiatedVApp = vdcApi.instantiateVApp(vdcHref, instantiate);
-      Task instantiationTask = Iterables.getFirst(instantiatedVApp.getTasks(), null);
-      assertTaskSucceedsLong(instantiationTask);
-
-      Checks.checkVApp(instantiatedVApp);
-   }
-
-   @Test(description = "POST /vdc/{id}/action/uploadVAppTemplate")
-   public void testUploadVAppTemplate() {
-      // TODO Should test all 4 stages of upload; currently doing only stage 1 here.
-      // 1. creating empty vApp template entity
-      // 2. uploading an OVF of vApp template
-      // 3. uploading disks described from the OVF
-      // 4. finishing task for uploading
-
-      String name = name("uploaded-");
-
-      UploadVAppTemplateParams uploadVAppTemplateParams = UploadVAppTemplateParams.builder().name(name)
-      // TODO: test optional params
-      // .description("")
-      // .transferFormat("")
-      // .manifestRequired(true)
-               .build();
-
-      uploadedVAppTemplate = vdcApi.uploadVAppTemplate(vdcHref, uploadVAppTemplateParams);
-
-      Checks.checkVAppTemplateWhenNotReady(uploadedVAppTemplate);
-
-      assertEquals(uploadedVAppTemplate.getName(), name,
-               String.format(OBJ_FIELD_EQ, "VAppTemplate", "name", name, uploadedVAppTemplate.getName()));
-
-      ResourceEntity.Status expectedStatus = ResourceEntity.Status.UNRESOLVED;
-      ResourceEntity.Status actualStatus = uploadedVAppTemplate.getStatus();
-      assertEquals(actualStatus, expectedStatus,
-               String.format(OBJ_FIELD_EQ, "VAppTemplate", "status", expectedStatus, actualStatus));
-
-   }
-
-   @Test(description = "GET /vdc/{id}/metadata", dependsOnMethods = { "testGetVdc" })
-   public void testGetMetadata() {
-      Metadata metadata = context.getApi().getMetadataApi(vdcHref).get();
-
-      // required for testing
-      assertTrue(Iterables.isEmpty(metadata.getMetadataEntries()),
-               String.format(OBJ_FIELD_REQ_LIVE, VDC, "metadata.entries"));
-
-      Checks.checkMetadataFor(VDC, metadata);
-   }
-
-   @Test(description = "GET /vdc/{id}/metadata/{key}", dependsOnMethods = { "testGetMetadata" })
-   public void testGetMetadataValue() {
-      // setupMetadata();
-      // First find a key
-      Metadata metadata = context.getApi().getMetadataApi(vdcHref).get();
-      Map<String, String> metadataMap = Checks.metadataToMap(metadata);
-      String key = Iterables.getFirst(metadataMap.keySet(), "MadeUpKey!");
-      String value = metadataMap.get(key);
-
-      String metadataValue = context.getApi().getMetadataApi(vdcHref).get(key);
-
-      assertEquals(metadataValue, value);
-   }
-   
-}