A system administrator can update the storage profiles that are available in an organization VDC. You can add new storage profiles and remove unused storage profiles.

An organization VDC storage profile allocates a subset of the storage available in a Provider VDC storage profile for use by vApp templates, virtual machines, and media objects in the organization VDC. For each organization VDC storage profile you create, you must specify a storage limit, which cannot exceed the storage available in the Provider VDC storage profile (the value of CapacityTotalCapacityUsed in the ProviderVdcStorageProfile). When you update organization VDC storage profiles, you can change the default storage profile and modify the limits on existing storage profiles.

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 VDC in the admin view.

Use a request like this one:

GET https://vcloud.example.com/api/admin/vdc/44
2

Examine the AdminVdc element to find the vdcStorageProfiles link, VdcStorageProfiles element, and ProviderVdcReference element it contains.

The vdcStorageProfiles link has the following form:

<Link
   rel="edit"
   type="application/vnd.vmware.admin.updateVdcStorageProfiles+xml"
   href="https://vcloud.example.com/api/admin/vdc/44/vdcStorageProfiles" />
3

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

To add a storage profile:

a

Select a storage profile from the Provider VDC referenced in the ProviderVdcReference element of the VDC you are updating.

The storage profile must not be listed in the VdcStorageProfiles element of the VDC you are updating.

b

Include an AddStorageProfile element in the UpdateVdcStorageProfiles request body.

The AddStorageProfile element must specify values for Units, Limit, and Default, and must include a reference to the Provider VDC storage profile on which it is based. You can add multiple storage profiles in a single request. Only one of them can specify Default as true. If any AddStorageProfile element specifies Default as true, that storage profile becomes the new default storage profile for the VDC.

To remove a storage profile:

a

Examine the VdcStorageProfiles element and find the profile to remove.

b

Verify that it is not the default storage profile for the VDC, and that no virtual machines are using it.

You can use the adminVm query and filter on the storageProfileName attribute to list all storage profiles that are in use.

c

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

4

POST the UpdateVdcStorageProfiles element to the VDC's vdcStorageProfiles link.

This request adds a storage profile to the VDC created in Example: Create an Organization VDC. The new storage profile is one of the profiles available from the Provider VDC that backs this organization VDC.

One way to retrieve a list of all the Provider VDC storage profiles available from a specific Provider VDC is to use the query service. This query applies a filter that selects only those storage profiles available from the Provider VDC that backs the organization VDC created in Example: Create an Organization VDC.

GET https://vcloud.example.com/api/query?type=providerVdcStorageProfile&format=references
&filter=providerVdc==https://vcloud.example.com/api/admin/providervdc/35

The response might look something like this:

<?xml version="1.0" encoding="UTF-8"?>
<ProviderVdcStorageProfileReferences .../>
   ...
   <ProviderVdcStorageProfileReference
      type="application/vnd.vmware.admin.pvdcStorageProfile+xml"
      name="Gold"
      id="urn:vcloud:providervdcstorageprofile:101"
      href="https://vcloud.example.com/api/admin/pvdcStorageProfile/101" />
   <ProviderVdcStorageProfileReference
      type="application/vnd.vmware.admin.pvdcStorageProfile+xml"
      name="Silver"
      id="urn:vcloud:providervdcstorageprofile:128"
      href="https://vcloud.example.com/api/admin/pvdcStorageProfile/128" />
   ...
</ProviderVdcStorageProfileReferences>

You can use the information in the response to construct the AddStorageProfile element in the request body. This example creates a storage profile that is not a default storage profile, and has a specific value for Limit, 5038 MB. To specify unlimited storage (subject to the capacity of the underlying Provider VDC), set the value of Limit to 0.

Request:

POST https://vcloud.example.com/api/admin/vdc/44/vdcStorageProfiles
Content-Type: application/vnd.vmware.admin.updateVdcStorageProfiles+xml
...
<?xml version="1.0" encoding="UTF-8"?>
<UpdateVdcStorageProfiles
   xmlns="http://www.vmware.com/vcloud/v1.5" >
   <AddStorageProfile>
      <Enabled>true</Enabled>
      <Units>MB</Units>
      <Limit>5038</Limit>
      <Default>false</Default>
      <ProviderVdcStorageProfile
         href="https://vcloud.example.com/api/admin/pvdcStorageProfile/128" />
   </AddStorageProfile>
</UpdateVdcStorageProfiles>

The response is a Task.

Response:

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