An organization administrator in an organization that has permission to publish externally can create a catalog whose contents, catalog items created locally, are made available to external consumers on a subscription basis.
Organizations that are permitted to publish externally can enable any of their catalogs for external publication. A catalog that is enabled for external publication becomes accessible at a URL assigned by the system, and can be protected by a password. A catalog in another instance of VMware Cloud Director can subscribe to an externally published catalog and maintain an up-to-date set of catalog items. See Synchronization.
You can use this procedure to create a new catalog that is enabled for external publication, or you can use the procedure shown in Publish an Existing Catalog Externally to enable an existing catalog for external publication. If a catalog has an external subscription, you cannot enable it for external publication.
Prerequisites
-
This operation requires the rights included in the predefined Catalog Author role or an equivalent set of rights.
-
Verify that at least one VDC exists in your organization. You cannot create a catalog in an organization that has no VDCs.
- Verify that your organization has permission to publish externally.
The OrgGeneralSettings in the AdminOrg element that represents your organization must have a CanPublishExternally element with a value of
true
.<CanPublishExternally>true</CanPublishExternally>
Retrieve the XML representation of the organization to which to add the catalog, and examine the response to locate the Link element that contains the URL for adding catalogs to the organization. See Add a Catalog to an Organization.
Procedure
Results
The server creates an empty catalog and returns its representation in the response. See the response portion of Create a Catalog.
Example: Create a Catalog For External Publication
This request is similar to the one used in Create a Catalog but includes a PublishExternalCatalogParams element that specifies that the catalog is to be published externally. This request creates the catalog with a content cache, which can improve synchronization performance for external catalogs that subscribe to this one, but requires enough space on the system's transfer storage to accommodate all of the items in the catalog. This request also sets the PreserveIdentityInfoFlag element to false
, which prevents values such as the BIOS UUID and MAC address associated with virtual machine identities from being published. If you omit this element or set its value to true
, these values are published for all catalog items that represent virtual machines.
POST https://vcloud.example.com/api/admin/org/26/catalogs Content-Type: application/vnd.vmware.admin.catalog+xml ... <?xml version="1.0" encoding="UTF-8"?> <AdminCatalog xmlns="http://www.vmware.com/vcloud/v1.5" name="PublishedExternally"> <Description>Example Catalog for External Publication</Description> <PublishExternalCatalogParams> <IsPublishedExternally>true</IsPublishedExternally> <IsCacheEnabled>true</IsCacheEnabled> <PreserveIdentityInfoFlag>false</PreserveIdentityInfoFlag> <Password>Pa55w0rd</Password> </PublishExternalCatalogParams> </AdminCatalog>
The response is similar to the one shown in Create a Catalog, but includes the PublishExternalCatalogParams element. The embedded Task element tracks the creation of the catalog and its accompanying Web site. The Password element in the request is never returned.
201 Created Content-Type: application/vnd.vmware.admin.catalog+xml ... <AdminCatalog xmlns:vcloud="http://www.vmware.com/vcloud/v1.5" name="PublishedExternally" id="urn:vcloud:catalog:33" type="application/vnd.vmware.admin.catalog+xml" href="https://vcloud.example.com/api/admin/catalog/33"> ... <Link rel="up" type="application/vnd.vmware.admin.organization+xml" href="https://vcloud.example.com/api/admin/org/26" /> <Link ... > ... <Tasks> <Task status="running" ... operation="Creating Catalog PublishedExternally (33)" ...> ... <Task> <Tasks> <Description>Example Catalog for External Publication</Description> <CatalogItems/> <IsPublished>false</IsPublished> <DateCreated>2013-06-18T09:55:59.131-07:00</DateCreated> <VersionNumber>1</VersionNumber> <CatalogStorageProfiles/> <PublishExternalCatalogParams> <IsPublishedExternally>true</IsPublishedExternally> <IsCacheEnabled>true</IsCacheEnabled> <PreserveIdentityInfoFlag>false</PreserveIdentityInfoFlag> </PublishExternalCatalogParams> </AdminCatalog>
<AdminCatalog ... > ... <PublishExternalCatalogParams> <IsPublishedExternally>true</IsPublishedExternally> <IsCacheEnabled>true</IsCacheEnabled> <CatalogPublishedUrl>https://vcloud2.example.com/vcsp/catalog/5</CatalogPublishedUrl> </PublishExternalCatalogParams> </AdminCatalog>