Issue #830 VAppTemplate: live tests and various fixes

This commit is contained in:
Aled Sage 2012-03-14 18:15:46 +00:00
parent c888586cd4
commit bd1b430e77
3 changed files with 208 additions and 664 deletions

View File

@ -223,7 +223,7 @@ public interface VAppTemplateAsyncClient {
@ExceptionParser(ThrowVCloudErrorOn4xx.class)
ListenableFuture<Metadata> getVAppTemplateMetadata(@EndpointParam URI templateURI);
@PUT
@POST
@Produces(METADATA)
@Consumes(TASK)
@Path("/metadata")
@ -321,18 +321,6 @@ public interface VAppTemplateAsyncClient {
@ExceptionParser(ThrowVCloudErrorOn4xx.class)
ListenableFuture<NetworkSection> getVAppTemplateNetworkSection(@EndpointParam URI templateURI);
/**
* @see VAppTemplateClient#editVAppTemplateNetworkSection(URI, NetworkSection)
*/
@PUT
@Produces(NETWORK_SECTION)
@Consumes(TASK)
@Path("/networkSection")
@JAXBResponseParser
@ExceptionParser(ThrowVCloudErrorOn4xx.class)
ListenableFuture<Task> editVAppTemplateNetworkSection(@EndpointParam URI templateURI,
@BinderParam(BindToXMLPayload.class) NetworkSection section);
/**
* @see VAppTemplateClient#getVAppTemplateOvf(URI)
*/

View File

@ -80,7 +80,7 @@ public interface VAppTemplateClient {
Task consolidateVappTemplate(URI templateUri);
/**
* Consolidates a VM
* Disables the download link to the ovf of a vApp template.
*
* @param templateUri the URI of the template
* @return the task performing the action
@ -88,7 +88,7 @@ public interface VAppTemplateClient {
Task disableDownloadVappTemplate(URI templateUri);
/**
* Consolidates a VM,
* Enables downloading of the ovf of a vApp template.
*
* @param templateUri the URI of the template
* @return the task performing the action
@ -237,15 +237,6 @@ public interface VAppTemplateClient {
*/
NetworkSection getVAppTemplateNetworkSection(URI templateUri);
/**
* Modifies the network section of a vApp or vApp template.
*
* @param templateUri the URI of the template
* @param section the new configuration to apply
* @return the task performing the action
*/
Task editVAppTemplateNetworkSection(URI templateUri, NetworkSection section);
/**
* Retrieves an OVF descriptor of a vApp template.
*

View File

@ -19,7 +19,13 @@
package org.jclouds.vcloud.director.v1_5.features;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertFalse;
import java.net.URI;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Random;
import java.util.Set;
import org.jclouds.vcloud.director.v1_5.domain.Checks;
import org.jclouds.vcloud.director.v1_5.domain.CustomizationSection;
@ -29,10 +35,14 @@ 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.MetadataValue;
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfigSection;
import org.jclouds.vcloud.director.v1_5.domain.NetworkConfiguration;
import org.jclouds.vcloud.director.v1_5.domain.NetworkConnectionSection;
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.RelocateParams;
import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.domain.VAppNetworkConfiguration;
import org.jclouds.vcloud.director.v1_5.domain.VAppTemplate;
import org.jclouds.vcloud.director.v1_5.domain.ovf.Envelope;
import org.jclouds.vcloud.director.v1_5.domain.ovf.NetworkSection;
@ -40,7 +50,9 @@ import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorClientLiveTes
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.beust.jcommander.internal.Maps;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
/**
@ -53,13 +65,9 @@ import com.google.common.collect.Iterables;
@Test(groups = {"live", "unit", "user"}, testName = "VAppTemplateClientLiveTest")
public class VAppTemplateClientLiveTest extends BaseVCloudDirectorClientLiveTest {
private final Random random = new Random();
private VAppTemplateClient vappTemplateClient;
// FIXME IS timezone setting needed in live test?
// public VAppTemplateClientLiveTest() {
// TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
// }
@BeforeClass(inheritGroups = true)
@Override
public void setupRequiredClients() {
@ -164,10 +172,14 @@ public class VAppTemplateClientLiveTest extends BaseVCloudDirectorClientLiveTest
@Test
public void testEditVAppTemplate() {
String uid = ""+Math.random();
// TODO Should we be using the orig vappTemplate? Or a blank one with only the name/description?
VAppTemplate oldVAppTemplate = vappTemplateClient.getVAppTemplate(vAppTemplateURI);
String uid = ""+random.nextInt();
String name = "myname-"+uid;
String description = "mydescr-"+uid;
VAppTemplate template = VAppTemplate.builder()
VAppTemplate template = oldVAppTemplate.toBuilder()
.name(name)
.description(description)
.build();
@ -180,29 +192,13 @@ public class VAppTemplateClientLiveTest extends BaseVCloudDirectorClientLiveTest
assertEquals(newTemplate.getDescription(), description);
}
@Test
public void testEditVAppTemplateMetadataValue() {
// FIXME Cleanup after ourselves..
String uid = ""+Math.random();
String key = "mykey-"+uid;
String val = "myval-"+uid;
MetadataValue metadataValue = MetadataValue.builder().value(val).build();
final Task task = vappTemplateClient.editVAppTemplateMetadataValue(vAppTemplateURI, key, metadataValue);
retryTaskSuccess.apply(task);
MetadataValue newMetadataValue = vappTemplateClient.getVAppTemplateMetadataValue(vAppTemplateURI, key);
assertEquals(newMetadataValue, metadataValue);
}
@Test
public void testEditVAppTemplateMetadata() {
// FIXME Cleanup after ourselves..
Metadata oldMetadata = vappTemplateClient.getVAppTemplateMetadata(vAppTemplateURI);
String uid = ""+Math.random();
String uid = ""+random.nextInt();
String key = "mykey-"+uid;
String val = "myval-"+uid;
MetadataEntry metadataEntry = MetadataEntry.builder().entry(key, val).build();
@ -212,620 +208,189 @@ public class VAppTemplateClientLiveTest extends BaseVCloudDirectorClientLiveTest
retryTaskSuccess.apply(task);
Metadata newMetadata = vappTemplateClient.getVAppTemplateMetadata(vAppTemplateURI);
assertTrue(newMetadata.getMetadataEntries().contains(metadataEntry));
Map<String,String> newMetadataMap = metadataToMap(newMetadata);
assertEquals(newMetadataMap.get(key), val, "newMetadata="+newMetadata);
}
private Map<String,String> metadataToMap(Metadata metadata) {
Map<String,String> result = Maps.newLinkedHashMap();
for (MetadataEntry entry : metadata.getMetadataEntries()) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
@Test
public void testEditVAppTemplateMetadataValue() {
// FIXME Cleanup after ourselves..
String uid = ""+random.nextInt();
String key = "mykey-"+uid;
String val = "myval-"+uid;
MetadataValue metadataValue = MetadataValue.builder().value(val).build();
final Task task = vappTemplateClient.editVAppTemplateMetadataValue(vAppTemplateURI, key, metadataValue);
retryTaskSuccess.apply(task);
MetadataValue newMetadataValue = vappTemplateClient.getVAppTemplateMetadataValue(vAppTemplateURI, key);
assertEquals(newMetadataValue.getValue(), metadataValue.getValue());
}
// public void testVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId).acceptMedia(VAPP_TEMPLATE).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/vAppTemplate.xml", VAPP_TEMPLATE).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId).xmlFilePayload("/vapptemplate/vAppTemplate.xml", VAPP_TEMPLATE).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("DELETE", templateId).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// VAppTemplate template = client.getVAppTemplate(uri);
//
// assertEquals(template, exampleTemplate());
//
// Task task = client.editVAppTemplate(uri, exampleTemplate());
// assertNotNull(task);
//
// task = client.deleteVappTemplate(uri);
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorGetVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId).acceptMedia(VAPP_TEMPLATE).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.getVAppTemplate(uri);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorEditVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId).xmlFilePayload("/vapptemplate/vAppTemplate.xml", VAPP_TEMPLATE).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.editVAppTemplate(uri, exampleTemplate());
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testDeleteMissingVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("DELETE", templateId).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.deleteVappTemplate(uri);
// }
//
// public void testConsolidateVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = requestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/consolidate").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// Task task = client.consolidateVappTemplate(uri);
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testConsolidateMissingVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/consolidate").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.consolidateVappTemplate(uri);
// }
//
// public void testDisableDownloadVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = requestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/disableDownload").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// Task task = client.disableDownloadVappTemplate(uri);
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testDisableDownloadMissingVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/disableDownload").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.disableDownloadVappTemplate(uri);
// }
//
// public void testEnableDownloadVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = requestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/enableDownload").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// Task task = client.enableDownloadVappTemplate(uri);
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testEnableDownloadMissingVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/enableDownload").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.enableDownloadVappTemplate(uri);
// }
//
// public void testRelocateVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = requestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/relocate").xmlFilePayload("/vapptemplate/relocateParams.xml", RELOCATE_TEMPLATE).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
//
// Reference datastore = Reference.builder().href(URI.create("https://vcloud.example.com/api/admin/extension/datastore/607")).build();
// RelocateParams params = RelocateParams.builder().datastore(datastore).build();
//
// Task task = client.relocateVappTemplate(uri, params);
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testRelocateMissingVAppTemplate() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("POST", templateId + "/action/relocate").xmlFilePayload("/vapptemplate/relocateParams.xml", RELOCATE_TEMPLATE).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// Reference datastore = Reference.builder().href(URI.create("https://vcloud.example.com/api/admin/extension/datastore/607")).build();
// RelocateParams params = RelocateParams.builder().datastore(datastore).build();
//
// client.relocateVappTemplate(uri, params);
// }
//
// public void testCustomizationSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/customizationSection").acceptMedia(CUSTOMIZATION_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/customizationSection.xml", CUSTOMIZATION_SECTION).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/customizationSection").xmlFilePayload("/vapptemplate/customizationSection.xml", CUSTOMIZATION_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// CustomizationSection section = client.getVAppTemplateCustomizationSection(uri);
//
// assertEquals(section, exampleCustomizationSection());
//
// Task task = client.editVAppTemplateCustomizationSection(uri, exampleCustomizationSection());
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorGetCustomizationSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/customizationSection").acceptMedia(CUSTOMIZATION_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.getVAppTemplateCustomizationSection(uri);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorEditCustomizationSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/customizationSection").xmlFilePayload("/vapptemplate/customizationSection.xml", CUSTOMIZATION_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.editVAppTemplateCustomizationSection(uri, exampleCustomizationSection());
// }
//
// public void testGuestCustomizationSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/guestCustomizationSection").acceptMedia(GUEST_CUSTOMIZATION_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/guestCustomizationSection.xml", GUEST_CUSTOMIZATION_SECTION).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/guestCustomizationSection").xmlFilePayload("/vapptemplate/guestCustomizationSection.xml", GUEST_CUSTOMIZATION_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// GuestCustomizationSection section = client.getVAppTemplateGuestCustomizationSection(uri);
//
// assertEquals(section, exampleGuestCustomizationSection());
//
// Task task = client.editVAppTemplateGuestCustomizationSection(uri, exampleGuestCustomizationSection());
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorGetGuestCustomizationSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/guestCustomizationSection").acceptMedia(GUEST_CUSTOMIZATION_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.getVAppTemplateGuestCustomizationSection(uri);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorEditGuestCustomizationSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/guestCustomizationSection").xmlFilePayload("/vapptemplate/guestCustomizationSection.xml", GUEST_CUSTOMIZATION_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.editVAppTemplateGuestCustomizationSection(uri, exampleGuestCustomizationSection());
// }
//
// public void testLeaseSettingsSection() throws ParseException {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/leaseSettingsSection").acceptMedia(LEASE_SETTINGS_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/leaseSettingsSection.xml", LEASE_SETTINGS_SECTION).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/leaseSettingsSection").xmlFilePayload("/vapptemplate/leaseSettingsSection.xml", LEASE_SETTINGS_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// LeaseSettingsSection section = client.getVappTemplateLeaseSettingsSection(uri);
//
// assertEquals(section, exampleLeaseSettingsSection());
//
// Task task = client.editVappTemplateLeaseSettingsSection(uri, exampleLeaseSettingsSection());
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorGetLeaseSettingsSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/leaseSettingsSection").acceptMedia(LEASE_SETTINGS_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.getVappTemplateLeaseSettingsSection(uri);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorEditLeaseSettingsSection() throws ParseException {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/leaseSettingsSection").xmlFilePayload("/vapptemplate/leaseSettingsSection.xml", LEASE_SETTINGS_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.editVappTemplateLeaseSettingsSection(uri, exampleLeaseSettingsSection());
// }
//
// public void testVappTemplateMetadata() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/metadata").acceptMedia(METADATA).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/metadata.xml", METADATA).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/metadata").xmlFilePayload("/vapptemplate/metadata.xml", METADATA).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// Metadata metadata = client.getVAppTemplateMetadata(uri);
//
// assertEquals(metadata, exampleMetadata());
//
// Task task = client.editVAppTemplateMetadata(uri, exampleMetadata());
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorGetMetadata() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/metadata").acceptMedia(METADATA).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.getVAppTemplateMetadata(uri);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorEditMetadata() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/metadata").xmlFilePayload("/vapptemplate/metadata.xml", METADATA).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.editVAppTemplateMetadata(uri, exampleMetadata());
// }
//
// public void testVappTemplateMetadataValue() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/metadata/12345").acceptMedia(METADATA_ENTRY).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/metadataValue.xml", METADATA_ENTRY).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/metadata/12345").xmlFilePayload("/vapptemplate/metadataValue.xml", METADATA_ENTRY).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("DELETE", templateId + "/metadata/12345").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
// MetadataValue metadata = client.getVAppTemplateMetadataValue(uri, "12345");
//
// assertEquals(metadata, exampleMetadataValue());
//
// Task task = client.editVAppTemplateMetadataValue(uri, "12345", exampleMetadataValue());
// assertNotNull(task);
//
// task = client.deleteVAppTemplateMetadataValue(uri, "12345");
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorGetMetadataValue() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/metadata/12345").acceptMedia(METADATA_ENTRY).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.getVAppTemplateMetadataValue(uri, "12345");
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorEditMetadataValue() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/metadata/12345").xmlFilePayload("/vapptemplate/metadataValue.xml", METADATA_ENTRY).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.editVAppTemplateMetadataValue(uri, "12345", exampleMetadataValue());
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testDeleteMissingMetadataValue() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("DELETE", templateId + "/metadata/12345").acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error403.xml", ERROR).httpResponseBuilder().statusCode(403).build()).getVAppTemplateClient();
//
// client.deleteVAppTemplateMetadataValue(uri, "12345");
// }
//
// public void testNetworkConfigSection() throws ParseException {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/networkConfigSection").acceptMedia(NETWORK_CONFIG_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/networkConfigSection.xml", NETWORK_CONFIG_SECTION).httpResponseBuilder().build(),
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/networkConfigSection").xmlFilePayload("/vapptemplate/networkConfigSection.xml", NETWORK_CONFIG_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/task/task.xml", TASK).httpResponseBuilder().build()
// ).getVAppTemplateClient();
//
// assertNotNull(client);
//
// NetworkConfigSection section = client.getVAppTemplateNetworkConfigSection(uri);
//
// assertEquals(section, exampleNetworkConfigSection());
//
// Task task = client.editVAppTemplateNetworkConfigSection(uri, exampleNetworkConfigSection());
// assertNotNull(task);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorGetNetworkConfigSection() {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("GET", templateId + "/networkConfigSection").acceptMedia(NETWORK_CONFIG_SECTION).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.getVAppTemplateNetworkConfigSection(uri);
// }
//
// @Test(expectedExceptions = VCloudDirectorException.class)
// public void testErrorEditNetworkConfigSection() throws ParseException {
// final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9";
// URI uri = URI.create(endpoint + templateId);
//
// VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse,
// new VcloudHttpRequestPrimer().apiCommand("PUT", templateId + "/networkConfigSection").xmlFilePayload("/vapptemplate/networkConfigSection.xml", NETWORK_CONFIG_SECTION).acceptMedia(TASK).httpRequestBuilder().build(),
// new VcloudHttpResponsePrimer().xmlFilePayload("/vapptemplate/error400.xml", ERROR).httpResponseBuilder().statusCode(400).build()).getVAppTemplateClient();
//
// client.editVAppTemplateNetworkConfigSection(uri, exampleNetworkConfigSection());
// }
//
// private VAppTemplate exampleTemplate() {
// Link aLink = Link.builder().href(URI.create("https://vcloudbeta.bluelock.com/api/vdc/d16d333b-e3c0-4176-845d-a5ee6392df07"))
// .type("application/vnd.vmware.vcloud.vdc+xml").rel("up").build();
// Link bLink = Link.builder().href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"))
// .rel("remove").build();
//
// Owner owner = Owner.builder().type("application/vnd.vmware.vcloud.owner+xml").user(Reference.builder().href(URI.create("https://vcloudbeta.bluelock.com/api/admin/user/967d317c-4273-4a95-b8a4-bf63b78e9c69")).name("x@jclouds.org").type("application/vnd.vmware.admin.user+xml").build()).build();
//
// LeaseSettingsSection leaseSettings = LeaseSettingsSection.builder().type("application/vnd.vmware.vcloud.leaseSettingsSection+xml")
// .href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9/leaseSettingsSection/"))
// .info("Lease settings section")
// .links(ImmutableSet.of(Link.builder().rel("edit").type("application/vnd.vmware.vcloud.leaseSettingsSection+xml")
// .href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9/leaseSettingsSection/")).build()))
// .storageLeaseInSeconds(0)
// .required(false)
// .build();
// CustomizationSection customizationSection = CustomizationSection.builder()
// .type("application/vnd.vmware.vcloud.customizationSection+xml")
// .info("VApp template customization section")
// .customizeOnInstantiate(true)
// .href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9/customizationSection/"))
// .required(false)
// .build();
//
// return VAppTemplate.builder().href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"))
// .links(ImmutableSet.of(aLink, bLink))
// .children(ImmutableSet.<VAppTemplate>of())
// .type("application/vnd.vmware.vcloud.vAppTemplate+xml")
// .description("For testing")
// .id("urn:vcloud:vapptemplate:ef4415e6-d413-4cbb-9262-f9bbec5f2ea9")
// .name("ubuntu10")
// .sections(ImmutableSet.of(leaseSettings, customizationSection))
// .status(-1)
// .owner(owner)
// .ovfDescriptorUploaded(true)
// .goldMaster(false)
// .build();
// }
//
// private CustomizationSection exampleCustomizationSection() {
// return CustomizationSection.builder()
// .links(ImmutableSet.of(
// Link.builder().href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9/customizationSection/"))
// .type("application/vnd.vmware.vcloud.customizationSection+xml").rel("edit").build()
// ))
// .type("application/vnd.vmware.vcloud.customizationSection+xml")
// .info("VApp template customization section")
// .customizeOnInstantiate(true)
// .href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9/customizationSection/"))
// .required(false)
// .build();
// }
//
// private GuestCustomizationSection exampleGuestCustomizationSection() {
// return GuestCustomizationSection.builder()
// .links(ImmutableSet.of(
// Link.builder().href(URI.create("http://vcloud.example.com/api/v1.5/vAppTemplate/vAppTemplate-12/guestCustomizationSection/"))
// .type("application/vnd.vmware.vcloud.guestCustomizationSection+xml").rel("edit").build()
// ))
// .enabled(false)
// .changeSid(false)
// .virtualMachineId("4")
// .joinDomainEnabled(false)
// .useOrgSettings(false)
// .adminPasswordEnabled(false)
// .adminPasswordAuto(true)
// .resetPasswordRequired(false)
// .type("application/vnd.vmware.vcloud.guestCustomizationSection+xml")
// .info("Specifies Guest OS Customization Settings")
// .computerName("ubuntu10-x86")
// .customizationScript("ls")
// .href(URI.create("http://vcloud.example.com/api/v1.5/vAppTemplate/vAppTemplate-12/guestCustomizationSection/"))
// .required(false)
// .build();
// }
//
// private LeaseSettingsSection exampleLeaseSettingsSection() throws ParseException {
// SimpleDateFormat iso8601SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US);
// return LeaseSettingsSection.builder().type("application/vnd.vmware.vcloud.leaseSettingsSection+xml")
// .href(URI.create("http://vcloud.example.com/api/v1.5/vAppTemplate/vAppTemplate-7/leaseSettingsSection/"))
// .info("VApp lease settings")
// .links(ImmutableSet.of(Link.builder().rel("edit").type("application/vnd.vmware.vcloud.leaseSettingsSection+xml")
// .href(URI.create("http://vcloud.example.com/api/v1.5/vAppTemplate/vAppTemplate-7/leaseSettingsSection/")).build()))
// .storageLeaseInSeconds(3600)
// .deploymentLeaseInSeconds(3600)
// // note adjusted to UTC
// .deploymentLeaseExpiration(iso8601SimpleDateFormat.parse("2010-01-21T21:50:59.764"))
// .required(false)
// .build();
// }
//
// private Metadata exampleMetadata() {
// return Metadata.builder()
// .href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9/metadata"))
// .type("application/vnd.vmware.vcloud.metadata+xml")
// .link(Link.builder().href(URI.create("https://vcloudbeta.bluelock.com/api/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"))
// .type("application/vnd.vmware.vcloud.vAppTemplate+xml").rel("up").build())
// .entry(MetadataEntry.builder().key("key").value("value").build()).build();
// }
//
// private MetadataValue exampleMetadataValue() {
// return MetadataValue.builder().value("some value").build();
// }
//
// private NetworkConfigSection exampleNetworkConfigSection() throws ParseException {
//
// FirewallService firewallService =
// FirewallService.builder()
// .enabled(true)
// .firewallRules(
// ImmutableSet.of(
// FirewallRule.builder()
// .isEnabled(true)
// .description("FTP Rule")
// .policy("allow")
// .protocols(FirewallRuleProtocols.builder().tcp(true).build())
// .port(21)
// .destinationIp("10.147.115.1")
// .build(),
// FirewallRule.builder()
// .isEnabled(true)
// .description("SSH Rule")
// .policy("allow")
// .protocols(FirewallRuleProtocols.builder().tcp(true).build())
// .port(22)
// .destinationIp("10.147.115.1")
// .build())).build();
//
// NatService natService = NatService.builder().enabled(true).natType("ipTranslation").policy("allowTraffic")
// .natRules(ImmutableSet.of(NatRule.builder().oneToOneVmRule(
// NatOneToOneVmRule.builder().mappingMode("manual").externalIpAddress("64.100.10.1").vAppScopedVmId("20ea086f-1a6a-4fb2-8e2e-23372facf7de").vmNicId(0).build()).build()
// )).build();
//
// NetworkConfiguration networkConfiguration = NetworkConfiguration.builder().ipScope(
// IpScope.builder()
// .isInherited(false)
// .gateway("10.147.56.253")
// .netmask("255.255.255.0")
// .dns1("10.147.115.1")
// .dns2("10.147.115.2")
// .dnsSuffix("example.com")
// .ipRanges(IpRanges.builder().ipRange(IpRange.builder().startAddress("10.147.56.1").endAddress("10.147.56.1").build()).build())
// .build())
// .parentNetwork(Reference.builder().href(URI.create("http://vcloud.example.com/api/v1.0/network/54")).type("application/vnd.vmware.vcloud.network+xml").name("Internet").build())
// .fenceMode("natRouted")
// .features(NetworkFeatures.builder().services(ImmutableSet.of(firewallService, natService)).build())
// .build();
//
// return NetworkConfigSection.builder()
// .info("Configuration parameters for logical networks")
// .networkConfigs(
// ImmutableSet.of(
// VAppNetworkConfiguration.builder()
// .networkName("vAppNetwork")
// .configuration(
// networkConfiguration
// ).build()
// )).build();
// }
@Test
public void testDeleteVAppTemplateMetadataValue() {
// First store a value
String key = "mykey-"+random.nextInt();
MetadataValue metadataValue = MetadataValue.builder().value("myval").build();
final Task task = vappTemplateClient.editVAppTemplateMetadataValue(vAppTemplateURI, key, metadataValue);
retryTaskSuccess.apply(task);
final Task deletionTask = vappTemplateClient.deleteVAppTemplateMetadataValue(vAppTemplateURI, key);
retryTaskSuccess.apply(deletionTask);
Metadata newMetadata = vappTemplateClient.getVAppTemplateMetadata(vAppTemplateURI);
Map<String,String> newMetadataMap = metadataToMap(newMetadata);
assertFalse(newMetadataMap.containsKey(key), "newMetadata="+newMetadata);
}
@Test // FIXME Failing because template does not have a guest customization section to be got
public void testEditVAppTemplateGuestCustomizationSection() {
String domainUserName = ""+random.nextInt(Integer.MAX_VALUE);
GuestCustomizationSection guestCustomizationSection = GuestCustomizationSection.builder()
.info("my info")
.domainUserName(domainUserName)
.enabled(true)
.build();
final Task task = vappTemplateClient.editVAppTemplateGuestCustomizationSection(vAppTemplateURI, guestCustomizationSection);
retryTaskSuccess.apply(task);
GuestCustomizationSection newGuestCustomizationSection = vappTemplateClient.getVAppTemplateGuestCustomizationSection(vAppTemplateURI);
assertEquals(newGuestCustomizationSection.getDomainUserName(), domainUserName);
}
@Test
public void testEditVAppTemplateCustomizationSection() {
boolean oldVal = vappTemplateClient.getVAppTemplateCustomizationSection(vAppTemplateURI).isCustomizeOnInstantiate();
boolean newVal = !oldVal;
CustomizationSection customizationSection = CustomizationSection.builder()
.info("my info")
.customizeOnInstantiate(newVal)
.build();
final Task task = vappTemplateClient.editVAppTemplateCustomizationSection(vAppTemplateURI, customizationSection);
retryTaskSuccess.apply(task);
CustomizationSection newCustomizationSection = vappTemplateClient.getVAppTemplateCustomizationSection(vAppTemplateURI);
assertEquals(newCustomizationSection.isCustomizeOnInstantiate(), newVal);
}
@Test // FIXME deploymentLeaseInSeconds returned is null
public void testEditVAppTemplateLeaseSettingsSection() throws Exception {
// Note: use smallish number for storageLeaseInSeconds; it seems to be capped at 5184000?
int storageLeaseInSeconds = random.nextInt(10000)+1;
int deploymentLeaseInSeconds = random.nextInt(10000)+1;
LeaseSettingsSection leaseSettingSection = LeaseSettingsSection.builder()
.info("my info")
.storageLeaseInSeconds(storageLeaseInSeconds)
.deploymentLeaseInSeconds(deploymentLeaseInSeconds)
.build();
final Task task = vappTemplateClient.editVappTemplateLeaseSettingsSection(vAppTemplateURI, leaseSettingSection);
retryTaskSuccess.apply(task);
LeaseSettingsSection newLeaseSettingsSection = vappTemplateClient.getVappTemplateLeaseSettingsSection(vAppTemplateURI);
assertEquals(newLeaseSettingsSection.getStorageLeaseInSeconds(), (Integer)storageLeaseInSeconds);
assertEquals(newLeaseSettingsSection.getDeploymentLeaseInSeconds(), (Integer)deploymentLeaseInSeconds);
}
@Test // FIXME Fails with PUT even though that agrees with docs
public void testEditVAppTemplateNetworkConfigSection() {
String networkName = ""+random.nextInt();
NetworkConfiguration networkConfiguration = NetworkConfiguration.builder()
.fenceMode("isolated")
.build();
VAppNetworkConfiguration vappNetworkConfiguration = VAppNetworkConfiguration.builder()
.networkName(networkName)
.configuration(networkConfiguration)
.build();
Set<VAppNetworkConfiguration> vappNetworkConfigurations = ImmutableSet.of(vappNetworkConfiguration);
NetworkConfigSection networkConfigSection = NetworkConfigSection.builder()
.networkConfigs(vappNetworkConfigurations)
.build();
final Task task = vappTemplateClient.editVAppTemplateNetworkConfigSection(vAppTemplateURI, networkConfigSection);
retryTaskSuccess.apply(task);
NetworkConfigSection newNetworkConfigSection = vappTemplateClient.getVAppTemplateNetworkConfigSection(vAppTemplateURI);
assertEquals(newNetworkConfigSection.getNetworkConfigs().size(), 1);
VAppNetworkConfiguration newVAppNetworkConfig = Iterables.get(newNetworkConfigSection.getNetworkConfigs(), 0);
assertEquals(newVAppNetworkConfig.getNetworkName(), networkName);
}
@Test
public void testEditVAppTemplateNetworkConnectionSection() {
String info = ""+random.nextInt();
NetworkConnectionSection networkConnectionSection = NetworkConnectionSection.builder()
.info(info)
.build();
final Task task = vappTemplateClient.editVAppTemplateNetworkConnectionSection(vAppTemplateURI, networkConnectionSection);
retryTaskSuccess.apply(task);
NetworkConnectionSection newNetworkConnectionSection = vappTemplateClient.getVAppTemplateNetworkConnectionSection(vAppTemplateURI);
assertEquals(newNetworkConnectionSection.getInfo(), info);
}
@Test // FIXME Need to clone a new template so have something to delete
public void testDeleteVAppTemplate() throws Exception {
// FIXME fix case of VappTemplate -> VAppTemplate
String newVAppTemplateId = "something";
URI newVAppTemplateURI = URI.create(endpoint + "/vAppTemplate/" + newVAppTemplateId);
final Task task = vappTemplateClient.deleteVappTemplate(newVAppTemplateURI);
retryTaskSuccess.apply(task);
// TODO What is the nice way to find out if a template now exists? It's certainly not the code below!
// But this gives an idea of what I'm trying to do.
try {
vappTemplateClient.getVAppTemplate(newVAppTemplateURI);
} catch (NoSuchElementException e) {
// success
}
}
@Test
public void testDisableVAppTemplateDownload() throws Exception {
// TODO Need assertion that command had effect
final Task task = vappTemplateClient.disableDownloadVappTemplate(vAppTemplateURI);
retryTaskSuccess.apply(task);
}
@Test
public void testEnableVAppTemplateDownload() throws Exception {
// TODO Need assertion that command had effect
final Task task = vappTemplateClient.enableDownloadVappTemplate(vAppTemplateURI);
retryTaskSuccess.apply(task);
}
@Test
public void testConsolidateVAppTemplate() throws Exception {
// TODO Need assertion that command had effect
final Task task = vappTemplateClient.consolidateVappTemplate(vAppTemplateURI);
retryTaskSuccess.apply(task);
}
@Test
public void testRelocateVAppTemplate() throws Exception {
// TODO Need assertion that command had effect
Reference dataStore = null; // FIXME
RelocateParams relocateParams = RelocateParams.builder()
.datastore(dataStore)
.build();
final Task task = vappTemplateClient.relocateVappTemplate(vAppTemplateURI, relocateParams);
retryTaskSuccess.apply(task);
}
}