Export the Content

Export your OO and CSA content from your existing environment.

  1. Export your OO contents into the appropriate directory/sub-directory under the use case directory. If you have multiple dependent OO contents, it is advised to keep each of them separately in different sub-directories under the use case directory.
  2. Export the CSA contents such as your Service Designs and Service Offerings and save them under the csa-contents directory.

Generating Capsule Use case Description File

As you have all the required contents of your use case available inside your use case directory, you can use the CapsulePackager.jar file to auto-generate the use case description file usecaseInfo.xml.

  1. Navigate to the directory from command or console prompt.
  2. Run the following command:
java -jar CapsulePackager.jar -g <path_to_usecase_directory>
example: java -jar CapsulePackager.jar -g “/Usecase Depot/HPE OpenStack”
  1. The usecaseInfo.xml file gets created and most of the file content will be generated by browsing and evaluating your file system content.

Updating the Capsule Use case Description File

The tool will generate a use case manifest file that needs to be updated with your own usecase metadata.

  1. Open the usecaseInfo.xml file.
  2. Edit the file according to the following recommendations:
<name>The must match the usecase directory name</name>
<description>A short description about the usecase</	description>	
<publisher>provide the publisher name with email contact information</publisher>
<content type="sequence" srcLocation="csa-contents">            
<name> SERVICE_DESIGN_Multi_tenant-support.zip </name>
<displayName>provide a display name for this SD</displayName>
<description>provide a short description about the SD</description>	 
<version>1.0.0</version> <!-- Mandatory: Enter the version of the content in x.x.x format, where x is a whole number -->
        <name> openstack-content.jar </name>
        <displayName>provide a display name for this content</displayName>
        <description>provide a short description of the content </description>
		<artifact type="SELF" name="openstack-util-content.jar" location="oo-contents/content2" version="14.12.1211"/>
        <artifact type="EXTERNAL" name="Base" location="" version="1.4.4" />
		<artifact type="EXTERNAL" name="HP Solutions" location="" version="1.1.2" />
		<artifact type="EXTERNAL" name="Cloud" location="" version="1.1.0" />
		<artifact type="EXTERNAL" name="Virtualization" location="" version="1.1.1" />
Provide any other EXTERNAL dependencies for the usecase
<componentTool srcLocation="componenttools">
		<component file="metainfo.txt" mappingFile="OPENSTACK.properties" capabilityMapping="true" />
	<file name="aux_file.jsp" destinationPath="CSA_JBOSS_HOME/standalone/deployments/csa.war/propertysources"  executable="false"/>
<file name="aux_jar_file.jar" destinationPath="CSA_JBOSS_HOME/standalone/deployments/csa.war/propertysources"  executable="false"/>
<file name="aux_script.py" destinationPath="CSA_JBOSS_HOME/standalone/deployments/csa.war/propertysources"  executable="false"/>
Provide the desired target path under “destinationPath”
<provider displayName="HPE Cloud Service Automation" mandatory="true" name="com.hp.csa">
            <version comparision="equals" value="4.50"/> 
<!-- "value" is mandatory and must be in x.x format, where x is a whole number-->
        <provider displayName="HPE Helion Codar" mandatory="true" name="com.hp.codar">
            <version comparision="equals" value="1.50"/>
        <provider displayName="HPE Operations Orchestration" mandatory="true" name="com.hp.oo">
            <version comparision="equals" value="10.21"/>
	Provide appropriate target versions of the supported HPE CSA/Codar/OO platforms

The above mentioned usecaseInfo.xml file is for Topology design. If the use case has Sequential design, you might need to update the ooengine information inside the <processDefinitionTool> tag.
For example, below is the description for Amazon EC2 Content:

Note: The Process Definition Tool is relevant for CSA 4.6 and earlier versions and is obsolete from CSA 4.7 version onwards.

     <folder path="/Library/CSA Content Pack/CSA3.2/Providers/Infrastructure/Amazon EC2/Actions" recursive="true" update="true"/>
     <folder path="/Library/CSA Content Pack/CSA3.2/Providers/Infrastructure/Amazon EC2/Load Balancing/Actions" recursive="true" update="true"/>
     <folder path="/Library/CSA Content Pack/CSA3.2/Providers/Infrastructure/Amazon EC2/Validation" recursive="true" update="true"/>
     <folder path="/Library/CSA Content Pack/CSA3.2/Providers/Email Notification/Actions" recursive="true" update="true"/> 
     <ooengine accessPointType="RESOURCE_POOL_SYNC" name="OO-RESOURCE-POOL-SYNC" >
      <folder path="/Library/CSA Content Pack/CSA3.2/Providers/Infrastructure/Amazon EC2/Resource Pool Sync/Actions" recursive="true" update="true" />

Note Once the UUID as under <uuid> element is generated for an use case, it is recommended to maintain the same for all the future versions.

Editing Dependencies (optional) of CSA Data

You can also predefine the provider type properties by adding <providerProperties> element. This will auto-populate the predefined provider properties in the CSA portal during the creation of Provider Type. We recommend you to enter the <displayName> as indicated in the CSA portal while creating your Service Designs. If the <displayName> is different than your target Provider Type, a new Provider Type matching the <displayName> will be created with the defined provider properties. However, if the <displayName> is the same as your target Provider Type, this definition will add your predefined provider properties to all existing providers and display the same.

Note: The default values of a property type is "String". However, you have an option to modify the values to Integer, list or boolean.

Below is an example for your reference.

      <displayName>VMWare vCenter</displayName>
      <description>A short description about the provider type</description>
         <property name="proxyport" type="Integer" value="80"/>
         <property name="proxypassword" type="String" value="" confidential="true" encrypted="false"/>
         <property name="proxyuser" type="String" value=""/>
	  <property name="proxyhost" type="String" value=""/>
	  <property name="listItems" type="List" value="t1, t2, t3, t4"/>
         <property name="isDefault" type="Boolean" value="true"/>