You can use the REST API content management service to validate a content bundle before importing to a critical system. VMware recommends that you validate all packages before importing them to any system.

Input

You can use optional request parameters with your query URL to customize the returned content.

Tabelle 1. Package Validation Parameters

Name

Description

Type

file

The name of the package file to be validated

query

resolution mode

The resolution mode to be used for performing validation when the same entity exists in the system. Valid values are SKIP, OVERWRITE. SKIP will not update the existing entity with the new content while OVERWRITE will update the old entity with the new data. In case the resolution mode is not explicitly provided the default mode OVERWRITE will be used for conflict resolution.

query

Output

The package validation response body contains the following parameters.

Tabelle 2. Import and Export Response Body Parameters

Parameter

Description

contentImportStatus

Over all status of the import/validation operation, one failure in import/validation result guarantees failed status. Values are as follows:

  • Success - Denotes the successful import or validation status at a particular component or package level.

  • Failed - Denotes an import or validation failure at a particular component package level.

  • Warning - Denotes a scenario that warrants a system level warning. Alerts the user about a possible error condition that the proposed action may create.

contentImportResults

Set of collected content import/validation results populated by the provider. The Content import operation result collection is the set of content that passed or failed. If failed the errors are populated in ContentImportError. Properties are as follows:

  • contentId - (string) Unique content ID within the file system.

  • contentName - (anyType) Name of the content being imported.

  • contentTypeId - (string) The ID for the content type being exported. This matches the folder structure in the exported zip.

  • contentImportStatus - Track the failed or succeeded status of an entity.

  • messages - Information returned by the provider.

  • contentImportErrors - Set of errors returned by the provider.

Example Curl Command

This example uses the 'DukesBankApp.zip' - which is out-of-the-box content provided on the vRealize Automation virtual appliance. You can copy the file from /usr/lib/vcac/tools/initial-config/sample-oob-content/DukesBankApp.zip using WinSCP (Windows) or scp (Mac).

$curl --insecure -s -H" Content-Type: multipart/form-data" -H "Authorization: Bearer $token" https://$host/content-management-service/api/packages/validate -F "file=@DukesBankApp.zip"

JSON Output

The validation output displays the validation status of each content item within the bundle.

{
  "contentImportStatus": "SUCCESS",
  "contentImportResults": [
    {
      "contentId": "Apache_LB",
      "contentName": "Apache_LB",
      "contentTypeId": "software-component",
      "contentImportStatus": "SUCCESS",
      "contentImportErrors": null
    },
    {
      "contentId": "MySql",
      "contentName": "MySql",
      "contentTypeId": "software-component",
      "contentImportStatus": "SUCCESS",
      "contentImportErrors": null
    },
    {
      "contentId": "JBossAppServer",
      "contentName": "JBossAppServer",
      "contentTypeId": "software-component",
      "contentImportStatus": "SUCCESS",
      "contentImportErrors": null
    },
    {
      "contentId": "Dukes-Bank-DB-setup",
      "contentName": "Dukes-Bank-DB-setup",
      "contentTypeId": "software-component",
      "contentImportStatus": "SUCCESS",
      "contentImportErrors": null
    },
    {
      "contentId": "Dukes_Bank_App",
      "contentName": "Dukes_Bank_App",
      "contentTypeId": "software-component",
      "contentImportStatus": "SUCCESS",
      "contentImportErrors": null
    },
    {
      "contentId": "DukesBankApplication",
      "contentName": "DukesBankApplication",
      "contentTypeId": "composite-blueprint",
      "contentImportStatus": "SUCCESS",
      "contentImportErrors": null
    }
  ]
}