Skip Headers
Oracle® Enterprise Manager Cloud Administration Guide
12c Release 4 (12.1.0.4)

E28814-12
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

36 SSA Administration APIs

This chapter provides details of the Cloud (RESTful) APIs and Service Template APIs for SSA Administration functions. In this release, APIs for PaasZone Management and SoftwarePool Management have been implemented. Other APIs used to fetch the API catalog, API output, and metadata and expansion of a resource are also described.

This chapter also provides details on the Enterprise Manager Command Line Interface (EMCLI) verbs for PaaS Infrastructure Zone, Software Pool, and Service Template operations for Enterprise Manager Self Service Applications Admin users. The EMCLI enables you to access Enterprise Manager Cloud Control functionality from text-based consoles (shells and command windows) for a variety of operating systems.

This chapter has the following sections:

36.1 SSA Admin Resources

The Cloud APIs supported in this release can be categorized as follows:

Every singular resource has its own attributes and methods supported on it, but in general all singular resources have some common attributes, as described in the following table.

Table 36-1 Common Resource Attributes for Singular Resources

Field Type Occurs Supported Method Description

name

String

1

Any

Name of Resource

type

String

1

Any

Resource Type

description

String

0..1

Any

Description

id

String

0..1

GET

Resource Identifier

createdOn

TimeStamp

0..1

GET

Date and time, in W3C format when the resource was created.

createdBy

String

0..1

GET

User who created resource

modifiedOn

TimeStamp

0..1

GET

Date and time, in W3C format when the resource was last modified

ModifiedBy

Date

0..1

GET

User who last modified resource

owner

String

0..1

GET

User who owns resource

etag

String

0..1

GET

HTTP Entity tag value

lastModified

String

0..1

GET

HTTP Last-Modified value

canonicalLink

URI

1

GET

Preferred Version of Resource

selfLink

URI

1

GET

Refers to resource equivalent to the containing element


Where:

  • Supported Method: Indicates in which method type this attribute will be available

  • Supported Method type 'Any': Indicates that it might be available with GET, PUT, or POST methods, but not for DELETE.

  • Occurs: An occurrence of 0..1 indicates it is an optional parameter. An occurrence of 1 means the parameter is mandatory.

36.1.1 GET to get API Entry Point Resources

The following shows a sample GET request and response:

Example Request:

  • URL

    https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/api 
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    GET

Example Response:

{
v1: 
{
canonicalLink:   
"https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1"
paasZones: "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones"
softwarePools: "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools"
}
}

36.2 PaasZones

PaasZones is a collection resource representing a Cloud Administrator's view of all the accessible PaasZone resources. The following table describes the PaaSZones [application/oracle.com.cloud.common.PaaSZones+json] data model.

Table 36-2 PaasZones Data Model

Field Type Occurs Description

name

String

1

Display name of this collection resource

type

String

1

Type of this collection resource

hasMore

Boolean

1

Indicates whether there are more elements in the collection

count

Integer

1

Number of elements returned

items

Collection <PaasZone>

1

List of Paas Zone resources.

In case no instance are there items will be present but empty

totalCount

Integer

1

Total number of Paas Zone resources

canonicalLink

URI

1

A GET against this URI refreshes the client representation of this resource.

selfLink

URI

1

Refers to the resource equivalent to the containing elements.


The following table describes the Supported Methods for PaaSZones:

Table 36-3 Supported Methods for PaasZones

Method Query Parameters Request Payload URI Description

GET

NA

NA

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/

Returns PaasZones collection resource details

GET/metadata

NA

NA

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/metadata

Returns PaasZone Metadata

PUT

NA

PaasZone (Json Payload)

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/

Updates PaasZone resource

POST

NA

PaasZone (Json Payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/paaszones/

Creates PaasZone resource


36.2.1 PaasZones API Examples

The following sections provide example PaasZones API operations. Note that you can also use EMCLI commands to perform a range of different operations (including, create, update, and delete operations) and these commands are described in Section 36.8.2, "Using EMCLI Verbs for SSA Operations".

36.2.1.1 Retrieving PaaS Zones Metadata

The GET request with metadata path is issued to fetch Metadata Information.

Example Request:

  • URL

    https://hostname/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/metadata
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type: application/json

  • Method

    GET

Example Response:

Status 200 OK 
Content-Type: application/json
{
  "constraints" : [ {
    "name" : "MAX_CPU_UTILIZATION",
    "description" : "Maximum CPU Utilization (%)",
    "value" : "80"
  }, {
    "name" : "MAX_MEMORY_ALLOCATION",
    "description" : "Maximum Memory Allocation (%)",
    "value" : "80"
  } ],
  "memberTargetTypes" : [ "oracle_vm_zone", "host" ],
  "message" : "When creating Paas Infrastructure zone: (1) member_type should be set to one of the values shown in member target types. All Zone members have to be of the same type. (2) Please change the value of the constraints as required."
}

36.2.1.2 Listing PaaS Zones

The GET request can be issued to get list of PaasZone Instances.

Example Request:

  • URL

    https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type: application/json

  • Method

    GET

Example Response:

Status 200 OK 
Content-Type: application/json  
{
  "name" : "Paas Zones",
  "type" : "Paas Infrastructure Zone",
  "hasMore" : false,
  "count" : 4,
  "items" : [ {
    "name" : "pzone1",
    "id" : "A3CF2D49CFF3F3E664D073303EA51F8E",
    "type" : "self_service_zone",
    "canonicalLink" : 
"https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E"
  }, {
    "name" : "Test Zone 2",
    "id" : "EF3830C71CC54B50B963376F9217AB95",
    "type" : "self_service_zone",
    "description" : "with MAX_CPU_UTILIZATION ",
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/EF3830C71CC54B50B963376F9217AB95"
  }, {
    "name" : "test paas zone",
    "id" : "5D7548C1B879A51CFD894CEA8D5FB19B",
    "type" : "self_service_zone",
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/5D7548C1B879A51CFD894CEA8D5FB19B"
  }, {
    "name" : "Test Zone",
    "id" : "CACBB07A674F280DF84FC4CBFA76DFA7",
    "type" : "self_service_zone",
    "description" : "with MAX_CPU_UTILIZATION ",
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/CACBB07A674F280DF84FC4CBFA76DFA7"
  } ],
  "totalCount" : 4,
  "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones",
  "selfLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones"
}

36.3 PaasZone

This resource represents a PaaS Infrastructure Zone. The following table describes the PaaSZone [application/oracle.com.cloud.common.PaaSZone+json] data model.

Table 36-4 PaaSZone Data Model

Field Type Supported Methods Occurs Description

name

String

Any

1

A human readable name given to the PaaS Zone.

It is non editable.

id

String

GET

1

Zone ID. GET method will have value for this element.

description

String

Any

0..1

A brief description given to the zone.

credential

String

Any

1

Global Named Credentials to be used for provisioning in this PaaS Infrastructure Zone

members

Collection<String>

GET

POST

1

Members of PaaS Zone. They can be either Host members or Oracle VM Zone members.

memberType

String

GET

POST

1

Target type of the members of PaaS Zone. It can be either "host" for Host members or "oracle_vm_zone" for Oracle VM Zone members.

constraints

Collection<EntityValueHolder>

Any

0..1

Placement Policy Constraints allow the cloud administrator to set maximum thresholds for any host.

Refer to zone metadata API for more information.

roles

Collection<String>

GET

POST

0..1

SSA roles that can access this PaaS Infrastructure Zone.

pools

Collection<SoftwarePool>

GET

0..1

Software Pools associated with this PaaS Zone

membersToAdd

Collection<String>

PUT

0..1

Host or Oracle VM Zone targets to be added to an existing PaaS Zone while editing it.

membersToRemove

Collection<String>

PUT

0..1

Host or Oracle VM Zone targets to be removed from an existing PaaS Zone while editing it.

rolesToAdd

Collection<String>

PUT

0..1

SSA roles to be added while editing a PaaS Zone

rolesToRemove

Collection<String>

PUT

0..1

SSA roles to be removed while editing a PaaS Zone.


Where:

  • Supported Methods: Value 'Any' indicates GET/POST/PUT

    Depending on the Supported Methods column value, the respective attributes need to be specified in the Request Payload or are available in the Response Payload after the operation in complete.

    For example, while executing a PUT operation, the name, description, credential, membersToAdd, membersToRemove, constraints, rolesToAdd, and rolesToRemove attributes can be specified in the Request payload.

  • The constraints attribute is not defined for a PaasZone when its memberType is oracle_vm_zone.

  • The MAX_CPU_UTILIZATION and MAX_MEMORY_ALLOCATION are the two placement constraints supported for a PaaS Zone when the memberType is "host". If they are not provided, then their default value is taken to be 80 percent.

The following table describes the supported methods on the PaaSZone resource:

Table 36-5 Supported Methods on PaaSZone Resources

Method Query Parameters Request Payload Response Payload URI Description

GET

Possible values for this optional query parameter:

  • constraints

  • pools

  • members

  • roles

NA

PaasZone (Json Payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/paaszones/{zoneId}

Retrieve PaaS Infrastructure Zone details

DELETE

NA

NA

Status Message (json payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/paaszones/{zoneId}

Deletes a PaaS Infrastructure Zone


36.3.1 PaaS Zone API Examples

The following sections provide example Paas Zone API operations. Note that you can also use EMCLI commands to perform a range of different operations on a PaaS Zone (including, create, update, and delete) and these commands are described in Section 36.8.2, "Using EMCLI Verbs for SSA Operations".

36.3.1.1 Creating a PaaS Zone

A PaaS Zone is created with a POST request on the paaszones collection resource.

Example Request:

  • URL

    https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type: application/json

  • Method

    POST

{
    "name":"My Test Zone",
    "description":"This is a TestZone",
    "credential":"NCAIME",
    "memberType":"host",
    "members":[
        "slc05gvt.us.oracle.com"
    ],
    "constraints":[
        {
            "name":"MAX_CPU_UTILIZATION",
            "value":"85"
        },
        {
            "name":"MAX_MEMORY_ALLOCATION",
            "value":"95"
        }
    ],
    "roles":[
        "SSACOREROLE1",
        "SSACOREROLE2"
    ],
    
}

Example Response:

Status 201 Created 
Content-Type: application/json
{
  "name" : "My Test Zone",
  "description" : "This is a TestZone",
  "type" : "PaaS Infrastructure Zone",
  "id" : "DDBFEFDAD2AE6490E040F00AA37D4C67",
  "credential" : "NCAIME",
  "members" : {
    "canonicalLink" : 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/members",
    "memberType" : "host",
    "numberOfHostMembers" : "1"
  },
  "constraints" : {
    "canonicalLink" : 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/constraints",
    "numberOfConstraints" : "2"
  },
  "roles" : {
    "canonicalLink" : 
"https://cloudcompany.com.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/roles",
    "numberOfUserRoles" : "2"
  },
  "pools" : {
    "canonicalLink" : 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/pools",
    "numberOfSoftwarePools" : "0"
  },
  "createdOn" : "2013-05-27 20:57:18",
  "createdBy" : null,
  "modifiedOn" : null,
  "modifiedBy" : null,
  "owner" : "SYSMAN",
  "etag" : null,
  "lastModified" : null,
  "canonicalLink" : 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67",
  "selfLink" : 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67"
}

36.3.1.2 Updating a PaaS Zone

The PUT request with payload updates an existing PaaS Infrastructure Zone.

Example Request:

  • URL

    https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type: application/json

  • Method

    PUT

{
    "name":"My Test Zone",
    "credential":"NCAIME2",
    "description":"Description_01",
    "membersToAdd":[
        "somehost.com",
        "someotherhost.com"
    ],
    "membersToRemove":[
        "removehost.com",
        "removeotherhost2.com"
    ]
    ,
    "rolesToAdd":[
        "ROLE_1",
        "ROLE_2"
    ],
    "rolesToRemove":[
        "ROLE_1_1",
        "ROLE_2_1"
    ],
    "constraints":[
        {
            "name":"MAX_MEMORY_ALLOCATION",
            "value":"80"
        },
         {
            "name":"MAX_CPU_UTILIZATION",
            "value":"80"
        }
    ]
}

Example Response:

Status 200 OK 
Content-Type: application/json
{
  "message" : "PaaS Infrastructure Zone "My Test Zone" updated successfully."
}

36.3.1.3 Deleting a PaaS Zone

The DELETE request on the URI of the PAASZONE can be issued to delete a PaasZone Instance.

Example Request:

  • URL

    https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    DELETE

Example Response:

Status 200 OK 
Content-Type: application/json
{
  "message" : "PaaS Infrastructure Zone  "DDBFEFDAD2AE6490E040F00AA37D4C67" deleted    successfully."
}

Note:

A PaaS Infrastructure Zone cannot be deleted if there are Software Pools associated with it.

36.3.1.4 Retrieving PaasZone details

The GET request on the PaasZone resource can be issued to retrieve its details.

Example Request:

  • URL

    https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/ A3CF2D49CFF3F3E664D073303EA51F8E
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    GET

Example Response:

Status 200 OK 
Content-Type: application/json
{
  "name" : "pzone1",
  "description" : "This zone contains Host members",
  "type" : "PaaS Infrastructure Zone",
  "id" : "A3CF2D49CFF3F3E664D073303EA51F8E",
  "credential" : "SXAASJUNITHOSTCRED",
  "members" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E/members",
    "memberType" : "host",
    "numberOfHostMembers" : "2"
  },
  "constraints" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E/constraints",
    "numberOfConstraints" : "2"
  },
  "roles" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E/roles",
    "numberOfUserRoles" : "1"
  },
  "pools" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E/pools",
    "numberOfSoftwarePools" : "0"
  },
  "createdOn" : "2013-05-22 01:50:30",
  "createdBy" : null,
  "modifiedOn" : null,
  "modifiedBy" : null,
  "owner" : "SYSMAN",
  "etag" : null,
  "lastModified" : null,
  "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E",
  "selfLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E"
}

36.3.1.5 Getting a PaasZone (Expanded)

The get request supports expands query parameter. Based on this query parameter the relevant attribute for a PaasZone is expanded.

The following query parameters are supported:

  • members

  • role

  • constraints

  • pools

URL is of the format

https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/{zomeid}/?expands=<paramname>

Example:

https://hostname/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/?expands=constraints

Example Response

{
  "name" : "My Test Zone",
  "description" : "Description_02",
  "type" : "PaaS Infrastructure Zone",
  "id" : "DDBFEFDAD2AE6490E040F00AA37D4C67",
  "credential" : "C",
  "members" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/members",
    "memberType" : "host",
    "numberOfHostMembers" : "1"
  },
  "constraints" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/constraints",
    "items" : [ {
      "name" : "MAX_MEMORY_ALLOCATION",
      "value" : "25"
    }, {
      "name" : "MAX_CPU_UTILIZATION",
      "value" : "25"
    } ]
  },
  "roles" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/roles",
    "numberOfUserRoles" : "0"
  },
  "pools" : {
    "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/pools",
    "numberOfSoftwarePools" : "0"
  },
  "createdOn" : "2013-05-27 20:57:18",
  "createdBy" : null,
  "modifiedOn" : null,
  "modifiedBy" : null,
  "owner" : "SYSMAN",
  "etag" : null,
  "lastModified" : null,
  "canonicalLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67",
  "selfLink" : "https://example.oracle.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67"
}

36.4 SoftwarePools

SoftwarePools is a collection resource representing an SSA Administrator's view of all the accessible SoftwarePool resources. The following table describes the SoftwarePools [application/oracle.com.cloud.common.SoftwarePools+json] data model.

Table 36-6 SoftwarePools Data Model

Field Type Occurs Description

name

String

1

Display name of this collection resource

type

String

1

Type of this collection resource

hasMore

Boolean

1

Indicates whether there are more elements in the collection

count

Integer

1

Number of elements returned

items

Collection <SoftwarePools>

1

The elements of this collection

totalCount

Integer

1

Total number of elements in the collection

canonicalLink

URI

1

A GET against this URI refreshes the client representation of this resource.

selfLink

URI

1

Refers to the resource equivalent to the containing elements.


The following table describes the supported methods on the SoftwarePools resource:

Table 36-7 Supported Methods on SoftwarePools Resources

Method Query Parameters Request Payload URI Description

GET

zonename pooltype

NA

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/

Returns the collection of existing Software Pools

PUT

NA

SoftwarePool(Json Payload)

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/

Updates an existing Software Pool resource.

POST

NA

SoftwarePool(Json Payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/softwarepools/

Creates a Software Pool


36.4.1 SoftwarePools API Example

The following provides an example of a SoftwarePools API operation. Note that you can also use EMCLI commands to perform a range of different operations on Software Pools (including, create, update, and delete) and these commands are described in Section 36.8.2, "Using EMCLI Verbs for SSA Operations"

36.4.1.1 Listing Software Pools

A GET request on SoftwarePools resource is issued to list all the accessible Software Pools.

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    GET

Example Response:

Status 200 OK 
Content-Type: application/json 
{
name: "Software Pools"
type: "Software Pool"
hasMore: false
count: 2
items: [2]
0:  {
name: "IT_MW_Pool_2"
type: "mwaas_zone"
id: "E284FAAA7FBA6A06F7090115A3E07299"
zoneName: "IT_MW_Zone1"
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E284FAAA7FBA6A06F7090115A3E07299"
description: "Middleware Pool of Oracle Homes of Version 10.3.5.0"
}-
1:  {
name: "IT_MW_Pool1"
type: "mwaas_zone"
id: "DD73A46E9E3C9866E040F00AE5235A7F"
zoneName: "IT_MW_Zone1"
canonicalLink:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/DD73A46E9E3C9866E040F00AE5235A7F"
description: "Middleware Pool of Oracle Homes"
}-
-
totalCount: 2
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/"
selfLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/"
}

36.4.1.2 Filtering Output based on Search Query Parameters

Search on the Software Pools is supported on the following by the following query parameters:

  • zonename

  • pooltype

Single or multiple search parameters may be specified at once. Wildcard search is supported using '%' character.

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools? zonename=IT_MW%&pooltype=mwaas_zone
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    GET

Example Response:

Status 200 OK 
Content-Type: application/json 
{
name: "Software Pools"
type: "Software Pool"
hasMore: false
count: 1
items: [1]
0:   {
name: "IT_MW_Pool1"
type: "mwaas_zone"
id: "DD73A46E9E3C9866E040F00AE5235A7F"
zoneName: "IT_MW_Zone1"
canonicalLink: 
"https://cloudcompany/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/DD73A46E9E3C9866E040F00AE5235A7F"
description: "Middleware Pool of Oracle Homes"
}
 
totalCount:1 
canonicalLink: 
"https:// cloudcompany/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/"
selfLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/"
}

36.5 SoftwarePool

A SoftwarePool resource represents a collection of homogeneous servers or clusters that are used to service requests within a PaaS Infrastructure Zone. All members within a SoftwarePool must be of the same type and must belong to the same PaaS Infrastructure Zone.

In addition, to maintain homogeneity, the members must satisfy a set of filter criteria that restrict the addition of members to a SoftwarePool. The following table describes the SoftwarePool [application/oracle.com.cloud.common.SoftwarePool+json] data model.

Table 36-8 SoftwarePool Data Model

Field Type Supported Methods Occurs Description

name

String

Any

1

A human readable name given to the Software Pool.

It is non editable.

id

String

GET

1

Pool GUID that uniquely identifies the resource.

description

String

Any

0..1

A brief description given to the Software Pool.

poolTargetType

String

Any

1

Target type of the Software Pool to be created.Example : "mwaas_zone" for Middleware Pool, "oracle_cloud_zone" for Database Pool, "schaas_pool" for Schema Pool.

paasZone

String

GET

POST

1

Name of the PaaS Zone associated with this Software Pool.

members

Collection<String>

GET

POST

1

Members of PaaS Zone. They can be either Host members or Oracle VM Zone members.

constraints

Collection<EntityValueHolder>

Any

0..1

Placement constraints for a Software Pool that allow the self service administrator to set maximum ceilings for resource utilization.

filters

Collection < EntityValueHolder >

GET

POST

1

Filters on a Software Pool restrict the addition of member targets to it with a set criteria.

properties

Collection< EntityValueHolder >

Any

1

Additional properties that need to be specified for a specific pool target type.

membersToAdd

Collection<String>

PUT

0..1

Targets to be added to an existing Software Pool while editing it.

membersToRemove

Collection<String>

PUT

0..1

Targets to be removed from an existing Software Pool while editing it.

canonicalLink

URI

GET

1

A GET against this URI refreshes the client representation of this resource.


Note:

Supported methods value 'Any' indicates GET/POST/PUT .

The following table describes the Supported Methods for Software Pool resources:

Table 36-9 Supported Methods on Software Pool Resources

Method Query Parameters Request Payload Response Payload URI Description

GET

param-name : expandsparam-value : members/ filters/ constraints/all

Expands a particular attribute to show its data.

"all" expands all the attributes.

NA

SoftwarePool (Json Payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/softwarepool/{poolId}

Retrieves the Software Pool details

DELETE

NA

NA

Status Message (json payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/softwarepool/{poolId}

Deletes a Software Pool


36.5.1 SoftwarePool API Examples

The following sections provide example SoftwarePool API operations. Note that you can also use EMCLI commands to perform a range of different operations on a Software Pool (including, create, update, and delete operations) and these commands are described in Section 36.8.2, "Using EMCLI Verbs for SSA Operations"

36.5.1.1 Creating a Software Pool

A POST operation is issued on Software Pools Collection resource to create a Software Pool.

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type : application/json

  • Method

    POST

    { 
    "name": "IT_MW_Pool1", 
    "poolTargetType": "mwaas_zone",
    "description": "Middleware Pool of Oracle Homes",
    "paasZone": "IT_MW_Zone1",
    "members": ["WebLogicServer10_3_6_0_slc01afx_6775","WebLogicServer10_3_6_0_adc2201439_4731"],
    "constraints": 
                {"items": [{"name": "MAX_INSTANCES", "value": "10"}]},
    "filters": 
             {"items": [{"name": "VERSION","value": "10.3.6.0"}]} 
    }   
    

Example Response:

Status 201 Created 
Content-Type: application/json
{
name: "IT_MW_Pool1"
description: "Middleware Pool of Oracle Homes"
type: "Middleware Pool"
id: "687FE169ED3556CED38D11DC9BDD5CCD"
zoneName: "IT_MW_Zone1"
members: {
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/members"
numberOfPoolMembers: "2"
}-
constraints: {
canonicalLink:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/constraints"
numberOfConstraints: "1"
}-
filters: {
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/filters"
numberOfFilters: "1"
}-
properties: {
canonicalLink:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/properties"
numberOfPropertiess: "0"
}-
createdOn: "2013-05-24 00:26:42"
createdBy: null
modifiedOn: null
modifiedBy: null
owner: "CLOUD_ADMIN1"
etag: null
lastModified: null
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD"
selfLink:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD"
}

36.5.1.2 Updating a Software Pool

A PUT operation is issued on Software Pools Collection resource to update an Software Pool.

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type : application/json

  • Method

    PUT

    { 
    "name": "IT_MW_Pool1", 
    "poolTargetType": "mwaas_zone",
    "description": "Middleware Pool of Oracle Homes Updated",
    "membersToAdd": ["WebLogicServer10_3_6_0_slc01afx_6776","WebLogicServer10_3_6_0_adc2201439_4732"],
    "constraints": 
                {"items": [{"name": "MAX_INSTANCES", "value": "10"}]},
    }            
    

Example Response:

Status 200 OK 
Content-Type: application/json 
{
message: "Software Pool  " IT_MW_Pool1" updated successfully."
}

36.5.1.3 Deleting a Software Pool

The following shows an example request and response:

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    DELETE

Example Response:

Status 200 OK 
Content-Type: application/json 
{
message: "Software Pool "687FE169ED3556CED38D11DC9BDD5CCD" deleted successfully."
}

Note:

Software Pool cannot be deleted if there are Service Templates associated with the Pool

36.5.1.4 Retrieving Software Pool Details

A GET request on SoftwarePool resource is issued to get a specific Software Pool details.

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type : application/json

  • Method

    GET

Example Response:

Status 200 OK 
Content-Type: application/json 
{
name: "IT_MW_Pool1"
description: "Middleware Pool of Oracle Homes"
type: "Middleware Pool"
id: "687FE169ED3556CED38D11DC9BDD5CCD"
zoneName: "IT_MW_Zone1"
members: {
canonicalLink:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/members"
numberOfPoolMembers: "2"
}-
constraints: {
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/constraints"
numberOfConstraints: "1"
}-
filters: {
canonicalLink:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/filters"
numberOfFilters: "1"
}-
properties: {
canonicalLink: https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/properties"
numberOfPropertiess: "0"
}-
createdOn: "2013-05-24 00:26:42"
createdBy: null
modifiedOn: null
modifiedBy: null
owner: "CLOUD_ADMIN1"
etag: null
lastModified: null
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD"
selfLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD"
}

36.5.1.5 Expands Query Parameter

GET operation on SoftwarePool resource supports the expands query parameter to expand the following link resource attributes:

  • members: Expands the members attribute to show all the members of this Software Pool.

  • filters: Expands the filters attribute to show the filter criteria of the members of this Software Pool.

  • constraints: Expands the constraints attribute to show the placement constraints associated with this Software Pool.

  • all : Expands all the attributes of the Software Pool when returning the Software Pool details.

The URL has the following format:

https://hostname/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/{poolid}/?expands=<paramname>

Example:

https://hostname/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD?expands=members

If no query parameter is specified then software pool details data is returned to the user without any attributes expanded.

36.5.2 SoftwarePoolMetadata

This provides the metadata information for all the software pool target types that is needed while creating a Software Pool. The following table describes the SoftwarePoolMetadata [application/oracle.com.cloud.common.SoftwarePools+json] data model.

Table 36-10 SoftwarePoolMetadata Data Model

Field Type Occurs Description

canonicalLink

URI

1

A GET against this URI refreshes the client representation of this resource.

poolType

String

1

Target type of the Software Pool

poolTypeDisplayName

String

0..1

Display name of this Software Pool target type.

poolTypeDescription

String

0..1

Description of the Software Pool target type.

serviceFamily

String

1

Represents the service family to which this pool type belongs.

serviceType

String

1

Represents the service type to which this pool type belongs.

constraints

Collection<ValueDescriptor>

0..1

Represents the metadata information about the possible placement constraints for this pool type.

filters

Collection< ValueDescriptor >

0..1

Represents the metadata information about the possible filters (member constraints) for a pool type.


The GET method for the SupportedPoolMetadata resource has the following characteristics:

  • Response Payload:

    SoftwarePoolMetadata (Json Payload)

  • URI:

    em/websvcs/restful//extws/cloudservices/admin/cfw/v1/softwarepools/metadata

  • Descriptions:

    Retrieves the metadata information for all the software pool types like service type, service family, available constraints, and available filters.

36.5.2.1 Retrieving Software Pool Metadata API Example

A GET request is issued to obtain the SoftwarePoolMetadata URI, which is then used to retrieve the metadata information of all the software pool types. Note that you can also use EMCLI commands to retrieve Software Pool information and these commands are described in Section 36.8.2, "Using EMCLI Verbs for SSA Operations"

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/metadata
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    DELETE

Example Response:

Status 200 OK 
Content-Type: application/json 
 
{
softwarePoolsMetadata: 
{
items: [1]
0:  
{
poolType: "mwaas_zone"
poolTypeDisplayName: "Middleware Pool"
poolTypeDescription: "Middleware Pool is a set of homogeneous Middleware Oracle Homes."
serviceFamily: "MWAAS"
serviceType: "PhysicalWLS"
constraints: 
{
items: [1]
0:  
{
name: "MAX_INSTANCES"
description: "Maximum Number of Java Servers (per host)"
defaultValue: "1"
isRequiredValue: true
}
}
filters: 
{
items: [1]
0:  
{
name: "VERSION"
description: "Version"
defaultValue: "10.3.5.0"
isRequiredValue: true
possibleValues: [7]
0:  
{value: "12.1.1.0"
description: "12.1.1.0"}
1:  
{
value: "10.3.6.0"
description: "10.3.6.0"
}
2:  
{
value: "10.3.5.0"
description: "10.3.5.0"
}
3:  
{
value: "10.3.4.0"
description: "10.3.4.0"
}
4:  
{
value: "10.3.3.0"
description: "10.3.3.0"
}
5:  
{
value: "10.3.2.0"
description: "10.3.2.0"
}
6:  
{
value: "10.3.1.0"
description: "10.3.1.0"
}
}
}
}
}
canonicalLink: "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/metadata"
}

36.5.3 SoftwarePoolFilteredTargets

This gives the available targets in a given PaaS Infrastructure Zone based on the filter criteria given, that can be used in POST operation on SoftwarePool resource. The following table describes the SoftwarePoolFilteredTargets [application/oracle.com.cloud.common.SoftwarePoolFilteredTargets+json] data model.

Table 36-11 SoftwarePoolFilteredTargets Data Model

Field Type Occurs Description

canonicalLink

URI

1

A GET against this URI refreshes the client representation of this resource.

targetType

String

1

Target type of the Software Pool . Example : "mwaas_zone" for Middleware Pool, "oracle_cloud_zone" for Database Pool, "schaas_pool" for Schema Pool.Refer SoftwarePoolsMetadata resource to get the available filters for a pool target type.[POST]

paasZone

String

1

Name of the PaaS Zone representing a filter criteria.

[POST]

targets

Map<String, List<String>>

1

Filtered targets after applying the filter criteria.

filters

Collection<Filters>

1

Filter criteria that needs to be applied to get the filtered targets. Refer SoftwarePoolsMetadata resource to get the available filters for a pool target type.[POST]


Note that filtered targets satisfy the following:

  • Are part of the given PaaS Infrastructure zone.

  • Satisfy the filter criteria passed.

  • Are not part of any other Software Pool.

The POST method for the SupportedPoolFilteredTargets resource has the following characteristics:

  • Request Payload:

    SoftwarePoolFilteredTargets (Json Payload)

  • Response Payload

    SoftwarePoolFilteredTargets (Json Payload)

  • URI:

    em/websvcs/restful//extws/cloudservices/admin/cfw/v1/softwarepools/filteredtargets

  • Descriptions:

    Retrieves the metadata information for all the software pool types, such as service type, service family, available constraints, and available filters.

36.5.3.1 Retrieving Available Filtered Targets API Example

A POST operation on SoftwarePoolFilteredTargets resource is issued to fetch the filtered targets based on the paas zone and filters given. Note that you can also use EMCLI commands to retrieve Filtered Targets information and these commands are described in Section 36.8.2, "Using EMCLI Verbs for SSA Operations"

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools
    
  • Headers

    Authorization: basic xxxxxxxxx

    Content-Type : application/json

  • Method

    POST

    {
    "targetType": "mwaas_zone",
    "paasZone": "IT_MW_Zone1",
    "filters": {"items": [{"name": "VERSION", "value": "10.3.6.0"}]}
    }
    

Example Response:

Status 201 Created 
Content-Type: application/json 
 
{
targets: {
oracle_home: [2]
0:  "WebLogicServer10_3_6_0_slc01afx_6775"
1:  "WebLogicServer10_3_6_0_adc2201439_4731"
}
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/filteredtargets"
}

36.5.4 SoftwarePoolCapacity

This resource retrieves the software pool capacity details like CPU utilization, memory allocation, and number of instances for the pool entities. The following table describes the SoftwarePoolCapacity [application/oracle.com.cloud.common.SoftwarePoolCapacity+json] data model.

Table 36-12 SoftwarePoolCapacity Data Model

Field Type Occurs Description

canonicalLink

URI

1

A GET against this URI refreshes the client representation of this resource.

name

String

1

Name of the Software Pool.

[POST]

type

String

1

Target type of the Software Pool.Example : "mwaas_zone" for Middleware Pool, "oracle_cloud_zone" for Database Pool, "schaas_pool" for Schema Pool.

capacity

Collection<Filters>

1

Filter criteria that needs to be applied to get the filtered targets. Refer SoftwarePoolsMetadata resource to get the available filters for a pool target type.[POST]


The GET method for the SupportedPoolCapacity resource has the following characteristics:

  • Response Payload

    SoftwarePoolCapacity (Json Payload)

  • URI:

    em/websvcs/restful//extws/cloudservices/admin/cfw/v1/softwarepools/{poolId}/capacity

  • Descriptions:

    Retrieves the software pool capacity details.

36.5.4.1 Retrieving Software Pool Capacity API Example

A GET on SoftwarePoolCapacity resource is issued to get the Software Pool capacity details. Note that you can also use EMCLI commands to retrieve Software Pool Capacity information and these commands are described in Section 36.8.2, "Using EMCLI Verbs for SSA Operations"

Example Request:

  • URL

    https:// cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/capacity
    
  • Headers

    Authorization: basic xxxxxxxxx

  • Method

    GET

Example Response:

Status 200 OK 
Content-Type: application/json
{
name: "mySchemaPool"
type: "schaas_pool"
capacity: {
items: [1]
0:  {
entityName: "Oemrep_Database"
entityType: "oracle_database"
entityCapacity: {
items: [4]
0:  {
resourceType: "Storage Utilization"
resourceUsed: "64.74"
resourceThreshold: "100.0"
resourceUnit: "%"
}-
1:  {
resourceType: "CPU Utilization"
resourceUsed: "0.0"
resourceThreshold: "0.0"
resourceUnit: "%"
}-
2:  {
resourceType: "Memory Utilization"
resourceUsed: "0.0"
resourceThreshold: "0.0"
resourceUnit: "%"
}-
3:  {
resourceType: "Instances"
resourceUsed: "0"
resourceThreshold: "100"
}-
-
}-
}-
-
}-
canonicalLink: 
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/2E7C9C632B18C3FEB4FEA5A614E51BE7/capacity"
}

36.6 Composite Resource Attributes

Some of the resource entities in this specification contain the following composite resource attributes:

36.6.1 ValueDescriptor

This describes the metadata regarding the type of value that can be set upon an associated object. The following table describes the data model:

Table 36-13 ValueDescriptor Data Model

Field Type Occurs Description

name

String

1

Name of the datum being described.

description

String

1

Description of the datum being described.

defaultValue

String

1

Default value of the datum being described.

isRequiredValue

Boolean

1

True if the value is required.

possibleValues

Collection<ValueEntity>

0..1

Optional list of valid values of the datum being described.


36.6.2 ValueEntity

This represents a value (string representation) and their description (caption). The following table describes the data model:

Table 36-14 ValueEntity Data Model

Field Type Occurs Description

value

String

1

String representation of the actual value of the entity.

description

String

0..1

Caption of the entity that describes it.


36.6.3 EntityValueHolder

This represents a simple entity having a name, value and description. The following table describes the data model:

Table 36-15 EntityValueHolder Data Model

Field Type Occurs Description

name

String

1

Name of the entity

value

String

1

String representation of the actual value of the entity.

description

String

0..1

Caption of the entity that describes it.


36.6.4 PoolEntityCapacity

This represents the capacity details of individual entities of the Software Pool. The following table describes the data model:

Table 36-16 PoolEntityCapacity Data Model

Field Type Occurs Description

entityName

String

1

Name of the entity

entityType

String

1

Target type of the entity.

entityCapacity

Collection<ResourceTypeCapacity>

1

Collection of capacity details of a particular resource type like Storage Utilization, CPU Utilization.


36.6.5 ResourceTypeCapacity

This represents the capacity details of a particular resource type, such as Storage Utilization and CPU Utilization. The following table describes the data model:

Table 36-17 ResourceTypeCapacity Data Model

Field Type Occurs Description

resourceType

String

1

Type of the resource like Storage Utilization.

resourceUsed

String

1

String representation of the used resource.

resourceThreshold

String

0..1

String representation of the resource threshold.

resourceUnit

String

0..1

String representation of the unit in which the utilization of the resource is measured.


36.7 Service Template Management

This section describes the resources and APIs that can be used to manage service templates.

36.7.1 Service Templates

A service template is a collection resource representing a Cloud Administrator's view of all the accessible service template resources. The following table describes the Service Templates data model.

Table 36-18 Service Templates Data Model

Field Type Occurs

name

String

1

Display name of this collection resource.

type

String

1

Type of collection resource.

hasMore

Boolean

1

Indicates whether there are more elements in this collection resource.

count

Integer

1

The number of elements in the collection resource.

items

Collection <integer>

1

List of service template resources. If there are no service templates present, this field will be blank.

totalCount

Integer

1

Total number of service template resources.

canonicalLink

URI

1

A GET against this URI refreshes the client representation of this resource.

selfLink

URI

1

Refers to the resource equivalent to the containing elements.


36.7.1.1 Supported Methods on ServiceTemplates Resources

The following table describes the supported methods on the ServiceTemplates resources.

Table 36-19 Supported Methods on ServiceTemplates Resources

Method Query Parameters Request Payload URI Description

GET

NA

NA

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/

Returns service template collection resource details for all service types.

POST

NA

Service Template (Json Payload)

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/

Creates an instance of service template.


36.7.1.2 ServiceTemplates API Example

An example of ServiceTemplates API operation is given below.

Listing Service Templates

A GET request on ServiceTemplates resource is issued to list all the Service Templates.

Example Request:

  URL
https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates
  Headers
Authorization: basic xxxxxxxxx
  Method
GET

Example Response:

Status 200 OK
Content-Type: application/json
{
 
    "name":"Service Templates",
    "type":"Service Template",
    "hasMore":false,
    "items":[
        {
            "id":"E821074692058B5DE040F00AA37D75AB",
            "name":"ST_DB_SCH_01",
            "serviceFamily":"DBAAS",
            "description":"Database Schema Service Template",
            "canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws
    /cloudservices/admin/cfw/v1/servicetemplates/E821074692058B5DE040F00AA37D75AB"
        }
    ],
    "totalCount":1,
    "canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws
    /cloudservices/admin/cfw/v1/servicetemplates"
}

36.7.2 Service Template

A service template is a standardized service definition that can be used by self service users to provision a service instance. The following table describes the Service Template.

Table 36-20 ServiceTemplate Data Model

Field Type Supported Methods Occurs Description

name

String

Any

1

A human readable name given to the service template. This field cannot be edited.

serviceFamily

String

Any

1

Service Family.

serviceType

String

Any

1

Service type

id

String

GET

1

Service template ID. The GET method contains the value for this element.

description

String

Any

0..1

A brief description given to the service template.

roles

Collection<Role>

GET

POST

0..1

SSA roles that can access the template.

poolIds

Collection <String>

POST

1

Software Pool IDs associated with this template.

serviceExecutableMeta

ServiceExecutableMetaDataEntity

Any

0..1

Service executable to be used for the service template.

createdOn

String (Date / Time)

GET

0..1

Date and time on which the resource was created.

createdBy

String

GET

1

User who created the resource.

modifiedOn

String (Date / Time)

GET

0..1

Date and time on which the resource was modified.

modifiedBy

String

GET

1

User who modified the resource.

owner

String

GET

1

User who owns the resource.

etag

String

GET

0..1

HTTP entity value tag.

lastModified

String

GET

0..1

HTTP last modified value

canonicalLink

URI

GET

1

Preferred version of resource.


where:

  • Supported Method:

    • Indicates the method type where this attribute will be available.

    • The method type Any indicates that this resource is available for GET, PUT, or POST methods.

  • Occurs: An occurrence is 0..1 indicates that this is an optional parameter. An occurrence of 1 indicates that this parameter is mandatory.

36.7.2.1 Supported Methods on ServiceTemplate Resources

The following table describes the supported methods for servicetemplate resources.

Table 36-21 Supported Methods on ServiceTemplate Resources

Method Query Parameters Request Payload Response Payload URI Description

GET

 

NA

Service Template (Json Payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/servicetemplates/{serviceFamily}/{template id}

Retrieve service template details.

DELETE

NA

NA

Status Message (Json payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/servicetemplates/<serviceFamily>/{template id}

Delete a service template

PUT

NA

Service Template (Json payload)

 

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/<serviceFamily>/{template id}

Updates service template resource


36.7.3 ServiceTemplateUpdate

This table describes the ServiceTemplateUpdate data model.

Table 36-22 ServiceTemplateUpdate Data Model

Field Type Supported Methods Occurs Description

description

String

PUT

0..1

A brief description given to the service template.

rolesAdded

Collection<Role>

PUT

0..1

SSA roles to be added that can access this service template.

rolesRemoved

Collection<Role>

PUT

0..1

SSA roles to be removed that have access to this service template.

poolsIdsAdded

Collection<String>

PUT

0..1

Software pool IDs to be added to an existing template while it is being edited.

poolsIdsRemoved

Collection<String>

PUT

0..1

Software pool IDs to be removed from an existing template while it is being edited.

executableEntity

ServiceExecutableMetaDataEntity

PUT

0..1

Service executable to be used for the service template.


36.7.4 ServiceExecutableMetaEntity

This table describes the ServiceExecutableMetaEntity data model.

Table 36-23 ServiceExecutableMetaDataEntity

Field Type Description

name

String

Name of the executable that is used to save the actual executable in Enterprise Manager. This can be the name of a job, configured deployment procedure, deployment procedure, or a profile. This field cannot be edited.

type

String

This can be:

  • Job

  • DP

  • CDP

  • Profile

serviceFamily

String

Service Family.

serviceType

String

Service Type

configurations

Collection<TemplateConfigParam>

Executable Parameters

payloads

Collection<PayloadDescriptor>

Collection of payload descriptor.


36.7.5 Template Configuration Parameters

The following table lists the TemplateConfigParam data model.

Table 36-24 Configuration Parameters

Field Type Description

id

String

ID of the configuration paramater.

name

String

Name of the configuration parameter

value

String

Value of the configuration parameter.

values

Collection<String>

List of configuration parameter values.

description

String

Description of the configuration parameter.

required

boolean

Boolean if parameter is required.

secret

boolean

Boolean if parameter is secret.

subconfigurations

Collection<TemplateConfigParam>

Set of possible values.


36.7.6 PayloadDescriptor

The following table describes the PayloadDescriptor data model

Table 36-25 PaylodDescriptor data model

Field Type Description

name

String

Name of the payload entity.

id

String

Id of the payload entity.


36.7.7 ServiceTemplate Metadata

The ServiceTemplate Metadata is used to generate JSON Payloads that are required to create the service template instance.The following table describes ServiceTemplate Metadata Data Model.

Table 36-26 ServiceTemplate Metadata Data Model

Field Type Description

serviceFamily

String

Name of the service family.

serviceType

String

Name of service type.

type

String

Can be one of:

JOB

DP

CDP

PROFILE

description

String

Description

payload

Boolean

Is true if payload is expected.

payloads

Collection<PayloadMetaData>

Boolean if parameter is required.


36.7.8 PayloadMetaData

The following table describes the PayloadMetadata.

Table 36-27 PayloadMetaData

Field Type Description

id

String

Payload Id.

name

String

Name of payload

defaultValue

String

Default value


36.7.8.1 ServiceTemplate MetaData

The following table describes the supported methods on the ServiceTemplateMetaData.

Table 36-28 Supported Methods on ServiceTemplateMetaData

Method Query Parameters Request Payload Response Payload URI Description

GET

 

NA

Collection<ServiceTemplateMetaData> (Json Payload)

em/websvcs/restful//extws/cloudservices/admin/cfw/v1/servicetemplates/{serviceFamily}/executable/metadata

Retrieve metadata for given service family and service type for CDP, DP, and so on.

POST

 

Service Template MetaData (Json Payload)

ServiceExecutableMetaEntity (Json Payload)

em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/metadata

Retrieve configurations for posted service family and service type.


36.7.9 ServiceTemplates API Example

An example of ServiceTemplates API operation is given below.

Creating Service Templates

A POST operation is issued on ServiceTemplates Collection resource to create a Service Template.

Example Request

URL
 
https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/
servicetemplates
    Headers
Authorization: basic xxxxxxxxx
    Method
POST
    Payload
{
 
    "name":"TestSchaasTemplate3",
    "serviceType":"SCHEMA",
    "serviceFamily":"DBAAS",
    "description":"This is a test schaas service template 1",
    "poolIds":[
        "FC129EEFFD67CD948B3147D2BAE0BA89"
    ],
 
    "roles":[
        {
            "name":"SSA01"
        }
    ],
   "serviceExecutableMeta":{
        "type":"CDP",
        "configurations":[
            {
 
                "name":"ROLE_NAME", "value":"SampleRole"
            },
            {
                "name":"MAX_NUMBER_OF_SCHEMAS","value":"2"
            },
            {
                "name":"ENFORCE_STORAGE_CONSTRAINT","value":"NO_LIMIT"
            },
            {
                "name":"AUTO_EXTEND_BLOCK_SIZE","value":"1024"
            },
            {
                "name":"REF_ZONE","value":"blr zone"
            },
            {
                "name":"REF_POOL","value":"schpool"
            },
            {
               "name":"REF_HOST","value":"mycompanyhost.com"
            },
            {
                "name":"REF_DB","value":"Database"
            },
            {
                "name":"CREATE_SCHEMA_OPTION","value":"EMPTY_SCHEMAS"
            },
           {
                "name":"WORKLOADS",
                "subconfigurations":[
                    {
                        "name":"WORK_LOADS:1",
                        "subconfigurations":[
                            {
                                "name":"name",
                                "value":"Small"
                            },
                            {
                                "name":"description",
                                "value":"small workload"
                            },
                            {
                                "name":"default",
                                "value":"Y"
                            },
                            {
                                "name":"CPU",
                                "value":"2"
                            },
                            {
                                "name":"Memory",
                                "value":"2048"
                            },
                            {
                                "name":"Storage",
                                "value":"1024"
                            }
                        ]
                    },
                    {
                        "name":"WORK_LOADS:2",
                        "subconfigurations":[
                            {
                                "name":"name",
                                "value":"large "
                            },
                            {
                                "name":"description",
                                "value":"large workload"
                            },
                            {
                                "name":"default",
                                "value":"Y"
                            },
                            {
                                "name":"CPU",
                                "value":"6"
                            },
                            {
                                "name":"Memory",
                                "value":"4048"
                            },
                            {
                                "name":"Storage",
                                "value":"2024"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Updating a Service Template
 
A PUT operation is issued on Service Template resource to update a Service Template.
Example Request:

     URL
https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/687FE169ED3556CED38D11DC9BDD5CCD
     Headers
Authorization: basic xxxxxxxxx
Content-Type : application/json
     Method
PUT
     PayLoad
{
    "description":"Service Template",
    "rolesAdded":[
     {
            "name": "SSA02"
        }
    ],
    "rolesRemoved":[
     {
            "name": "SSA01"
        }
    ],
    "serviceExecutableMeta":{
    "type":"CDP",
    "configurations":[
        {
                "name":"REF_ZONE",
                "value":"blr zone"
            },
            {
                "name":"REF_POOL",
                "value":"schpool"
            },
            {
                "name":"REF_HOST",
                "value":"mycompanyhost.com"
            }
    ]
}
}

Example Response:
Service Template updated successfully.

Deleting a Software Pool
The following shows an example request and response:
 
Example Request:
     URL
https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/687FE169ED3556CED38D11DC9BDD5CCD
     Headers
Authorization: basic xxxxxxxxx
     Method
DELETE

Example Response:
Status 200 OK
Content-Type: application/json
 
 
 
Get details of a service Template
A GET request on Service Template resource is issued to get a specific Service Template details.
 
Example Request:
     URL
https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/687FE169ED3556CED38D11DC9BDD5CCD
     Headers
Authorization: basic xxxxxxxxx
Content-Type : application/json
     Method
GET

 
Example Response:
Status 200 OK
 
Content-Type: application/json
{
  "name" : "ST_DB_SCH_01",
  "serviceFamily" : "DBAAS",
  "serviceType" : "SCHEMA",
  "type" : "Service Template",
  "description" : "Database Schema Service Template",
  "id" : "E821074692058B5DE040F00AA37D75AB",
  "pools" : [ {
    "name" : "SP_DB_SCH_01",
    "id" : "EBECE6B8F0144BEFAB2F1991B4AFCC65",
    "type" : "schaas_pool",
    "zone" : {
      "id" : "E82022FF954B98CFE040F00AA37D447B",
      "name" : "PZ01"
    }
  } ],
  "serviceExecutableMeta" : {
    "type" : "CDP",
    "configurations" : [ {
      "id" : "targets",
      "name" : "targets",
      "value" : ""
    }, {
      "id" : "ssaRequestId",
      "name" : "ssaRequestId",
      "value" : ""
    }, {
      "id" : "ssaUser",
      "name" : "ssaUser",
      "value" : ""
    }, {
      "id" : "ssaTargetName",
      "name" : "ssaTargetName",
      "value" : ""
    }, {
      "id" : "ssaTargetType",
      "name" : "ssaTargetType",
      "value" : ""
    }, {
      "id" : "zoneTargetName",
      "name" : "zoneTargetName",
      "value" : ""
    }, {
      "id" : "zoneTargetType",
      "name" : "zoneTargetType",
      "value" : ""
    }, {
      "id" : "REQUEST_NAME",
      "name" : "REQUEST_NAME",
      "value" : ""
    }, {
      "id" : "SERV_TEMPLATE_GUID",
      "name" : "SERV_TEMPLATE_GUID",
      "value" : ""
    }, {
      "id" : "CREATE_SCHEMA_OPTION",
      "name" : "Option for creating user schemas",
      "value" : "EMPTY_SCHEMAS"
    }, {
      "id" : "MAX_NUMBER_OF_SCHEMAS",
      "name" : "Maximum number of schemas permissible",
     "value" : "4"
    }, {
      "id" : "DB_PROFILE_URN",
      "name" : "Database Profile Component's URN",
      "value" : ""
    }, {
      "id" : "REMAP_SCHEMA_LIST",
      "name" : "Schema list.",
      "value" : "",
      "values" : [ ]
    }, {
      "id" : "MASTER_ACCOUNT",
      "name" : "Master Account",
      "value" : ""
    }, {
      "id" : "ROLE_NAME",
      "name" : "Database Role Name",
      "value" : "ST_DB_SCH_01_Oct_06_2013_22"
    }, {
      "id" : "SCHEMA_PRIVILEGES",
      "name" : "Schema Privileges",
      "value" : "",
      "values" : [ "CREATE TABLE", "CREATE SEQUENCE", "CREATE OPERATOR", "CREATE DIMENSION", "CREATE VIEW", "CREATE INDEXTYPE", "CREATE TYPE", "CREATE TRIGGER", "CREATE SESSION", "CREATE SYNONYM", "CREATE PROCEDURE" ]
    }, {
      "id" : "ENFORCE_STORAGE_CONSTRAINT",
      "name" : "Enforces Storage Constraint",
      "value" : "false"
    }, {
      "id" : "INITIAL_BLOCK_SIZE",
      "name" : "Initial Storage Size",
      "value" : ""
    }, {
      "id" : "AUTO_EXTEND_BLOCK_SIZE",
      "name" : "Auto extend block size",
      "value" : ""
    }, {
      "id" : "TABLESPACE_ENCRYPTION_ALGORITHM",
      "name" : "Tablespace Encryption",
      "value" : ""
    }, {
      "id" : "SHARED_STAGE_LOCATION",
      "name" : "Staging Location",
      "value" : ""
    }, {
      "id" : "WORKING_DIRECTORY",
      "name" : "Working Directory",
      "value" : ""
    }, {
      "id" : "SCHAAS_CUSTOM_PRE_SCRIPTS_URN",
      "name" : "Pre-script",
      "value" : ""
    }, {
      "id" : "SCHAAS_CUSTOM_POST_SCRIPTS_URN",
      "name" : "Post-script",
      "value" : ""
    }, {
      "id" : "SCHEMA_PASSWORD_LIST",
      "name" : "Schema password list",
      "value" : "",
      "values" : [ ]
    }, {
      "id" : "CUSTOM_USER_SELECTED_SCRIPT_URN",
      "name" : "Custom Script URN",
      "value" : "",
      "values" : [ ]
    }, {
      "id" : "DBSERVICE_NAME",
      "name" : "Database Service Name",
      "value" : ""
    } ]
  },
  "createdOn" : null,
  "createdBy" : null,
  "modifiedOn" : null,
  "modifiedBy" : null,
  "owner" : "SYSMAN",
  "etag" : null,
  "lastModified" : null,
  "canonicalLink" : "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/E821074692058B5DE040F00AA37D75AB",
  "selfLink" : "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/E821074692058B5DE040F00AA37D75AB"
}

Get MetaData
A GET request on Service Template Metadata resource is issued to get metadata details.

     URL
https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/metadata/DBAAS/DB
     Headers
Authorization: basic xxxxxxxxx
Content-Type : application/json
     Method
GET

Example Response:

Status 200 OK
Content-Type: application/json
"metadata" : {
    "serviceFamily:DBAAS" : {
       "serviceType:DB" : {
        "options" : [ {
          "serviceFamily" : "DBAAS",
          "serviceType" : "DB",
          "type" : "CDP",
          "description" : "Create a Service Template based on Configured Deployment Procedure.",
          "name" : "<user_input>",
          "payload" : false
        }, {
          "serviceFamily" : "DBAAS",
          "serviceType" : "DB",
          "type" : "CDP",
          "description" : "Create a Service Template based on Configured Deployment Procedure and its Payload.",
          "name" : "<user_input>",
          "payload" : true,
          "payloads" : [ {
            "id" : "DBDELETE_PRESCRIPT",
            "defaultValue" : "DBDELETE_PRESCRIPT",
            "name" : "<user_input>"
          } ]
        }, {
          "serviceFamily" : "DBAAS",
         "serviceType" : "DB",
          "type" : "DP",
          "description" : "Create a Service Template based on Deployment Procedure.",
          "name" : "<user_input>",
          "payload" : false
        }, {
          "serviceFamily" : "DBAAS",
         "serviceType" : "DB",
          "type" : "DP",
          "description" : "Create a Service Template based on Deployment Procedure and its Payload.",
          "name" : "<user_input>",
          "payload" : true,
          "payloads" : [ {
            "id" : "DBDELETE_PRESCRIPT",
            "defaultValue" : "DBDELETE_PRESCRIPT",
            "name" : "<user_input>"
          } ]
        } ]
      }
      ,
      "message" : "This gives the metadata information of the different types of service templates that can be created, the executable options supported and the allowed configuration parameters.",
      "canonicalLink" : "/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/metadata/DBAAS/DB"
    }
  }
}

Post Request on Metadata

In order to get configuration values that are required for creation of service template we need to post to metadata

Example Request:
URL
https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/metadata
Headers
Authorization: basic xxxxxxxxx
Content-Type : application/json
Method
POST
PayLoad
{
    "type":"CDP",
    "serviceFamily":"MWAAS",
    "serviceType":"PhysicalWLS",
    "name":"Provision Middleware_SYSMAN_Jul-18-2013 00-52AM"
}

Note:
 
1) This payload is the one that we get via GET call of metadata
2) User fills <user_input> appropriately to get ServiceExecutableMetaDataEntity as response
3) User uses this  ServiceExecutableMetaDataEntity in his/her create Payload with values set accordingly to create Service Template MetaData.
 
 
Example Response:
{
  "configurations" : [ {
    "description" : "Username for the WebLogic Server",
    "id" : "wlsUserName",
    "name" : "WebLogic Username *",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Password for the WebLogic Server",
    "id" : "wlsUserPassword",
    "name" : "WebLogic Password *",
    "required" : "false",
    "secret" : "true"
  }, {
    "description" : "Re-enter Password for the WebLogic Server",
    "id" : "wlsUserPassword2",
    "name" : "Re-enter WebLogic Password *",
    "required" : "false",
    "secret" : "true"
  }, {
    "description" : "Enter 1 for single cluster, 0 for no cluster. For physical provisioning it is auto populated based on the profile selected.  For virtual provisioning it is defaulted to 1.  Please change based on the actual topology of the assembly. ",
    "id" : "topology",
    "name" : "Topology *",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Enter 1 for 'Yes', 0 for 'No'",
    "id" : "exposeAdminURLs",
    "name" : "Expose WebLogic and FMW Console URLs to SSA User",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Enter 1 to enable, 0 to disable Load Balancer",
    "id" : "enableLoadBalancer",
    "name" : "Enable Load Balancer",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Use ',' to separate multiple target hosts",
    "id" : "hostListForScripts",
    "name" : "Hosts for Executing Scripts",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "This will be used for the above hosts",
    "id" : "namedCredforHostList",
    "name" : "Named Credential for execution of scripts",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "To execute scripts on Admin Server besides the hosts entered above, enter 1 for 'Yes', 0 for 'No'",
    "id" : "isScriptExecuteOnAdminServer",
    "name" : "Execution of Scripts on Admin Server Host",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Lower Bound for choosing Free Ports",
    "id" : "portRangeStart",
    "name" : "Port Range Start",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Upper Bound for choosing Free Ports",
    "id" : "portRangeEnd",
    "name" : "Port Range End",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Memory required by each additonal instance in GB",
    "id" : "memoryUsagePerInstance",
    "name" : "Expected Memory Consumption (For Use By Placement Logic)",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "CPU required by each additonal instance in percemtage",
    "id" : "cpuUsagePerInstance",
    "name" : "Expected CPU Utilization (For Use By Placement Logic)",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Enter memory and java arguments to start the server. Example: -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.security.SSL.ignoreHostnameVerification=true (Physical Only)",
    "id" : "startupArguments",
    "name" : "Managed Server Startup Arguments",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Enter 1 for distributing Java Servers uniformly on available hosts for high availability or 0 for placing maximum number of Java Servers possible on a host first before provisioning on other available host (Physical Only)",
    "id" : "requireHighAvailability",
    "name" : "Distribute Java Servers on Available Hosts",
    "required" : "false",
    "secret" : "false"
  }, {
    "description" : "Root Password to override (Virtual Only)",
    "id" : "rootPwd",
    "name" : "Root Password",
    "required" : "false",
    "secret" : "true"
  }, {
    "description" : "Agent Install User Password to override (Virtual Only)",
    "id" : "agentInstallUserPwd",
    "name" : "Agent Install User Password",
    "required" : "false",
    "secret" : "true"
  }, {
    "description" : "Enter name of the host credential to use for provisioning operations (Virtual Only)",
    "id" : "namedHostCredForVirtualFlow",
    "name" : "Host credential name for virtual flow",
    "required" : "false",
    "secret" : "false"
  } ],
  "name" : "Provision Middleware_SYSMAN_Oct-02-2013 10-31AM",
  "serviceFamily" : "MWAAS",
  "serviceType" : "PhysicalWLS",
  "type" : "CDP"
}

36.8 EMCLI Verbs for Self Service Applications

The Enterprise Manager Command Line Interface (EMCLI) enables you to access Enterprise Manager Cloud Control functionality from text-based consoles (shells and command windows) for a variety of operating systems. You can call Enterprise Manager functionality using custom scripts, such as SQL*Plus, OS shell, Perl, or Tcl, thus easily integrating Enterprise Manager functionality with a company's business process.

This section provides details on the EMCLI verbs for PaaS Infrastructure Zone and Software Pool operations for Enterprise Manager Self Service Applications Admin users.

36.8.1 Introduction

EMCLI verbs will be supported for the following operations in Enterprise Manager release 12.1.0.5:

  • PaaS Infrastructure Zones and Software Pools – Create, Edit, List, Delete

  • PaaS Infrastructure Zones and Software Pools – Add and Remove members

All PaaS Infrastructure Zone EMCLI operations are available only to users with a EM_CLOUD_ADMINISTRATOR role and Software Pool operations can be performed only by users with a EM_SSA_ADMINISTRATOR role. EMCLI verbs will obtain user information from the security context and verify only those users authorized to perform these operations.

36.8.2 Using EMCLI Verbs for SSA Operations

The following table provides details of the supported verbs. Note that these verbs are available to SSA Administrator users only and cannot be used with an EM_SSA_ USER role.

Table 36-29 Verb Details

Verb Description Format

create_paas_zone

Creates a PaaS Infrastructure Zone.

  • name - Name of the PaaS Infrastructure Zone to be created

  • credential - Global Named Credentials to be used for provisioning in this PaaS Infrastructure Zone.

  • hosts - Comma separated list of the Host targets to be added as members of this Paas Infrastructure Zone. PaaS Infrastructure Zone can contain either hosts or Oracle VM Zones as members.

  • ovm_zones - Comma separated list of the Oracle VM Zone targets to be added as members of this Paas Infrastructure Zone.

  • roles - Comma separated list of SSA roles that can access this PaaS Infrastructure Zone.

  • description - Description of the PaaS Infrastructure Zone.

  • cpu_utilization - Placement Policy Constraints allow the cloud administrator to set maximum thresholds for any host. Value entered must be between 1 and 100. If not provided, default value is taken to be 80 percent. Parameter is not needed if Oracle VM Zone targets are added as members.

  • memory_utilization - Another Placement Policy Constraint for PaaS Infrastructure Zone. Value entered must be between 1 and 100. If not provided, default value is taken to be 80 percent. Parameter is not needed if Oracle VM Zone targets are added as members.

Example:

emcli  create_paas_zone
    -name=MyPaaSZone
    -credential=ABCDEF
    -hosts=slc03qtn.us.oracle.com
    -roles="SSA_USER_ROLE1,SSA_USER_ROLE2"
    -description="Test PaaS zone"
    -cpu_utilization=40
    -memory_utilization=70

Sample Output:

PaaS Infrastructure Zone "MyPaaSZone" created successfully.

emcli create_paas_zone-name=<Name of PaaS Zone>

-credential=<Global Named Credential>

[-hosts=<Host1,Host2,Host3...>]

[-ovm_zones=<OVMZone1,OVMZone2,OVMZone3...>]

[-roles=<SsaRole1,SsaRole2,..>]

[-description=<Description of PaaS Zone>]

[-cpu_utilization=<Value between 1 and 100>]

[-memory_utilization=<Value between 1 and 100>]

update_paas_zone

Updates a PaaS Infrastructure Zone.

  • name - Name of the existing PaaS Infrastructure Zone.

  • credential - Global Named Credentials to be updated.

  • add_hosts - Comma separated list of the Host targets to be added as members of this Paas Infrastructure Zone. The hosts to be added must not be already added to other existing PaaS Zones.

  • remove_hosts - Comma separated list of the Host targets to be removed as members from this Paas Infrastructure Zone.

  • add_ovm_zones - Comma separated list of the Oracle VM Zone targets to be added as members of this Paas Infrastructure Zone. The Oracle VM Zones to be added must not be already added to other existing PaaS Zones.

  • remove_ovm_zones - Comma separated list of the Oracle VM Zone targets to be removed as members from this Paas Infrastructure Zone.

  • add_roles - Comma separated list of SSA roles to be added that can access this PaaS Infrastructure Zone.

  • remove_roles - Comma separated list of SSA roles to be removed from this PaaS Infrastructure Zone.

  • description - Updated description of the PaaS Infrastructure Zone.

  • cpu_utilization - Placement Policy Constraints allow the cloud administrator to set maximum thresholds for any host. Value entered must be between 1 and 100.

  • memory_utilization - Another Placement Policy Constraint for PaaS Infrastructure Zone. Value entered must be between 1 and 100.

emcli update_paas_zone-name=<Name of PaaS Zone>

[-description=<Description of PaaS Zone>]

[-credential=<Global Named Credential>]

[-add_hosts=<Host1,Host2,Host3...>]

[-remove_hosts=<Host4,Host5...>]

[-add_ovm_zones=<OVMZone1,OVMZone2,OVMZone3...>]

[-remove_ovm_zones=<OVMZone4,OVMZone5...>]

[-add_roles=<SsaRole1,SsaRole2,..>]

[-remove_roles=<SsaRole3,SsaRole4,..>]

[-cpu_utilization=<Value between 1 and 100>]

[-memory_utilization=<Value between 1 and 100>]

delete_paas_zone

Deletes a PaaS Infrastructure Zone. PaaS Infrastructure Zone cannot be deleted if there is an existing Software Pool associated with it.

name - Name of the existing PaaS Infrastructure Zone to be deleted.

emcli delete_paas_zone -name=<Name of PaaS Zone>

get_paas_zone_detail

Retrieves the PaaS Infrastructure Zone details.

name - Details of the existing PaaS Infrastructure Zone, such as Name, Description, Named Credentials, Number of Hosts, Roles, Maximum Memory Allocation (%), and Maximum CPU Utilization (%).

emcli get_paas_zone_detail -name=<Name of PaaS Zone>

create_pool

Creates a Software Pool.

  • name - Name of the Software Pool to be created

  • target_type - Target type of the Software Pool to be created.

  • paas_zone - Name of PaaS Infrastructure Zone in which the Software Pool is to be created.

  • members - Comma separated list of targets to be added as members of the Software Pool.

  • description - Description of the Software Pool.

  • placement_constraints - Comma separated key value pairs of the placement constraints that allow the self service administrator to set maximum ceilings for resource utilization. This provides protection for the members of the Software Pool in terms of resource consumption. Refer to the get_pool_allowed_placement_constraints verb to get the available placement constraints for a pool target type.

  • member_constraints - Comma separated key value pairs that restricts the addition of member targets to a Software Pool with a set criteria. Refer to the get_pool_allowed_member_constraints verb to get the available member constraints and their possible values for a pool target type.

  • properties - Comma separated key value pairs for additional properties that need to be specified based on the Software Pool target type.

Example:

emcli  create_pool
    -name=MyDbPool
    -target_type=oracle_cloud_zone
    -paas_zone=MyPaaSZone
    -members=OraDb11g_home1_1_slc03qtn
    -description="Test Database Pool"
    -member_constraints="CONFIGURATION=oracle_database,VERSION=11.2.0.3.0,PLATFORM=226"
    -placement_constraints="MAX_INSTANCES=7"
    -properties="host_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
root_credential_guid=DBA449B8967AAF77E040F00A73B11F55"

Sample Output:

Software Pool "MyDbPool" created successfully.

Note:

  • This verb is for DB Pool. The target_type for Schema Pool is schaas_pool.

  • Though the properties are not mandated by the verb (because SSA framework owns it), they are needed and without them the pools will not work.

  • Valid property names for Schema Pool are host_credential_guid, database_credential_guid, and gi_credential_guid.

emcli create_pool -name=<Name of Software Pool>

-target_type=<Target type of Software Pool>

-paas_zone=<Paas Infrastructure Zone of Software Pool>

-members=<Member1, Member2...>

[-description=<Description of Software Pool>]

[-placement_constraints=<constraint1=value1, constraint2=value2...>]

[-member_constraints=<constraint1=value1, constraint2=value2>]

[-properties=<property1=value1, property2=value2>]

update_pool

Updates a Software Pool.

  • name - Name of the existing Software Pool.

  • target_type - Target type of the existing Software Pool. For example: "mwaas_zone" for Middleware Pool, "oracle_cloud_zone" for Database Pool, and "schaas_pool" for Schema Pool.

  • description - Description of the Software Pool.

  • add_members - Comma separated list of targets to be added as members of the Software Pool. The targets to be added must satisfy the member constraints of the Software Pool.

  • remove_members - Member targets to be removed from the Software Pool.

  • placement_constraints - Comma separated key value pairs of the placement constraints that allow the self service administrator to set maximum ceilings for resource utilization. This provides protection for the members of the Software Pool in terms of resource consumption.

  • properties - Comma separated key value pairs for properties that need to be updated based on the Software Pool target type.

emcli update_pool -name=<Name of Software Pool>

-target_type=<Target type of Software Pool>

[-description=<Description of Software Pool>]

[-add_members=<Member1, Member2...>]

[-remove_members=<Member4, Member5...>]

[-placement_constraints=<constraint1=value1,constraint2=value2...>]

[-properties=<property1=value1, property2=value2>]

delete_pool

Deletes a Software Pool. Software Pool cannot be deleted if there is an existing Service Template associated with it.

  • name - Name of an existing Software Pool.

  • target - Target type of the Software Pool.

emcli delete_pool -name=<Name of Software Pool>

-target_type=<Target type of Software Pool>

get_pool_detail

Retrieves the Software Pool details, such as name, target type, description, PaaS Infrastructure Zone, number of members, placement constraints, and member constraints.

  • name - Name of the Software Pool.

  • target - Target type of the Software Pool

emcli get_pool_detail -name=<Name of Software Pool>

-target_type=mwaas_zone

get_pool_capacity

Retrieves the software pool capacity details like CPU utilization, memory allocation, and number of instances per host for the pool entities.

  • name - Name of Software Pool

  • target_type - Target type of Software Pool

Example:

emcli  get_pool_capacity
    -name=MyDbPool
    -target_type=oracle_cloud_zone

Sample Output:

Details of Software Pool "MyDbPool" : 
Capacity information for Software Pool "MyDbPool" :
Capacity information for Entity "slc03qtn.us.oracle.com" of type "host" :
        Storage Utilization : 29.0 : 100.0
        CPU Utilization : 2.96 : 40.0
        Memory Utilization : 27.68 : 70.0
        Instances : 2 : 7

emcli get_pool_capacity -name=<Name of Software Pool> -target_type=<Target type of Software Pool>

get_pool_allowed_placement_constraints

Retrieves the list of placement constraints for a given pool target type.

target_type - Target type of the Software Pool

Example:

emcli  get_pool_allowed_placement_constraints
 -target_type=oracle_cloud_zone

Sample Output:

Name                   Description                                       
MAX_INSTANCES   Maximum Number of Instances

emcli get_pool_allowed_placement_constraints -target_type=<mwaas_zone>

get_pool_filtered_targets

Retrieves the filtered targets available for Software Pool creation based on the criteria passed.

  • target_type - Target type of the Software Pool

  • paas_zone - Name of PaaS Infrastructure Zone within which the filtered targets are to be retrieved

  • member_constraints - Comma separated key value pairs that restricts the addition of member targets to a Software Pool with a set criteria

Example:

emcli  get_pool_filtered_targets
    -target_type=oracle_cloud_zone
    -paas_zone=MyPaaSZone
    -member_constraints="CONFIGURATION=oracle_database,VERSION=11.2.0.3.0,PLATFORM=226"

Sample Output:

Target Type        Target Name                                       
oracle_home            OraDb11g_home1                         

emcli get_pool_filtered_targets -target_type=<Target type of Software Pool> -paas_zone=<Paas Infrastructure Zone of Software Pool> -member_constraints=<constraint1=value1, constraint2=value2>

get_pool_allowed_member_constraints

Retrieves the list of allowed Software Pool member constraint values for creation of Software Pool.

target_type - Target type of the Software Pool.

Example:

emcli  get_pool_allowed_member_constraints
 -target_type=oracle_cloud_zone

emcli get_pool_allowed_member_constraints -target_type=<Target type of Software Pool>

get_named_credential

Retrieves credential information used to create DBaaS and SchaaS Pools.

  • cred_name - The credential name

  • cred_owner - Owner of the credential

Example:

emcli  get_named_credential
    -cred_name=ABCDEF
    -cred_owner=ORACLE

Sample Output:

Output:
Credential Name:test12
Credential Owner:ORACLE
Credential Type:HostCreds
Credential Target Type:host
Credential Username:test123
Credential Scope:global
Credential Guid:DBA449B8967AAF77E040F00A73B11F55
Credential Stripe:TARGETS
Credential Columns:
        HostPassword=******
        HostUserName=test12
 

cancel_cloud_service_requests

Cancels cloud service requests.Either user or names option should be provided. Both cannot be used simultaneously.

  • user: The user name to be used to filter delete requests.

  • family: The Service Family Name to be used to filter cloud requests.

  • ids: List of request ids to be used to filter cloud requests separated by a semicolon(";"). Only scheduled requests can be canceled.

Example

emcli cancel_cloud_service_requests -user="user1"

Cancels all Scheduled cloud requests whose owner is specified user.

emcli cancel_cloud_service_requests -user="user1" -family="family1"

Cancels all Scheduled cloud requests owned by "user1" and service family="family1"".

emcli cancel_cloud_service_requests -user="user1" -ids="1;2"

Cancels all Scheduled cloud requests owned by "user1" and with ids 1" and "2".

emcli cancel_cloud_service_requests -user="username" [-family="family"] [-ids="id1;id2..."]

delete_cloud_service_instances

Deletes the cloud service instances based on a specified filter. This option cleans up all objects owned by a self service user when the instance is deleted.

  • user: The user name to be used to filter service instances to be deleted.

  • family: The service family name to be used to filter service instances to be deleted.

  • type: The service type to be used to filter service instances to be deleted.

Examples:

emcli delete_cloud_service_instances -user="user1"

Deletes all cloud instances whose owner is the specified user.

emcli delete_cloud_service_instances -user="user1" -family="family1"

Deletes all cloud instances owned by "user1" that belong to service family="family1".

emcli delete_cloud_service_instances -user="user1" -type="type1"

Deletes all cloud instances owned by "user1" that belong to service type="type".

emcli delete_cloud_service_instances -user="user1" -family="family1" -type="type1"

Deletes all cloud instances owned by "user1", that belong to service family="family1" and service type="type1".

emcli delete_cloud_service_instances -user="username" [-family="family"] [-type="type"]

delete_cloud_user_objects

Deletes cloud user objects including cloud service instances and requests.

  • user: The user name to be used to filter user objects.

  • purge: Purges the completed requests. Default is false

  • force: Tries to cancel In Progress requests. Depending on the Job Status, some resources may require manual cleanup. This option should be used with caution as you cannot stop or undo the operation once it has been started.

Note: If you use the purge option when some service instances are running, you must wait till the request is fully completed before you use the purge option again.

Examples:

emcli delete_cloud_user_objects -user="user1"

Deletes all cloud objects whose owner is "user1". All scheduled requests will be canceled.

emcli delete_cloud_user_objects -user="user1" -purge

Deletes all cloud objects whose owner is "user1". All scheduled requests will be canceled. All Complete Requests will be purged.

emcli delete_cloud_user_objects -user="user1" -force

Deletes all cloud objects whose owner is "user1". All scheduled requests will be canceled. All In Progress Requests will be aborted.

emcli delete_cloud_user_objects -user="username" [-purge] [-force]

get_cloud_service_instances

Retrieves the list of cloud service instances. All instances will be printed if no option is specified.

  • user: The user name to be used to filter service instances.

  • family: The service family name to be used to filter service instances.

  • type: The service family type to be used to filter service instances.

Examples:

emcli get_cloud_service_instances

Displays all the cloud instances.

emcli get_cloud_service_instances -user="user1"

Displays all cloud instances whose owner is "user1"

emcli get_cloud_service_instances -family="family1"

Displays all cloud instances that belong to service family "family1"

emcli get_cloud_service_instances -type="type1"

Displays all cloud instances that belong to service type "type1"

emcli get_cloud_service_instances [-user="username"] [-family="family"] [-type="type"]

get_cloud_service_requests

Retrieves the list of cloud requests. All requests will be printed if no filter is applied. Both options cannot be used simultaneously.

  • user: The user name to be used to filter cloud requests.

  • family: The service family name to be used to filter cloud requests.

  • ids: The list of request ids to be used to filter cloud requests separated by a semicolon.

Examples:

emcli get_cloud_service_requests

Displays all cloud requests.

emcli get_cloud_service_requests -user="user1"

Displays all cloud requests created by "user1"

emcli get_cloud_service_requests -family="family1"

Displays all cloud requests that belong to service family "family1"

emcli get_cloud_service_requests -ids="1;2"

Displays all cloud with RequestIds "1" and "2"

emcli get_cloud_service_requests [-user="username"] [-family="family"] [-ids="id1;id2..."]

get_cloud_user_objects

Retrieves the list of cloud user objects including cloud service instances and requests. All objects will be printed if the user option is not used.

- user: The user name to be used to filter user objects.

Examples:

emcli get_cloud_user_objects

Displays all cloud objects, cloud instances, requests, and other objects.

emcli get_cloud_user_objects -user="user1"

Displays cloud objects whose owner is "user1", cloud instances, requests, and other objects.

emcli get_cloud_user_objects [-user="username"]