diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java index d6abd466da..7454d952d1 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Catalog.java @@ -174,18 +174,9 @@ public class Catalog extends CatalogType { } } -<<<<<<< HEAD public Catalog(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, String name, Owner owner, CatalogItems catalogItems, Boolean published) { super(href, type, links, description, tasksInProgress, id, name, owner, catalogItems, published); -======= - private Catalog(URI href, String type, Set links, String description, TasksInProgress tasksInProgress, String id, - String name, Entity owner, CatalogItems catalogItems, Boolean published) { - super(href, type, links, description, tasksInProgress, id, name); - this.owner = owner; - this.catalogItems = catalogItems; - this.isPublished = published; ->>>>>>> VCloud Director 1.5: Adjusting misleading comments and consistently using @XmlReference only for substitution groups } @SuppressWarnings("unused") diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/DhcpService.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/DhcpService.java index bbe8f04679..1d16051727 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/DhcpService.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/DhcpService.java @@ -106,7 +106,6 @@ public class DhcpService extends NetworkServiceType { this.isEnabled = enabled; return this; } - } @XmlElement(name = "DefaultLeaseTime") diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/FirewallService.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/FirewallService.java index 6ed7c33c7b..ff31582edd 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/FirewallService.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/FirewallService.java @@ -118,6 +118,12 @@ public class FirewallService extends NetworkServiceType { .logDefaultAction(in.isLogDefaultAction()) .firewallRules(in.getFirewallRules()); } + + @Override + public Builder enabled(boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } } private FirewallService(boolean enabled, String defaultAction, Boolean logDefaultAction, Set firewallRules) { diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/IpsecVpnService.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/IpsecVpnService.java index d9c5603722..198f43d958 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/IpsecVpnService.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/IpsecVpnService.java @@ -118,6 +118,12 @@ public class IpsecVpnService extends NetworkServiceType { .publicIpAddress(in.getPublicIpAddress()) .ipsecVpnTunnels(in.getIpsecVpnTunnels()); } + + @Override + public Builder enabled(boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } } private IpsecVpnService(boolean enabled, String externalIpAddress, String publicIpAddress, List ipsecVpnTunnel) { diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Owner.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Owner.java index 0fe6fc6662..6af3bb8e6c 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Owner.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/Owner.java @@ -56,10 +56,12 @@ import com.google.common.collect.Sets; */ @XmlRootElement(name = "Owner") @XmlType(propOrder = {"user"}) -public class Owner - extends ResourceType +public class Owner extends ResourceType { +<<<<<<< HEAD { +======= +>>>>>>> VCloud Director 1.5: Adding VAppTemplateClient error handling tests and fixing bug in NetworkService.isEnabled public static Builder builder() { return new Builder(); } diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/StaticRoutingService.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/StaticRoutingService.java index dbb6b3dee1..a0514d4009 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/StaticRoutingService.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/domain/StaticRoutingService.java @@ -96,6 +96,12 @@ public class StaticRoutingService extends NetworkServiceType staticRoutes) { diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncClient.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncClient.java index 701d62af68..7f3db4edf8 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncClient.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateAsyncClient.java @@ -69,6 +69,7 @@ public interface VAppTemplateAsyncClient { @Produces(VAPP_TEMPLATE) @Consumes(TASK) @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplate(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) VAppTemplate template); @@ -78,6 +79,7 @@ public interface VAppTemplateAsyncClient { @DELETE @Consumes(TASK) @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture deleteVappTemplate(@EndpointParam URI templateUri); /** @@ -87,6 +89,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/action/consolidate") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture consolidateVappTemplate(@EndpointParam URI templateURI); /** @@ -96,6 +99,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/action/disableDownload") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture disableDownloadVappTemplate(@EndpointParam URI templateURI); /** @@ -105,6 +109,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/action/enableDownload") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture enableDownloadVappTemplate(@EndpointParam URI templateURI); /** @@ -115,6 +120,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/action/relocate") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture relocateVappTemplate(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) RelocateParams params); @@ -125,6 +131,7 @@ public interface VAppTemplateAsyncClient { @Consumes(CUSTOMIZATION_SECTION) @Path("/customizationSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateCustomizationSection(@EndpointParam URI templateURI); /** @@ -135,6 +142,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/customizationSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplateCustomizationSection(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) CustomizationSection sectionType); @@ -145,6 +153,7 @@ public interface VAppTemplateAsyncClient { @Consumes(GUEST_CUSTOMIZATION_SECTION) @Path("/guestCustomizationSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateGuestCustomizationSection(@EndpointParam URI templateURI); /** @@ -155,6 +164,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/guestCustomizationSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplateGuestCustomizationSection(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) GuestCustomizationSection section); @@ -165,6 +175,7 @@ public interface VAppTemplateAsyncClient { @Consumes(LEASE_SETTINGS_SECTION) @Path("/leaseSettingsSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVappTemplateLeaseSettingsSection(@EndpointParam URI templateURI); /** @@ -175,6 +186,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/leaseSettingsSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVappTemplateLeaseSettingsSection(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) LeaseSettingsSection settingsSection); @@ -185,6 +197,7 @@ public interface VAppTemplateAsyncClient { @Consumes(METADATA) @Path("/metadata") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateMetadata(@EndpointParam URI templateURI); @PUT @@ -192,6 +205,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/metadata") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplateMetadata(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) Metadata metadata); @@ -202,6 +216,7 @@ public interface VAppTemplateAsyncClient { @Consumes(METADATA_ENTRY) @Path("/metadata/{key}") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateMetadataValue(@EndpointParam URI templateURI, @PathParam("key") String key); @@ -213,6 +228,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/metadata/{key}") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplateMetadataValue(@EndpointParam URI templateURI, @PathParam("key") String key, @BinderParam(BindToXMLPayload.class) MetadataValue value); @@ -224,6 +240,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/metadata/{key}") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture deleteVAppTemplateMetadataValue(@EndpointParam URI templateURI, @PathParam("key") String key); @@ -234,6 +251,7 @@ public interface VAppTemplateAsyncClient { @Consumes(NETWORK_CONFIG_SECTION) @Path("/networkConfigSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateNetworkConfigSection(@EndpointParam URI templateURI); /** @@ -244,6 +262,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/networkConfigSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplateNetworkConfigSection(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) NetworkConfigSection section); @@ -254,6 +273,7 @@ public interface VAppTemplateAsyncClient { @Consumes(NETWORK_CONNECTION_SECTION) @Path("/networkConnectionSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateNetworkConnectionSection(@EndpointParam URI templateURI); /** @@ -264,6 +284,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/networkConnectionSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplateNetworkConnectionSection(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) NetworkConnectionSection section); @@ -274,6 +295,7 @@ public interface VAppTemplateAsyncClient { @Consumes(NETWORK_SECTION) @Path("/networkSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateNetworkSection(@EndpointParam URI templateURI); /** @@ -284,6 +306,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/networkSection") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editVAppTemplateNetworkSection(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) NetworkSection section); @@ -294,6 +317,7 @@ public interface VAppTemplateAsyncClient { @Consumes(ENVELOPE) @Path("/ovf") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getVAppTemplateOvf(@EndpointParam URI templateURI); /** @@ -303,6 +327,7 @@ public interface VAppTemplateAsyncClient { @Consumes(OWNER) @Path("/owner") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getOwnerOfVAppTemplate(@EndpointParam URI templateURI); /** @@ -312,6 +337,7 @@ public interface VAppTemplateAsyncClient { @Consumes(PRODUCT_SECTION_LIST) @Path("/productSections") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture getProductSectionsForVAppTemplate(@EndpointParam URI templateURI); /** @@ -322,6 +348,7 @@ public interface VAppTemplateAsyncClient { @Consumes(TASK) @Path("/productSections") @JAXBResponseParser + @ExceptionParser(ThrowVCloudErrorOn4xx.class) ListenableFuture editProductSectionsForVAppTemplate(@EndpointParam URI templateURI, @BinderParam(BindToXMLPayload.class) ProductSectionList sections); diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClient.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClient.java index 618647e8d6..1419dac4c4 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClient.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClient.java @@ -38,7 +38,7 @@ public interface VAppTemplateClient { /** * Retrieves a vApp template (can be used also to retrieve a VM from a vApp Template). * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the requested template */ VAppTemplate getVAppTemplate(URI templateUri); @@ -46,8 +46,8 @@ public interface VAppTemplateClient { /** * Modifies only the name/description of a vApp template. * - * @@param templateUri the URI of the template - * @param template the template containing the new name and/or description + * @param templateUri the URI of the template + * @param template the template containing the new name and/or description * @return the task performing the action */ Task editVAppTemplate(URI templateUri, VAppTemplate template); @@ -55,7 +55,7 @@ public interface VAppTemplateClient { /** * Deletes a vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task deleteVappTemplate(URI templateUri); @@ -63,7 +63,7 @@ public interface VAppTemplateClient { /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task consolidateVappTemplate(URI templateUri); @@ -71,7 +71,7 @@ public interface VAppTemplateClient { /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task disableDownloadVappTemplate(URI templateUri); @@ -79,7 +79,7 @@ public interface VAppTemplateClient { /** * Consolidates a VM, * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task enableDownloadVappTemplate(URI templateUri); @@ -87,7 +87,8 @@ public interface VAppTemplateClient { /** * Relocates a virtual machine in a vApp template to a different datastore. * * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template + * @param params contains the reference to the new datastore * @return the task performing the action */ Task relocateVappTemplate(URI templateUri, RelocateParams params); @@ -95,7 +96,7 @@ public interface VAppTemplateClient { /** * Retrieves the customization section of a vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ CustomizationSection getVAppTemplateCustomizationSection(URI templateUri); @@ -103,15 +104,16 @@ public interface VAppTemplateClient { /** * Modifies the vApp template customization information. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template + * @param section the new configuration to apply * @return the task performing the action */ - Task editVAppTemplateCustomizationSection(URI templateUri, CustomizationSection sectionType); + Task editVAppTemplateCustomizationSection(URI templateUri, CustomizationSection section); /** * Retrieves the Guest Customization Section of a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ GuestCustomizationSection getVAppTemplateGuestCustomizationSection(URI templateUri); @@ -119,15 +121,16 @@ public interface VAppTemplateClient { /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template + * @param section the new configuration to apply * @return the task performing the action */ - Task editVAppTemplateGuestCustomizationSection(URI templateUri, GuestCustomizationSection sectionType); + Task editVAppTemplateGuestCustomizationSection(URI templateUri, GuestCustomizationSection section); /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ LeaseSettingsSection getVappTemplateLeaseSettingsSection(URI templateUri); @@ -135,15 +138,16 @@ public interface VAppTemplateClient { /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template + * @param section the new configuration to apply * @return the task performing the action */ - Task editVappTemplateLeaseSettingsSection(URI templateUri, LeaseSettingsSection settingsSection); + Task editVappTemplateLeaseSettingsSection(URI templateUri, LeaseSettingsSection section); /** * Retrieves the metadata associated with a vApp Template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the requested metadata */ Metadata getVAppTemplateMetadata(URI templateUri); @@ -151,7 +155,7 @@ public interface VAppTemplateClient { /** * Merges the metadata for a vApp Template with the information provided. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task editVAppTemplateMetadata(URI templateUri, Metadata metadata); @@ -159,7 +163,7 @@ public interface VAppTemplateClient { /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ MetadataValue getVAppTemplateMetadataValue(URI templateUri, String key); @@ -167,7 +171,7 @@ public interface VAppTemplateClient { /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task editVAppTemplateMetadataValue(URI templateUri, String key, MetadataValue value); @@ -175,7 +179,7 @@ public interface VAppTemplateClient { /** * Consolidates a VM * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task deleteVAppTemplateMetadataValue(URI templateUri, String key); @@ -183,7 +187,7 @@ public interface VAppTemplateClient { /** * Retrieves the network config section of a vApp or vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the network config section requested */ NetworkConfigSection getVAppTemplateNetworkConfigSection(URI templateUri); @@ -191,7 +195,8 @@ public interface VAppTemplateClient { /** * Modifies the network config section of a vApp or vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template + * @param section the new configuration to apply * @return the task performing the action */ Task editVAppTemplateNetworkConfigSection(URI templateUri, NetworkConfigSection section); @@ -199,7 +204,7 @@ public interface VAppTemplateClient { /** * Retrieves the network connection section of a vApp or vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the network connection section requested */ NetworkConnectionSection getVAppTemplateNetworkConnectionSection(URI templateUri); @@ -207,7 +212,8 @@ public interface VAppTemplateClient { /** * Modifies the network connection section of a vApp or vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template + * @param section the new configuration to apply * @return the task performing the action */ Task editVAppTemplateNetworkConnectionSection(URI templateUri, NetworkConnectionSection section); @@ -215,7 +221,7 @@ public interface VAppTemplateClient { /** * Retrieves the network section of a vApp or vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the network section requested */ NetworkSection getVAppTemplateNetworkSection(URI templateUri); @@ -223,7 +229,8 @@ public interface VAppTemplateClient { /** * Modifies the network section of a vApp or vApp template. * - * @@param templateUri the URI of the 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); @@ -231,7 +238,7 @@ public interface VAppTemplateClient { /** * Retrieves an OVF descriptor of a vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Envelope getVAppTemplateOvf(URI templateUri); @@ -239,7 +246,7 @@ public interface VAppTemplateClient { /** * Retrieves vApp template owner. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the owner of the vApp template */ Owner getOwnerOfVAppTemplate(URI templateUri); @@ -247,7 +254,7 @@ public interface VAppTemplateClient { /** * Retrieves VAppTemplate/VM product sections * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the product sections */ ProductSectionList getProductSectionsForVAppTemplate(URI templateUri); @@ -255,7 +262,7 @@ public interface VAppTemplateClient { /** * Modifies the product sections of a vApp or vApp template. * - * @@param templateUri the URI of the template + * @param templateUri the URI of the template * @return the task performing the action */ Task editProductSectionsForVAppTemplate(URI templateUri, ProductSectionList sections); diff --git a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/ThrowVCloudErrorOn4xx.java b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/ThrowVCloudErrorOn4xx.java index 89d959711c..1507376f8d 100644 --- a/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/ThrowVCloudErrorOn4xx.java +++ b/labs/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/ThrowVCloudErrorOn4xx.java @@ -39,7 +39,8 @@ import com.google.common.collect.Iterables; @Singleton public class ThrowVCloudErrorOn4xx implements Function { @Inject - private ThrowVCloudErrorOn4xx() { } + private ThrowVCloudErrorOn4xx() { + } @Override public Object apply(Exception from) { diff --git a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClientExpectTest.java b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClientExpectTest.java index 01e2eb1a18..406c3d142e 100644 --- a/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClientExpectTest.java +++ b/labs/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/VAppTemplateClientExpectTest.java @@ -27,6 +27,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Locale; +import org.jclouds.vcloud.director.v1_5.VCloudDirectorException; import org.jclouds.vcloud.director.v1_5.domain.*; import org.jclouds.vcloud.director.v1_5.internal.BaseVCloudDirectorRestClientExpectTest; import org.testng.annotations.Test; @@ -42,7 +43,7 @@ import com.google.common.collect.ImmutableSet; public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientExpectTest { public void testVAppTemplate() { - final String templateId = "/vAppTemplate/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse, @@ -59,15 +60,51 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx assertEquals(template, exampleTemplate()); - Task task = client.editVAppTemplate(uri, template); + 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = requestsSendResponses(loginRequest, sessionResponse, @@ -80,8 +117,20 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = requestsSendResponses(loginRequest, sessionResponse, @@ -94,8 +143,20 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = requestsSendResponses(loginRequest, sessionResponse, @@ -108,12 +169,24 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + 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").xmlFilePayload("/vappTemplate/relocateParams.xml", RELOCATE_TEMPLATE).acceptMedia(TASK).httpRequestBuilder().build(), + 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(); @@ -126,8 +199,23 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse, @@ -142,12 +230,36 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx assertEquals(section, exampleCustomizationSection()); - Task task = client.editVAppTemplateCustomizationSection(uri, section); + 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse, @@ -162,12 +274,36 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx assertEquals(section, exampleGuestCustomizationSection()); - Task task = client.editVAppTemplateGuestCustomizationSection(uri, section); + 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse, @@ -182,12 +318,36 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx assertEquals(section, exampleLeaseSettingsSection()); - Task task = client.editVappTemplateLeaseSettingsSection(uri, section); + 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse, @@ -202,12 +362,36 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx assertEquals(metadata, exampleMetadata()); - Task task = client.editVAppTemplateMetadata(uri, metadata); + 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse, @@ -224,15 +408,51 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx assertEquals(metadata, exampleMetadataValue()); - Task task = client.editVAppTemplateMetadataValue(uri, "12345", metadata); + 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/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; + final String templateId = "/vAppTemplate/vappTemplate-ef4415e6-d413-4cbb-9262-f9bbec5f2ea9"; URI uri = URI.create(endpoint + templateId); VAppTemplateClient client = orderedRequestsSendResponses(loginRequest, sessionResponse, @@ -248,17 +468,41 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx assertEquals(section, exampleNetworkConfigSection()); - Task task = client.editVAppTemplateNetworkConfigSection(uri, section); + 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().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(); + 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/")) @@ -359,7 +603,9 @@ public class VAppTemplateClientExpectTest extends BaseVCloudDirectorRestClientEx private NetworkConfigSection exampleNetworkConfigSection() throws ParseException { FirewallService firewallService = - FirewallService.builder().firewallRules( + FirewallService.builder() + .enabled(true) + .firewallRules( ImmutableSet.of( FirewallRule.builder() .isEnabled(true) diff --git a/labs/vcloud-director/src/test/resources/vapptemplate/error400.xml b/labs/vcloud-director/src/test/resources/vapptemplate/error400.xml new file mode 100644 index 0000000000..79e7de7456 --- /dev/null +++ b/labs/vcloud-director/src/test/resources/vapptemplate/error400.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/labs/vcloud-director/src/test/resources/vapptemplate/error403.xml b/labs/vcloud-director/src/test/resources/vapptemplate/error403.xml new file mode 100644 index 0000000000..7b76031532 --- /dev/null +++ b/labs/vcloud-director/src/test/resources/vapptemplate/error403.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file