(Quick Reference)

CSA Plugin

The CSA plugin is the central point for integration with HP CSA. It dynamically creates supported plugin instances to query resource information from CSA providers and report these to Moab. It also exposes several web services used to integrate with the lifecycle management process using OO.

Required Configuration

ParameterTypeDescription
csaUrlStringThe base URL of CSA. Ex: https://csa.example.com:8000/csa

Optional Configuration

ParameterTypeDefaultDescription
ignoreSSLErrorsBooleanFalseIf true, ignores all SSL certificate errors and warnings.
ignoreVMsString (comma-separated)EmptyIf present, ignores all VMs with matching IDs.

The ignoreSSLErrors option, if enabled, is very insecure. Use with caution!
All optional configuration is passed onto plugin instances that are created by the CSA plugin, such as SA.

Exposed Web Services

MethodParameters TypeDescription
serviceRequestXML PayloadCreates virtual containers (VCs) and jobs from a CSA Servers XML request.
serviceDeleteURL ParameterDeletes the VC and jobs related to a CSA service request.
serviceDeployURL ParameterQueries if all jobs associated with a VC have been started by Moab and returns the hypervisors that were selected if so.

Service Request

The serviceRequest service will pull multiple points of data from a Servers XML payload as shown below. The attributes used in creating jobs and VCs are:

  • CPUs required
  • Memory required
  • Disk required
  • Template reference
  • Requesting user

Request

Sample serviceRequest Request
<Servers>
	<Server>
	  <created>2011-09-30T08:34:21.217-04:00</created>
	  <id>9ecff8bc-bea2-499e-81c9-a5f2204e108e</id>
	  <updated>2011-09-30T08:34:23.337-04:00</updated>
	  <description>Pattern to stand up a simple RH53 server with 1 cpus, 256MB memory and a 12GB boot disk</description>
	  <name>Server-0</name>
	  <tags/>
	  <classifier>Server</classifier>
	  <domainUri>/infra/servers/9ecff8bc-bea2-499e-81c9-a5f2204e108e</domainUri>
	  <properties/>
	  <lifecycleState>RESERVING</lifecycleState>
	  <opState>In-Progress</opState>
	  <parentId>f7814d24-3e9e-40d1-acd4-972aa6a75462</parentId>
	  <processOrder>0</processOrder>
	  <rootId>71e4c250-fd37-4f57-9ff5-77b1986ad254</rootId>
	  <lifecycleSubstate>PRE_TRANSITION</lifecycleSubstate>
	  <cpus>1</cpus>
	  <memorySize>256</memorySize>
	  <memoryUnit>MB</memoryUnit>
	  <osType>Linux</osType>
	  <runState>Unknown</runState>
	  <serverGroupId>f7814d24-3e9e-40d1-acd4-972aa6a75462</serverGroupId>
	  <templateReference>rhel-5.4-template</templateReference>
	  <volume0Size>12</volume0Size>
	  <volume0Unit>GB</volume0Unit>
	</Server>
</Servers>

Response

The return data is XML representing the VCs and jobs relating to services as shown below.

Sample serviceRequest Response
<results>
	<vcs>
		<vc>
			<id>vc1</id>
			<jobs>
				<e>Moab.1</e>
				<e>Moab.2</e>
			</jobs>
		</vc>
	</vcs>
</results>

Service Delete

The serviceDelete service destroys the VC and jobs associated with a CSA service request. This is to be used when the service request is no longer needed or is canceled.

Request

A single URL parameter called id containing the virtual container ID is required to destroy the related objects.

Service Deploy

The serviceDeploy service is used to poll whether or not all jobs and VMs have been started by Moab that are required for a service request.

Request

A single URL parameter called id containing the virtual container ID is required to query for deployment status.

Response

If the service has not been fully scheduled with Moab, a 500 HTTP response code is returned with an error message. If it is ready, the service returns data relating the jobs and virtual machines to which hypervisors they need to be deployed on as shwon below. CSA then uses this information to schedule the provisioning of VMs.

Sample serviceDeploy Response
<results>
	<servers>
		<e>
			<id>9ecff8bc-bea2-499e-81c9-a5f2204e108e</id>
			<hypervisorId>10.0.0.1</hypervisorId>
		</e>
		<e></e></servers>
</results>