ServiceOfferingInstance onboard request
Description
This API creates a service offering instance (SOI) for an existing virtual machine (VM). The API supports Single-tier and Multi-tier service offering instances. For additional information, see Onboarding existing VMs (checklist).
The following constraints apply to this API:
- BMC Cloud Lifecycle Management supports the onboarding of VMware and Amazon Web Services virtual machines.
- The onboarding of Service Offering Instances can be done with two different input formats:
- Format 1: Requires manual steps to enroll the servers in BMC Server Automation.
- Format 2: Servers are enrolled automatically in BMC Server Automation.
- There will be no validations on whether the LogicalHostingEnvironment passed to the API is topologically correct to have connectivity between the computes as defined in the blueprint.
- You can onboard only VMs that do not have load balancers or firewalls, that is, you cannot onboard any existing load balancer entries and firewall rules. However, after the VM is onboarded, you can create firewall rules and load balancer entries for the VM.
- You cannot apply options when you onboard a VM. However, after the VM is onboarded, you can use options associated with the SOI.
- This API does not support onboarding VMs that have NAT IP addresses.
The VM must be configured correctly in BMC Server Automation. For information about enrolling VMs in BMC Server Automation, see Knowledge Base article 000030942.
- The VM must be powered on.
- The VM should have the same name in both BMC Server Automation and VMware vCenter Server. If BMC Server Automation and VMware vCenter Server each use a different name for the VM, then set "name" parameter in serverObject to the name used in VMware vCenter Server. Console actions such as start, stop, decommission, modify CPU or memory, and attach or detach storage work only for onboarded service offering instances that have the same name in BMC Server Automation and VMware vCenter Server. Only the offboard service offering instance action can be done through the REST API.
- If you want the hostname value displayed as the VM name in BMC Cloud Lifecycle Management, set the
BBSA_SET_VIRTUALGUESTNAME_AS_VM_HOSTNAME
parameter toTRUE
in thecloudservices.json
file before onboarding. - If a static IP address is already marked as reserved in BMC Network Automation IP address management (IPAM), the VM onboard process fails to reserve the static IP address. Failure to reserve a static IP address triggers a rollback of the onboarding process that frees the allocated IP address. This case occurs only when two VMs in the network have the same static IP address.
Enforced validations to this API:- The number of networks defined in the resource set in the service blueprint must be equal to the number of interfaces of the VM
- Resource set names in the API request should match to the resource set names in blueprint
- The number of Resource Sets defined in the blueprint must be equal to the number of Resource Sets passed in input for the API.
- VM should be deployed on an CLM onboarded VirtualCluster/VirtualHost/VirtualResourcePool.
- The associated VirtualCluster/VirtualHost/VirtualResourcePool of the VM, should be member of a compute pool which is attached to the Network Container passed as input argument.
- The associated datastores of the VM, should be member of a VDR pool.
- Switch ports attached to the VM should match to the switch ports of the Network Container (or POD) passed as input argument.
API stability classification
API overview
HTTP | URI | Return | Return type |
---|---|---|---|
|
|
| Not applicable |
HTTP request message
Query string parameters
This API does not use query string parameters.
Request message headers
This API uses only common headers listed in HTTP request and response headers.
Request message body
This API uses the following objects in the request message body JSON.
Top-level objects
Name | Type | Multi- | Description |
---|---|---|---|
|
| 0..1 | URL to call when the operation finishes |
|
| 0..1 | Identifier of a callout to run after the operation executes |
|
| 0..1 | Identifier of a callout to run before the operation executes |
|
| 0..1 | Timeout setting. For more information about using the timeout, see Synchronous and asynchronous operations. Timeout values:
|
| 1 | Array of input parameters. The following table contains the list of input parameters. For information about setting up the input parameters, see Passing input parameters with an API request. |
Input parameters to include in operationParams
Name | Type | Multi- | Description |
---|---|---|---|
|
| 0..1 | VM name used in VMware vCenter Server. Include this parameter when the name used in VMware vCenter Server is different from the name used in BMC Server Automation. |
| 1..* | List of ComputeContainers that are to be onboarded.
| |
| 0..1 | Date on which the service offering instance should be decommissioned | |
| 0..1 | Identifier of the infrastructure resource that hosts the VM. The identifier can be a
| |
|
| 1 | LogicalHostingEnvironment identifier on which the Service will be onboarded |
|
| 0..1 | Name for the new service offering instance. For example: |
|
| 1 | Identifier of the network container in which to place the service offering instance |
|
| 1 | User name of the service offering instance owner |
|
| 1 | Reconciliation identifier of the service offering |
|
| 1 | Reconciliation identifier of the service offering |
|
| 1 | Name of the tenant for the service offering instance |
| 1 | In the JSON for this parameter, the following
|
HTTP response message
Response message headers
This API uses only common headers listed in HTTP request and response headers.
Response message body
The response message body contains a Task
object.
Examples
The following example shows an HTTP request that onboards a single-tier service offering instance using Format 1, which requires manual steps to onboard servers in BMC Server Automation.
To retrieve LogicalHostingEnvironmentId
, use the example shown on LogicalHostingEnvironment search request.
{
"timeout": -1,
"preCallout": "",
"postCallout": "",
"operationParams": [
{
"name": "computeContainers",
"type": "com.bmc.cloud.model.beans.ComputeContainer",
"multiplicity": "1..*",
"value": [
{
"cloudClass": "com.bmc.cloud.model.beans.ComputeContainer",
"serverObject": {
"cloudClass": "com.bmc.cloud.model.beans.VirtualGuest",
"hostName": "EPDONB1",
"name": "EPDONB1",
"provider": "/provider/0eb5f0bd-222d-481e-969f-30ada8629541",
"externalID": "/id/SystemObject/Server/340f7114-b513-429a-9425
-f70a95cc1955,/id/SystemObject/Server/bd72d0da-9028-4a95-9cda
-09c42e0f8bfe"
},
"resourceSetObject": {
"cloudClass": "com.bmc.cloud.model.beans.ResourceSet",
"name": "RS1"
}
}
]
},
{
"name": "serviceOfferingReconId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "7467D7C5-D395-7133-3271-D38CF73071FA"
},
{
"name": "LogicalHostingEnvironmentId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "12dd53a6-f6a8-4116-8b6d-880bf436e236"
},
{
"name": "tenant",
"type": "java.lang.String",
"multiplicity": "1",
"value": "BMC_Tenant"
},
{
"name": "decommissionDate",
"type": "java.util.Date",
"multiplicity": "1",
"value": 1402165833138
},
{
"name": "name",
"type": "java.lang.String",
"multiplicity": "0..1",
"value": "MultiONB"
},
{
"name": "owner",
"type": "java.lang.String",
"multiplicity": "1",
"value": "pg_enduser"
}
]
}
The following example shows an HTTP request that onboards a multi-tier service offering instance using Format 1, which requires manual steps to onboard servers in BMC Server Automation:
{
"timeout": -1,
"preCallout": "",
"postCallout": "",
"operationParams": [
{
"name": "computeContainers",
"type": "com.bmc.cloud.model.beans.ComputeContainer",
"multiplicity": "1..*",
"value": [
{
"cloudClass": "com.bmc.cloud.model.beans.ComputeContainer",
"serverObject": {
"cloudClass": "com.bmc.cloud.model.beans.VirtualGuest",
"hostName": "EPDONB1",
"name": "EPDONB1",
"provider": "/provider/0eb5f0bd-222d-481e-969f-30ada8629541",
"externalID": "/id/SystemObject/Server/9808b979-61ad-4f72-ad05
-d59f6bb316d8,/id/SystemObject/Server/bd72d0da-9028-4a95
-9cda-09c42e0f8bfe"
},
"resourceSetObject": {
"cloudClass": "com.bmc.cloud.model.beans.ResourceSet",
"name": "RS1"
}
},
{
"cloudClass": "com.bmc.cloud.model.beans.ComputeContainer",
"serverObject": {
"cloudClass": "com.bmc.cloud.model.beans.VirtualGuest",
"hostName": "EPDONB2",
"name": "EPDONB2",
"provider": "/provider/0eb5f0bd-222d-481e-969f-30ada8629541",
"externalID": "/id/SystemObject/Server/fe0b0d96-639a-4d4d
-af34-061784567fcc,/id/SystemObject/Server/bd72d0da-9028
-4a95-9cda-09c42e0f8bfe"
},
"resourceSetObject": {
"cloudClass": "com.bmc.cloud.model.beans.ResourceSet",
"name": "RS2"
}
}
]
},
{
"name": "serviceOfferingReconId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "42E5E490-D070-FF0D-A2B1-F3036AAA3DF1"
},
{
"name": "LogicalHostingEnvironmentId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "12dd53a6-f6a8-4116-8b6d-880bf436e236"
},
{
"name": "tenant",
"type": "java.lang.String",
"multiplicity": "1",
"value": "BMC_Tenant"
},
{
"name": "decommissionDate",
"type": "java.util.Date",
"multiplicity": "1",
"value": 1402165833138
},
{
"name": "name",
"type": "java.lang.String",
"multiplicity": "0..1",
"value": "MultiONB"
},
{
"name": "owner",
"type": "java.lang.String",
"multiplicity": "1",
"value": "pg_enduser"
}
]
}
The following example shows an HTTP request that onboards a single-tier service offering instance using Format 2, in which servers are onboarded automatically in BMC Server Automation.
To derive serverNetworkInterfaceObject
, which holds ipAddressesObject
, you must perform the following searches:
- Perform a REST search for the Resource Manager (RM) provider. For an example, see Provider search request.
- Perform a REST search on the VirtualInfrastructureManager class with "name" as the search criteria. For an example, see VirtualInfrastructureManager search request.
- Use the
guid
the of RM provider andexternalID
of the Virtual Center (VC) from the responses received in the earlier steps, and search the compute container in the VC. For an example, see ComputeContainer search request.
{
"timeout": -1,
"preCallout": "",
"postCallout": "",
"operationParams": [
{
"name": "computeContainers",
"type": "com.bmc.cloud.model.beans.ComputeContainer",
"multiplicity": "1..*",
"value": [
{
"cloudClass": "com.bmc.cloud.model.beans.ComputeContainer",
"serverObject" : {
"cloudClass" : "com.bmc.cloud.model.beans.VirtualGuest",
"provider": "/provider/0235987b-11e7-4760-ba1f-d42de6a0f7df",
"externalID" : "/id/SystemObject/Server/195a7ba9-1124-42d2
-ba4b-5704708f21a0/Assets/BMC_VMware_
VirtualInfrastructureManager/VirtualMachines/MDC1,/
id/SystemObject/Server/195a7ba9-1124-42d2-ba4b-5704708f21a0",
"name" : "MDC1",
"serverNetworkInterfaceObject" : [ {
"cloudClass" : "com.bmc.cloud.model.beans.ServerNetworkInterface",
"guid" : "123bc558-ed94-433e-b1d0-9810e0b9b97e",
"ipAddressesObject" : [ {
"cloudClass" : "com.bmc.cloud.model.beans.IPAddress",
"guid" : "5d7619a3-cca5-4799-b00f-ef7dd6cfd454",
"ipAddress" : "10.21.15.131",
"isPublic" : false
} ],
"isAttachedToManagementNetwork" : false,
"isDHCP" : false,
"isPublicIP" : false
}, {
"cloudClass" : "com.bmc.cloud.model.beans.ServerNetworkInterface",
"guid" : "bde88a2d-2b7e-4b26-837d-fef962b3961a",
"ipAddressesObject" : [ {
"cloudClass" : "com.bmc.cloud.model.beans.IPAddress",
"guid" : "a51d71d6-e704-464b-a3b5-46ec963dca31",
"ipAddress" : "10.1.23.93",
"isPublic" : false
} ],
"isAttachedToManagementNetwork" : false,
"isDHCP" : false,
"isPublicIP" : false
} ]
},
"resourceSetObject": {
"cloudClass": "com.bmc.cloud.model.beans.ResourceSet",
"name": "RS1"
}
}
]
},
{
"name": "serviceOfferingReconId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "C86D47F7-AADA-5A8E-8ED9-4882B513B0E0"
},
{
"name": "LogicalHostingEnvironmentId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "3e25d184-b207-45ff-a310-aaeb4bc02cbf"
},
{
"name": "tenant",
"type": "java.lang.String",
"multiplicity": "1",
"value": "MD_Tenant"
},
{
"name": "owner",
"type": "java.lang.String",
"multiplicity": "1",
"value": "md_user1"
},
{
"name": "name",
"type": "java.lang.String",
"multiplicity": "0..1",
"value": "SingleONB"
}
]
}
The following example shows an HTTP request that onboards a multi-tier service offering instance using Format 2, in which servers are onboarded automatically in BMC Server Automation:
{
"timeout": -1,
"preCallout": "",
"postCallout": "",
"operationParams": [
{
"name": "computeContainers",
"type": "com.bmc.cloud.model.beans.ComputeContainer",
"multiplicity": "1..*",
"value": [
{
"cloudClass": "com.bmc.cloud.model.beans.ComputeContainer",
"serverObject": {
"cloudClass": "com.bmc.cloud.model.beans.VirtualGuest",
"provider": "/provider/0eb5f0bd-222d-481e-969f-30ada8629541",
"externalID": "/id/SystemObject/Server/bd72d0da-9028-4a95-9cda-09c42e0f8bfe/Assets/BMC_VMware_VirtualInfrastructureManager/Virtual Machines/EPDONB1,/id/SystemObject/Server/bd72d0da-9028-4a95-9cda-09c42e0f8bfe",
"name": "EPDONB1",
"serverNetworkInterfaceObject": [
{
"cloudClass": "com.bmc.cloud.model.beans.ServerNetworkInterface",
"guid": "42240588-5aa5-4f3d-acfd-f7f98616ce3a",
"ipAddressesObject": [
{
"cloudClass": "com.bmc.cloud.model.beans.IPAddress",
"guid": "bcbde380-fe56-4f81-85d4-6b26cc47cd7b",
"ipAddress": "169.254.48.17",
"isPublic": false
}
],
"isAttachedToManagementNetwork": false,
"isDHCP": false,
"isPublicIP": false
},
{
"cloudClass": "com.bmc.cloud.model.beans.ServerNetworkInterface",
"guid": "a58c2ad6-1765-4cfe-8a0a-85eb814b861c",
"ipAddressesObject": [
{
"cloudClass": "com.bmc.cloud.model.beans.IPAddress",
"guid": "1a3afe69-d2ac-4c4c-9409-f80af58f46bd",
"ipAddress": "10.1.23.12",
"isPublic": false
}
],
"isAttachedToManagementNetwork": false,
"isDHCP": false,
"isPublicIP": false
}
]
},
"resourceSetObject": {
"cloudClass": "com.bmc.cloud.model.beans.ResourceSet",
"name": "RS1"
}
},
{
"cloudClass": "com.bmc.cloud.model.beans.ComputeContainer",
"serverObject": {
"cloudClass": "com.bmc.cloud.model.beans.VirtualGuest",
"provider": "/provider/0eb5f0bd-222d-481e-969f-30ada8629541",
"externalID": "/id/SystemObject/Server/bd72d0da-9028-4a95-9cda-09c42e0f8bfe/Assets/BMC_VMware_VirtualInfrastructureManager/Virtual Machines/EPDONB2,/id/SystemObject/Server/bd72d0da-9028-4a95-9cda-09c42e0f8bfe",
"name": "EPDONB2",
"serverNetworkInterfaceObject": [
{
"cloudClass": "com.bmc.cloud.model.beans.ServerNetworkInterface",
"guid": "b2030712-b5ee-4184-9e5a-4c2e448efbd6",
"ipAddressesObject": [
{
"cloudClass": "com.bmc.cloud.model.beans.IPAddress",
"guid": "59b3add0-0c2c-44ca-89ab-d08cab4e45e6",
"ipAddress": "169.254.169.235",
"isPublic": false
}
],
"isAttachedToManagementNetwork": false,
"isDHCP": false,
"isPublicIP": false
},
{
"cloudClass": "com.bmc.cloud.model.beans.ServerNetworkInterface",
"guid": "b7d6b631-7d7a-458d-b7ff-1e4b71a77fd7",
"ipAddressesObject": [
{
"cloudClass": "com.bmc.cloud.model.beans.IPAddress",
"guid": "39de4605-f5aa-455a-9e72-b88509f60f6e",
"ipAddress": "10.1.23.33",
"isPublic": false
}
],
"isAttachedToManagementNetwork": false,
"isDHCP": false,
"isPublicIP": false
}
]
},
"resourceSetObject": {
"cloudClass": "com.bmc.cloud.model.beans.ResourceSet",
"name": "RS2"
}
}
]
},
{
"name": "serviceOfferingReconId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "42E5E490-D070-FF0D-A2B1-F3036AAA3DF1"
},
{
"name": "LogicalHostingEnvironmentId",
"type": "java.lang.String",
"multiplicity": "1",
"value": "12dd53a6-f6a8-4116-8b6d-880bf436e236"
},
{
"name": "tenant",
"type": "java.lang.String",
"multiplicity": "1",
"value": "BMC_Tenant"
},
{
"name": "decommissionDate",
"type": "java.util.Date",
"multiplicity": "1",
"value": 1402165833138
},
{
"name": "name",
"type": "java.lang.String",
"multiplicity": "0..1",
"value": "MultiONB"
},
{
"name": "owner",
"type": "java.lang.String",
"multiplicity": "1",
"value": "pg_enduser"
}
]
}
The following example shows an HTTP response to the request. The response returns a Task
object because the request is still being processed and is only 95% complete.
HTTP/1.1 200 OK
Date: Wed, 28 Mar 2012 08:41:47 GMT
BMC-Transaction-ID: 7206a3c3-b3f1-4ce9-8eb2-7c6622b790a6
Content-Type: application/json; charset=UTF-8
Content-Length: 680
Server: Jetty(6.1.x)
[
{
"cloudClass": "com.bmc.cloud.model.beans.Task",
"className": "ServiceOfferingInstance",
"completionTime": "-1",
"creationTime": "2012/03/28 01:41:47 PDT",
"errors": [ ],
"guid": "c003cf0e-70b9-4621-b1b9-618dd297a35f",
"isCallout": false,
"isError": false,
"isSuccess": false,
"operationName": "onboard",
"parentTaskInternalUUID": "37ebe4bf-49b0-4b06-a2da-26bd4d2f1cb8",
"taskInternalUUID": "dabfd81b-ff40-49f6-8511-f1755cd27bfd",
"taskProgress": 95,
"taskState": "SUSPENDED",
"taskStatusURI": "http://10.1.8.49:8080/csm/task/dabfd81b-ff40-49f6-8511-f1755cd27bfd/status",
"taskSubState": "createResourceSets"
}
]
Comments
Log in or register to comment.