A system administrator can update the storage profiles that are included in a Provider VDC. New storage profiles can be added, and unused storage profiles can be removed.

Storage profiles can be created by a vCenter administrator on any vCenter server that supports the profile-driven storage feature. A Provider VDC can provide access to any of the storage profiles that have been created on its vCenter server (the one referenced in its vmext:VimServer element). A vCloud Director system administrator must specify at least one vCenter storage profile when creating a Provider VDC, and can add or remove storage profiles later as needed. Organization VDCs reference Provider VDC storage profiles in much the same way that Provider VDCs reference vCenter storage profiles. Media and Disk objects, as well as vApps and virtual machines reference organization VDC storage profiles by name.

Note

Storage profiles are represented as Storage Policies in the vCloud Director Web console.

This operation is restricted to system administrators.

1

Retrieve the XML representation of the Provider VDC.

Use a request like this one:

GET https://vcloud.example.com/api/admin/extension/providervdc/35
2

Examine the VMWProviderVdc element to find the storageProfiles link and the vmext:VimServer element.

The storageProfiles link has the following form:

<Link
      rel="edit"
      type="application/vnd.vmware.admin.updateProviderVdcStorageProfiles+xml"
      href="https://vcloud.example.com/api/admin/providervdc/35/storageProfiles" />
3

Create an UpdateProviderVdcStorageProfiles request body that specifies the details of the update.

To add a storage profile:

a

Choose another storage profile from the vCenter server referenced in the vmext:VimServer element you located in Step 2.

b

Create an UpdateProviderVdcStorageProfiles element that contains an AddStorageProfile element for each storage profile to add.

To remove a storage profile:

a

Retrieve the Provider VDC's availableStorageProfiles list and find the name of the profile to remove.

Use a request like this one:

GET https://vcloud.example.com/api/admin/extension/providervdc/35/availableStorageProfiles
b

Verify that no organization VDCs are using the storage profile you want to remove.

c

Create an UpdateProviderVdcStorageProfiles element that contains a RemoveStorageProfile element for each storage profile to remove.

4

POST the UpdateProviderVdcStorageProfiles element to the Provider VDC's storageProfiles link.

The server returns a Task element that you can use to track the progress of the update. When the update is complete, the Provider VDC includes the updated set of storage profiles in its StorageProfiles element. Each storage profile you added becomes the basis for a ProviderVdcStorageProfile object, and can be retrieved from the Provider VDC after it has been created, or by using a providerVdcStorageProfile query.

This request adds a storage profile named Bronze to the Provider VDC created in Example: Create a Provider VDC. The new storage profile is hosted on the same vCenter server that hosts the existing storage profile. See Retrieve a List of Storage Profiles from a vCenter Server for an example that lists the storage profiles available on that server.

Request:

POST https://vcloud.example.com/api/admin/extension/providervdc/35/action/updateStorageProfiles
Content-Type: application/vnd.vmware.admin.updateProviderVdcStorageProfiles+xml
...
<?xml version="1.0" encoding="UTF-8"?>
<vmext:UpdateProviderVdcStorageProfiles
   xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5"
   xmlns:vcloud="http://www.vmware.com/vcloud/v1.5">
   <vmext:AddStorageProfile>Bronze</vmext:AddStorageProfile>
</vmext:UpdateProviderVdcStorageProfiles>

Response:

202 Accepted
Content-Type: application/vnd.vmware.vcloud.task+xml
...
<Task ... >
   ...
</Task>