HP CloudSystem Matrix/Matrix Operating
Environment 7.1 Integration Interfaces
API and CLI Operations Reference Guide
Abstract
This document describes the rich set of Matrix OE’s infrastructure orchestration (IO) interfaces available to HP customers,
partners, and integrators. These interfaces allow customers to integrate Matrix OE into their business and IT operations processes.
Partners and Integrators can use the interfaces in combination with their own offerings to provide new, rich capabilities.
HP Part Number: 5900-2282
Published: October 2012
Edition: 6
The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express
warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall
not be liable for technical or editorial errors or omissions contained herein.
Revision history
Edition notesPublication dateDocument editionSoftware versionDocument part number
October 201267.1.15900-2282
Corrected the “RequestDetails” (page 62)
data type.
September 201257.1.15900-2282
Includes new v5 service endpoint with
interface extensions. See “New features
in 7.1 Update 1” (page 12).
June 201217.1.05900-2282
Includes new v4 service endpoint with
interface extensions. See “New features
in 7.1” (page 13).
Contents
I Matrix API................................................................................................10
HP CloudSystem Matrix is the industry’s first Converged Infrastructure platform that doubles
administrator productivity and reduces total cost of ownership (TCO) versus traditional infrastructures.
HP CloudSystem Matrix integrates silos of compute, storage, network, and facilities resources with
unified management to deliver a virtualized, highly automated environment. The HP Matrix
Operating Environment (Matrix OE) provides the automated provisioning, optimization, and
recovery management capabilities for HP CloudSystem Matrix.
This document describes the rich set of HP Matrix OE infrastructure orchestration (IO) interfaces
available to HP customers, partners, and integrators. These interfaces allow customers to integrate
Matrix OE into their business and IT operations processes. Partners and Integrators can use the
interfaces in combination with their own offerings to provide new, rich capabilities. HP is committed
to an industry open standard cloud services API, and submitted this content to the Distributed
Management Task Force (DMTF) Cloud Incubator, which has now been moved to the recently
formed DMTF Cloud Management Working Group.
The API and CLI interfaces were introduced in HP BladeSystem Matrix/Matrix OE (Insight Dynamics)
6.0, and are expected to be compatible with subsequent releases, but are subject to change due
to evolving standards. Future releases may include additional interfaces.
HP Matrix OE infrastructure orchestration provides extensive out-of-the-box functionality that is
pre-integrated with HP Insight Control and HP System Insight Manager software, including:
•A graphical designer used to create templates describing the architecture and requirements
of infrastructure services. These templates are published into a catalog.
•Self service users pick a particular template from the catalog and initiate the creation of an
infrastructure service from that template.
•Administrative users create pools containing blades, virtual machine hosts together with
associated storage and subnets. One or more pools are assigned to one or users and this
defines the potential set of resources that can be used in the processing of self service user
requests. Administrative users also can review, approve, or reject user requests.
•After creation of the service, the self-service user can further extend the service. For example,
add additional disk and server resources to the service. In non-peak periods server resources
can be deactivated, allowing those resources to be powered down, or used by another service.
•IO includes an embedded version of HP Operations Orchestration (OO) workflow engine.
This engine can be used by customers and partners to extend the capabilities of IO and to
allow IO operations to be integrated into the customer environment.
•All access to IO functionality is secured by username/password login and restricted by the
assigned role of the particular user.
◦The most restrictive role, User, has access to published templates (or a subset) and their
own services. User requests are subject to approval by an Administrator.
◦The Architect role extends the capability of User, allowing the creation and publication
of templates, as well as the provisioning of non-published templates to allow testing.
◦The Organization Administrator role extends the role of Architect, and allows the viewing
and manipulation of all services owned by that organization. Organization Administrator
initiated operations do not need their own approval.
◦The Service Provider Administrator role also extends the role of Architect, and allows the
viewing and manipulation of all services in the environment. Service Provider Administrator
initiated operations do not need their own approval.
11
Integration interface overview
Figure 1 HP Matrix Operating Environment Integration Interfaces
Figure 1 (page 12) depicts the set of integration interfaces allowing customers and partners to
integrate Matrix OE capabilities into their environment and products.
The integration interfaces include:
•Web Service Interfaces to initiate lifecycle operations on infrastructure services including
creation and deletion of services, and to view or modify an existing service. These operations
are also accessible via command line tools for use in scripts.
•Customizable OO workflows that are invoked during every IO operation. Customers can
modify these workflows to integrate Matrix OE with enterprise processes.
•Customer or Partner authored OO workflows that may be associated with a particular
infrastructure template and triggered as part of IO operations. For example, partners can use
these integrations to provide unique capabilities related to their applications or for differentiated
service management.
out-of-the-box integration with HP server deployment technologies and VMware and Microsoft
Virtual Machine deployment technologies.
This document describes the Web Service Interfaces.
New features in 7.1 Update 1
The HP Matrix Operating Environment 7.1 Update 1 release includes a new v5 service endpoint
with interface extensions. The v1, v2, v3, and v4 endpoints continue to be served, so clients of
these interfaces remain compatible with the 7.1 Update 1 release.
12Introduction
NOTE:The extensions in this section are not available in the v4 endpoint, which is included in
Matrix OE 7.1.
Interface extensions include:
•Floating IP address operations:
addFloatingIPAddress◦
◦moveFloatingIPAddress
◦removeFloatingIPAddress
◦releaseFloatingIPAddress
◦listUnassociatedFloatingIPAddresses
•Server snapshot operations:
createServerSnapshot◦
◦deleteServerSnapshot
◦revertServerSnapshot
◦listServerSnapshots
•New Organization operations:
assignSoftwareToOrganization◦
◦unassignSoftwareFromOrganization
•New data model classes:
CustomOsImageAttribute◦
◦CustomStorageVolumeAttributes
◦ServerSnapshot
•New attributes in the CustomTemplateAttributes class:
CustomOsImageAttribute◦
◦CustomStorageVolumeAttribute
New features in 7.1
The HP Matrix Operating Environment 7.1 release includes a new v4 service endpoint with interface
extensions.
Interface extensions include:
•New Service operations:
powerCycleService◦
◦deleteReplicaService
•A new addNewDiskToLogicalServerGroup operation
•New LogicalServer operations:
powerCycleLogicalServers◦
New features in 7.113
◦editLogicalServers
◦removeLogicalServers
•New CMS operations:
quiesceCms◦
◦unquiesceCms
◦getCmsQuiesceStatus
•LoadBalancer operations:
listLoadBalancers◦
◦addLoadBalancer
◦modifyLoadBalancer
◦removeLoadBalancer
◦addLoadBalancerCertificate
◦removeLoadBalancerCertificate
◦setLoadBalancerPassword
◦unsetLoadBalancerPassword
•LogicalLoadBalancer operations:
createLogicalLoadBalancerGroup◦
◦deleteLogicalLoadBalancerGroup
◦addLogicalLoadBalancerGroupMember
◦removeLogicalLoadBalancerGroupMember
•FirewallRuleGroup operations:
getFirewallRuleGroup◦
◦addRuleToFirewallRuleGroup
◦removeRuleFromFirewallRuleGroup
◦syncFirewallRuleGroups
•New CustomTemplateAttributes parameter to the createService operation
HP Matrix OE infrastructure orchestration includes API extensions to retrieve chargeback usage
data, described in Part II “Chargeback API”. Client software can connect to the chargeback server
to build infrastructure resource allocation and usage reports for information on current and past
services.
Matrix infrastructure orchestration also includes a command line tool to retrieve chargeback usage
data. This tool generates an xml file containing chargeback data that can be opened in a browser
or using Microsoft Excel.
See the HP Developer Resource Center for CloudSystem Whitepapers tab for Creating customized
chargeback reports based on Matrix 7.1 CLI output files, and the Toolkits/Samples tab for
CloudSystem Matrix 7.1 Chargeback formatters.
For more information about using the chargeback feature, see the HP Matrix Operating Environment
Infrastructure Orchestration User Guide at http://www.hp.com/go/matrixoe/docs.
–maxMemorySize
–maxProcessorCount
manualCleanUpRequired–
DrPolicy–
–DrState
–isCustomizable
–DrPolicy
New features in 7.115
2 Accessing the Web Service Interfaces
Accessing WSDL
The Web Service Description Language or WSDL (See Reference [1]) definition of IO operations
can be accessed from any installed IO system using a web browser. For example, if the software
is installed on a server with an IP address of <cms-ip-address>, enter the following into the
web browser to access the WSDL:
The browser will show the formal XML definition of the Web Service Interface. The IO API is already
available in the embedded Operations Orchestration when IO is installed.
Security
The IO Web Service is only accessible over HTTPS. The service uses WS-Security UsernameToken
authentication in text form. A username and password of a registered IO user is required to access
the Web Service Interface. A WS-Security timestamp header is also required.
Authorization
If the presented username/password belongs to a Windows user in the Service Provider
Administrator role, the web services are able to view and act on all services. For
username/passwords that belong to a Windows user in the Organization Administrator role, the
web services can operate only on the services owned by that organization. For username/passwords
that belong to Windows users in the Architect or User roles, the web services are only able to view
or act on the services owned by that particular user.
The Activate Service operation (and others) specifies a list of server pools from which the servers
will be allocated. The set of available pools is based on the assignments of the requesting user
(not the service owner). For Administrator users, all pools except Maintenance and Unassigned
are available.
Impersonation
An “Impersonation” feature allows an authenticated Administrator role user to perform an operation
in the context of a specified requesting user. This behavior can be used in the implementation of
enterprise service catalogs to initiate operations on behalf of enterprise users. Impersonation is
achieved by including an HP-IO-Impersonate cookie in the HTTP message header. For example, if
the request includes the HTTP header “Cookie: HP-IO-Impersonate=Steve”, the operation will be
performed as though it were requested by Steve. A message is written to the audit log to record
the impersonation event.
Command Line Interface
An IO installation includes an “ioexec” command line interface (CLI) to access the IO Web Service.
The CLI may be useful for scripting web service invocations and for testing purposes when
developing a web service client. The CLI operations and data model mirror the Web Service
Interface. The CLI may be copied from an IO installation to a different system to operate on the
CMS remotely. The “ioexec” command help provides specific usage details.
16Accessing the Web Service Interfaces
3 Operations
The supported operations are specified in the following sections, grouped by target data type.
Version
getVersion
Gets the IO product version.getVersionName
noneParameters
Template
listTemplates
Returns
importTemplate
String versionReturns
IOSoapExceptionExceptions
listTemplatesName
noneParameters
List<TemplateInfo>
templates
IOSoapExceptionExceptions
importTemplateName
Product version string (e.g., “6.0.0”) or “Unknown” if the version cannot
be determined.
Gets a list of templates. If the template.access.restricted configuration is
set to “true” in the conf\hpio.properties file, the result for non-Administrator
users only includes templates to which they are assigned. Unpublished
templates are included in the result only for Administrator and Architect
users.
List of TemplateInfo objects containing basic information about the
templates.
Adds a template definition. This operation may be performed only by an
infrastructure orchestration Administrator or Architect.
exportTemplate
byte templateXml[]Parameters
boolean forceOverwrite
noneReturns
InvalidParameterExceptionExceptions
IOSoapException
exportTemplateName
InvalidParameterExceptionExceptions
A template definition encoded as an XML document, unmodified from a
template export operation.
If true, overwrites the definition of an existing template with more recent
modification.
Exports a template definition. This operation may be performed only by
an infrastructure orchestration Administrator or Architect.
The name of the template to export.String templateNameParameters
A template definition encoded as an XML document.byte[] templateXmlReturns
Version17
deleteTemplate
TemplateNotFound
Exception
IOSoapException
Service
listServices
deleteTemplateName
noneReturns
InvalidParameterExceptionExceptions
TemplateNotFound
Exception
IOSoapException
listServicesName
noneParameters
IOSoapExceptionExceptions
Deletes an existing template. This operation may be performed only by
an infrastructure orchestration Administrator or Architect.
The name of the template to delete.String templateNameParameters
Gets a list of services owned by the requester. For Administrator users,
the list contains all services.
List of ServiceInfo objects containing basic information about the services.List<ServiceInfo> servicesReturns
getService
createService
ServiceDetails serviceReturns
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
createServiceName
LeasePeriod leasePeriod
Gets details of a specified service.getServiceName
The ID or name of the service for which to get details.String serviceNameParameters
Creates an infrastructure service from a template, with Administrator
approval.
The name of the new service to create.String serviceNameParameters
The name of the template to use in service creation.String templateName
New service lease period. A startEpoch value of null or a time in the past
is interpreted as the current time. An endEpoch value of null or 0 indicates
that the lease is open ended. Otherwise, the endEpoch must be greater
than both the startEpoch value and the current time.
18Operations
String replacementText
String used to make the template hostnames unique. The string is
substituted for the # symbol used in the template element names. If no
such replacement is defined in the template, this value may be null.
List<String>
serverPoolNames
String
ownerEmailAddress
String note
String billingCode
customTemplateAttributes
InvalidParameterExceptionExceptions
NoServerPoolsAvailable
Exception
ServerPoolNotFound
Exception
Optional list of server pools used to create the service. If null, the pools
currently available to the requesting user are used.
Optional email address of the service owner (the user performing the
operation). If specified, the value replaces the user’s email address on
record. If the value is an empty string, any existing email address is
removed with no replacement. An email address update applies generally,
not just to the service created by this operation. The email address update
may take effect even if the CreateService operation is not submitted
successfully.
Optional descriptive text about the created service to be added to the
created service notes.
Optional text identifying the entity responsible for the service costs. The
value is limited to 128 characters and may not include the characters
[<>'`"&] or control characters.
Optional list of custom attributes.CustomTemplateAttributes
Request ID for the operation.String requestIdReturns
deleteService
deactivateService
TemplateNotFound
Exception
IOSoapException
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
deactivateServiceName
Deletes an infrastructure service.deleteServiceName
The ID or name of the service to delete.String serviceNameParameters
Request ID for the operation.String requestIdReturns
Deactivates all logical servers in an infrastructure service (existing at the
time of the request).
The ID or name of the service containing the logical servers to deactivate.String serviceNameParameters
Request ID for the operation.String requestIdReturns
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
Service19
activateService
changeServiceLease
activateServiceName
List<String>
serverPoolNames
InvalidParameterExceptionExceptions
NoServerPoolsAvailable
Exception
ServerPoolNotFound
Exception
ServiceNotFound
Exception
IOSoapException
changeServiceLeaseName
Activates all logical servers in an infrastructure service (existing at the
time of the request).
The ID or name of the service containing the logical servers to activate.String serviceNameParameters
Optional list of server pools from which to allocate physical servers, if
necessary. If null, the pools currently available to the requesting user are
used.
Request ID for the operation.String requestIdReturns
Changes the start and/or end time of a service lease. Administrator
approval may be required.
powerOffService
LeasePeriod leasePeriod
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
powerOffServiceName
The ID or name of the service for which to change the lease period.String serviceNameParameters
New service lease period. A startEpoch or endEpoch value of null
indicates that the value shall not be changed. A new startEpoch and/or
endEpoch value must be specified. If the lease has not yet started, a
startEpoch in the past is considered to be “now”. If the lease has already
started, a non-null startEpoch value that differs from the time the lease
started results in an error. An endEpoch value of 0 indicates that the lease
is open ended. Otherwise, the endEpoch must be greater than both the
startEpoch value and the current time.
Request ID for the operation.String requestIdReturns
Powers off all logical servers in an infrastructure service (existing at the
time of the request).
The ID or name of the service containing the logical servers to power off.String serviceNameParameters
Request ID for the operation.String requestIdReturns
20Operations
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
powerOnService
powerCycleService
powerOnServiceName
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
powerCycleServiceName
String serviceNameParameters
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
Powers on all logical servers in an infrastructure service (existing at the
time of the request).
The ID or name of the service containing the logical servers to power on.String serviceNameParameters
Request ID for the operation.String requestIdReturns
Power cycles all logical servers in an infrastructure service (existing at
the time of the request).
The ID or name of the service containing the logical servers to power
cycle.
Request ID for the operation.String requestIdReturns
deleteReplicaService
Request
listRequests
Returns
InvalidParameterExceptionExceptions
ServiceNotFoundException
IOSoapException
listRequestsName
noneParameters
requests
Deletes a DR (disaster recovery) replica service without deprovisioning.deleteReplicaServiceName
The ID or name of the service to delete.String serviceNameParameters
Delete the replica service regardless of its state.boolean ignoreStatus
Request ID for the operation.String requestIdReturns
Gets a list of requests initiated by the requester. For Administrator users,
the list contains all requests.
A List of RequestInfo objects containing request status information.List<RequestInfo>
IOSoapExceptionExceptions
Request21
getRequestInfo
Gets status information about a specified request.getRequestInfoName
String requestIdParameters
InvalidParameterExceptionExceptions
RequestNotFoundException
IOSoapException
getRequest
String requestIdParameters
InvalidParameterExceptionExceptions
RequestNotFoundException
IOSoapException
setRequestApprovalState
The ID of the request for which to get status (returned when the action
was initiated).
A RequestInfo object containing the status of the request.RequestInfo requestReturns
Gets status and history information about a specified request.getRequestName
The ID of the request for which to get details (returned when the action
was initiated).
A RequestDetails object containing the details of the request.RequestDetails requestReturns
continueRequest
setRequestApprovalStateName
String requestIdParameters
String note
noneReturns
InvalidParameterExceptionExceptions
RequestNotFoundException
IOSoapException
continueRequestName
String note
Approves or rejects a request that is paused for approval. This operation
may be performed only by an infrastructure orchestration Administrator.
The ID of the request to approve or reject (returned when the action was
initiated).
Indicates whether the request is approved (true) or rejected (false).boolean approved
Optional note to be added to the request history when the approval state
is set.
Continues a paused request. This operation may be performed only by
an infrastructure orchestration Administrator.
The ID of the request to continue (returned when the action was initiated).String requestIdParameters
Optional note to be added to the request history when the request is
continued.
22Operations
NoneReturns
InvalidParameterExceptionExceptions
cancelRequest
RequestNotFoundException
IOSoapException
Cancels a request, if allowed for the request type and status.cancelRequestName
The ID of the request to cancel (returned when the action was initiated).String requestIdParameters
String note
noneReturns
InvalidParameterExceptionExceptions
RequestNotFoundException
IOSoapException
Logical Server Group
getLogicalServerGroup
logicalServerGroupName
LogicalServerGroupDetailsReturns
logicalServerGroup
InvalidParameterExceptionExceptions
Optional note to be added to the request history on successful
cancellation.
Gets details of a specified logical server group.getLogicalServerGroupName
The ID or name of the service containing the logical server group.String serviceNameParameters
The name of the logical server group for which to get details.String
LogicalServerGroupNot
FoundException
ServiceNotFoundException
IOSoapException
addServersToLogicalServerGroup
Name
addServersToLogicalServer
Group
logicalServerGroupName
List<String>
serverPoolNames
InvalidParameterExceptionExceptions
LogicalServerGroupNot
FoundException
Adds logical servers to a logical server group to achieve a specified
target count (flex up), with Administrator approval.
The ID or name of service containing the logical server group.String serviceNameParameters
The name of the logical server group to adjust.String
The target number of logical servers in the group.int targetServerCount
Optional list of server pools used to fulfill the request. If null, the pools
currently available to the requesting user are used.
Request ID for the operation.String requestIdReturns
Logical Server Group23
NoServerPoolsAvailable
Exception
ServerPoolNotFound
Exception
ServiceNotFoundException
IOSoapException
addDiskToLogicalServerGroup
Name
addDiskToLogicalServer
Group
logicalServerGroupName
String
stereotypeDiskName
InvalidParameterExceptionExceptions
LogicalDiskNotFound
Exception
LogicalServerGroupNot
FoundException
ServiceNotFoundException
IOSoapException
addNewDiskToLogicalServerGroup
Adds a data disk to a logical server group, with Administrator approval.
The new disk is based on an existing disk stereotype already in use by
the logical server group.
The ID or name of service containing the logical server group.String serviceNameParameters
The name of the logical server group to adjust.String
The name of a stereotype disk used by the logical server group. (It must
not be a boot disk.)
Request ID for the operation.String requestIdReturns
Name
addNewDiskToLogical
ServerGroup
logicalServerGroupName
String
stereotypeDiskName
Float cost
Boolean shared
List tags
RaidLevelEnum raidLevel
Adds a new data disk stereotype to a logical server group, with
Administrator approval. The disk type is automatically determined by the
logical server group type.
The ID or name of service containing the logical server group.String serviceNameParameters
The name of the logical server group to adjust.String
Optional. The name of the new disk stereotype to create. It must be unique
for the service. If not specified, a unique name will be auto-generated.
The size in GB for the new disk.Integer size
Optional. The cost per GB for the new disk. If not specified, or specified
by a non-admin user, a default cost will be calculated based on existing
disks in the server group. The units for the cost will be same as the units
used for the server group.
Optional. Mark the disk to be shared across the servers in the server
group. Certain server group configurations does not allow shared disks.
Defaults to not shared.
Optional. A list of storage tags. For physical disks only. Ignored for virtual
disks. For virtual disks, volume names are copied from the boot disk.
Optional. The raid level for the disk. Defaults to “any.” For physical disks
only. Ignored for virtual disks.
24Operations
Boolean redundantPaths
Optional. Mark the disk as needing redundant SAN paths. Defaults to
single path. For physical disks only. Ignored for virtual disks.
RawMappingTypeEnum
rawMappingType
InvalidParameterExceptionExceptions
LogicalServerGroupNot
FoundException
ServiceNotFoundException
IOSoapException
Optional. The Raw Disk Mapping (RDM) type for the disk. Defaults to
NONE. For physical disks only. Ignored for virtual disks.
Request ID for the operation.String requestIdReturns
setLogicalServerGroupActiveServerCount
Name
setLogicalServerGroupActive
ServerCount
Activates or deactivates logical servers as necessary to achieve a target
number of active logical servers in a logical server group. The existing
number of active logical servers is evaluated against the target. If they
are the same, no action is taken. If the target is greater, the required
number of logical servers in a DEACTIVATED state is activated. If the
target is less, the required number of logical servers in an UP state is
deactivated. No logical servers are added to the logical server group in
any case. (Note that the logical servers to be affected may be selected
before the operation is processed, so an independent operation may
cause the resulting active server count to differ from what was requested.)
The ID or name of the service containing the logical server group.String serviceNameParameters
logicalServerGroupName
boolean
acceptPartialResult
List<String>
serverPoolNames
String requestIdReturns
InvalidParameterExceptionExceptions
LogicalServerGroupNot
FoundException
NoServerPoolsAvailable
Exception
ServerPoolNotFound
Exception
ServiceNotFoundException
IOSoapException
The name of the logical server group.String
The target number of active logical servers.int targetServerCount
Accept a partial result when too few logical servers are available to
achieve the target count. If false, an error is returned in this case and the
operation is not partially performed.
Optional list of server pools from which to allocate physical servers, if
necessary. If null, the pools currently available to the requesting user are
used.
Request ID for the operation, or an empty string may be returned if no
change is initiated.
Logical Server Group25
Logical Server
findLogicalServer
Returns
getLogicalServer
findLogicalServerName
String hostIdParameters
LogicalServerInfo
logicalServer
InvalidParameterExceptionExceptions
LogicalServerNotFoundFor
ServerException
IOSoapException
Gets information about the logical server associated with a hostname or
IP address.
The fully-qualified hostname or IP address of the logical server to look
up. If hostId is an IP address, the search will be successful if the IP address
is equivalent to a LogicalIPAddress referenced by a LogicalServer’s
LogicalNetworkInterface. If hostId is a host name, the search will be
successful if the host name differs only by case from the host name of a
LogicalServer or if one of the IP addresses returned by a name service
lookup is equivalent to a LogicalIPAddress referenced by a LogicalServer’s
LogicalNetworkInterface.
Basic information about the logical server associated with the specified
hostname or IP address.
Gets details of a specified logical server.getLogicalServerName
The ID or name of the service containing the logical server.String serviceNameParameters
logicalServerName
LogicalServerDetailsReturns
logicalServer
InvalidParameterExceptionExceptions
LogicalServerNotFound
Exception
ServiceNotFoundException
IOSoapException
deactivateLogicalServers
logicalServerNames
InvalidParameterExceptionExceptions
The name of the logical server for which to get details.String
Deactivates selected logical servers in an infrastructure service.deactivateLogicalServersName
The ID or name of the service containing the logical servers to deactivate.String serviceNameParameters
A list of names of logical servers to deactivate.List<String>
Request ID for the operation.String requestIdReturns
26Operations
LogicalServerNotFound
Exception
ServiceNotFoundException
IOSoapException
activateLogicalServers
logicalServerNames
Activates selected logical servers in an infrastructure service.activateLogicalServersName
The ID or name of the service containing the logical servers to activate.String serviceNameParameters
A list of names of logical servers to activate.List<String>
List<String>
serverPoolNames
InvalidParameterExceptionExceptions
LogicalServerNotFound
Exception
NoServerPoolsAvailable
Exception
ServerPoolNotFound
Exception
ServiceNotFoundException
IOSoapException
powerOffLogicalServers
logicalServerNames
Optional list of server pools from which to allocate physical servers, if
necessary. If null, the pools currently available to the requesting user are
used.
Request ID for the operation.String requestIdReturns
Powers off one or more logical servers.powerOffLogicalServersName
The ID or name of service containing the logical servers.String serviceNameParameters
A list of names of logical servers to power off.List<String>
InvalidParameterExceptionExceptions
LogicalServerNotFound
Exception
ServiceNotFoundException
IOSoapException
powerOnLogicalServers
logicalServerNames
InvalidParameterExceptionExceptions
LogicalServerNotFound
Exception
Request ID for the operation.String requestIdReturns
Powers on one or more logical servers.powerOnLogicalServersName
The ID or name of service containing the logical servers.String serviceNameParameters
A list of names of logical servers to power on.List<String>
Request ID for the operation.String requestIdReturns
Logical Server27
ServiceNotFoundException
IOSoapException
powerCycleLogicalServers
logicalServerNames
InvalidParameterExceptionExceptions
LogicalServerNotFound
Exception
ServiceNotFoundException
IOSoapException
editLogicalServers
Power cycles one or more logical servers.powerCycleLogicalServersName
The ID or name of service containing the logical servers.String serviceNameParameters
A list of names of logical servers to power cycle.List<String>
Request ID for the operation.String requestIdReturns
editLogicalServersName
logicalServerNames
Integer memorySize
ByteSizeEnum
memorySizeUnits
Integer processorCount
InvalidParameterExceptionExceptions
LogicalServerNotFound
Exception
ServiceNotFoundException
IOSoapException
Updates the memory size and/or processor count for one or more logical
servers, with Administrator approval.
The ID or name of the service containing the logical servers.String serviceNameParameters
A list of names of logical servers to update.List<String>
The memory size to set for the logical servers, in the units specified by
memorySizeUnits. If not specified, the memory size is not changed.
The units for the memory size value. The specified memory size and units
must be convertible to a whole number value in the memory size units
for the existing logical server.
The processor count to set for the logical servers. If not specified, the
processor count is not changed.
Request ID for the operation.String requestIdReturns
removeLogicalServers
28Operations
removeLogicalServersName
logicalServerNames
Deprovisions and removes selected logical servers from an infrastructure
service.
The ID or name of the service containing the logical servers.String serviceNameParameters
A list of names of logical servers to remove.List<String>
Request ID for the operation.String requestIdReturns
syncLogicalServers
InvalidParameterExceptionExceptions
LogicalServerNotFound
Exception
ServiceNotFoundException
IOSoapException
Server Pool
listServerPools
syncLogicalServersName
noneParameters
noneReturns
IOSoapExceptionExceptions
listServerPoolsName
noneParameters
IOSoapExceptionExceptions
Causes IO to resynchronize the state of the logical servers that IO is
managing with the current state of the logical servers in Matrix OE
visualization. This operation runs asynchronously, returning before the
synchronization has completed. This operation may be performed only
by an infrastructure orchestration Administrator.
Gets a list of names of the server pools available to the user. For
infrastructure orchestration Administrators, the list contains all server pools
including the Maintenance and Unassigned pools.
Names of the server pools for the requesting user.List<String> serverPoolsReturns
getServerPool
createServerPool
InvalidParameterExceptionExceptions
ServerPoolNotFound
Exception
IOSoapException
createServerPoolName
String serverPoolNameParameters
Gets details of a specified server pool.getServerPoolName
The name of the server pool to get.String serverPoolNameParameters
Details of the server pool contents and configuration.SanVolume serverPoolReturns
Creates an empty server pool. This operation may be performed only by
an infrastructure orchestration Administrator or Organization
Administrator.
The name of the server pool to create. It is limited to 64 characters
(alphanumeric, hyphen, underscore, and space).
Optional annotation to be attached to the server pool.String note
Server Pool29
deleteServerPool
noneReturns
InvalidParameterExceptionExceptions
IOSoapException
deleteServerPoolName
NoneReturns
InvalidParameterExceptionExceptions
ServerPoolNotFound
Exception
IOSoapException
moveServerToServerPool
moveServerToServerPoolName
Parameters
destinationPoolName
String serverResourceId
Deletes an existing server pool. Any servers in the server pool are moved
to the "Unassigned" pool. This operation may be performed only by an
infrastructure orchestration Administrator or Organization Administrator.
The name of the server pool to delete.String serverPoolNameParameters
Moves a server to a different server pool. This operation may be
performed only by an infrastructure orchestration Administrator or
Organization Administrator.
The name of the server pool to which the server is to be moved.String
The resource ID of the server to be moved. (For example, the
LogicalServerInfo.resourceBindingId value when
LogicalServerInfo.isVirtual=false.)
String note
noneReturns
InvalidParameterExceptionExceptions
ServerPoolNotFound
Exception
ServerPoolNotFoundFor
ResourceException
IOSoapException
assignUsersToServerPool
assignUsersToServerPoolName
List<String> userNames
noneReturns
Optional annotation to be attached to the resource move. This note used
only when the destination pool is the Maintenance pool.
Assigns user access to a server pool. This operation may be performed
only by an infrastructure orchestration Administrator or Organization
Administrator.
The name of the server pool to which to assign user access.String serverPoolNameParameters
A list of the names of users and Active Directory groups for which to allow
server pool access.
30Operations
InvalidParameterExceptionExceptions
ServerPoolNotFound
Exception
UserNotFoundException
IOSoapException
unassignUsersFromServerPool
Name
Server
getComputeServer
unassignUsersFromServer
Pool
List<String> userNames
noneReturns
InvalidParameterExceptionExceptions
ServerPoolNotFound
Exception
UserNotFoundException
IOSoapException
getComputeServerName
Removes user access to a server pool. This operation may be performed
only by an infrastructure orchestration Administrator or Organization
Administrator.
The name of the server pool from which to remove user access.String serverPoolNameParameters
A list of the names of users and Active Directory groups for which to
remove server pool access.
Gets details of a specified compute server. Cannot be used to get
information about a VM host.
The ID of the server resource for which to get details.String serverIdParameters
Returns
getVmHost
Server resource details.ComputeServer
computeServer
InvalidParameterExceptionExceptions
ServerResourceNotFound
Exception
IOSoapException
Gets details of a specified VM host.getVmHostName
The ID of the VM host for which to get details.String serverIdParameters
VM host resource details.VmHost vmHostReturns
InvalidParameterExceptionExceptions
ServerResourceNotFound
Exception
IOSoapException
Server31
Software
listSoftware
Returns
getSoftware
Returns
listSoftwareName
noneParameters
List<DeployableSoftware>
software
IOSoapExceptionExceptions
getSoftwareName
software
InvalidParameterExceptionExceptions
SoftwareNotFoundException
IOSoapException
Gets a list of software available for deployment. This operation may be
performed only by an infrastructure orchestration Administrator,
organization Administrator, or Architect.
List of DeployableSoftware objects containing information about software
resources.
Gets information about a specified deployable software image. This
operation may be performed only by an infrastructure orchestration
Administrator, organization Administrator, or Architect.
The ID of the software to get.String softwareIdParameters
A DeployableSoftware object containing information about the software.DeployableSoftware
Subnet
listSubnets
getSubnet
listSubnetsName
noneParameters
IOSoapExceptionExceptions
getSubnetName
InvalidParameterExceptionExceptions
SubnetNotFoundException
Gets a list of subnets available to the user. This operation may be
performed only by an infrastructure orchestration Administrator or Architect
or an Organization Administrator.
List of SubnetInfo objects containing information about network resources.List<SubnetInfo> subnetsReturns
Gets details of a specified subnet. This operation may be performed only
by an infrastructure orchestration Administrator or Architect or an
Organization Administrator.
The ID of the subnet for which to get details.String subnetIdParameters
A SubnetDetails object containing the details of the subnet.SubnetDetails subnetReturns
32Operations
IOSoapException
Storage
listSanVolumes
listSanVolumesName
noneParameters
Returns
sanVolumes
IOSoapExceptionExceptions
getSanVolume
getSanVolumeName
InvalidParameterExceptionExceptions
SanVolumeNotFound
Exception
IOSoapException
listSanVolumeTemplates
Gets a list of SAN volume resources. This operation may be performed
only by an infrastructure orchestration Administrator.
List of SanVolume objects containing information about storage resources.List<SanVolume>
Gets information about a specified SAN volume. This operation may be
performed only by an infrastructure orchestration Administrator.
The ID of the SAN volume to get.String sanVolumeIdParameters
A SanVolume object containing the details of the SAN volume.SanVolume sanVolumeReturns
listSanVolumeTemplatesName
noneParameters
Returns
List<SanVolumeTemplate>
sanVolumeTemplates
IOSoapExceptionExceptions
getSanVolumeTemplate
getSanVolumeTemplateName
Parameters
sanVolumeTemplateId
Returns
SanVolumeTemplate
sanVolumeTemplate
InvalidParameterExceptionExceptions
SanVolumeTemplateNot
FoundException
IOSoapException
Gets a list of SAN volume templates. This operation may be performed
only by an infrastructure orchestration Administrator or Architect.
List of SanVolumeTemplate objects containing information about storage
templates.
Gets information about a specified SAN volume template. This operation
may be performed only by an infrastructure orchestration Administrator
or Architect.
The ID of the SAN volume template to get.String
A SanVolumeTemplate object containing the details of the SAN volume
template.
Storage33
Organization
listOrganizations
Returns
getOrganization
Parameters
Returns
listOrganizationsName
noneParameters
organizations
IOSoapExceptionExceptions
getOrganizationName
organizationName
Organization
organization
InvalidParameterExceptionExceptions
OrganizationNotFound
Exception
IOSoapException
Gets a list of existing organizations. This operation may be performed
only by a Service Provider Administrator.
A list of Organization objects representing the organizations defined.List<Organization>
Gets information about a specified organization. This operation may be
performed only by a Service Provider Administrator.
The ID or name of the organization for which to get information.String
An Organization object containing information about the specified
organization.
assignTemplateToOrganization
Name
assignTemplateTo
Organization
organizationName
noneReturns
InvalidParameterExceptionExceptions
Exception
OrganizationNotFound
Exception
IOSoapException
unassignTemplateFromOrganization
Assigns a template to an organization. A single template may be
assigned to multiple organizations. It also remains in the Service Provider
template set. The operation has no effect if the template is already
assigned to the organization. This operation may be performed only by
a Service Provider Administrator.
The template to be assigned to an organization.String templateNameParameters
The ID or name of the organization to which to assign the template.String
No template exists with given template name.TemplateNotFound
Name
34Operations
unassignTemplateFrom
Organization
Unassigns a template from an organization. The operation has no effect
if the template is not assigned to the organization. A template may be
organizationName
noneReturns
InvalidParameterExceptionExceptions
Exception
OrganizationNotFound
Exception
IOSoapException
assignServerToOrganization
unassigned even if services in the organization were created from it. This
operation may be performed only by a Service Provider Administrator.
The template to be unassigned from an organization.String templateNameParameters
The ID or name of the organization from which to unassign the template.String
No template exists with given template name.TemplateNotFound
assignServerToOrganizationName
String
organizationName
noneReturns
InvalidParameterExceptionExceptions
ServerInUseException
ResourceException
OrganizationNotFound
Exception
IOSoapException
unassignServerFromOrganization
Name
unassignServerFrom
Organization
Assigns a compute resource to an organization. The compute resource
must be in the Service Provider Unassigned pool and must not be in use.
It is moved out of the Service Provider Unassigned pool and into the
organization Unassigned pool. This operation may be performed only
by a Service Provider Administrator.
The compute resource to be assigned.String serverResourceIdParameters
The ID or name of the organization to which to assign the compute
resource.
The resource is not in the Unassigned pool.ServerPoolNotFoundFor
Unassigns a compute resource from an organization. The compute
resource must be in the organization Unassigned pool and must not be
in use. It is moved out of the organization Unassigned pool and into the
Service Provider Unassigned pool. This operation may be performed
only by a Service Provider Administrator.
String
organizationName
noneReturns
InvalidParameterExceptionExceptions
ServerInUseException
ResourceException
The compute resource to be unassigned.String serverResourceIdParameters
The ID or name of the organization from which to unassign the compute
resource.
The resource is not in the Unassigned pool.ServerPoolNotFoundFor
Organization35
OrganizationNotFound
Exception
IOSoapException
assignSubnetToOrganization
assignSubnetToOrganizationName
organizationName
noneReturns
InvalidParameterExceptionExceptions
OrganizationNotFound
Exception
IOSoapException
unassignSubnetFromOrganization
Name
unassignSubnetFrom
Organization
Assigns a subnet to an organization. A single subnet may be assigned
to multiple organizations. It also remains in the Service Provider subnet
set. The operation has no effect if the subnet is already assigned to the
organization. This operation may be performed only by a Service Provider
Administrator.
The subnet to be assigned to an organization.String subnetIdParameters
The ID or name of the organization to which to assign the subnet.String
No subnet exists with given subnet ID.SubnetNotFoundException
Unassigns a subnet from an organization. The operation has no effect
if the subnet is not assigned to the organization. A subnet may be
unassigned even if services in the organization are using it. This operation
may be performed only by a Service Provider Administrator.
organizationName
noneReturns
InvalidParameterExceptionExceptions
OrganizationNotFound
Exception
IOSoapException
assignSoftwareToOrganization
assignSoftwareToOrganizationName
organizationName
The subnet to be unassigned from an organization.String subnetIdParameters
The ID or name of the organization from which to unassign the subnet.String
No subnet exists with given subnet ID.SubnetNotFoundException
Assigns software to an organization. A single software image can be
assigned to multiple organizations. It also remains in the Service Provider
software set. The operation has no effect if the software is already
assigned to the organization. This operation may be performed only by
a Service Provider Administrator.
The software to be assigned to an organization.String softwareIdParameters
The ID or name of the organization to which to assign the software.String
36Operations
noneReturns
InvalidParameterExceptionExceptions
OrganizationNotFound
Exception
IOSoapException
unassignSoftwareFromOrganization
No software exists with the given software ID.SoftwareNotFoundException
Name
syncOrganizations
unassignSoftwareFrom
Organization
organizationName
noneReturns
InvalidParameterExceptionExceptions
OrganizationNotFound
Exception
IOSoapException
syncOrganizationsName
Unassigns software from an organization. The operation has no effect if
the software is not assigned to the organization. Software may be
unassigned even if services in the organization are using it. This operation
may be performed only by a Service Provider Administrator.
The software to be unassigned from an organization.String softwareIdParameters
The ID or name of the organization from which to unassign the software.String
No software exists with the given software ID.SoftwareNotFoundException
Synchronizes changes made to organization local groups outside of the
infrastructure orchestration organization portal. This ensures any changes
to organization membership are preserved in the event of a migration.
Perform this operation after all changes to local organization groups are
completed. This operation may be performed only by an infrastructure
orchestration Administrator.
noneParameters
noneReturns
IOSoapExceptionExceptions
CMS
beginCmsMaintenance
beginCmsMaintenanceName
noneReturns
InvalidParameterExceptionExceptions
IOSoapException
Puts a CMS in maintenance mode in a federated environment. This
operation may be performed only by an infrastructure orchestration
Administrator.
The fully-qualified domain name of the CMS to put in maintenance mode.String cmsNameParameters
CMS37
endCmsMaintenance
endCmsMaintenanceName
String cmsNameParameters
noneReturns
InvalidParameterExceptionExceptions
IOSoapException
countRunningRequestsForCms
Name
CountRunningRequestsFor
Cms
String cmsNameParameters
InvalidParameterExceptionExceptions
IOSoapException
Takes a CMS out of maintenance mode in a federated environment. This
operation may be performed only by an infrastructure orchestration
Administrator.
The fully-qualified domain name of the CMS to take out of maintenance
mode.
Counts the number of requests running on a CMS in maintenance mode.
This operation may be performed only by an infrastructure orchestration
Administrator.
The fully-qualified domain name of the CMS for which to count running
requests.
The number of requests currently running on the specified CMS.int numRunningRequestsReturns
addCms
quiesceCms
unquiesceCms
addCmsName
noneReturns
InvalidParameterExceptionExceptions
IOSoapException
quiesceCmsName
noneParameters
noneReturns
IOSoapExceptionExceptions
Notify infrastructure orchestration of a CMS added to the federation. This
operation may be performed only by an infrastructure orchestration
Administrator.
The fully-qualified domain name of the CMS added to the federation.String cmsNameParameters
Quiesces the CMS. This operation may be performed only by an
infrastructure orchestration Administrator.
38Operations
unquiesceCmsName
noneParameters
Removes the CMS from the quiesced state. This operation may be
performed only by an infrastructure orchestration Administrator.
noneReturns
IOSoapExceptionExceptions
getCmsQuiesceStatus
Returns
LoadBalancer
listLoadBalancers
Returns
addLoadBalancer
getCmsQuiesceStatusName
noneParameters
cmsQuiesceStatus
IOSoapExceptionExceptions
listLoadBalancersName
noneParameters
List<LoadBalancerInfo>
loadBalancers
IOSoapExceptionExceptions
Gets the current quiesce status of the CMS. This operation may be
performed only by an infrastructure orchestration Administrator.
The current quiesce state.CmsQuiesceStatus
Gets a list of load balancer resources. This operation may be performed
only by an infrastructure orchestration Administrator.
A list of LoadBalancerInfo objects containing information about load
balancer resources.
Parameters
modifyLoadBalancer
Parameters
Exceptions
addLoadBalancerName
loadBalancer
noneReturns
InvalidParameterExceptionExceptions
IOSoapException
modifyLoadBalancerName
LoadBalancerInfo
loadBalancer
noneReturns
LoadBalancerNotFound
Exception
InvalidParameterException
Adds a load balancer to the infrastructure orchestration server. This
operation may be performed only by an infrastructure orchestration
Administrator.
The load balancer definition.LoadBalancerInfo
Modifies an existing load balancer to the infrastructure orchestration
server. This operation may be performed only by an infrastructure
orchestration Administrator.
The load balancer definition. Contains only the load balancer ID and the
attributes to be changed. All other attributes are set to null.
IOSoapException
LoadBalancer39
removeLoadBalancer
removeLoadBalancerName
noneReturns
Exceptions
LoadBalancerNotFound
Exception
InvalidParameterException
IOSoapException
addLoadBalancerCertificate
addLoadBalancerCertificateName
noneReturns
InvalidParameterExceptionExceptions
Removes a load balancer from the infrastructure orchestration server. This
operation may be performed only by an infrastructure orchestration
Administrator.
The ID of the load balancer to remove.String loadBalancerIdParameters
Adds the certificate for a load balancer corresponding to a certificate
ID. This operation may be performed only by an infrastructure
orchestration Administrator.
The certificate ID of a load balancer.String certificateIdParameters
The certificate to be added.byte[] certificate
IOSoapException
removeLoadBalancerCertificate
Name
removeLoadBalancer
Certificate
noneReturns
CertificateNotFoundExceptionExceptions
InvalidParameterException
IOSoapException
setLoadBalancerPassword
setLoadBalancerPasswordName
Removes the certificate for a load balancer corresponding to a certificate
ID. This operation may be performed only by an infrastructure
orchestration Administrator.
The certificate ID of a load balancer.String certificateIdParameters
Sets the password for a load balancer corresponding to a password ID.
This operation may be performed only by an infrastructure orchestration
Administrator.
The password ID of a load balancer.String passwordIdParameters
40Operations
The password of the load balancer.String password
noneReturns
InvalidParameterExceptionExceptions
IOSoapException
unsetLoadBalancerPassword
unsetLoadBalancerPasswordName
noneReturns
PasswordNotFoundExceptionExceptions
InvalidParameterException
IOSoapException
LogicalLoadBalancer
createLogicalLoadBalancerGroup
Name
createLogicalLoadBalancer
Group
logicalLoadBalancerId
Unsets the password for a load balancer corresponding to a password
ID. This operation may be performed only by an infrastructure
orchestration Administrator.
The password ID of a load balancer.String passwordIdParameters
Creates a group in a logical load balancer defined in an infrastructure
orchestration service, with Administrator approval. A group describes a
service to load balance. A load balancer will forward incoming requests
to members, after members are added to a group.
The ID or name of the service where to add a group.String serviceNameParameters
The logical load balancer ID.String
Info group
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalLoadBalancerNot
FoundException
IOSoapException
deleteLogicalLoadBalancerGroup
Name
deleteLogicalLoadBalancer
Group
logicalLoadBalancerId
InvalidParameterExceptionExceptions
The information defining a logical load balancer group.LogicalLoadBalancerGroup
Request ID for the operation.String requestIdReturns
Deletes a group from an infrastructure orchestration service. All the existing
members within the group will be removed.
The ID or name of the service where to delete a group.String serviceNameParameters
The logical load balancer ID.String
The name of the group to be deleted.String groupName
Request ID for the operation.String requestIdReturns
ServiceNotFoundException
LogicalLoadBalancer
NotFoundException
IOSoapException
LogicalLoadBalancer41
addLogicalLoadBalancerGroupMember
Name
addLogicalLoadBalancer
GroupMember
logicalLoadBalancerId
String address
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalLoadBalancerNot
FoundException
IOSoapException
Adds a member to a logical load balancer group defined in an
infrastructure orchestration service.
The ID or name of the service which contains the group.String serviceNameParameters
The logical load balancer ID.String
The group name where to add the new member.String groupName
The IP address or host name of the member to be added to the load
balancer group.
The port on which the member is listening.int port
Request ID for the operation.String requestIdReturns
removeLogicalLoadBalancerGroupMember
Name
removeLogicalLoadBalancer
GroupMember
Removes a member from a logical load balancer group defined in an
infrastructure orchestration service.
FirewallRuleGroup
getFirewallRuleGroup
Parameters
logicalLoadBalancerId
String address
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalLoadBalancer
NotFoundException
IOSoapException
firewallRuleGroupId
The ID or name of the service which contains the group.String serviceNameParameters
The logical load balancer ID.String
The group name which contains the member to be removed.String groupName
The IP address or host name of the member to be removed from the load
balancer group.
Request ID for the operation.String requestIdReturns
Gets the details of a specified firewall rule group.getFirewallRuleGroupName
The ID of the firewall rule group to get.String
Returns
42Operations
Details of the firewall rule group.FirewallRuleGroupDetails
firewallRuleGroup
Exceptions
FirewallRuleGroupNotFound
Exception
InvalidParameterException
IOSoapException
addRuleToFirewallRuleGroup
Name
Parameters
Exceptions
addRuleToFirewallRule
Group
firewallRuleGroupId
noneReturns
FirewallRuleGroupNotFound
Exception
InvalidParameterException
IOSoapException
removeRuleFromFirewallRuleGroup
Name
Parameters
removeRuleFromFirewall
RuleGroup
firewallRuleGroupId
FirewallRule firewallRule
Add a rule to an existing firewall rule group in the inventory and in the
underlying resource.
The ID of the firewall rule group in which to add a rule.String
The firewall rule to be added.FirewallRule firewallRule
Remove a rule from an existing firewall rule group in the inventory and
in the underlying resource.
The ID of the firewall rule group from which to remove a rule.String
The firewall rule to be removed. All attributes of the specified FirewallRule
must match an existing rule for it to be identified and removed.
noneReturns
Exceptions
FirewallRuleGroupNotFound
Exception
FirewallRuleNotFound
Exception
InvalidParameterException
IOSoapException
syncFirewallRuleGroups
syncFirewallRuleGroupsName
noneParameters
noneReturns
IOSoapExceptionExceptions
Causes IO to resynchronize the firewall rules of the firewall rule group
IO is managing. This operation runs asynchronously, returning before
the synchronization has completed. This operation may be performed
only by an infrastructure orchestration Administrator.
FirewallRuleGroup43
FloatingIPAddress
addFloatingIPAddress
addFloatingIPAddressName
logicalServerName
String
logicalNetworkInterface
Name
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalServerNotFound
Exception
IOSoapException
moveFloatingIPAddress
Acquires a floating IP address and adds it to a specified logical server,
with Administrator approval. The lifecycle of a floating IP address is
independent from the server to which it is added, allowing it to be moved
between servers. A floating IP address should be removed explicitly when
it is no longer needed.
The ID or name of the service containing the logical server.String serviceNameParameters
The name of the logical server to which to add the floating IP address.String
The name of the network interface to which to add the floating IP address.
This parameter is optional if the logical server has only one network
interface.
Request ID for the operation.String requestIdReturns
moveFloatingIPAddressName
logicalServerName
String
logicalNetworkInterface
Name
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalServerNotFound
Exception
IOSoapException
removeFloatingIPAddress
removeFloatingIPAddressName
Moves a floating IP address to a specified logical server, removing it
from another server if necessary. Administrator approval is required unless
the address is already in use by a service with the same owner as the
target service.
The ID or name of the service containing the logical server.String serviceNameParameters
The name of the logical server to which to move the floating IP address.String
The name of the network interface to which to move the floating IP
address. This parameter is optional if the logical server has only one
network interface.
Request ID for the operation.String requestIdReturns
Removes a floating IP address from a logical server and releases it
permanently.
44Operations
String
logicalServerName
The ID or name of the service containing the logical server.String serviceNameParameters
The name of the logical server from which to remove the floating IP
address.
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalServerNotFound
Exception
IOSoapException
releaseFloatingIPAddress
The floating IP address to remove.String ipAddress
Request ID for the operation.String requestIdReturns
releaseFloatingIPAddressName
Parameters
cloudCapacityPoolId
InvalidParameterExceptionExceptions
ServerResourceNotFound
Exception
IOSoapException
listUnassociatedFloatingIPAddresses
Name
Parameters
listUnassociatedFloating
IPAddresses
String
cloudCapacityPoolId
Permanently releases a floating IP address that is not associated to a
server. This operation may be performed only by an infrastructure
orchestration Administrator.
The ID of a cloud capacity pool in which the floating IP address exists.String
The floating IP address to release.String ipAddress
Request ID for the operation.noneReturns
Returns a list of floating IP addresses in a cloud capacity pool that are
not associated with a server.
The ID of the cloud capacity pool for which to list unassociated floating
IP addresses.
A list of unassociated floating IP addresses.List<String> ipAddressesReturns
ServerSnapshot
listServerSnapshots
Returns
InvalidParameterExceptionExceptions
ServerResourceNotFound
Exception
IOSoapException
Retrieves a list of snapshots for a server. Supported only for ESX VMs.listServerSnapshotsName
The ID or name of the service containing the logical server.String serviceNameParameters
The name of the logical server for which to retrieve snapshot information.String
logicalServerName
A list of snapshots for the servers.List<ServerSnapshot>
snapshots
InvalidParameterExceptionExceptions
ServerSnapshot45
ServiceNotFoundException
LogicalServerNotFound
Exception
IOSoapException
createServerSnapshot
revertServerSnapshot
createServerSnapshotName
logicalServerName
Boolean
includeMemoryState
Boolean
quiesceFileSystem
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalServerNotFound
Exception
IOSoapException
Creates a snapshot of the current state of a server, with Administrator
approval. Supported only for ESX VMs.
The ID or name of the service containing the logical server.String serviceNameParameters
The name of the logical server for which to create a snapshot.String
The name to assign to the new snapshot.String snapshotName
Indicates whether to include the server memory state in the snapshot if
the server is running. Defaults to true.
Indicates whether to ensure the snapshot represents a consistent file system
state if the server is running. Defaults to false.
Request ID for the operation.String requestIdReturns
deleteServerSnapshot
logicalServerName
Boolean
suppressPowerOn
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalServerNotFound
Exception
IOSoapException
deleteServerSnapshotName
Reverts a server to a specified snapshot. Supported only for ESX VMs.revertServerSnapshotName
The ID or name of the service containing the logical server.String serviceNameParameters
The name of the logical server for which to revert a snapshot.String
The ID or name of the snapshot to which to revert.String snapshotName
Indicates whether the server should be left powered off even if it was
powered on when the snapshot was created. Defaults to false.
Request ID for the operation.String requestIdReturns
Deletes a server snapshot and optionally its child snapshots. Supported
only for ESX VMs.
The ID or name of the service containing the logical server.String serviceNameParameters
46Operations
logicalServerName
The name of the logical server for which to delete a snapshot.String
The ID or name of the snapshot to delete.String snapshotName
Boolean removeChildren
InvalidParameterExceptionExceptions
ServiceNotFoundException
LogicalServerNotFound
Exception
IOSoapException
Indicates whether to also delete the child snapshots of the specified
snapshot, recursively. Defaults to false.
Request ID for the operation.String requestIdReturns
ServerSnapshot47
4 Data Model
The complex data types that are used in the API operation definitions are defined here.
The Service data model incorporates many of the data types defined here. Figure 2 (page 48)
shows the relationships between the major data types from a Service perspective, using Unified
Modeling Language (UML) notation. Some of the data classes are separated into “Info” and
“Details” classes, where the Details class extends the Info class. For example, the Service data type
shown in Figure 2 represents the ServiceDetails class which extends ServiceInfo. This separation
allows some operations (such as List) to return high-level data and others (like Get) to return deep
containment data.
Figure 2 Service Data Model
The data model is designed to avoid indirect references. This design is intended to simplify data
processing and it allows Service subcomponents, such as LogicalServer, to be self-contained. An
outcome of this choice is that Service data may contain redundant components. For example, all
the LogicalServers in a group may contain information about the same logical subnet.
Enumerated types are modeled with a structure that contains an enumeration value (with OTHER
as a possible value) and an “other” string (which is used when the enumeration value is OTHER).
The use of an explicit enumeration allows the set of possible values to be clearly defined in the
WSDL. The inclusion of an OTHER value allows future extensions to the enumeration to be
represented in this data model.
48Data Model
ByteSize
(Required) The value as an enumerated type.ByteSizeEnum enumValue
String otherValue
ByteSizeEnum
Possible values: MB, GB, OTHER
CidrIpRange
CmsQuiesceState
enumValue
String otherValue
CmsQuiesceStateEnum
Possible values: NOT_QUIESCED, QUIESCING, QUIESCED, OTHER
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
IP address component of the CIDR specification.String ipAddress
Specifies the CIDR notation for the prefix size for the specified IP address.Integer cidrPrefixSize
(Required) The value as an enumerated type.CmsQuiesceStateEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
CmsQuiesceStatus
ComputeServer
Extends ServerResource
localDisks
ComputeServerLocalDisk
(Required) The current quiesce state.CmsQuiesceState state
An estimated timeout value (in seconds) for a quiesce operation.Long timeoutSeconds
VirtualConnect domain group ID for blades, or compute actual name for other servers.String domainGroupId
Indicates whether a server profile is assigned to the server.Boolean inUse
Disk resources attached directly to the server.List<ComputeServerLocalDisk>
Disk ID.String id
Disk size, in megabytes.Long sizeMB
ByteSize49
Cost
CostFrequency
(Required) A numeric cost value.Float value
The units of the cost value.String units
Time period to which the cost value applies.CostFrequency frequency
(Required) The value as an enumerated type.CostFrequencyEnum enumValue
String otherValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
CostFrequencyEnum
Possible values: MONTH, WEEK, DAY, HOUR, UNSPECIFIED, OTHER
CustomAddressAssignmentTypeAttribute
String logicalServerGroupName
String subnetId
addressAssignmentType
List<String> staticIPValues
Name of the logical server group for which to customize the IP address assignment
type.
ID of the subnet for which to customize the IP address assignment type in the logical
server group.
Customized IP address assignment type (STATIC, AUTOMATIC, or DHCP).IPAddressAssignmentTypeEnum
For STATIC address assignment, a list of the IP addresses to use must be specified.
The list size must match the initial logical server group size. For other assignment
types, no addresses should be specified.
CustomMemoryAttribute
Name of logical server group for which to customize the OS image.String logicalServerGroupName
ByteSizeEnum memorySizeUnits
CustomOsImageAttribute
VirtualizationTypeEnum
virtualizationType
String osVariation
50Data Model
Customized memory size.Integer memorySize
Customized memory size units. The specified memory size and units must be
convertible to a whole number value in the memory size units defined for the logical
server group in the template.
Name of the logical server group for which to customize the memory size.String logicalServerGroupName
Customized software ID.String softwareId
(Optional) Virtualization type for the specified software. Must be HYPER_V or
INTEGRITY_VM. Either a virtualizationType or osVariation must be specified.
(Optional) Operating system type/variation for the specified software with ESX
virtualization type. Either a virtualizationType or osVariation must be specified.
CustomProcessorAttribute
Name of logical server group for which to customize the processor count.String logicalServerGroupName
Customized processor count.Integer processorCount
CustomStorageVolumeAttribute
Name of the virtual logical disk for which to customize the storage volumes.String logicalDiskName
Breakdown of individual disk definitions for the software image, when available.
Only applicable when the type is VM_TEMPLATE.
DeploymentService
Name of the deployment server.String name
IP address of the deployment server.String ipAddress
DeploymentServiceType type
Operating system types supported by the deployment service.List<MessageSeverity> osTypes
DeploymentServiceType
(Required) The value as an enumerated type.DeploymentServiceTypeEnum
enumValue
String otherValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
DeploymentServiceTypeEnum
Possible values: RDP, SA, Ignite-UX, CUSTOM, OTHER
DrMode
String otherValue
DrModeEnum
Possible values: ACTIVE, INACTIVE, UNCONFIGURED, OTHER
DrPolicy
DrState
(Required) The value as an enumerated type.DrModeEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
Indicates whether the disaster recovery policy calls for DR protection.Boolean drProtection
Indicates the mode of an entity within a disaster recovery protection configuration.DrMode drMode
Indicates whether an entity was created as a replica for disaster recovery.Boolean drReplica
52Data Model
FirewallRule
FirewallRuleGroupInfo
Specifies the protocol type to be either TCP, UDP, or ICMP.PacketProtocol packetProtocol
Starting port range.Integer portRangeStart
Ending port range.Integer portRangeEnd
ICMP type (specified if protocolType is ICMP above).Integer icmpType
ICMP code (specified if protocolType is ICMP above).Integer icmpCode
List of IP Sources allowed access on the port range specified above.List <CidrIpRange> ipSources
ID of the FirewallRuleGroup.String firewallRuleGroupId
Name of the FirewallRuleGroup.String firewallRuleGroupName
ID of the underlying resourceString resourceId
ID of the capacity pool to which the firewall rule group belongsString capacityPoolId
Names of users authorized to perform operations on the FirewallRuleGroup.List<String> userNames
FirewallRuleGroupDetails
Extends FirewallRuleGroupInfo
ImageType
String otherValue
ImageTypeEnum
Possible values: OS, APPS, PATCH, UNKNOWN, OTHER
IPAddressAssignmentType
enumValue
String otherValue
List of firewall rules.List<FirewallRule> rules
(Required) The value as an enumerated type.ImageTypeEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
(Required) The value as an enumerated type.IPAddressAssignmentTypeEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
IPAddressAssignmentTypeEnum
Possible values:
Automatically assigned via DHCP.DHCP
Statically assigned using literal values.STATIC
Automatically assigned from the static IP address range set defined for the network.AUTOMATIC
FirewallRule53
[Not yet defined]EXTERNAL
No assignment type specified.UNSPECIFIED
OTHER
IPType
String otherValue
IPTypeEnum
Possible values: IPV4, IPV6, UNSPECIFIED, OTHER
LeasePeriod
Long endEpoch
LoadBalancerInfo
A value other than above, possibly introduced by an extension in a subsequent
release.
(Required) The value as an enumerated type.IPTypeEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
(Required) The beginning of the lease term, in milliseconds since the epoch.Long startEpoch
The end of the lease term, in milliseconds since the epoch. A null value indicates
the lease has no end date.
isCookieBasedStickySessionSupported
isSourceAddressBasedSticky
SessionSupported
The ID of the load balancer.String id
The model of the load balancer.String model
The version of load balancer.String version
A list of IDs of the subnets on which the load balancer operates.List<String> subnetIds
A management address to connect to a load balancer.String managementAddress
A management port on which to connect a load balancer.Integer managementPort
The management user name for the load balancer.String managementUserName
The password ID of a load balancer.String managementPasswordId
The certificate ID of a load balancer.String managementCertificateId
Indicates if the load balancer supports a high availability.Boolean isHASupported
Indicates if the load balancer supports Secure-Socket-Layer protocol.Boolean isSSLSupported
Indicates if the load balancer can support multiple tenants.Boolean isMultiTenantSupported
Indicates if the load balancer supports cookie based session persistence.Boolean
Indicates if the load balancer supports source address session persistence.Boolean
54Data Model
Maximum number of groups supported in the load balancer.Integer maxGroups
List of tag names by which this load balancer can be referenced in designer.List<String> tags
LogicalDisk
A logical name for the disk, based on the stereotypeName.String name
String stereotypeName
Boolean isShareable
Boolean isSinglePath
rawMappingType
String resourceBindingId
String templateBindingId
The name that appears in the template and applies across the Logical Server group.
This name is used as a parameter to the addDiskToLogicalServerGroup operation.
Minimum disk size, in the units specified by sizeUnits.Integer size
Disk size units.ByteSize sizeUnits
RAID level defined for the disk.RaidLevel raidLevel
The type of storage represented by the disk. Only applicable for physical disks.StorageType storageType
Indicates whether the disk is a boot disk. A null value indicates “unspecified”.Boolean isBootable
Indicates whether the disk is shared across servers. A null value indicates
“unspecified”.
Indicates whether a SAN disk has redundant paths. A null value indicates
“unspecified”.
Raw Disk Mapping (RDM) type of the disk.RawMappingType
Cost associated with the disk resource, per GB.Cost cost
A unique identifier for the resource that is allocated to the logical disk. A null value
indicates that no resource is currently allocated.
An ID of a SAN volume template to use for the disk. Only applicable for physical
disks.
Disk notes specified in the service templateString notes
LogicalFirewallRuleGroup
LogicalIPAddress
assignmentType
Time at which the logical object was created, in milliseconds since the epochLong createEpoch
Time at which the logical object was last modified, in milliseconds since the epoch.Long lastModifiedEpoch
Resource binding ID.String resourceBindingId
List of firewall rules associated with this group.List<FirewallRule> rules
Description.String notes
The IP address, or a logical representation for DHCP assigned addresses.String address
Manner in which the IP address is assigned.IPAddressAssignmentType
Cost associated with the IP address.Cost cost
Time at which the logical object was created, in milliseconds since the epoch.Long createEpoch
Time at which the logical object was last modified, in milliseconds since the epoch.Long lastModifiedEpoch
List of NAT entries associated with this LogicalIPAddress.List<NatEntry> natEntries
LogicalDisk55
LogicalLoadBalancerDetails
Extends LogicalLoadBalancerInfo
A list of load balancer groups.List<LogicalLoadBalancerGroup
Details> groups
LogicalLoadBalancerGroupDetails
Extends LogicalLoadBalancerGroupInfo
A list of members in a load balancer group.List<LogicalLoadBalancerGroup
Member> members
LogicalLoadBalancerGroupInfo
The name of the group.String name
The type of protocol the application service will use.LogicalLoadBalancerProtocol
protocol
The virtual IP address to be used by the load balancer to receive requests.String virtualIpAddress
The port the load balancer will be listening on.Integer loadBalancerPort
The host name of the application service being load balanced.String hostname
The URI pathString path
The SSL certificate for secure connections to load balancer.byte[] sslCertificate
Integer
stickySessionTimeoutInSeconds
stickySessionSourceAddressMask
The number of seconds between incoming requests that the load balancer will persist
a session.
The name or ID of a http(s) cookie to store session information.String stickySessionCookieName
A mask for filtering source address based session persistence.String
LogicalLoadBalancerGroupMember
The IP address or host name of the member to be added to the load balancer group.String address
The port on which the member is listening.Integer port
LogicalLoadBalancerInfo
The ID of the logical load balancer.String id
Indicates if the load balancer supports a high availability feature.Boolean isHASupported
isCookieBasedStickySession
Supported
isSourceAddressBasedStickySession
Supported
56Data Model
Indicates if the load balancer supports Secure-Socket-Layer protocol.Boolean isSSLSupported
Indicates if the load balancer supports cookie based session persistence.Boolean
Indicates if the load balancer supports source address based session persistence.Boolean
A list of networks the load balancer needs to have access to.List<String> subnetIds
A list of tags used to match a specific load balancer during allocation.List<String> tags
LogicalLoadBalancerProtocol
(Required) The value as an enumerated type.LogicalLoadBalancerProtocolEnum
enumValue
String otherValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
LogicalLoadBalancerProtocolEnum
Possible values: TCP, HTTP, HTTPS, OTHER
LogicalNetworkInterface
Name assigned to the network interface.String name
Subnet to which the network interface is connected.LogicalSubnet logicalSubnet
IP address configured for the network interface.LogicalIPAddress
logicalIPAddress
Indicates whether the network interface is a server’s primary one.Boolean isPrimary
Time at which the logical object was created, in milliseconds since the epoch.Long createEpoch
Time at which the logical object was last modified, in milliseconds since the epoch.Long lastModifiedEpoch
LogicalServerDetails
Extends LogicalServerInfo
logicalNetworkInterfaces
LogicalServerGroupDetails
Extends LogicalServerGroupInfo
logicalServers
logicalFirewallRuleGroups
logicalLoadBalancer
List<LogicalIPAddress>
virtualIPAddresses
A list of automatically triggered actions defined for the logical server.List<ServiceAction>serverActions
The logical disks attached to the logical server.List<LogicalDisk>logicalDisks
System software to be deployed on the logical server.List<LogicalSoftware>software
Network interfaces defined for the logical server.List<LogicalNetworkInterface>
A list of automatically triggered actions defined for the logical server group.List<ServiceAction> groupActions
Details of the logical servers in the group.List<LogicalServerDetails>
List of LogicalFirewallRuleGroups associated with this LogicalServerGroup.List<LogicalFirewallRuleGroup>
Details of the LogicalLoadBalancer associated with this LogicalServerGroup, if any.LogicalLoadBalancerDetails
IP addresses assigned to the group for use as floating IP addresses within the group
(for example, by an Oracle DB server).
LogicalLoadBalancerProtocol57
LogicalServerGroupInfo
Name of the service containing the logical server group.String serviceName
Name of the logical server group.String name
Initial size of the logical server group on service creation.Integer minServerCount
Maximum size of the logical server group that may be achieved by adding servers.Integer maxServerCount
The number of logical servers in the group with status UP.Integer activeServerCount
Integer bootSequenceOrdinal
LogicalServerInfo
String resourceBindingId
String parentResourceBindingId
Indicates the sequence in which the logical server group is booted relative to others,
or 0 if no sequence is defined
Status of operation/automation for the logical server group.ServiceEntityStatus status
Logical server group notes specified in the template.String notes
Time at which the logical object was created, in milliseconds since the epoch.Long createEpoch
Time at which the logical object was last modified, in milliseconds since the epoch.Long lastModifiedEpoch
Name of the service containing the logical server.String serviceName
Name of the logical server group containing the logical server.String logicalServerGroupName
Name of the logical server.String name
Name of the associated logical server in Virtualization Manager.String logicalServerName
Network hostname for the server represented by the logical server.String hostname
A unique identifier for the server resource that is allocated to the logical server. A
null value indicates that no server resource is currently allocated.
The resourceBindingId of the “parent” VM from which a linked clone has been
generated. Is set to null for logical servers which are not linked clones.
String capacityPoolId
Boolean isInCloud
Boolean isBase
String serverType
Integer memorySize
Integer maxMemorySize
The ID of the ESX resource pool or cloud capacity pool in which the server was
provisioned, if applicable.
Indicates whether the logical server is physical or virtual.Boolean isVirtual
Indicates whether the logical server is defined for provisioning to an external cloud
provider.
Indicates whether the logical server is recoverable.Boolean isRecoverable
False if agentless VMM is used and the logical server is not the shared disk host,
or if the logical server is a linked clone.
A named server type corresponding to the server memory and processor attributes.
Applicable only for servers provisioned in cloud capacity pools for which server
types are defined.
Minimum memory requirement for the logical server, in the units specified by
memorySizeUnits.
The maximum value to which the memory size may be updated, using the same
units as the memory size.
Memory size units.ByteSize memorySizeUnits
Minimum number of processors required for the logical server.Integer processorCount
The maximum value to which the processor count may be updated.Integer maxProcessorCount
58Data Model
Integer processorSpeedMHz
processorArchitecture
LogicalSoftware
deploymentServiceType
Minimum processor speed required for the logical server, in MHz (physical servers
only).
Processor architecture required for the logical server (physical servers only).ProcessorArchitecture
Status of operation/automation for the logical server.ServiceEntityStatus status
Cost associated with the server resource.Cost cost
Time at which the logical object was created, in milliseconds since the epoch.Long createEpoch
Time at which the logical object was last modified, in milliseconds since the epoch.Long lastModifiedEpoch
Name of the software.String name
Indicates whether the software is a VM template or an image.SoftwareType type
The operating system type for the software.OperatingSystemType osType
Deployment service type for an image.DeploymentServiceType
String osCustomizationFileName
virtualizationType
Integer ordinal
String resourceBindingId
LogicalSubnet
Boolean isPublic
The name of a file containing customization data needed to prepare a system (virtual
servers only).
The virtualization technology used by a VM (virtual servers only).VirtualizationType
Indicates the sequence in which the software is deployed to a server relative to
others.
A unique identifier for the resource that is allocated to the logical software. A null
value indicates that no resource is currently allocated.
Time at which the logical object was created, in milliseconds since the epoch.Long createEpoch
Time at which the logical object was last modified, in milliseconds since the epoch.Long lastModifiedEpoch
Name of the logical subnet.String name
Indicates whether the network is public or private. A public subnet is routed within
(and potentially outside) the data center’s L3 IP infrastructure and should not include
192.x.x.x or 10.x.x.x address ranges. A private subnet will not be routed either
within or outside of the data center L3 IP infrastructure and its IP address ranges
should be confined to 192.x.x.x or 10.x.x.x addresses.
Indicates whether the network may be shared with other service instances.Boolean isShareable
String resourceBindingId
IP version used on the network (IPv4 or IPv6).IPType ipType
A unique identifier for the resource that is allocated to the logical subnet. A null
value indicates that no resource is currently allocated.
Network notes specified in the service template.String notes
Time at which the logical object was created, in milliseconds since the epoch.Long createEpoch
Time at which the logical object was last modified, in milliseconds since the epoch.Long lastModifiedEpoch
LogicalSoftware59
MessageSeverity
(Required) The value as an enumerated type.MessageSeverityEnum enumValue
String otherValue
MessageSeverityEnum
Possible values: CRITICAL, MAJOR, MINOR, WARNING, NORMAL, INFORMATIONAL, OTHER
NatEntry
NatType
String otherValue
NatTypeEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
Specifies the NAT type.NatType type
Public IP address assigned to this entry.String ipAddress
DNS name assigned to this entry.String name
(Required) The value as an enumerated type.NatTypeEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
Possible values: DYNAMIC, FLOATING, OTHER
NetworkSource
String otherValue
NetworkSourceEnum
Possible values: PHYSICAL, VIRTUAL, DEFINED, CLOUD, OTHER
OperatingSystemType
enumValue
String otherValue
OperatingSystemTypeEnum
Possible values: WINDOWS, WINDOWS_2008, LINUX, HP_UX, VMWARE, HYPER_V, CITRIX_XEN,
SOLARIS, AIX, UNKNOWN, UNSPECIFIED, OTHER
(Required) The value as an enumerated type.NetworkSourceEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
(Required) The value as an enumerated type.OperatingSystemTypeEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
60Data Model
Organization
Name of the organization.String name
String id
PacketProtocol
String otherValue
PacketProtocolEnum
Possible values: TCP, UDP, ICMP, OTHER
ProcessorArchitecture
enumValue
String otherValue
ProcessorArchitectureEnum
Unique identifier for the organization. The Service Provider organization ID is
"SERVICEPROVIDER".
(Required) The value as an enumerated type.PacketProtocolEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
(Required) The value as an enumerated type.ProcessorArchitectureEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
Possible values: IA32, IA64, X86_64, SPARC, POWER_PC, UNSPECIFIED, OTHER
RaidLevel
String otherValue
RaidLevelEnum
Possible values: RAID0, RAID1, RAID3, RAID4, RAID5, RAID6, RAID01, RAID05, RAID10, RAID50,
RAID60, AUTOMATIC, UNSPECIFIED, OTHER
RAID01 represents a RAID 0 striped data set which is then mirrored for recovery.
RAID05 represents a RAID 0 striped data set which is then written with RAID 5 single parity for
recovery.
RawMappingType
enumValue
String otherValue
(Required) The value as an enumerated type.RaidLevelEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
(Required) The value as an enumerated type.RawMappingTypeEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
RawMappingTypeEnum
Possible values: VIRTUAL, PHYSICAL, NONE, OTHER
Organization61
RequestDetails
Extends RequestInfo
requestHistory
RequestHistoryItem
RequestHistoryItemLevel
enumValue
Detail messages associated with the request.List<RequestHistoryItem>
Time at which the history item event occurred, in milliseconds since the epoch.Long occurEpoch
A message describing the event.String message
Severity of the event.MessageSeverity messageSeverity
Detail level of the message.RequestHistoryItemLevel level
(Required) The value as an enumerated type.RequestHistoryItemLevelEnum
String otherValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
RequestHistoryItemLevelEnum
Possible values: NORMAL, VERBOSE, OTHER
RequestInfo
String id
Long startEpoch
Long endEpoch
RequestStatus status
An identifier assigned to the request when it is submitted. Corresponds to the request
parameters and return values defined for many of the API operations.
Type of operation represented by the request.RequestType type
Time at which the request was submitted, in milliseconds since the epoch.Long submitEpoch
Time at which processing started for the request, in milliseconds since the epoch.
The value may be null if the request is scheduled for future processing (such as a
Create Service request with a future lease start date/time) or if an error prevented
processing of the request.
Time at which processing ended for the request, in milliseconds since the epoch.
The value is null if the request does not have a terminal status.
Current status of the request processing. The progression of a request through various
status values is highly dependent on the request type and other parameters as well
as user interaction.
Integer percentComplete
Boolean manualCleanUpRequired
62Data Model
Indicates the progress of request processing. The value is based on the number of
steps required/completed and is not a reliable indicator of processing time
remaining.
Indicates whether a manual clean-up action is required as a result of the request
processing.
Name of the service affected by the request.String serviceName
Name of the template used for the service affected by the request.String templateName
String createdByUser
RequestStatus
Name of the user that submitted the request (or on whose behalf the request was
submitted).
Unique identifier for the organization to which the request belongs.String organizationId
(Required) The value as an enumerated type.RequestStatusEnum enumValue
A “terminal” status indicates that no more processing will be performed on the request. Terminal
status values are COMPLETE, CANCELED, REJECTED, FAILED, and TERMINATED.
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
(Required) The value as an enumerated type.RequestTypeEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
RequestStatus63
SanVolume
StorageProvisioningType
provisioningType
Resource ID for the SAN volume.String id
Volume name, for volumes managed by Storage Provisioning Manager (SPM).String name
Volume size, in megabytes.Long sizeMB
RAID level of the volume.RaidLevel raidLevel
Operating system type with which the volume is to be used.OperatingSystemType osType
Storage tags assigned to the volume.List<String> tags
LUN ID at which the volume is addressed.String lunId
Readiness state of the volume.SanVolumeState state
Indicates whether the volume is currently allocated for use.Boolean inUse
Portability group ID. Only applicable when the state is CONFIGURED.String domainGroupId
Storage pool entry ID. Only applicable when the state is CONFIGURED.String storageEntryId
Storage pool entry name. Only applicable when the state is CONFIGURED.String storageEntryName
Boolean multiMemberSet
Integer
availableConnectionCount
Boolean bootable
Boolean singlePath
rawMappingType
wwnConnections
SanVolumeState
String otherValue
SanVolumeStateEnum
Indicates whether the storage pool entry has multiple members. Only applicable
when the state is CONFIGURED.
Number of storage pool entry connections available. Only applicable when the
state is CONFIGURED.
Indicates whether the volume may be used as a boot disk. Only applicable when
the state is CONFIGURED.
Indicates whether the volume can be accessed via multiple paths. Only applicable
when the state is CONFIGURED.
Raw Disk Mapping (RDM) type of the volume.RawMappingType
Details of server connections for the volume.List<WwnConnection>
(Required) The value as an enumerated type.SanVolumeStateEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
Possible values:
CONFIGURED
64Data Model
Storage is partitioned into a volume, the volume is presented to WWNs, and the
WWNs are zoned.
Storage is partitioned into a volume.CARVED
A block of storage is not yet partitioned into volumes.UNCARVED_BLOCK
The state cannot be determined.UNKNOWN
OTHER
SanVolumeTemplate
String description
StorageProvisioningType
provisioningType
defaultOsType
A value other than above, possibly introduced by an extension in a subsequent
release.
Resource ID for the SAN volume template.String id
ID of the SPM server from which the template was discovered.String spmServerId
Template name.String name
Default size of SAN volumes provisioned from the template, in megabytes.Long defaultSizeMB
Default RAID level of SAN volumes provisioned from the template.RaidLevel defaultRaidLevel
Default operating system type used for SAN volumes provisioned from the template.OperatingSystemType
Storage tags matched by default when allocating storage for the template.List<String> defaultTags
Minimum size of SAN volumes provisioned from the template, in megabytesLong minSizeMB
Maximum size of SAN volumes provisioned from the template, in megabytes.Long maxSizeMB
allowedRaidLevels
allowedOsTypes
ServerPool
List<String> userNames
List<ServerPoolResourceNote>
resourceNotes
RAID levels allowed for SAN volumes provisioned from the template.List<RaidLevel>
Operating system types allowed for SAN volumes provisioned from the template.List<OperatingSystemType>
Storage tags that must be matched when allocating storage for the template.List<String> requiredTags
Storage tags that must not be matched when allocating storage for the template.List<String> excludedTags
Name of the server pool.String name
Custom server pool notes.String notes
IDs of the VM hosts in the server pool.List<String> vmHostIds
IDs of the compute servers in the server pool.List<String> computeServerIds
IDs of the cloud capacity pools in the server pool.List<String> cloudCapacityPoolIds
IDs of the ESX capacity pools in the server poolList<String> esxCapacityPoolIds
Names of the users and Active Directory groups assigned to the server pool. This
value is reported only to infrastructure orchestration Administrators.
Notes associated with the movement of servers to the server pool. These notes are
present only in the Maintenance pool.
Unique identifier for the organization to which the server pool belongs.String organizationId
SanVolumeTemplate65
ServerPoolResourceNote
ID of the server (VM host or compute server) to which the note applies.String serverResourceId
Long movedEpoch
String movedFromPoolName
ServerResource
Integer memoryConsumedMB
processorArchitecture
Time at which the server was moved to the server pool, in milliseconds since the
epoch.
Name of the server pool from which the server was moved. This value is not available
after the referenced server pool is deleted.
Name of the user who initiated the server pool move.String movedByUser
User-specified notes associated with the server pool move.String notes
Resource ID for the server.String id
Server model identifier.String model
Server serial number.String serialNumber
Universally unique identifier for the server.String uuid
Physical memory configured on the server, in megabytesInteger memorySizeMB
Physical memory in use on the server, in megabytes, if the server is running a
managed operating system.
Processor architecture used by the server.Organization
Integer processorLoadPercent
ServerSnapshot
ServiceAction
Number of physical processor cores in the server.Integer processorCoreCount
Speed of the server’s processors, in megahertz.Integer processorSpeedMHz
Percentage of the server’s processor cycles being consumed, if the server is running
a managed operating system.
Blade enclosure name or rack name depending on server model.String enclosure
Blade enclosure bay name or rack position depending on server model.String bay
False when errors are detected that would prevent successful provisioning.Boolean validTarget
Name of the server snapshot.String name
Identifier for the snapshot, unique within the set of snapshots for a server.String id
ID of the parent snapshot, if any.String parentSnapshotId
IDs of the child snapshots, if anyList<String> childSnapshotIds
Indicates whether the snapshot is the basis for the current server state.Boolean isActive
66Data Model
Type of request to which the service action applies.RequestType requestType
The event that triggers execution of the service action.ServiceActionTrigger trigger
A list of workflows comprising the service action, sorted by ordinal.List<Workflow> workflows
ServiceActionTrigger
enumValue
(Required) The value as an enumerated type.ServiceActionTriggerEnum
String otherValue
ServiceActionTriggerEnum
Possible values: SERVICE_BEGIN, SERVICE_END, OTHER
ServiceDetails
Extends ServiceInfo
serviceActions
logicalServerGroups
ServiceEntityStatus
enumValue
String otherValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
A list of automatically triggered actions defined for the service.List<ServiceAction>
Details of the logical server groups contained by the service.List<LogicalServerGroupDetails>
Overhead cost not included in service resource costs.Cost fixedCost
(Required) The value as an enumerated type.ServiceEntityStatusEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
ServiceEntityStatusEnum
Possible values:
PARTIAL
OTHER
The entity has been defined but no work has been performed on it yet.NEW
Resources required for the entity have been allocated.ALLOCATED
A request is operating on the entity.IN_PROGRESS
Resources required for the entity have been reserved.RESERVED
The entity is up and running.UP
The entity is powered off.OFF
The entity has been deactivated.DEACTIVATED
A failure has occurred on the entity.DOWN
The entity represents an aggregation of entities with different status values, none of
which are IN_PROGRESS.
Processing of a request on the entity has failed.FAILED
Processing of a request on the entity is being canceled.CANCELING
The entity status cannot be determined.UNKNOWN
A value other than above, possibly introduced by an extension in a subsequent
release.
ServiceActionTrigger67
ServiceInfo
Name of the service.String name
Unique identifier for the service.String id
Status of operation/automation for the service.ServiceEntityStatus status
Name of the template on which the service is based.String basedOnTemplate
Time at which the service was created, in milliseconds since the epoch.Long createEpoch
Long lastModifiedEpoch
SoftwareDiskDefinition
(Required) Time at which the service was last modified, in milliseconds since the
epoch.
Aggregate cost of the service resources and overhead.Cost cost
The time period for which service resources are allocatedLeasePeriod leasePeriod
Name of the user that owns the service.String ownerName
Unique identifier for the organization to which the service belongs.String organizationId
Service notes specified at the time of service creation.String notes
Identification of the entity responsible for the service costs.String billingCode
Disaster recovery policy.DrPolicy drPolicy
Disaster recovery state.DrState drState
Disk name, within a software image.String name
Disk size, in the units specified by sizeUnits.Integer size
Disk size units.ByteSize sizeUnits
SoftwareType
String otherValue
SoftwareTypeEnum
Possible values: IMAGE, VM_TEMPLATE, UNSPECIFIED, CLOUD_IMAGE, OTHER
StaticIPAddressRange
Integer addressesInMaintenance
(Required) The value as an enumerated type.SoftwareTypeEnum enumValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
First address in the range.String startAddress
Last address in the range.String endAddress
Number of addresses in the range.Integer addressCount
Number of addresses in the range that are allocated to a service.Integer addressesInUse
Number of addresses in the range that are assigned to a server currently in
maintenance, and are therefore unavailable.
68Data Model
StorageProvisioningType
enumValue
(Required) The value as an enumerated type.StorageProvisioningTypeEnum
String otherValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
StorageProvisioningTypeEnum
Possible values: THICK, THIN, UNSPECIFIED, OTHER
StorageType
(Required) The value as an enumerated type.StorageTypeEnum enumValue
String otherValue
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
StorageTypeEnum
Possible values: FC_SAN, DAS, VMFS, SAS_SAN, ISCSI_SAN, UNSPECIFIED, OTHER
SubnetDetails
Extends SubnetInfo
DNS domain for the subnet.String dnsDomain
DNS servers configured for the subnet.List<String> dnsServers
String msDomainName
String msWorkgroupName
staticIpAddressRanges
SubnetInfo
DNS search suffixes configured for the subnet.List<String> dnsSearchSuffixes
Default gateways configured for the subnet.List<String> defaultGateways
The name of the MS domain to which Windows servers should be joined when
provisioned on this subnet.
The name of the MS workgroup to which Windows servers should be joined when
provisioned on this subnet. (Not used if msDomainName is set.)
WINS servers configured for the subnet.List<String> winsServers
NTP date servers configured for the subnet.List<String> ntpDateServers
The VLAN ID used to identify the subnet.String vlanId
Indicates the sources from which the subnet was discovered.List<String> groupIds
IDs of the trunk subnets which include this subnet.List<String> parentIds
IDs of the subnets which are contained in this trunk subnet.List<String> childIds
Indicates whether this subnet acts as a trunk.Boolean trunk
Static IP address ranges configured for allocation on this subnet.List<StaticIPAddressRange>
The subnet ID, usually discovered from the managed environment.String id
Network address for the subnet.String address
StorageProvisioningType69
Subnet mask.String mask
The source types from which the network was discovered/defined.List<NetworkSource> sources
Primary IP type for the subnet.IPType ipType
Indicates whether the subnet serves as a boot network.Boolean bootNetwork
Indicates whether the subnet is publicly addressable.Boolean isPublic
Indicates whether the subnet may be shared across services.Boolean shareable
Number of DHCP addresses configured for allocation on this subnet.Integer dhcpAddressCount
Number of DHCP addresses on this subnet that are allocated to a service.Integer dhcpAddressesInUse
Integer
dhcpAddressesInMaintenance
Integer
staticAddressesInMaintenance
deploymentServices
TemplateInfo
Long lastModifiedEpoch
Number of DHCP addresses on this subnet that are assigned to a server currently
in maintenance, and are therefore unavailable
Number of static addresses configured for allocation on this subnet.Integer staticAddressCount
Number of static addresses on this subnet that are allocated to a service.Integer staticAddressesInUse
Number of static addresses on this subnet that are assigned to a server currently in
maintenance, and are therefore unavailable.
Currently limited to one deployment service per subnet.List<DeploymentService>
Custom subnet notes.String notes
Name of the template.String name
Time at which the template was created, in milliseconds since the epoch.Long createEpoch
(Required) Time at which the template was last modified, in milliseconds since the
epoch.
Aggregate cost of resources for a service based on the template.Cost cost
Indicates whether the template is published for general use.Boolean isPublished
VirtualizationType
enumValue
String otherValue
VirtualizationTypeEnum
Possible values: ESX, XEN, HYPER_V, MSVS, GSX, INTEGRITY_VM, UNKNOWN, OTHER
The XEN, MSVS, and GSX values are currently not used in IO logical servers.
70Data Model
Indicates whether template customization is available at service creation time.Boolean isCustomizable
Custom template notes.String notes
Disaster recovery policy.DrPolicy drPolicy
(Required) The value as an enumerated type.VirtualizationTypeEnum
A more specific value not defined in the enumerated type, when the enumValue is
OTHER.
VirtualSwitch
VmHost
Extends ServerResource
virtualizationType
Name of the virtual switch.String name
IDs of the subnets served by the virtual switch.List<String> subnetIds
Virtualization type used by the VM host.VirtualizationType
Network hostname of the VM host.String hostname
Network domain of the VM host.String dnsDomain
Network IP address of the VM host.String ipAddress
Name of the cluster containing the VM host.String clusterName
Indicates whether the VM host supports high availability for VM guests.Boolean haEnabled
List<VmHostDataStore>
dataStores
virtualSwitches
VmHostDataStore
Workflow
Does not include data stores that cannot be used or are specifically excluded for
use by IO
Virtual switches configured on the VM host.List<VirtualSwitch>
Mount point of the data store in the VM host file system.String mountPoint
Data store size, in megabytes.Long sizeMB
Available space on the data store, in megabytes.Long freeSizeMB
Indicates whether the data store is a VMFS volume.Boolean vmfsVolume
Indicates whether the data store is shared across hosts in a cluster.Boolean shared
Name of the workflow.String name
Path of the workflow.String path
Indicates the sequence in which the workflow is executed relative to others.Integer ordinal
WwnConnection
String presentedTo
World wide name of the server to which the storage is presented.String serverWwn
World wide names of the disk array containing the volume.List<String> targetWwns
ID of the SAN fabric on which the volume is available.String fabricId
VirtualSwitch71
5 Exceptions
IOSoapException
An error occurred while processing the operation. This is the base class for all the API exception.
This exception is returned for general errors, where the more specific exceptions do not apply.
A string describing the error.String message
InvalidParameterException
An interface parameter value was not valid.
LoadBalancerNotFoundException
A specified load balancer was not found.
The load balancer ID that was not recognized.String loadBalancerId
LogicalLoadBalancerNotFoundException
A logical load balancer was not found in a specified service.
The name of the service in which the logical load balancer was not found.String serviceName
The logical load balancer ID that was not found.String logicalLoadBalancerId
LogicalServerGroupNotFoundException
A specified logical server group name was not found in a specified service.
The name of the service in which the logical server group was not found.String serviceName
The logical server group name that was not found.String logicalServerGroupName
LogicalServerNotFoundException
A specified logical server name was not found in a specified service.
The name of the service in which the logical server was not found.String serviceName
The logical server name that was not found.String logicalServerName
LogicalServerNotFoundForServerException
A logical server was not found with a specified server name/address.
The name of the server for which a logical server was not found.String serverName
NoServerPoolsAvailableException
No server pools are available for use by the requesting user. Occurs when a default server pool
list is used, but a default list cannot be generated because no pools are available to the user.
The name of the requesting user.String userName
72Exceptions
OrganizationNotFoundException
A specified organization name was not recognized.
The organization ID or name that was not recognized.String organizationName
RequestNotFoundException
A specified request ID was not recognized.
The request ID that was not recognized.String requestId
SanVolumeNotFoundException
A specified SAN volume ID was not recognized.
The SAN volume ID that was not recognized.String sanVolumeId
SanVolumeTemplateNotFoundException
A specified SAN volume template ID was not recognized.
The SAN volume template ID that was not recognized.String sanVolumeTemplateId
ServerInUseException
A specified compute resource is in use and cannot be un/assigned from/to an organization.
The ID of the compute resource that is in use.String serverResourceId
ServerPoolNotFoundException
A specified server pool name was not recognized.
The server pool name that was not recognized.String serverPoolName
ServerPoolNotFoundForResourceException
No server pool was found containing a specified resource ID.
The resource ID that was not found in a server pool.String resourceId
ServerResourceNotFoundException
A specified compute server or VM host ID was not recognized.
The compute server or VM host ID that was not recognized.String serverId
ServiceNotFoundException
A specified service name was not recognized.
The service name that was not recognized.String serviceName
OrganizationNotFoundException73
SoftwareNotFoundException
A specified software ID was not recognized.
The software ID that was not recognized.String softwareId
SubnetNotFoundException
A specified subnet ID was not recognized.
The subnet ID that was not recognized.String subnetId
TemplateNotFoundException
A specified template name was not recognized.
The template name that was not recognized.String templateName
UserNotFoundException
A specified user name was not recognized.
The user name that was not recognized.String userName
74Exceptions
6 Example Usage
The web service operations may be called individually for targeted purposes or they may be
sequenced to perform more complex actions.
Physical Server Maintenance Example
If a physical server in use by an infrastructure service experiences a hardware failure, one may
wish to move it to the Maintenance pool in IO and use another server in the infrastructure service.
The following sequence of operations may be used for that purpose. (Note: Error handling is not
considered in this example.)
•Find the logical server associated with the server hostname.
•Wait for the activateLogicalServers operation to complete.
getRequestInfo
requestId = requestId2
Repeat periodically until the returned request.status is a terminal status.
Physical Server Maintenance Example75
7 Sample Java Client
The Web Service Interfaces may be accessed from a Java client program by using one of the
generally available tools to create Java language bindings from the WSDL. This sample uses the
wsdl2java utility provided with Apache CXF (cxf.apache.org). A sample environment can be
created as follows:
•Create a development environment with Java 5 or later and Apache Ant
•Install Apache CXF in C:\apache-cxf
•Set the CXF_HOME environment variable: set CXF_HOME=C:\apache-cxf
•Create a C:\hp-io-wsdl-client directory to use for the Java client program
•Save the IO WSDL to the file C:\hp-io-wsdl-client\hp-io-v5.wsdl (see “Accessing
•Create the files IOClientPasswordHandler.java and
TrustAllX509TrustManager.java in C:\hp-io-wsdl-client\com\hp\io\soap\
v5 with the contents shown in the sample code below
•Replace the file C:\hp-io-wsdl-client\com\hp\io\soap\v5\
IO_IOSoapServicePort_Client.java with the contents shown below
•Customize IO_IOSoapServicePort_Client.java as necessary, including user and
password information, template name, and service name
•Build and run the Java client program from the C:\hp-io-wsdl-client directory with the
command ant IOClient
The sample program lists templates, creates a service, deactivates the service, and activates the
service. It includes logic to wait for processing of asynchronous requests to complete.
Please note that this sample is provided only to demonstrate one method of accessing the Web
Service Interfaces. It is not intended to be used as production code.
IO_IOSoapServicePort_Client.java must be customized to operate correctly in a particular
environment. Using parameterized input rather than literal values is encouraged, particularly for
the user/password information.
public static void main(String args[]) throws Exception {
IO_Service ss =
new IO_Service(IO_Service.WSDL_LOCATION, SERVICE_NAME);
IO port = ss.getIOSoapServicePort();
setupConnection(port);
System.out.println("Invoking listTemplates...");
try {
java.util.List<TemplateInfo> templateList =
port.listTemplates();
System.out.println(
"Operation completed with these templates returned:");
for (TemplateInfo template : templateList) {
System.out.println(template.getName());
}
} catch (Exception e) {
System.out.println("Operation failed with exception: " +
e.getMessage());
}
final String infServiceName = "MyServiceName";
System.out.println("Invoking createService...");
try {
String requestId = port.createService(
infServiceName, // Name of service to create
"MyTemplateName", // Name of template for new service
new LeasePeriod(), // Start now and never expire
"hostx", // Hostname completion text
null, // Use all available server pools
null, // Do not set user's email address
"Service Purpose", // Annotation for the new service
/**
* Initializes the security settings for the web service client.
*/
private static void setupConnection(IO port) {
final String USER_NAME = "MyUserName";
final String PASSWORD = "MySecretPassword";
Client proxy = ClientProxy.getClient(port);
/**
* Waits until the specified request is no longer active, and
* returns the terminal status.
*/
private static RequestStatus waitForTerminalStatus(
IO port, String requestId) throws Exception {
RequestStatus requestStatus =
port.getRequestInfo(requestId).getStatus();
// Note: The request may require approval or other intervention
// before reaching a terminal status
while (!TERMINAL_STATUSES.contains(requestStatus.getEnumValue()))
{
// Check the status every 10 seconds
Thread.sleep(10000);
requestStatus = port.getRequestInfo(requestId).getStatus();
}
/**
* This class allow any X509 certificates to be used to authenticate the
* remote side of a secure socket, including self-signed certificates.
*/
public class TrustAllX509TrustManager implements X509TrustManager {
Sample Code79
/** Empty array of certificate authority certificates. */
private static final X509Certificate[] acceptedIssuers =
new X509Certificate[] {};
/**
* Always trust for client SSL chain peer certificate chain with any
* authType authentication types.
*
* @param chain The peer certificate chain.
* @param authType The authentication type based on the client
* certificate.
*/
public void checkClientTrusted(
X509Certificate[] chain, String authType)
throws CertificateException {
}
/**
* Always trust for server SSL chain peer certificate chain with any
* authType exchange algorithm types.
*
* @param chain The peer certificate chain.
* @param authType The key exchange algorithm used.
*/
public void checkServerTrusted(
X509Certificate[] chain, String authType)
throws CertificateException {
}
/**
* Return an empty array of certificate authority certificates which
* are trusted for authenticating peers.
*
* @return an empty array of issuer certificates.
*/
public X509Certificate[] getAcceptedIssuers() {
return (acceptedIssuers);
}
}
80Sample Java Client
8 Sample VisualStudio/.NET/C# Client
The Web Service Interfaces may be accessed from a .NET client program by using Microsoft
VisualStudio® to create C# language bindings from the WSDL:
•In VisualStudio®, create (for example) a consoled application
•Add a Service Reference, and enter the IO web service endpoint URL (see “Accessing WSDL”
(page 16))
•Enter a service name (e.g., “IOService”) as the Namespace value
•Add these namespaces:
using System.Net;
using System.Net.Security;
using System.Xml;
•Add this code:
try
{
//Open the config file to set the timestamp token and username token
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
//Get the configuration node
XmlNode appSettingsNode =
xmlDoc.SelectSingleNode("configuration");
//get the service model node
XmlNode servicemodelNode = appSettingsNode.LastChild;
//Get the client node
XmlNode clientNode = servicemodelNode.LastChild;
//get the endpoint node
XmlNode endpointNode = clientNode.LastChild;
//get the headers node
XmlNode headersNode = endpointNode.LastChild;
//get the security node
//change the username token with username and password
securityNode.LastChild.FirstChild.InnerText = "administrator";
securityNode.LastChild.ChildNodes[1].InnerText = "password";
//save the timestamp token and the username token
xmlDoc.Save(
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
//create object from the service proxy
IOService.OClient wcfClient = new IOService.OClient();
//Trust the certificate
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback(
delegate
{
return true;
});
//call the IO API and write the returned version
Console.WriteLine("The version: " + wcfClient.getVersion());
//call the IO API and write the returned template nnames
Console.WriteLine("The templates:");
IOService.TemplateInfo[] template = wcfClient.listTemplates();
for (int i = 0; i < template.Length; i++)
{
Console.WriteLine(template[i].name);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
•Open the app.config file and find the endpoint tag inside client tag:
NOTE:The Timestamp and UsernameToken values are intentionally left blank here. They are
set dynamically by the C# code.
•Modify the wsa:To value inserted in the previous step to specify the target system IP address
or hostname.
•Compile and run.
83
Part II Chargeback API
9 Introduction
Chargeback SOAP API
HP CloudSystem Matrix 7.1 includes a new chargeback feature. Chargeback is primarily a metering
system capable of collecting and exposing usage data for the provisioned infrastructure.
Using the infrastructure orchestration chargeback feature, the administrator can:
•Map allocation data to services, logical servers, logical networks, and logical disks
•Map uptime for logical servers
•Filter data for a specific period in time
The chargeback server collects, stores and exposes usage and cost metrics for services and individual
resources in these services. Collected metrics are accessible through the chargeback SOAP API.
Chargeback web services retrieve the allocation data according to the filter specified in the request.
The resulting output file is a structured XML file that contains the usage and cost metrics required
to build a user customized report. Several different tools can be used to process XML files and
build complex reports; however, there are cases for which only a simple report is required. This
appendix describes how to create customized simple reports from those XML files using a client to
connect to the chargeback SOAP API.
The chargeback command line interface can also be used to retrieve allocation data.
For more information about the chargeback feature, see the HP Matrix Operating Environment
Infrastructure Orchestration User Guide at http://www.hp.com/go/matrixoe/docs.
NOTE:While the chargeback API is similar in build and specifications to the HP Matrix OE
infrastructure orchestration API, there is no overlap between the two.
Chargeback SOAP API85
10 Accessing the Chargeback Web Service Interfaces
Accessing WSDL
The Web Service Description Language or WSDL (see Reference [1]) definition of chargeback
operations can be accessed from any installed chargeback system using a web browser. For
example, if the software is installed on a server with an IP address of <cms-ip-address>, enter
the following in the web browser to access the WSDL:
The browser will show the formal XML definition of the web service interface.
The WSDL also can be accessed through a command line interface (CLI) using a BAT file. The
chargeback.bat tool is found in the default location at C:\Program Files\HP\Matrix
infrastructure orchestration\chargeback\bin.
Security
The chargeback web service is accessible only over HTTPS. The service uses WS-Security
UsernameToken authentication in text form. A username and password of a registered IO
administrator is required to access the web service interface. A WS-Security timestamp header is
also required.
Authorization
If the presented username/password corresponds to a registered IO user who has the role of
Administrator, the web services returns the requested data. For username/password corresponds
to registered users with the role of Architect or User, the web services will return an authorization
error.
86Accessing the Chargeback Web Service Interfaces
11 Operations
Operations
The supported operations are specified in the following sections.
Returns usage and cost data for selected services.
Report result is paged according to the information passed in.
Specifies the period of time for which to return data, and specifies how
data should be consolidated in the report. There are two options for
formatting report result which depend on Period specification. If
PeriodType is set to DAILY, report will return one entry per pay per service
in the selected period. Each entry will contain usage information for that
service in that day. If PeriodType is set to PERIOD, result will contain one
entry per service for the entire period.
Specifies paging information for the data being returned. This attribute
identifies page size in terms of services and the page to be returned.
Query is re-executed every time the API is called and the query result is
not stored in server. Attribute totalPages is ignored.
Controls which services are included in the result. If no filter is supplied,
all services for the given period are returned.
Required page for the specified query. This contains usage data for
services that match filters and existed over the specified period. Page is
formatted according to PeriodType attribute.
Detailed Usage Report
getServiceUsageDetailedPage
Period periodParameters
Paging pageInformation
List<ServiceFilter>
serviceFilters
Returns detailed usage and cost data for selected services.getServiceUsageDetailPageName
Specifies the period of time for which to return data, and specifies how
data should be consolidated in the report. There are two options for
formatting report result which depend on Period specification. If
PeriodType is set to DAILY, report will return one entry per pay per service
in the selected period. Each entry will contain usage information for that
service in that day. If PeriodType is set to PERIOD, the result will contain
one entry per service for the entire period.
Specifies paging information for the data being returned. This attribute
identifies page size in terms of services and the page to be returned.
Attribute totalPages is ignored.
Controls which services are included in the result. If no filter is supplied,
the call returns information on all services the logged user has access to.
Access to service data follows the same authorization model as elsewhere
in infrastructure orchestration (for example, the listServices API).
Returns aggregated usage and cost values for selected services. Returns
one entry with consolidated data for the entire period.
Specifies period of time for which to return data. Type is ignored by this
API.
Controls which services are included in the result. If no filter is supplied,
all services for the given period are returned.
Usage data for all services that match the filters and existed over the
specified period.
88Operations
12 Data model
The complex data types that are used in the API operation definitions are defined in this section.
Figure 3 presents the relationship between the classes that are part of getServiceUsagePage.
Figure 4 presents the data model returned from a getServiceUsageDetailPage operation and
Figure 5 for getAggregateServiceUsage.
Figure 3 ServiceUsagePage Data Model
Figure 4 : ServiceUsageDetailPageData Model
Figure 5 AggregateServiceUsage Data Model
89
Period
Represents the period of time of the data to be returned.
PeriodType enum
Represents the possible usage data grouping. PERIOD means that the result will consolidate one
entry per service for the entire period, and DAILY means one entry per day.
Possible values: PERIOD, DAILY
ServiceFilter
Represents queries to be done while returning data.
filterAttribute
filterOperator
Start date from which to return data. Format: YYYY-MM-DDDate startDate
End date from which to stop returning data. Format: YYYY-MM-DDDate endDate
Specifies how data must be consolidated in the report.PeriodType type
Represents the attribute that will be used to filter data.ServiceFilterAttribute
Represents the comparison operator.FilterOperator
String serviceFilterValue
filterConnector
Specifies the value to be searched. This value, together with filterAttribute and filterOperator,
is used in the form: filterAttribute filterOperator value. For example: ORGANIZATION_ID
LIKE “HP*”.
Used with the prior filter.FilterConnector
ServiceFilterAttribute enum
Represents the fields supported for usage data filtering.
Possible values: ORGANIZATION_ID, BILLING_CODE, OWNER, SERVICE_NAME
FilterOperator enum
Represents the supported operators for filters.
Possible values: EQUAL, NOT_EQUAL, LIKE, NOT_LIKE. These are non case sensitive.
FilterConnector enum
Represents the supported filter connectors.
Possible values: AND, OR, NONE
Paging
Provides paging information for the data returned by the chargeback web service. This object is
ignored when PERIOD is used. The result is paged only for period type set to DAILY. When PERIOD
is used, only one page is returned with all registers.
int pageSize
int pageIndex
90Data model
Number of services in a page. It is used to determine the number of pages in the report.
It must be greater than 0. If 0 is supplied, InvalidPageSizeException is thrown.
Indicates which page to be returned by the webservice. First page is 0 and last is totalPages
– 1.
int totalPages
Filled every time the web service is called and contains the total number of pages based
on the query executed and the pageSize. If no data is returned, totalPages is 0.
Indicates if the returned page is the last page for the specified query.bool lastPage
ServiceInformation
Represents descriptive information of a service.
Service name.String name
Unique id used by Matrix OE infrastructure orchestration and chargeback.String id
Organization unique ID associated with the service.String organizationId
Billing code associated with this service as specified during service creation.String billingCode
Name of the service owner.String owner
Date that the service was created.Date startDate
Returned when the service is already deleted and has a delete date saved.Date endDate
ResourceUsageSummary
BigDecimal fixedCost
ipAddressUsage
ServerUsageSummary
DiskUsageSummary
Fixed cost associated with the service in the given day or period (depending
on the query).
Summarized data for the service’s servers.ServerUsageSummary serverUsage
Summarized data for the service’s disks.DiskUsageSummary diskUsage
Summarized data for the service’s IP addresses.IpAddressUsageSummary
Number of servers in the service for the given period or day.Long serversCount
Sum of servers allocation hours for the given period or day.BigDecimal allocationHours
Servers’ allocation cost for the given period or day.BigDecimal allocationCost
Sum of servers uptime hours for the given period or day.BigDecimal uptimeHours
Number of disks associated to the service for the given period or day.Long disksCount
Sum of disks allocation hours for the given period or day.BigDecimal allocationHours
IpAddressUsageSummary
Disks allocation cost for the given period or day.BigDecimal allocationCost
Amount of storage allocated for the given period or day.BigDecimal disksSizeGb
Number of IP addresses associated to the service for the given period or dayLong ipAddressCount
Sum of IP addresses allocation hours for the given period or day.BigDecimal allocationHours
IP addresses’ allocation cost for the given period or day.BigDecimal allocationCost
ServiceInformation91
ServiceUsagePage
Paging object with detailed information about the pages for the given query.Paging pagingInformation
List<ServiceUsageSummary>
serviceUsageSummary
ServiceUsageSummary
ResourceUsageSummary
resourceUsageSummary
AggregateServiceUsage
ResourceUsageSummary
resourceUsageSummary
List of registers returned by this query. A register is represented by a
ServiceUsageSummary object. This contains allocation metric information
for a given service in a given date. The number of objects returned in a page
is determined by the pageSize and the amount of data resulted by specified
query. This list is ordered by service ID and then by date.
Represents the date for which that object has data.String date
Contains service specific information.ServiceInformation serviceInformation
Contains collected metrics for the given service (identified by
serviceInformation) in the given date (date).
Number of existing services in the period and that match specified filters.Long servicesCount
Contains collected metrics for all services that existed in the given period
and that match specified filters.
Total cost for the query.BigDecimal totalCost
ServiceUsageDetailPage
List<ServiceUsageDetail>
serviceUsageDetail
ServiceUsageDetail
ServiceInformation serviceInformation
ResourceUsageDetail resourceUsageDetail
ResourceUsageDetail
ServerUsageDetail
Paging object with detailed information about the pages for the given query.Paging pagingInformation
If Period is set to DAILY, this represents the date for the associated data.String date
Data for each server in the service.List<ServerUsageDetailList> servers
Data for each disk in the service.List<DiskUsageDetail> disks
Data for each IP Address in the service.List<IpAddressUsageDetail> ipAddresses
String resourceType
92Data model
Contains server’s hostname.String hostName
Identifies whether the server is PHYSICAL, VIRTUAL or CLOUD. Physical and
virtual types are servers deployed on-premise. The Cloud type identifies
resources deployed to external cloud providers such as HP Cloud Services,
Savvis, or Amazon EC2.
Total of allocations hours for the server in the given period or day.BigDecimal allocationHours
Total cost of the server for the server in the given period or day.BigDecimal allocationCost
BigDecimal uptimeHours
DiskUsageDetail
Bool isInCLoud
IpAddressUsageDetail
BigDecimal allocationHours
Total of uptime hours for the server in the given period or day. Uptime hours
for cloud resources may vary 30 minutes.
Service disk name.String logicalDiskName
Total of allocation hours for the disk in the given period or day.BigDecimal allocationHours
Total cost of the disk for the server in the given period or day.BigDecimal allocationCost
Disk size allocated.BigDecimal sizeGb
True for the disks that are created in a server created in an external cloud
provider.
IP address or Fully Qualified Domain Name associated with the IP address.String ipAddress
DHCP, STATIC, or AUTO according to the template definition.String ipAssignmentType
Total amount of allocations hours for the IP address in the given period or
day.
Total cost of the IP address for the server in the given period or day.BigDecimal allocationCost
Bool isInCLoud
True for the IP address associated with a server created in an external cloud
provider.
DiskUsageDetail93
13 Exceptions
AuthenticationException
Username was not authenticated.
AuthorizationException
Username was not authorized or is not a Service Provider administrator.
ChargebackDataBaseException
An error occurred during database query, or trying to connect to the chargeback database.
ChargebackException
An exception occurred during the request fulfillment.
A string describing the errorString message
A string describing the errorString message
A string describing the errorString message
InvalidDateFormatException
A date is not in the format yyyy-MM-dd.
InvalidFilterException
The filter object was not specified correctly.
InvalidPageIndexException
Page index is a number less than 0.
InvalidPageSizeException
Page size is a number less or equal to 0.
A string describing the errorString message
A string describing the errorString message
A string describing the errorString message
A string describing the errorString message
94Exceptions
A string describing the errorString message
PeriodStartDateGreaterThanEndDateException
Start date is a date newer than end date.
A string describing the errorString message
PeriodStartDateTooOldException
Start date is older than 365 days from the current date.
A string describing the errorString message
RequiredParameterException
A required parameter was not specified.
A string describing the errorString message
PeriodStartDateGreaterThanEndDateException95
14 Sample Python Client
The following sample client was developed in Python 2.7.2 with the use of open source libraries.
It provides the user with a UI to query the chargeback API and returns the report in a formatted
PDF.
To create the sample client environment:
•Download and install Python 2.7 from python.org
•Download and install Suds, a lightweight SOAP python client for consuming web services,
from https://fedorahosted.org/suds/
•Download and install the Reportlab Toolkit, a Python library for creating reports in PDF, from
http://www.reportlab.com/software/opensource/
•Create a directory called ChargebackSample/root
•Save connection.py and reports.py in /root/chargeback
•Save GUI.py in /root/GUI
•Save reports_file.py in /root/reports
Execute the sample as:
> python GUI.py
Figure 6 Sample client UI
Known limitations in the sample:
•Only the first page of each report is returned.
•The report is filtered by one tenant name (organization ID) or one billing code.
•It is not possible to use ‘OR’ to filter reports.
•The output path must exist, otherwise the sample will throw an exception.
96Sample Python Client
Figure 7 Example of a report for getAggregatedUsage generated from sample client
Example 1 connection.py
import suds
PORT = "55443"
SERVICE = "/hpio/chargeback/soap/v1?wsdl"
TRANSPORT = "https://"
URL = "{0}{1}:{2}{3}"
import suds
import datetime
import locale
import root.reports.reports_file
from reportlab.platypus import Table, TableStyle, Paragraph
from reportlab.platypus.flowables import PageBreak
from reportlab.lib import colors
from reportlab.lib.colors import Color, PCMYKColor, HexColor, black, white
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.piecharts import Pie
from reportlab.graphics.charts.legends import Legend
serviceData.append(["Servers", "", "", "", ""])
serviceData.append(["Hostname", "Type", "Allocation time (hrs)", "Allocation cost($)", "Up time (hrs)"
])
for server in servers.serverUsageDetail:
serviceData.append([str(server.hostName), server.resourceType, server.allocationHours,
str(locale.currency(val=server.allocationCost,symbol=False, grouping=True)), server.uptimeHours])
serviceData.append (["Disks", "", "", "", ""])
serviceData.append(["Name", "Size (Gb)", "Allocation time (hrs)", "Allocation cost($)", "In cloud?"])
for disk in disks.diskUsageDetail:
serviceData.append([disk.logicalDiskName, disk.sizeGb, disk.allocationHours,
str(locale.currency(val=disk.allocationCost, symbol=False, grouping=True)), disk.isInCloud])