Oracle® Enterprise Manager

Cloud Administration Guide

12c Release 5 (12.1.0.5)

E28814-20

December 2015

Oracle Enterprise Manager Cloud Administration Guide12c Release 5 (12.1.0.5)

E28814-20

Copyright © 2011, 2015, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle..

Contents

Title and Copyright Information

Preface

- Audience

- Supported Plug-ins

- Documentation Accessibility

- Related Documents

- Conventions

1 What's New in This Guide?

Part I Cloud Management Overview

2 Cloud Management - An Overview

- 2.1 Introduction to Cloud Management

- 2.2 Managing the Cloud Management Lifecycle With Enterprise Manager

- 2.2.1 Planning

- 2.2.2 Setting Up the Cloud

- 2.2.3 Building the Cloud

- 2.2.4 Testing and Deploying a Service

- 2.2.5 Monitoring and Managing the Cloud

- 2.2.6 Metering, Charging, and Optimization

- 2.3 Understanding the Oracle Cloud Service Models

- 2.3.1 Oracle Cloud Service Models

- 2.3.2 Oracle Cloud Anatomy

- 2.3.3 IaaS Components

- 2.3.4 DBaaS and MWaaS Components

- 2.3.5 TaaS Components

- 2.4 Accessing Oracle Cloud Features

- 2.4.1 Enterprise Manager Cloud Control Console

- 2.4.2 Self Service Portal

Part II Setting Up and Enabling Cloud

3 Setting Up the Cloud Management Infrastructure

- 3.1 Setting Up Self Update

- 3.1.1 Setting Up Enterprise Manager Self Update Mode

- 3.1.2 Assigning Self Update Privileges to Users

- 3.1.3 Setting Up the EM CLI Utility (Optional)

- 3.2 Deploying the Required Plug-ins

- 3.3 Defining Roles and Assigning Users

- 3.3.1 Creating Custom Roles for Self Service Application Administrators and Users

- 3.3.1.1 Creating a Custom Role Based on the EM_SSA_ADMINISTRATOR Role

- 3.3.1.2 Creating a Custom Role Based on the EM_SSA_USER Role

- 3.3.1.3 Creating a Custom Role Based on the EM_SSA_USER_BASE Role

- 3.3.2 Creating a User and Assigning Roles

- 3.3.3 Granting Roles and Privileges for Managing Storage Servers for Snap Clone

- 3.3.3.1 Granting General Privileges

- 3.3.3.2 Granting Target Privileges

- 3.3.3.3 Granting Roles

- 3.3.3.4 Granting Privileges for Provisioning

- 3.4 Configuring LDAP Authentication

- 3.5 Configuring Privilege Delegation Settings

- 3.6 Customizing the Self Service Login Page

- 3.6.1 Configuring the Self Service Login Page

- 3.6.2 Switching Back to the Enterprise Manager Login Page

- 3.6.3 Routing SSA Requests to a Specific OMS Pool

4 How to Enable Cloud

- 4.1 Enterprise Manager Cloud Deployment Models

- 4.2 Enabling Infrastructure as a Service (IaaS)

- 4.2.1 Infrastructure as a Service (IaaS): Super Administrator Tasks

- 4.2.2 Infrastructure as a Service (IaaS): Cloud Administrator Tasks

- 4.2.3 Infrastructure as a Service (IaaS): Self Service Administrator Tasks

- 4.2.4 Infrastructure as a Service (IaaS): Self Service User Tasks

- 4.3 Enabling Platform as a Service (PaaS)

- 4.3.1 Platform as a Service (PaaS): Super Administrator Tasks

- 4.3.2 Platform as a Service (PaaS): Cloud Administrator Tasks

- 4.3.3 Platform as a Service (PaaS): Storage Administrator Tasks

- 4.3.4 Platform as a Service (PaaS): Self Service Administrator Tasks

- 4.4 Enabling Database as a Service

- 4.4.1 Provisioning Database Artifacts

- 4.4.1.1 Creating Databases Using Database Template

- 4.4.1.2 Creating Schemas

- 4.4.1.3 Provisioning Pluggable Databases

- 4.4.2 Cloning Databases

- 4.4.2.1 Creating Full Clones

- 4.4.2.1.1 Creating Full Clones Using RMAN Backup

- 4.4.2.1.2 Creating Full Clones Using RMAN Duplicate

- 4.4.2.2 Creating Snap Clones

- 4.4.2.2.1 Creating Snap Clones from the Cloning Dashboard

- 4.4.2.2.2 Creating Snap Clones from an In-Sync Test Master

- 4.4.2.2.3 Creating Snap Clones from a Discretely Synchronized Test Master

- 4.4.2.2.4 Ongoing Refresh of the Test Master and the Database Instance

- 4.4.2.2.5 Creating CloneDB Databases

- 4.4.2.3 Creating Snap Clones for Pluggable Databases

- 4.5 Enabling Middleware as a Service (MWaaS)

- 4.5.1 Middleware as a Service (MWaaS): Cloud Administrator Tasks

- 4.5.2 Middleware as a Service (MWaaS): Self Service Administrator Tasks

- 4.5.3 Middleware as a Service (MWaaS): Self Service User Tasks

- 4.6 Enabling Testing as a Service (TaaS)

- 4.6.1 Testing as a Service (TaaS): Cloud Administrator Tasks

- 4.6.2 Testing as a Service (TaaS): Self Service Administrator Tasks

- 4.6.3 Testing as a Service (TaaS): Self Service User Tasks

Part III Setting Up and Using Infrastructure as a Service

5 Setting Up Cloud for IaaS

- 5.1 Getting Started

- 5.2 Cloud Infrastructure Privileges

- 5.3 Registering the Oracle VM Manager

- 5.3.1 Port Requirements for Oracle VM Manager Setup

- 5.3.2 Updating the Oracle VM Manager URL

- 5.3.3 Importing the Oracle VM Manager WebLogic Certificate

- 5.3.4 Discovering and Promoting the Oracle VM Manager (Optional)

- 5.3.5 Monitoring Configuration (OVM Manager)

- 5.3.6 Upgrading the Oracle VM Manager

- 5.4 Synchronizing the Oracle VM Manager Targets

- 5.4.1 Automatic Synchronization

- 5.4.2 Manual Synchronization

- 5.5 Discovering a Virtual Server

- 5.6 Rediscovering a Virtual Server

- 5.7 Setting Up Networks

- 5.7.1 Generating MAC Addresses

- 5.7.2 Configuring a VLAN Group for Oracle VM Manager 3.2 or Earlier Versions

- 5.7.3 Creating a VLAN Interface for Oracle VM Manager 3.3

- 5.7.3.1 Viewing the VLAN Interfaces

- 5.7.3.2 Editing a VLAN Interface

- 5.7.3.3 Deleting a VLAN Interface

- 5.7.4 Creating Networks

- 5.8 Creating a Network Profile

- 5.9 Registering Storage Servers

- 5.9.1 Registering the File Server

- 5.9.2 Registering the Storage Array

- 5.9.3 File Server Details

- 5.9.4 Storage Array Details

- 5.9.5 Local File Server Details

- 5.10 Creating a Storage Repository

- 5.10.1 Performing Administrative Operations on a Storage Repository

- 5.11 Presenting the Storage Repository

- 5.12 Importing Assemblies, Templates, and Virtual Disks into the Storage Repository

- 5.12.1 Creating a Repository Export (Optional)

- 5.13 Using Self Update to Download Oracle VM Templates and Virtual Assemblies

- 5.14 Creating a Virtual Server Pool

- 5.14.1 Editing a Virtual Server Pool

- 5.15 Creating a Zone

- 5.16 Setting Up the Storage Quality of Service (QoS)

- 5.16.1 Setting Up the Network Type

- 5.16.2 Setting Up the Machine Sizes

- 5.16.3 Configuring the Software Library User

- 5.16.4 Configuring the Software Library User with External Management Agent

- 5.16.5 Defining the Request Purging Policy

- 5.17 Patching the Oracle VM Server

- 5.17.1 Configuring the YUM Repository

- 5.17.2 Upgrading the Virtual Server

- 5.18 Acknowledging OVM Events

- 5.19 Managing the NTP Configuration

- 5.20 Importing Virtual Machines

- 5.21 Acknowledging the Repository Events

6 Defining and Managing Cloud Policies

- 6.1 Managing Cloud Policies

- 6.2 Viewing Cloud Policies

- 6.3 Viewing Policies for a Target

- 6.4 Defining a Performance Policy

- 6.5 Defining a Schedule-Based Policy

- 6.6 Activating and Deactivating Policies

- 6.7 Viewing Policy Groups

- 6.8 Creating a Policy Group

- 6.8.1 Example 1

- 6.8.1.1 Policy for Shutting Down Guest Virtual Machine

- 6.8.1.2 Policy for Starting Up Guest Virtual Machine

- 6.8.1.3 Creating a Policy Group (Start Up and Shut Down)

- 6.8.2 Example 2

- 6.8.2.1 Policy to Scale Down a Tier Instance

- 6.8.2.2 Policy to Scale Up a Tier Instance

- 6.8.2.3 Creating a Policy Group (Scale Up and Scale Down)

- 6.9 DRS and DPM Policies

- 6.9.1 Creating Automated DRS and DPM Policies

7 Setting Up the IaaS Self Service Portal

- 7.1 Setting Up the Self Service Portal

- 7.2 Uploading Large Files on the Self Service Portal

- 7.2.1 Setting the OMS Property Using emctl

- 7.2.2 Modifying the web.xml Configuration File

8 Using the IaaS Self Service Portal

- 8.1 Using the Self Service Portal to Request Server Resources

- 8.2 Requesting Servers

- 8.3 Viewing Requests

- 8.4 Viewing Servers

- 8.4.1 Zone Details Page

- 8.4.2 Assembly Operations

- 8.4.2.1 Assembly Details Page

- 8.4.3 Tier Operations

- 8.4.3.1 Scaling Up a Tier Instance

- 8.4.3.2 Scaling Down a Tier Instance

- 8.4.3.3 Tier Details Page

- 8.4.4 Server Operations

- 8.4.4.1 Modifying the Server Configuration

- 8.4.4.2 Cloning the Server

- 8.4.4.3 Server Details Page

- 8.5 Viewing Storage

- 8.6 Viewing Chargeback Details

- 8.7 Viewing Library

- 8.8 Viewing Policies

- 8.9 Viewing Preferences

9 Administering and Monitoring an IaaS Cloud

- 9.1 Viewing the Infrastructure Cloud Home Page

- 9.2 Viewing the OVM Manager Home Page

- 9.3 Viewing and Managing Members

- 9.4 Managing Zones

- 9.4.1 Viewing the Zone Home Page

- 9.4.2 Creating or Editing a Zone

- 9.4.3 Deleting a Zone

- 9.4.4 Deleting a Zone from Enterprise Manager

- 9.5 Viewing the Virtual Server Pool Home Page

- 9.6 Managing Virtual Servers

- 9.6.1 Virtual Server Home Page

- 9.6.2 Editing a Virtual Server

- 9.6.3 Upgrading a Virtual Server

- 9.6.4 Starting and Stopping a Virtual Server

- 9.6.5 Performing Maintenance on the Virtual Server

- 9.7 Managing Guest Virtual Machines

- 9.7.1 Creating a Guest Virtual Machine

- 9.7.2 Guest Virtual Machine Home Page

- 9.7.3 Migrating a Guest Virtual Machine

- 9.7.4 Starting and Shutting Down a Guest Virtual Machine

- 9.7.4.1 Starting a Guest Virtual Machine

- 9.7.4.2 Restarting a Guest Virtual Machine

- 9.7.4.3 Stopping a Guest Virtual Machine

- 9.7.4.4 Killing a Guest Virtual Machine

- 9.7.5 Cloning a Guest Virtual Machine

- 9.7.6 Editing a Guest Virtual Machine

- 9.7.7 Saving a Guest Virtual Machine as a Template

- 9.7.8 Deleting a Guest Virtual Machine

- 9.7.9 Deleting a Guest Virtual Machine Only From Enterprise Manager

- 9.8 Deploying Guest Virtual Machines

- 9.8.1 Getting Started

- 9.8.2 Deployment Options

- 9.8.3 Prerequisites

- 9.8.3.1 Creating and Storing Virtualization Components in the Software Library

- 9.8.3.1.1 Creating an Assembly Component

- 9.8.3.1.2 Creating a Template Component

- 9.8.3.1.3 Creating an ISO Component

- 9.8.3.1.4 Creating a Virtual Disk

- 9.8.4 Provisioning Guest Virtual Machines Using Oracle Virtual Assemblies (OVA)

- 9.8.5 Provisioning a Guest Virtual Machine Using Oracle VM Templates

- 9.8.6 Provisioning a Guest Virtual Machine Using an ISO Image

- 9.8.7 Creating PXE Bootable Guest Virtual Machines

- 9.9 Viewing the Infrastructure Request Dashboard

- 9.9.1 Viewing Request Details

- 9.9.2 Viewing the Assembly / Tier Instance Page

Part IV Direct Monitoring

10 Direct Monitoring of Xen Based Systems

- 10.1 Direct Monitoring Overview

- 10.2 Discovering the Hypervisor Target

- 10.2.1 Deleting the Targets

- 10.2.2 Setting the Credential Properties

- 10.3 Viewing the Oracle Server Home Page

- 10.4 Viewing the Oracle Virtual Platform Home Page

- 10.5 Viewing the Oracle VM Instance Home Page

Part V Setting Up and Using Platform as a Service

11 Setting Up the PaaS Infrastructure

- 11.1 About Service Families

- 11.2 Common Setup Tasks

- 11.2.1 Adding Hosts

- 11.2.2 Creating the Resource Providers

- 11.2.2.1 Creating a PaaS Infrastructure Zone

- 11.2.2.1.1 Editing a PaaS Infrastructure Zone

- 11.2.2.1.2 Deleting a PaaS Infrastructure Zone

- 11.2.2.2 Creating a PaaS Pool

- 11.2.2.2.1 Creating a Database Pool

- 11.2.2.2.2 Creating a Middleware Pool

- 11.2.3 Configuring Request Settings

- 11.2.4 Setting Up Quotas

12 Enabling the DBaaS Cloud

- 12.1 Getting Started

- 12.2 Setting Up Credentials for Provisioning

- 12.3 Provisioning Database Software for Database as a Service

- 12.4 Provision the Database for Schema as a Service

- 12.5 Provision a Container Database for PDB as a Service

- 12.6 Configuring the Oracle Listener

- 12.7 Registering and Managing Storage Servers

- 12.7.1 Overview of Registering Storage Servers

- 12.7.2 Before You Begin

- 12.7.3 Prerequisites for Registering Storage Servers

- 12.7.3.1 Configuring Storage Servers

- 12.7.3.2 Customizing Storage Proxy Agents

- 12.7.4 Registering Storage Servers

- 12.7.4.1 Registering a NetApp or a Sun ZFS Storage Server

- 12.7.4.2 Registering a Solaris File System (ZFS) Storage Server

- 12.7.4.3 Registering an EMC Storage Server

- 12.7.5 Administering the Storage Server

- 12.7.5.1 Synchronizing Storage Servers

- 12.7.5.2 Deregistering Storage Servers

- 12.7.6 Managing Storage Servers

- 12.7.6.1 Managing Storage Allocation

- 12.7.6.2 Managing Storage Access Privileges

- 12.7.6.3 Viewing Storage Registration Overview and Hierarchy

- 12.7.6.4 Editing Storage Servers

13 Setting Up an MWaaS Cloud

- 13.1 About Middleware as a Service

- 13.2 New Features and Enhancements in this Release

- 13.3 Getting Started with Middleware as a Service

- 13.3.1 Creating Provisioning Profiles

- 13.3.1.1 Creating a WebLogic Domain Provisioning Profile

- 13.3.2 Provisioning a Middleware Home

- 13.3.2.1 Provision from Oracle Middleware Home Gold Image Deployment Procedure

Part VI Provisioning New Database Artifacts

14 Getting Started with Database as a Service

- 14.1 Supported DBaaS Use Cases

- 14.2 Getting Started with DBaaS

15 Creating Databases Using Database Template

- 15.1 Creating Databases Using Database Template

- 15.1.1 Creating Resource Providers

- 15.1.1.1 Creating a Database Pool for Database as a Service

- 15.1.2 Creating a Database Provisioning Profile Using Database Template

- 15.1.3 Configuring Request Settings

- 15.1.4 Defining Quotas

- 15.1.5 Creating a Service Template Using Database Template Profile

- 15.1.6 Configuring Chargeback

- 15.1.7 Requesting a Database

- 15.2 Provisioning Standby Databases

- 15.2.1 Defining Database Pools for Provisioning Standby Databases

- 15.2.1.1 Associating a Standby Database Pool with a Primary Database Pool

- 15.2.2 Creating a Service Template

16 Creating Schemas

- 16.1 Getting Started

- 16.2 Creating Resource Providers

- 16.2.1 Creating a Database Pool for Schema as a Service

- 16.3 Creating a Database Provisioning Profile Using Export Schema Objects

- 16.4 Configuring Request Settings

- 16.5 Defining Quotas

- 16.6 Creating a Service Template for Schema Based on Profile

- 16.7 Creating a Service Template with Empty Schema

- 16.8 Configuring Chargeback

- 16.9 Requesting a Schema

17 Provisioning Pluggable Databases

- 17.1 Getting Started

- 17.2 Creating Resource Providers

- 17.2.1 Creating a Database Pool for PDB as a Service

- 17.3 Creating a Database Provisioning Profile Using Export Schema Objects

- 17.4 Configuring Request Settings

- 17.5 Defining Quotas

- 17.6 Creating a Service Template for PDB Based on Profile

- 17.7 Creating a Service Template for an Empty PDB

- 17.8 Configuring Chargeback

- 17.9 Requesting a Pluggable Database

Part VII Cloning Databases

18 Supported Cloning Options

- 18.1 About Data Lifecycle Management

- 18.2 Supported Cloning Options

19 Creating Full Clones

- 19.1 Creating a Full Database Clone Using RMAN Backup from the Self Service Portal

- 19.1.1 Creating Resource Providers

- 19.1.1.1 Creating a Database Pool for Database as a Service

- 19.1.2 Creating a Database Provisioning Profile

- 19.1.2.1 Creating a Database Provisioning Profile Using RMAN Backup

- 19.1.2.2 Creating a Database Provisioning Profile Using Existing RMAN Backup

- 19.1.3 Configuring Request Settings

- 19.1.4 Defining Quotas

- 19.1.5 Create Service Template Using RMAN Backup Profile

- 19.1.6 Configuring Chargeback

- 19.1.7 Requesting a Database

- 19.2 Creating a Full Database Clone Using RMAN Duplicate from the Self Service Portal

- 19.2.1 Creating a Service Template Using RMAN Duplicate

20 Creating Snap Clones for Databases

- 20.1 About Snap Clones

- 20.2 Cloning and Refreshing Databases

- 20.3 Creating Snap Clones from the Cloning Dashboard

- 20.3.1 Creating a Snap Clone Database

- 20.3.2 Creating an Exadata Test Master Database

- 20.3.3 Creating a Snapshot Clone of an Exadata Test Master Database

- 20.3.4 Enabling a Test Master Database

- 20.3.5 Disabling a Test Master Database

- 20.3.6 Creating a CloneDB Database

- 20.3.7 Managing Clone Databases

- 20.3.8 Refreshing Clone Databases

- 20.4 Creating Snap Clones from an In-Sync Test Master

- 20.4.1 Getting Started

- 20.4.2 Registering Storage Servers

- 20.4.3 Creating Resource Providers

- 20.4.3.1 Creating a Database Pool for Database as a Service

- 20.4.4 Configuring Request Settings

- 20.4.5 Defining Quotas

- 20.4.6 Using a Physical Standby Database as a Test Master

- 20.4.7 Enabling the Test Master for Snap Clone

- 20.4.8 Creating a Database Provisioning Profile Using Snapshots

- 20.4.8.1 Creating and Refreshing Snapshots of the Test Master

- 20.4.8.1.1

- 20.4.9 Creating Service Template Using Snap Clone Profile

- 20.4.10 Configuring Chargeback

- 20.4.11 Requesting a Database

- 20.4.12 Example: Creating Snap Clones from an In-Sync Test Master

- 20.4.13 Creating a Service Template for EMC Snap Clone

- 20.5 Creating Snap Clones from a Discretely Synchronized Test Master

- 20.5.1 Getting Started

- 20.5.2 Registering Storage Servers

- 20.5.3 Creating Resource Providers

- 20.5.4 Configuring Request Settings

- 20.5.5 Defining Quotas

- 20.5.6 Creating a Discretely Synchronized Test Master

- 20.5.7 Creating a Service Template Using Snap Clone Profile

- 20.5.8 Configuring Chargeback

- 20.5.9 Requesting a Database

- 20.5.10 Refreshing the Test Master Database

- 20.5.11 Refreshing the Snap Shot Profile

- 20.5.12 Example: Creating Snap Clones from Discretely Synchronized Test Master

- 20.6 Creating a CloneDB Database

- 20.6.1 Creating a Database Provisioning Profile Using RMAN Database Image

- 20.6.2 Creating a Service Template Using RMAN Image Profile

21 Creating Snap Clones for Pluggable Databases

- 21.1 Creating Test Master Pluggable Databases

- 21.1.1 Creating a Test Master Pluggable Database

- 21.1.2 Creating an Exadata Test Master Pluggable Database

- 21.1.3 Creating an ACFS Test Master Pluggable Database

- 21.2 Creating Snapshot Clones of Test Master Pluggable Databases

- 21.2.1 Creating a Snapshot Clone of an Exadata Test Master PDB

- 21.2.2 Creating a Snapshot Clone of an ACFS Test Master PDB

- 21.3 Enabling a Test Master Pluggable Database

- 21.4 Disabling a Test Master Pluggable Database

22 Using the DBaaS Self Service Portal

- 22.1 Using the Database Cloud Self Service Portal

- 22.2 Requesting a Database

- 22.2.1 Requesting a Schema

- 22.2.2 Requesting a Pluggable Database

- 22.3 Refreshing a Database

- 22.4 Viewing the History of a Request

- 22.5 Viewing the Database Service Home Page

- 22.6 Viewing the Database Instance Home Page

- 22.7 Viewing the Standby Database Home Page

- 22.8 Viewing the Cluster Database Home Page

- 22.9 Viewing the Pluggable Database Home Page

Part VIII Maintaining and Customizing Databases

23 Maintaining the Database Pool

- 23.1 About Database Pool Maintenance

- 23.2 Creating a Database Gold Image

- 23.3 Subscribing to an Image

- 23.4 Deploying the Image

- 23.4.1 Deploying the Oracle Home

- 23.4.2 Activating the New Oracle Home

- 23.4.3 Updating the Database

- 23.5 Performing Ongoing Image Updates

- 23.5.1 Creating a New Version of the Image

24 Customizing Database as a Service

- 24.1 Pre and Post Request Creation / Deletion Scripts

- 24.1.1 Post SQL Script

- 24.1.2 Sample Scripts

- 24.1.3 Input Parameters for Pre and Post Database Scripts

- 24.1.3.1 Input Parameters for DBaaS Pre and Post Request Creation Scripts

- 24.1.3.2 Input Parameters for DBaaS Pre and Post Request Deletion Scripts

- 24.1.3.3 Input Parameters for SchaaS Pre and Post Request Creation Scripts

- 24.1.3.4 Input Parameters for SchaaS Pre and Post Request Deletion Scripts

- 24.1.3.5 Input Parameters for PDBaaS Pre and Post Request Creation Scripts

- 24.1.3.6 Input Parameters for PDBaaS Pre and Post Request Deletion Scripts

- 24.1.3.7 Sample Input Files

- 24.1.3.8 Sample PDBaaS Post Scripts

Part IX Setting Up Middleware as a Service

25 Setting Up the WebLogic Self Service Portal

- 25.1 Setting Up the WebLogic Self Service Portal

- 25.2 Creating a Middleware Pool

- 25.3 Creating a Load Balancer Configuration

- 25.3.1 Creating a Custom Script

- 25.3.1.1 Sample Script (Oracle Cloud Application 12.1.0.8 or Earlier)

- 25.3.1.2 Sample Script (Oracle Fusion Middleware 12.1.0.7 or Later)

- 25.3.2 Adding the Third Party LBR Configuration to the Software Library

- 25.4 Configuring Request Settings

- 25.5 Setting Up Quotas

- 25.6 Creating a WebLogic Service Template

- 25.6.1 Sample Postscript

- 25.6.1.1 Sample Properties File

- 25.6.1.2 Sample Script

- 25.6.1.3 Sample Script Output

- 25.6.2 Resource Management Script

- 25.6.2.1 Create Operation

- 25.6.2.2 Scaleup Operation

- 25.6.2.3 Scaledown Operation

- 25.6.2.4 Delete Operation

- 25.7 Configuring Chargeback

26 Setting Up the SOAaaS or the OSBaaS Self Service Portal

- 26.1 Getting Started with SOAaaS and OSBaaS

- 26.2 Setting Up DBaaS used to Clone a SOA Repository

- 26.2.1 Creating a Database Service Template for SOA Profile

- 26.2.2 Creating a Database Service Template for OSB Profile

- 26.3 Prerequisites for Creating a SOA or an OSB Provisioning Profile

- 26.4 Setting Up the SOA and OSB Cloud Self Service Portal

- 26.4.1 Creating a SOAaaS and OSBaaS Pool

- 26.4.2 Creating SOA and OSB Service Templates

- 26.4.3 Sample Postscript

- 26.4.3.1 Sample Properties File

- 26.4.3.2 Sample Script

- 26.4.3.3 Sample Script Output

- 26.4.4 Resource Management Script

- 26.4.4.1 Create Operation

- 26.4.4.2 Scaleup Operation

- 26.4.4.3 Delete Operation

27 Setting Up the JVMaaS Self Service Portal

- 27.1 Setting Up the Java Application Service Self Service Portal

- 27.2 Creating a Customized Middleware Profile

- 27.3 Uploading the Middleware Profile to Software Library

- 27.4 Creating a Service Template Based on Java Applications Profile

28 Using the MWaaS Self Service Portal

- 28.1 Using the MWaaS Self Service Portal

- 28.1.1 Setting the Preferences

- 28.1.2 Defining Dynamic Elasticity Policies for Middleware Services

- 28.1.2.1 Creating a MWaaS Schedule Policy

- 28.1.2.2 Defining a MWaaS Performance Policy

- 28.2 Requesting a Middleware Service

- 28.2.1 Requesting a WebLogic Service

- 28.2.2 Requesting an Oracle Service Bus or SOA Infrastructure Service

- 28.3 Viewing the Middleware Service Home Page

- 28.3.1 Deploying and Redeploying an Application

- 28.3.1.1 Redeploying an Application

- 28.3.1.2 Deleting an Application

- 28.3.2 Scaling Up and Scaling Down a Service

- 28.3.3 Creating a Data Source

- 28.3.3.1 Editing a Data Source

- 28.4 Viewing SOA/OSB Service Home Page

- 28.5 Viewing the Java Application Service Instance Home Page

- 28.6 Uploading a Java EE Component to the Software Library

- 28.7 Viewing the Application Home Page

Part X Monitoring the PaaS Cloud

29 Administering and Monitoring a PaaS Cloud

- 29.1 Viewing the Cloud Home Page

- 29.1.1 Viewing the Resource Provider Utilization Heat Map

- 29.2 Viewing the List of Resource Providers

- 29.3 Viewing the List of Service Templates

- 29.3.1 Granting, Revoking, and Reassigning Service Template Privileges

- 29.4 Viewing the List of Service Instances

- 29.4.1 Granting, Revoking, and Reassigning Privileges to Service Instances

- 29.5 Viewing the Cloud Request Dashboard

- 29.6 Viewing All Cloud Requests

- 29.7 Viewing the PaaS Infrastructure Zone Home Page

- 29.8 Viewing the Database Pool Home Page

- 29.9 Viewing the Schema Pool Home Page

- 29.10 Viewing the Pluggable Database Pool Home Page

- 29.11 Viewing the Middleware Pool Home Page

- 29.12 Viewing the Cloud Services Reports

- 29.12.1 Most Requested Service Types

- 29.12.2 Service Request Status

- 29.12.3 Service Request Type

- 29.12.4 Cloud Service Instance Duration Trend

Part XI Oracle Compute

30 Getting Started With Oracle Compute

- 30.1 About Oracle Compute

- 30.2 Oracle Compute Terminology

- 30.3 Getting Started

- 30.4 Discovering the Oracle Compute Site

- 30.4.1 Discovering the Oracle Compute Site and Its Associated Targets

- 30.4.2 Importing the Site Certificate

31 Setting Up the Oracle Compute Self Service Portal

- 31.1 Setting Up the Oracle Compute Site

- 31.2 Creating a Tenant

- 31.2.1 Editing a Tenant

- 31.3 Creating a Shape

- 31.4 Defining Quotas

- 31.5 Managing Oracle Compute Templates

- 31.5.1 Configuring the Management Agent

- 31.6 Creating an Orchestration Service Template

- 31.6.1 Creating a Launch Plan

- 31.7 Mapping Enterprise Manager Roles to Oracle Compute Roles

32 Using Oracle Compute

- 32.1 Using the Oracle Compute Self Service Portal

- 32.2 Creating a New Orchestration

- 32.3 Viewing the Orchestration Details

- 32.3.1 Viewing the Oracle VM Instance Home Page

- 32.4 Creating Networks

- 32.4.1 Creating IPoIB Subnets for Tenant Networks

- 32.4.2 Viewing the Service Networks

- 32.5 Creating Storage Volumes

- 32.6 Managing the Library

- 32.6.1 Uploading a Template

- 32.6.2 Deleting a Template or a Deployment Plan

- 32.7 Discovering an Orchestration

33 Managing the Oracle Compute Site and Associated Targets

- 33.1 Viewing the Oracle Compute Site

- 33.2 Managing Networks

- 33.2.1 Creating a Tenant Network

- 33.2.1.1 Creating an EoIB Network

- 33.2.1.2 Creating an EoIB Subnet

- 33.2.1.3 Creating an IPoIB Subnet

- 33.2.1.3.1 Editing the IPoIB Subnet

- 33.2.2 Managing Service Networks

- 33.2.2.1 Creating a Service Network

- 33.2.2.2 Connecting to an Engineered System

- 33.2.3 Managing Infrastructure Networks

- 33.3 Creating a Storage Volume

- 33.3.1 Creating a Storage Volume Snapshot

- 33.4 Creating a User

- 33.5 Viewing the Oracle VM Instance Home Page

- 33.6 Viewing the Oracle Compute Cluster Home Page

- 33.7 Viewing the Oracle Virtual Platform Home Page

- 33.8 Viewing the Oracle Server Home Page

Part XII Dynamic Resource Provisioning

34 Dynamic Resource Provisioning with Oracle VM Server for SPARC

- 34.1 Integration for a PaaS Solution

- 34.1.1 Prerequisites

- 34.1.2 Overview of the Configuration of PaaS Solution

- 34.1.2.1 Configure Enterprise Manager Cloud Control

- 34.1.2.2 Obtain the Client Kit

- 34.1.2.3 Configure Enterprise Manager Ops Center

- 34.2 Configure Resources for vDC

- 34.2.1 Add Client Kit Contents to the Software Library for Oracle Solaris 11

- 34.2.2 Prepare Network Resources for the vDC

- 34.2.2.1 Identify a Fabric

- 34.2.2.2 Create a Network Domain

- 34.2.2.3 Configure Public Network

- 34.2.3 Prepare Storage Resources

- 34.2.4 Create a NAS Storage Library

- 34.2.4.1 Identify the NAS Share

- 34.2.4.2 Create a NAS Storage Library

- 34.2.5 Create SAN Storage Libraries using Fibre Channel LUNs

- 34.2.5.1 What You Will Need

- 34.2.5.2 Configure the Storage Server

- 34.2.5.3 Create a Static Block Storage SAN Library

- 34.2.6 Deploy Control Domains

- 34.2.6.1 Create a Provisioning Profile for Oracle VM Server for SPARC

- 34.2.6.2 Create an OS Configuration Profile for Oracle VM Server for SPARC

- 34.2.6.2.1 CPU Resource Allocation

- 34.2.6.2.2 Crypto Units

- 34.2.6.2.3 RAM

- 34.2.6.2.4 NVRAMRC Value

- 34.2.6.3 Create an Install Server Deployment Plan

- 34.2.6.4 Apply the Install Server Deployment Plan

- 34.2.7 Create the Server Pool

- 34.2.8 Refresh the Library

- 34.3 Set Up and Configure a Virtual Data Center

- 34.3.1 Create an Enterprise Manager User

- 34.3.2 Create the vDC

- 34.3.3 Create the vDC Account for PaaS

- 34.3.4 Prepare the vServers

- 34.3.4.1 Create a New vServer Type

- 34.3.4.2 Create a Private vNet

- 34.4 Set Up and Configure a Server Template

- 34.4.1 Create an OS Update Profile

- 34.4.2 Create an OS Provisioning Profile for Guests

- 34.4.3 Create an OS Configuration Profile for Guests

- 34.4.4 Create a vServer Template

- 34.4.5 Create a vServer

- 34.5 Validate the Integration and PaaS

- 34.5.1 Create Volumes for vServer

- 34.5.2 Create Test vServers

- 34.5.3 Verify Shared Storage and Connectivity

- 34.5.4 Diagnosing Problems

35 Getting Started with Dynamic Resource Provisioning

- 35.1 About Dynamic Resource Provisioning

- 35.2 Configuring the Solaris SPARC Adapter

- 35.2.1 Adding the Stage Server

- 35.2.2 Creating the Virtual Machine Adapter Instance

- 35.2.3 Editing the Virtual Machine Adapter Instance

- 35.2.4 Deleting the Virtual Machine Adapter Instance

- 35.2.5 Creating the Virtual Machine Service Template

36 Provisioning Resources in a DBaaS Cloud

- 36.1 Provisioning Resources

- 36.2 De-Provisioning Resources

37 Dynamically Provisioning Resources in an MWaaS Cloud

- 37.1 Provisioning Resources

- 37.2 De-Provisioning Resources

- 37.3 Enabling Dynamic Resource Provisioning

- 37.3.1 Disabling Dynamic Provisioning

Part XIII JVM Diagnostics as a Service

38 Setting Up JVM Diagnostics as a Service

- 38.1 About JVM Diagnostics as a Service

- 38.2 Creating Users and Roles

- 38.3 Setting Up JVMDaaS

- 38.4 Defining and Allocating Quotas

- 38.5 Monitoring JVM Diagnostics Agents and Engines

39 Using the JVM Diagnostics Self Service Portal

- 39.1 JVM Diagnostics Cloud Self Service Portal

- 39.2 JVM Home Page

Part XIV Enabling Testing as a Service (TaaS)

40 About Testing as a Service

- 40.1 TaaS Roles

- 40.1.1 Test Administrators

- 40.1.2 Test Designers

- 40.1.3 Testers

41 Setting Up Testing as a Service

- 41.1 Getting Started

- 41.2 Creating Test Administrators

- 41.3 Creating an Assembly Component

- 41.4 Creating a Deployment Plan

42 Using the Testing as a Service Portal

- 42.1 Prerequisites

- 42.2 Test Administrator Tasks

- 42.2.1 Setting Up Application Types

- 42.2.2 Setting Up Test Drivers

- 42.2.3 Setting Up Oracle Load Testing Test Drivers

- 42.2.4 Setting Up Oracle Functional Testing Test Drivers

- 42.2.5 Setting Up Custom Test Driver Types

- 42.2.6 Setting Up Quotas

- 42.2.7 Setting Up Result File Systems

- 42.2.8 Publishing Test Environments, Test Assets, and Test Drivers

- 42.2.9 Setting Up Chargeback Service

- 42.3 Test Designer Tasks - Creating Test Assets and Test Environments

- 42.3.1 Creating Test Assets - General Information

- 42.3.2 Creating Test Asset - Oracle Load Testing

- 42.3.3 Creating Test Asset - Oracle Functional Testing

- 42.3.4 Creating Test Asset - Custom Test

- 42.3.5 Creating Test Environments

- 42.4 Tester Tasks - Using the Testing Environment

- 42.4.1 Verifying Available Test Assets and Environments

- 42.4.2 Creating Tests

- 42.4.3 Creating Tests - Oracle Load Testing Tests

- 42.4.4 Creating Tests - Oracle Functional Testing Tests

- 42.4.5 Creating Tests - Custom Tests

- 42.4.6 Creating and Running Trials

- 42.4.7 Creating and Running Oracle Load Testing Trial

- 42.4.8 Creating and Running Oracle Functional Testing Trial

- 42.4.9 Monitoring On-Going Trials

- 42.4.10 Comparing Trial Results

- 42.4.11 Sharing Tests

- 42.4.12 Viewing Activity and Usage Information

- 42.4.13 Viewing Deployment Information

- 42.4.14 Browsing the Testing Home Page

- 42.4.15 Trial Page

- 42.4.16 Viewing TaaS Reports

- 42.4.17 Estimating Hardware Needed for Testing

Part XV Using Consolidation Planner and Chargeback

43 Chargeback Administration

- 43.1 Overview of Chargeback

- 43.1.1 Why Implement Chargeback

- 43.1.2 Enterprise Manager Chargeback

- 43.1.2.1 Chargeback Entities

- 43.1.2.2 Charge Plans

- 43.1.2.3 Cost Centers

- 43.1.2.4 Reports

- 43.2 Setting Up Chargeback

- 43.2.1 Chargeback and Metrics

- 43.2.2 Self Service Applications and Zones within Chargeback

- 43.2.3 Configuring Global Settings for Chargeback

- 43.2.4 Working with Charge Plans

- 43.2.4.1 Charge Plans and Effective Dates

- 43.2.4.2 Creating and Revising the Universal Charge Plan

- 43.2.4.3 Creating an Extended Charge Plan

- 43.2.4.4 Viewing Charge item Metadata

- 43.2.4.5 Using Conditions in Charge Plans

- 43.2.4.6 Revising Extended Charge Plans

- 43.2.5 Creating Cost Centers

- 43.2.5.1 Setting the Cost Center Property for an Enterprise Manager User

- 43.2.5.2 Setting the Cost Center Property on the Target Home Page

- 43.2.5.3 Creating High-Level Cost Centers in Chargeback

- 43.2.5.4 Importing a Business Hierarchy from an LDAP Server

- 43.2.6 Adding Entities to Chargeback

- 43.2.6.1 Configuring Metric Collection for Enterprise Manager Database Services

- 43.2.6.2 Selecting Entities for Chargeback

- 43.2.6.3 Making Assignments

- 43.2.6.4 Reviewing Entity Setup

- 43.2.7 Assigning Cost Centers to Entities

- 43.2.8 Assigning Charge Plans to Entities

- 43.2.9 Setting Default Charge Plans for Entity Types

- 43.2.10 Running the Daily Data Collection Job

- 43.3 Accessing Chargeback Information

- 43.3.1 Following Usage and Charge Trends

- 43.3.2 Viewing an Entity's Collected Metric Data

- 43.3.3 Generating and Distributing Chargeback Reports

- 43.3.4 Viewing Chargeback Information in the Self Service Portal

- 43.3.5 Sharing Chargeback Data with Other Applications

44 Using Consolidation Planner

- 44.1 Overview of Consolidation Planner

- 44.1.1 Key Concepts

- 44.1.2 Consolidation Constraints

- 44.1.2.1 Source Server Constraints

- 44.1.2.2 Destination Server Constraints

- 44.2 Using Consolidation Planner

- 44.2.1 Creating a Consolidation Project

- 44.2.1.1 Declaring the Consolidation Type

- 44.2.1.2 Specifying Source Candidates

- 44.2.1.3 Specifying Destination Candidates

- 44.2.1.4 Setting Data Collection Parameters

- 44.2.1.5 Choosing a Pre-configured Scenario

- 44.2.1.6 Reviewing and Saving the Consolidation Project

- 44.2.2 Creating a Custom Consolidation Scenario

- 44.2.2.1 Specifying Scenario Parameters

- 44.2.2.2 Defining Consolidation Constraints

- 44.2.2.3 Specifying Destination Candidates

- 44.2.2.4 Mapping Sources to Destinations

- 44.2.2.5 Reviewing and Saving the New Scenario

- 44.2.3 Other Scenario Creation Options

- 44.2.4 Evaluating a Consolidation Scenario

- 44.2.5 Analyzing a Consolidation Scenario

- 44.2.6 Viewing Consolidation Reports

- 44.2.6.1 Viewing Consolidation Planner Project Reports

- 44.2.6.2 Viewing Consolidation Planner Scenario Reports

- 44.2.7 Considering Oracle Compute Cloud Shapes

- 44.2.8 Managing Data Collections

Part XVI Using the Cloud APIs

45 Introduction to Cloud APIs

- 45.1 Introduction

- 45.2 When to Use Cloud REST APIs

- 45.3 Change History

- 45.4 Common Behaviors

- 45.4.1 Transport Protocol

- 45.4.2 URI Space

- 45.4.3 Media Types

- 45.4.4 Request Headers

- 45.4.5 Response Headers

- 45.4.6 HTTP Status Codes

- 45.4.7 Common Resource Attributes

- 45.4.7.1 Resource State

- 45.4.8 Collection

- 45.4.9 Error Response Message

46 Cloud Resource Models

- 46.1 Enterprise Manager Cloud Resource Model 10001

- 46.2 About Cloud Resources

- 46.3 Resource Data Models

- 46.3.1 Cloud [application/oracle.com.cloud.common.Cloud+json]

- 46.3.2 ServiceTemplate [application/oracle.com.cloud.common.ServiceTemplate+json]

- 46.3.3 Zone [application/oracle.com.cloud.common.Zone+json]

- 46.3.4 Service Family Type [application/oracle.com.cloud.common.ServiceFamilyType+json]

- 46.3.5 Service Instance Type [application/oracle.com.cloud.common.InstanceType+json]

- 46.3.6 Metric [application/oracle.com.cloud.common.Metric+json]

- 46.3.7 Service Instance [application/oracle.com.cloud.common.ServiceInstance+json]

- 46.3.8 Quota Usage [application/oracle.com.cloud.common.QuotaUsage+json]

- 46.3.9 Service Template Finds [application/oracle.com.cloud.common.ServiceTemplateFinds+json]

- 46.4 Cloud REST API Examples

- 46.4.1 Cloud Resource

- 46.4.2 Service Family Type Resource

- 46.4.3 Quota Resource

- 46.4.4 Service Instance Type Resource

- 46.4.5 Zone Resource

- 46.4.6 Service Template Resource

- 46.4.7 Metric Resource

- 46.5 Service Request REST APIs

- 46.6 Service Request Collection

47 EM CLI Verbs for Database as a Service Administrator

- 47.1 PaaS Zone EM CLI Verbs

- 47.2 Software Pool EM CLI Verbs

- 47.3 Database Quota EM CLI Verbs

- 47.4 Database Request Settings EM CLI Verbs

- 47.5 Database Size EM CLI Verbs

- 47.6 Database Profile EM CLI Verbs

- 47.6.1 About Database Provisioning Profile Types

- 47.6.1.1 DBCA Template

- 47.6.1.2 RMAN

- 47.6.1.3 Snapclone

- 47.6.1.4 Schema

- 47.6.2 Creating Provisioning Profiles using EM CLI

- 47.6.3 Sample EM CLI Property Files

- 47.6.3.1 DBCA Template

- 47.6.3.2 New RMAN Backup from the Source Database

- 47.6.3.3 Existing RMAN Backup from the Source Database

- 47.6.3.4 Existing RMAN Backup on the Stage Location

- 47.6.3.5 Snapclone Database

- 47.6.3.6 Schema Database

- 47.6.4 Database Profile EM CLI Verbs

- 47.6.5 Creating a Database Profile Using EM CLI Verbs

- 47.6.6 Editing a Database Profile Using EM CLI Verbs

- 47.6.7 Deleting a Database Profile Using EM CLI Verbs

- 47.6.8 Viewing All the Database Profiles

- 47.6.9 Refreshing a Database Profile Using EM CLI Verbs

- 47.7 Service Template EM CLI Verbs

- 47.8 Service Template Executable .json Files

- 47.8.1 DBCA Based Service Template .json File

- 47.8.2 Standby DBCA Based Service Template .json File

- 47.8.3 RMAN Based Single Instance Database Service Template .json File

- 47.8.4 RMAN Based Single Instance Database with Single Instance Standby Service Template .json File

- 47.8.5 RMAN Based RAC One Node Database Service Template .json File

- 47.8.6 RMAN Based RAC One Node Database with Standby Service Template .json File

- 47.8.7 RMAN Based RAC Database with Single Instance Standby Service Template .json File

- 47.8.8 RAC Database with Standby Using a DBCA Template Service Template .json File

- 47.8.9 DNFS Based Database Service Template .json File

- 47.8.10 Snap Clone Single Instance Database with Archiving Enabled Service Template .json File

- 47.8.11 Schema Based Service Template .json File

- 47.8.12 Pluggable Database Service Template .json File

- 47.8.13 RAC Pluggable Database Using an Empty Pluggable Database Service Template .json File

- 47.8.14 RAC Pluggable Database Using a Profile Pluggable Database Service Template .json File

- 47.8.15 Clone DB Based Service Template .json File

- 47.8.16 Full Clone Using an RMAN Duplicate Service Template .json File

- 47.8.17 Snapclone Database Using Live Clone Template on EMC Storage Service Template .json File

- 47.9 Creating a Database Clone Using EM CLI Verbs

- 47.10 Refreshing a Database Using EM CLI Verbs

- 47.11 Deleting a Database Using EM CLI Verbs

- 47.12 Database Fleet Maintenance EM CLI Verbs

- 47.13 Database Request Handling EM CLI Verbs

- 47.14 Cloning a Pluggable Database

- 47.14.1 Pluggable Database Full Clone Methods

- 47.14.2 Pluggable Database Snapshot Clone Types

- 47.15 Creating a Test Master Pluggable Database

- 47.16 Transferring Data Between Databases

- 47.17 Backing Up Datafiles and Metadata of a Pluggable Database

- 47.18 Importing Data from Export Dumps to a Database

- 47.19 Invoking a REST API Using EM CLI Verb

48 Database as a Service Administrator REST APIs

- 48.1 Summary of Database as a Service Administrator REST APIs

- 48.2 Creating a New DBaaS Cloud Setup Using REST APIs

- 48.3 Database as a Service Administrator Operations REST APIs

- 48.3.1 PaaS Zones and PaaS Zone REST APIs

- 48.3.1.1 PaaS Zones REST APIs

- 48.3.1.1.1 Supported Request Methods for PaaS Zones

- 48.3.1.2 PaaS Zone REST APIs

- 48.3.1.2.1 Supported Request Methods for PaaS Zone

- 48.3.1.3 PaaS Zones and PaaS Zone REST API Examples

- 48.3.1.3.1 Viewing Details of the PaaS Zones Resource

- 48.3.1.3.2 Viewing Details of the PaaS Zone Resource

- 48.3.1.3.3 Creating a PaaS Zone

- 48.3.1.3.4 Updating a PaaS Zone

- 48.3.1.3.5 Deleting a PaaS Zone

- 48.3.2 Software Pools and Software Pool REST APIs

- 48.3.2.1 Software Pools

- 48.3.2.1.1 Supported Request Methods for Software Pools

- 48.3.2.2 Software Pool

- 48.3.2.2.1 Supported Request Methods for Software Pool

- 48.3.2.3 Software Pool REST API Examples

- 48.3.2.3.1 Viewing Details of the Software Pools Resource

- 48.3.2.3.2 Viewing Details of a Software Pool Resource

- 48.3.2.3.3 Viewing Details of a Software Pool Capacity

- 48.3.2.3.4 Creating a Database Pool

- 48.3.2.3.5 Updating a Database Pool

- 48.3.2.3.6 Creating a Schema Pool

- 48.3.2.3.7 Updating a Schema Pool

- 48.3.2.3.8 Creating a Pluggable Database Pool

- 48.3.2.3.9 Updating a Pluggable Database Pool

- 48.3.2.3.10 Deleting a Database / Schema / Pluggable Database Pool

- 48.3.3 Database Request Settings REST APIs

- 48.3.3.1 Database Request Settings Resource Model

- 48.3.3.2 Dbaas Request Settings Resource

- 48.3.3.3 Supported Operations for Dbaas Request Settings

- 48.3.3.4 Dbaas Request Settings REST API Examples

- 48.3.3.4.1 Viewing Details of the Dbaas Request Settings Resource

- 48.3.3.4.2 Creating Database Request Settings

- 48.3.4 Database Quota REST APIs

- 48.3.4.1 Database Quota Resource Model

- 48.3.4.2 Dbaas Quota Resource

- 48.3.4.3 Supported Operations for DbaaS Quota

- 48.3.4.4 Database Quota REST API Examples

- 48.3.4.4.1 Viewing Details of the DBaas Quota Resource

- 48.3.4.4.2 Creating DBaaS Quota for a Role

- 48.3.4.4.3 Updating DBaaS Quota for a Role

- 48.3.4.4.4 Deleting DBaaS Quota for a Role

- 48.3.5 Service Template REST APIs

- 48.3.5.1 Service Templates Resource

- 48.3.5.1.1 Supported Operations for Service Templates

- 48.3.5.2 Service Template Resource

- 48.3.5.2.1 Supported Operations for Service Template

- 48.3.5.3 Service Templates and Service Template REST API Examples

- 48.3.5.3.1 Viewing Details of the Service Templates Resource

- 48.3.5.3.2 Viewing Details of the ServiceTemplate Resource

- 48.3.5.3.3 Creating a Service Template for DBCA Based Database

- 48.3.5.3.4 Creating a Service Template for RMAN Based Single Instance Database

- 48.3.5.3.5 Creating a Service Template for RMAN Based Single Instance Database With Single Instance Standby

- 48.3.5.3.6 Creating a Service Template for RMAN Based RAC One Node Database

- 48.3.5.3.7 Creating a Service Template for RMAN Based RAC One Node Database With Standby

- 48.3.5.3.8 Creating a Service Template for RMAN Based RAC Database With Standby

- 48.3.5.3.9 Creating a Service Template for RAC Database with Standby Using a DBCA Template

- 48.3.5.3.10 Creating a Service Template for DNFS Based Database

- 48.3.5.3.11 Creating a Service Template for Snap Clone Single Instance Database (with Archiving Enabled)

- 48.3.5.3.12 Creating a Service Template for Snap Clone Single Instance Database (without Archiving Enabled)

- 48.3.5.3.13 Creating a Service Template for a Schema

- 48.3.5.3.14 Creating a Service Template for a Pluggable Database

- 48.3.5.3.15 Creating a Service Template for RAC Pluggable Database Using an Empty Pluggable Database

- 48.3.5.3.16 Creating a Service Template for RAC Pluggable Database Using a Profile Pluggable Database

- 48.3.5.3.17 Deleting a Database / Schema / Pluggable Database Service Template

49 Database as a Service SSA User REST APIs

- 49.1 Summary of Database as a Service SSA User REST APIs

- 49.2 Database as a Service

- 49.2.1 Database as a Service Resource Model

- 49.2.1.1 DB Zone

- 49.2.1.2 DB Platform Template

- 49.2.1.3 DB Platform Instance

- 49.2.2 Supported Operations for Database as a Service Resources

- 49.2.3 Database as a Service REST API Examples

- 49.2.3.1 Viewing Details of All the Cloud Resources

- 49.2.3.2 Filtering Output for Specific Resource Attributes

- 49.2.3.3 Viewing Details of the Service Family Type Resource

- 49.2.3.4 Viewing Details of the Service Instance Type Resource

- 49.2.3.5 Viewing Details of a Service Requests Resource

- 49.2.3.6 Viewing Details of the DB Zone

- 49.2.3.7 Viewing Details of the DB Platform Template Resource

- 49.2.3.8 Creating a Database Instance

- 49.2.3.8.1 Creating a Database by Passing a Request on the DB Zone

- 49.2.3.8.2 Creating a Database by Passing a Request on the DB Platform Template

- 49.2.3.9 Viewing the Database Creation Details

- 49.2.3.10 Updating a Database

- 49.2.3.11 Deleting a Database Instance

- 49.2.3.12 Lifecycle operations on a Database Instance

- 49.2.3.12.1 Shutting down a Database

- 49.2.3.12.2 Starting up a Database

- 49.2.3.12.3 Scheduling a Backup of the Database

- 49.2.3.12.4 Restoring a Database from a Backup

- 49.2.3.12.5 Adding a Standby Database

- 49.2.3.12.6 Removing a Standby Database

- 49.2.3.12.7 Refreshing a Database

- 49.2.3.13 Lifecycle operations on a Snap clone Database Instance

- 49.2.3.13.1 Creating a Snapshot

- 49.2.3.13.2 Restoring from a Snapshot List

- 49.2.3.13.3 Deleting a Snapshot

- 49.3 Schema as a Service

- 49.3.1 Schema as a Service Resource Model

- 49.3.1.1 Schema Platform Template

- 49.3.1.2 Schema Platform Instance

- 49.3.2 Supported Operations for Schema as a Service Resources

- 49.3.3 Schema as a Service REST API Examples

- 49.3.3.1 Viewing Details of the Schema Platform Template Resource

- 49.3.3.2 Creating a Schema Service

- 49.3.3.2.1 Creating a Schema by Passing a Request on the DB Zone

- 49.3.3.2.2 Creating a Schema by Passing a Request on the Schema Platform Template

- 49.3.3.3 Viewing Details of the Schema Service Creation

- 49.3.3.4 Deleting a Schema Service

- 49.3.3.5 Life Cycle Operations of a Schema Service

- 49.3.3.5.1 Exporting a Schema

- 49.3.3.5.2 Restoring a Schema from Exported Schema Dumps

- 49.3.3.5.3 Deleting the Exported Schema Dumps

- 49.3.3.5.4 Changing Schema Passwords

- 49.4 Pluggable Database as a Service

- 49.4.1 Pluggable Database as a Service Resource Model

- 49.4.1.1 Pluggable DB Platform Template

- 49.4.1.2 Pluggable DB Platform Instance

- 49.4.2 Supported Operations for Pluggable Database Resources

- 49.4.3 Pluggable Database as a Service REST API Examples

- 49.4.3.1 Viewing Details of the Pluggable Db Platform Template Resource

- 49.4.3.2 Creating a Pluggable Database

- 49.4.3.2.1 Creating a Pluggable Database by Passing a Request on the DB Zone

- 49.4.3.2.2 Creating a Pluggable Database by Passing a Request on the Pluggable DB Platform Template

- 49.4.3.3 Viewing Details of the Pluggable Database Creation

- 49.4.3.4 Deleting a Pluggable Database Instance

- 49.4.3.5 Lifecycle operations on a Pluggable Database Instance

- 49.4.3.5.1 Shutting Down a Pluggable Database

- 49.4.3.5.2 Starting up a Pluggable Database

- 49.4.3.5.3 Scheduling a Backup for a Pluggable Database

- 49.4.3.5.4 Restoring a Pluggable Database from a Backup

50 DBaaS REST APIs and EM CLI Verbs Based Use Cases

- 50.1 Getting Started with DBaaS With REST APIs and EM CLI Verbs

- 50.2 Creating Databases Using Database Template With REST APIs and EM CLI Verbs

- 50.2.1 Creating Standby Databases With REST APIs and EM CLI Verbs

- 50.3 Creating Empty Schemas and Schemas Based on Profile With REST APIs and EM CLI Verbs

- 50.4 Creating Empty PDBs and PDBs Based on Profile With REST APIs and EM CLI Verbs

- 50.5 Migrating/Transferring Data from One Database to Another

- 50.6 Creating Databases Using Snap Clone With REST APIs and EM CLI Verbs

- 50.6.1 Creating a Snap Clone Using a Profile With REST APIs and EM CLI Verbs

- 50.6.2 Creating a Snap Clone Using Live Database With REST APIs and EM CLI Verbs

- 50.6.3 Continuous Sync

- 50.7 Creating Full Database Clones Using RMAN With REST APIs and EM CLI Verbs

- 50.7.1 Creating a Full Database Clone Using RMAN Backup

- 50.7.2 Creating a Full Database Clone Using RMAN Duplication (Live Cloning)

- 50.7.3 Discrete Sync

- 50.8 Configuring Custom Database Placement Option Using REST APIs

- 50.8.1 Custom Database Placement Option for Databases Using REST APIs

- 50.8.2 Custom Database Placement Option for Pluggable Databases Using REST APIs

- 50.9 Service Catalog of Database as a Service

- 50.9.1 Multi-Datacenter DBaaS Setup

- 50.9.1.1 Administrator Steps for Creating the Multi-Datacenter DBaaS Setup

- 50.9.1.2 SSA User REST API Request for Using the Multi-Datacenter DBaaS Setup

51 SSA Administration REST APIs

- 51.1 Summary of SSA Administration REST APIs for V2

- 51.2 Summary of SSA Administration REST APIs for V1

- 51.3 Catalog APIs for V1 and V2

- 51.3.1 CFW API Catalog REST API Examples

- 51.3.1.1 Viewing the High Level Catalog APIs for V1 and V2

- 51.3.1.2 Viewing the V1 Catalog APIs

- 51.3.1.3 Viewing the V2 Catalog APIs

- 51.3.1.4 Viewing the V1 Catalog APIs for SSA Portal

- 51.3.1.5 Viewing the V2 Catalog User APIs

- 51.3.1.6 Viewing the V2 Catalog Admin APIs

- 51.4 Resource Provider for V2

- 51.4.1 Resource Providers - Collection Resource for V2

- 51.4.2 Resource Provider - Singular Resource for V2

- 51.4.3 Supported Methods for Resource Provider Resource

- 51.4.4 Resource Provider REST API Examples

- 51.4.4.1 Viewing all the Resource Providers

- 51.4.4.2 Viewing all the Types of Resource Providers

- 51.4.4.3 Creating a Resource Provider

- 51.4.4.4 Creating a PaaS Infrastructure Zone Resource Provider

- 51.4.4.5 Creating a Database Schema Pool

- 51.4.4.6 Creating an Adapter Instance

- 51.4.4.7 Filtering Resource Provider Targets

- 51.4.4.8 Viewing the Resource Provider Type Metadata

- 51.4.4.9 Viewing the Metadata for Creating a PaaS Infrastructure Zone

- 51.4.4.10 Viewing the Metadata for Creating a Schema Pool

- 51.4.4.11 Viewing Details of the Resource Provider

- 51.4.4.12 Updating a Resource Provider

- 51.4.4.13 Deleting a Resource Provider

- 51.4.4.14 Viewing Configuration of a Resource Provider

- 51.4.4.15 Viewing Metric of a Resource Provider

- 51.4.4.16 Provisioning a Resource via a Sample Adapter

- 51.4.4.17 De-provisioning a Resource

- 51.4.4.18 Viewing the Metadata Required to Provision a Resource Provider

- 51.5 Service Templates - Collection Resource for V2

- 51.5.1 Supported Operations

- 51.5.2 Service Templates REST API Examples for V2

- 51.5.2.1 Viewing all the Service Templates

- 51.5.2.2 Viewing all the Service Template Types

- 51.5.2.3 Viewing the Metadata Required for Creating a Service Template

- 51.5.2.4 Viewing the Resource Provider Characteristics Required for Creating a Service Template

- 51.5.2.5 Viewing Configurations Required for Creating a Service Template

- 51.5.2.6 Creating a Service Template

- 51.5.2.7 Updating a Service Template

- 51.5.2.8 Viewing Details of a Specific Service Template

- 51.5.2.9 Viewing Configuration Details of a Specific Service Template

- 51.5.2.10 Deleting a Service Template

- 51.5.3 Creating a Service Template in V2

- 51.6 Service Types for V2

- 51.6.1 Service Types REST API Examples for V2

- 51.6.1.1 Viewing Details of the Service Types

- 51.7 Service Requests for V2

- 51.7.1 Supported Operations

- 51.7.2 Service Requests REST API Examples for V2

- 51.7.2.1 Viewing Details of all the Service Requests

- 51.7.2.2 Viewing Details of a Service Request

- 51.7.2.3 Rescheduling a Service Request

- 51.7.2.4 Clearing a Collection of Service Requests

- 51.7.2.5 Cancelling a Service Request

- 51.7.2.6 Deleting a List of Service Requests

- 51.8 Service Instances for V2

- 51.8.1 Supported Operations

- 51.8.2 Service Instance REST API Examples for V2

- 51.8.2.1 Viewing Details of all the Service Instances

- 51.8.2.2 Viewing Details of a Service Instance

- 51.8.2.3 Starting a Service Instance

- 51.8.2.4 Stopping a Service Instance

- 51.8.2.5 Deleting a Service Instance

- 51.8.2.6 Starting a list of Service Instances

- 51.8.2.7 Stopping a list of Service Instances

- 51.8.2.8 Deleting a list of Service Instances

- 51.9 Request Settings for V2

- 51.9.1 Request Settings Data Model

- 51.9.2 Request Settings Composite Attribute Data Model

- 51.9.3 Request Settings REST API Examples for V2

- 51.9.3.1 Viewing Details of the Global Request Settings

- 51.9.3.2 Updating the Global Request Settings

- 51.9.3.3 Viewing Details of the Global Request Settings for a Collection of Roles

- 51.9.3.4 Creating Global Request Settings for a Role

- 51.9.3.5 Viewing Details of Global Request Settings for a Specific Role

- 51.9.3.6 Updating Global Request Settings for a Specific Role

- 51.9.3.7 Deleting Global Request Settings for a Specific Role

- 51.9.3.8 Viewing Details of the Request Settings for a Service Family

- 51.9.3.9 Updating the Request Settings for a Service Family

- 51.9.3.10 Viewing Details of the Service Family Settings by Roles

- 51.9.3.11 Creating Service Family Settings for a Role

- 51.9.3.12 Viewing Details of the Service Family Request Settings for a Specific Role

- 51.9.3.13 Updating the Service Family Request Settings for a Specific Role

- 51.9.3.14 Deleting Service Family Request Settings for a Specific Role

- 51.9.3.15 Viewing Details of the Request Settings for a Service Type

- 51.9.3.16 Updating the Request Settings for a Service Type

- 51.9.3.17 Viewing Details of the Service Type Settings by Roles

- 51.9.3.18 Creating Service Type Settings for Roles

- 51.9.3.19 Viewing Details of the Service Type Request Settings for a Specific Role

- 51.9.3.20 Updating the Service Type Request Settings for a Specific Role

- 51.9.3.21 Deleting Service Type Request Settings for a Specific Role

- 51.10 VM Adapters for V2

- 51.10.1 VM Adapters Data Model

- 51.10.2 Supported Operations

- 51.10.3 VM Adapters REST API Examples for V2

- 51.10.3.1 Viewing Details of All the Registered VM Adapters

- 51.10.3.2 Viewing Details of a Specific Registered VM Adapter

- 51.10.3.3 Viewing Details of the Staging Servers

- 51.10.3.4 Creating a Staging Server

- 51.11 SSA Admin Resources for V1

- 51.11.1 Viewing Details of the REST API Entry Point Resources

- 51.12 PaasZones for V1

- 51.12.1 PaasZones REST API Examples

- 51.12.1.1 Viewing PaaS Zones Metadata

- 51.12.1.2 Listing PaaS Zones

- 51.13 PaasZone for V1

- 51.13.1 PaaS Zone REST API Examples

- 51.13.1.1 Creating a PaaS Zone

- 51.13.1.2 Updating a PaaS Zone

- 51.13.1.3 Deleting a PaaS Zone

- 51.13.1.4 Viewing Details of the PaasZone

- 51.13.1.5 Viewing the Expanded form of a PaasZone

- 51.14 SoftwarePools for V1

- 51.14.1 Software Pools REST API Example

- 51.14.1.1 Viewing Details of the Software Pools

- 51.14.1.2 Filtering Output based on Search Query Parameters

- 51.15 SoftwarePool for V1

- 51.15.1 SoftwarePool REST API Examples

- 51.15.1.1 Creating a Software Pool

- 51.15.1.2 Updating a Software Pool

- 51.15.1.3 Deleting a Software Pool

- 51.15.1.4 Viewing Details of the Software Pool

- 51.15.1.5 Expands Query Parameter

- 51.15.2 SoftwarePoolMetadata for V1

- 51.15.2.1 Retrieving Software Pool Metadata REST API Example

- 51.15.3 SoftwarePoolFilteredTargets for V1

- 51.15.3.1 Retrieving Available Filtered Targets - REST API Example

- 51.15.4 SoftwarePoolCapacity for V1

- 51.15.4.1 Retrieving Software Pool Capacity

- 51.16 Composite Resource Attributes for V1

- 51.16.1 ValueDescriptor for V1

- 51.16.2 ValueEntity for V1

- 51.16.3 EntityValueHolder for V1

- 51.16.4 PoolEntityCapacity for V1

- 51.16.5 ResourceTypeCapacity for V1

- 51.17 Service Template Management for V1

- 51.17.1 Service Templates for V1

- 51.17.1.1 Supported Methods on ServiceTemplates Resources

- 51.17.1.2 ServiceTemplates REST API Example

- 51.17.2 Service Template for V1

- 51.17.2.1 Supported Methods on ServiceTemplate Resources

- 51.17.3 ServiceTemplateUpdate for V1

- 51.17.4 ServiceExecutableMetaEntity for V1

- 51.17.5 Template Configuration Parameters for V1

- 51.17.6 PayloadDescriptor for V1

- 51.17.7 ServiceTemplate Metadata for V1

- 51.17.8 PayloadMetaData for V1

- 51.17.9 ServiceTemplate MetaData for V1

- 51.17.10 ServiceTemplates REST API Example

- 51.17.10.1 Creating Service Templates

- 51.17.10.2 Updating a Service Template

- 51.17.10.3 Deleting a Service Template

- 51.17.10.4 Viewing Details of a Service Template

- 51.17.10.5 Viewing Metadata of a Service Template

- 51.17.10.6 Creating Configuration Values for Service Templates

- 51.18 EM CLI Verbs for Self Service Applications

- 51.18.1 Introduction

- 51.18.2 EM CLI Verbs for SSA Operations for V2

- 51.18.3 EM CLI Verbs for SSA Operations for V1

52 SSA Portal Management REST APIs

- 52.1 Summary of SSA User REST APIs for V2

- 52.2 Summary of User REST APIs for V1

- 52.3 Common REST Entities for V2

- 52.3.1 Cfw Resource for V2

- 52.3.2 Cfw Link for V2

- 52.3.3 Cfw Value Descriptor for V2

- 52.4 Catalog APIs

- 52.4.1 Supported Operations

- 52.4.2 REST API Catalog Examples for V2

- 52.4.2.1 Viewing Details of the Available REST API Catalogs

- 52.4.2.2 Viewing Details of the API Catalog by User Type

- 52.4.2.3 Viewing Details of the User API Catalog

- 52.5 Service Types for V2

- 52.5.1 Service Types REST API Example for V2

- 52.5.1.1 Viewing Details of Service Types

- 52.6 Services for V2

- 52.6.1 Service Collection for V2

- 52.6.2 Service Offering for V2

- 52.6.3 Request Metadata for V2

- 52.6.4 Supported Operations for Services for V2

- 52.6.5 Services REST API Examples for V2

- 52.6.5.1 Viewing Details of the Services Resource

- 52.6.5.2 Viewing Details of the Service Offering Resource

- 52.6.5.3 Viewing Details of the Request Metadata

- 52.6.5.4 Creating a Service Instance

- 52.6.6 Creating a Service Instance using V2

- 52.7 Service Requests REST APIs for V1 and V2

- 52.7.1 Service Requests Resource for V2

- 52.7.2 Service Request Collection - Collection Resource for V1

- 52.7.3 Supported Operations for Service Requests

- 52.7.4 Service Request REST API Examples for V1 and V2

- 52.7.4.1 Retrieving Top Level View of Service Requests in V1 and V2

- 52.7.4.2 Querying the Service Requests Resource for Status=SUCCESS in V2

- 52.7.4.3 Querying the Service Requests Resource for Expanded=true and Expanded=false in V2

- 52.7.4.4 Querying the Service Requests Resource for status=SUCCESS&expanded=false and status=SUCCESS&expanded=true in V2

- 52.7.4.5 Viewing Details of a Service Request in V2

- 52.7.4.6 Deleting a Service Request in V2

- 52.7.4.7 Rescheduling a Service Request that is in a Scheduled State in V1 and V2

- 52.7.4.8 Viewing the Logs of a Service Request in V2

- 52.7.4.9 Querying the Logs of a Service Request in V2

- 52.7.4.10 Retrieving Top Level View of Service Requests for a Specific Service Family in V1

- 52.7.4.11 Retrieving Top Level View of Service Requests for a Specific Status in V1

- 52.7.4.12 Rescheduling a Service Request that is in a Cancelled State (or in a state other than Scheduled) in V1

- 52.7.4.13 Deleting a Service Request that is in a Scheduled State in V1

- 52.7.4.14 Deleting a Service Request that is in a Canceled State (or in a state other than scheduled) in V1

- 52.8 Service Instances for V2

- 52.8.1 Supported Methods for Service Instance in V2

- 52.8.2 Service Instances REST API Examples for V2

- 52.8.2.1 Viewing Details of the Service Instance Resource in V2

- 52.8.2.2 Querying the Service Instance Resource in V2

- 52.8.2.3 Viewing Details of a Service Instance in V2

- 52.8.2.4 Viewing Details of the Attributes of a Service Instance in V2

- 52.8.2.5 Viewing Details of the Available Actions on a Service Instance in V2

- 52.8.2.6 Viewing Details of the Action Inputs Required To Execute an Action on a Service Instance in V2

- 52.8.2.7 Executing an Action on a Service Instance in V2

- 52.8.3 Executing Actions on a Service Instance in V2

- 52.9 Quota Usage for V2

- 52.9.1 Supported Operations for Quota Usage for V2

- 52.9.2 Quota Usage REST API Examples for V2

- 52.9.2.1 Viewing Details of Quota Usage

- 52.9.2.2 Viewing Details of Quota Usage by Service Family

- 52.10 User Preferences for V2

- 52.10.1 Supported Request Methods for User Preference Resource in V2

- 52.10.2 User Preferences for V2 REST API Examples

- 52.10.2.1 Viewing Details of the User Preferences Resource for V2

- 52.10.2.2 Viewing Details of the General User Preferences Resource for V2

- 52.10.2.3 Viewing Metadata of the General User Preferences Resource for V2

- 52.10.2.4 Updating the General User Preferences for V2

- 52.10.2.5 Viewing Details of the Services User Preferences Resource for V2

- 52.10.2.6 Viewing Details of the Service Family User Preferences Resource for V2

- 52.10.2.7 Viewing Metadata of the Service Family User Preferences for V2

- 52.10.2.8 Updating the Service Family User Preferences for V2

- 52.10.2.9 Viewing Details of the Service Type User Preferences Resource for V2

- 52.10.2.10 Viewing Metadata of the Service Type User Preferences for V2

- 52.10.2.11 Updating the Service Type User Preferences for V2

- 52.11 User Preferences for V1

- 52.11.1 My Preferences for V1

- 52.11.2 Canonical Link for V1

- 52.11.3 General Preferences for V1

- 52.12 Composite Resource Attributes for V1

- 52.12.1 RequestEntity Data Model for V1

- 52.12.2 InstanceExpiryEntity Data Model for V1

- 52.12.3 QuotaEntity Data Model for V1

- 52.13 Supported Methods for General Preferences (for V1)

- 52.13.1 Viewing Details of the General Preferences for an SSA User

- 52.13.2 Updating the General Preferences for an SSA User

- 52.14 Service Specific User Preferences for V1

- 52.14.1 Service Preferences for V1

- 52.14.2 Supported Methods for My Preferences (for V1)

- 52.14.3 ServicePreferenceMetadata Data Model for V1

- 52.14.4 Composite Resource Attributes for V1

- 52.14.4.1 ValueEntity Data Model for V1

- 52.14.4.2 EntityValueHolder Data Model for V1

- 52.14.4.3 ValueDescriptor Data Model for V1

- 52.14.5 Service Preferences REST API Examples for V1

- 52.14.5.1 Viewing Details of the Service Preferences Resource

- 52.14.6 My Database Preferences REST API Examples for V1

- 52.14.6.1 Viewing Details of the DBaaS User Preferences Metadata

- 52.14.6.2 Updating DBaaS User Preferences

- 52.14.6.3 Setting a Blank DBaaS User Preference Setting

- 52.14.6.4 Viewing the DBaaS User Preferences

- 52.14.7 My Middleware Preferences REST API Examples for V1

- 52.14.7.1 Viewing MWaaS User Preferences Metadata

- 52.14.7.2 Updating MWaaS User Preferences

- 52.14.7.3 Setting a Blank MWaaS User Preference Setting

- 52.14.7.4 Viewing MWaaS User Preference Settings

- 52.14.8 My Tests Preferences for V1

- 52.14.8.1 Viewing TaaS User Preferences Metadata

- 52.14.8.2 Updating TaaS User Preferences

53 WebLogic as a Service REST APIs

- 53.1 Summary of WebLogic as a Service REST APIs for V2

- 53.2 Summary of WebLogic as a Service REST APIs for V1

- 53.3 Resource Providers for V2 - PaaS Infrastructure Zone and Middleware Pool

- 53.3.1 Resource Providers - PaaS Infrastructure Zone and Middleware Pool REST API Examples

- 53.3.1.1 Viewing Details of All the Resource Providers

- 53.3.1.2 Creating a PaaS Infrastructure Zone

- 53.3.1.3 Creating a Middleware Pool

- 53.3.1.4 Updating a PaaS Infrastructure Zone

- 53.3.1.5 Updating a Middleware Pool

- 53.3.1.6 Deleting a Resource Provider (PaaS Infrastructure Zone or Middleware Pool)

- 53.4 Quotas for V2

- 53.4.1 Quotas REST API Examples

- 53.4.1.1 Viewing Details of Quota Settings

- 53.4.1.2 Creating a Quota for a SSA User Role

- 53.4.1.3 Updating a Quota for a SSA User Role

- 53.4.1.4 Deleting a Quota for a SSA User Role

- 53.5 Service Templates for V2

- 53.5.1 Service Templates REST API Examples

- 53.5.1.1 Viewing Details of all Service Templates

- 53.5.1.2 Viewing Details of a Specific Service Template

- 53.5.1.3 Deleting a Service Template

- 53.6 Load Balancer Configurations for V2

- 53.6.1 Load Balancer Configuration for V2

- 53.6.2 Load Balancer Configurations REST API Examples

- 53.6.2.1 Viewing all the Load Balancer Configurations

- 53.6.2.2 Viewing Details of a Specific Load Balancer Configuration

- 53.6.2.3 Creating a Load Balancer Configuration

- 53.6.2.4 Updating a Load Balancer Configuration

- 53.6.2.5 Deleting a Load Balancer Configuration

- 53.7 Service Instance Action for V2

- 53.8 User Operation REST API Examples for V2

- 53.8.1 Viewing Details of all Service Templates

- 53.8.2 Viewing Details of all Service Instances

- 53.8.3 Viewing all Service Instances With UP Status

- 53.8.4 Creating a Service Instance Request

- 53.8.5 Viewing Details of all Possible Actions on a Specific Service Instance

- 53.8.6 Scaling Up a Service Instance

- 53.8.7 Scaling Down a Service Instance

- 53.8.8 Stopping a Service Instance

- 53.8.9 Starting a Service Instance

- 53.8.10 Deleting a Service Instance

- 53.8.11 Viewing Details of Java EE Applications Components from the Software Library

- 53.8.12 Deploying an Application

- 53.8.13 Redeploying an Application

- 53.8.14 Un-deploying an Application

- 53.8.15 Stopping an Application

- 53.8.16 Starting an Application

- 53.8.17 Viewing Details of all Applications Deployed in a Domain

- 53.8.18 Viewing an Application URL

- 53.8.19 Viewing Details of the Libraries Deployed in a Domain

- 53.8.20 Viewing the WebLogic Console URL

- 53.8.21 Creating a Data Source

- 53.8.22 Editing a Data Source

- 53.8.23 Deleting a Data Source

- 53.8.24 Viewing Details of all the Data Sources

- 53.8.25 Testing a Data Source

- 53.9 WebLogic as a Service Resource Model for V1

- 53.9.1 Cloud

- 53.9.1.1 Viewing Details of the Cloud Resource

- 53.9.2 JaaS Service Family Type

- 53.9.2.1 Viewing Detail of the JaaS Service Family Type Resource

- 53.9.2.2 Creating an Application Instance Component by Passing a POST Request on the Jaas Service Family Type Resource

- 53.9.3 Zone

- 53.9.3.1 Viewing Details of the Zone Resource

- 53.9.4 JavaPlatformTemplate

- 53.9.4.1 Viewing Details of the Java Platform Template Resource

- 53.9.4.2 Creating a Java Platform Instance by Passing POST Request on a Java Platform Template

- 53.9.4.3 Viewing Details of the Java Platform Request Resource

- 53.9.5 Java Platform Instance

- 53.9.5.1 Viewing Details of the Java Platform Instance Resource

- 53.9.5.2 Deleting a Service Instance by Passing a DELETE Request on a Java Platform Instance

- 53.9.5.3 Viewing Status of the DELETE Request

- 53.9.5.4 Creating an Application Instance Deployment By Passing a POST Request on Java Platform Instance

- 53.9.5.5 Viewing Status of the Application Instance Deployment Creation Request

- 53.9.5.6 Creating a Data Source by Passing a POST Request on the Java Platform Instance Resource

- 53.9.5.7 Viewing Status of the Data Source Creation Request

- 53.9.5.8 Scaling Up/Down the Service Instance

- 53.9.6 Application Instance Deployment

- 53.9.6.1 Viewing Details of the Application Instance Deployment Resource

- 53.9.6.2 Deleting an Application Instance Deployment

- 53.9.6.3 Viewing Status of the Application Instance Deployment Deletion Request

- 53.9.6.4 Starting, Stopping and Redeploying an Application Instance Deployment

- 53.9.7 DataSource

- 53.9.7.1 Viewing Details of the Data Source Resource

- 53.9.7.2 Deleting a Data Source

- 53.9.7.3 Viewing Status of the Data Source Deletion Request

- 53.9.7.4 Updating a Data Source

- 53.9.7.5 Viewing Status of the Data Source Request

- 53.9.8 Application Instance Component

- 53.9.8.1 Viewing Details of the Application Instance Component Resource

- 53.9.8.2 Deleting an Application Instance Component

- 53.10 Application Component Filtering for V1

- 53.10.1 Filtering Service Templates

- 53.10.2 Filtering Zones

- 53.11 Load Balancer Configuration for V1

- 53.11.1 Load Balance Configuration REST API Examples

- 53.11.1.1 Viewing Details of the Load Balancer Configuration Resource

- 53.11.1.2 Viewing Details of the specified Load Balancer Configuration

- 53.11.1.3 Editing the Load Balancer Configuration

- 53.11.1.4 Adding a Load Balancer Configuration

- 53.12 Quotas for V1

- 53.12.1 Quotas REST API Examples

- 53.12.1.1 Viewing Details of the Quota Settings for All SSA User Roles

- 53.12.1.2 Creating Quota Settings for a SSA User Role

- 53.12.1.3 Editing Quota Settings for a SSA User Role

- 53.12.1.4 Deleting Quota Settings for a SSA User Role

- 53.13 Service Templates for V1

- 53.13.1 Creating a Service Template

- 53.14 User Operation REST API Examples for V1

- 53.14.1 Starting/Stopping Service Instances

- 53.14.2 Rescheduling Service Instance

- 53.14.3 Viewing Details of the Java EE Application Components in Software Library

- 53.14.4 Deploying an Application as a Library

- 53.14.4.1 Deploying an Application as a Library

- 53.14.4.2 Redeploying an Application as a Library

- 53.14.4.3 Undeploying an Application as a Library

- 53.14.5 User Operations for Scheduling Support

- 53.14.5.1 Creating a Service Instance

- 53.14.5.2 Scaling Up a Service Instance

- 53.14.5.3 Scaling Down a Service Instance

- 53.14.5.4 Deleting a Service Instance

- 53.15 EMCLI Support for Administration Operations

54 SOAaaS and OSBaaS APIs

- 54.1 PaaS Infrastructure Zone and Middleware Pool

- 54.1.1 Viewing Details of All the Resource Providers

- 54.1.2 Creating a PaaS Infrastructure Zone for SOA/OSB Domains

- 54.1.3 Creating Middleware Pool for SOA/OSB

- 54.1.4 Updating a PaaS Infrastructure Zone

- 54.1.5 Updating a Middleware Pool

- 54.1.6 Deleting a Resource Provider (PaaS Infrastructure Zone or Middleware Pool)

- 54.2 Quotas

- 54.2.1 Viewing Details of Quota Settings

- 54.2.2 Creating a Quota for a SSA User Role

- 54.2.3 Updating a Quota for a SSA User Role

- 54.2.4 Deleting a Quota for a SSA User Role

- 54.3 Service Templates

- 54.3.1 Viewing Details of all Service Templates

- 54.3.2 Viewing Details of a Specific Service Template

- 54.3.3 Deleting a Service Template

- 54.3.4 Creating a Service Template

- 54.3.4.1 Viewing Service Template Types

- 54.3.4.2 Getting Service Template Metadata Details

- 54.3.4.3 Getting the Resource Provider Characteristics

- 54.3.4.4 Creating the Service Template Configuration

- 54.3.4.5 Creating Service Templates Using these Responses

- 54.4 Load Balance Configuration

- 54.4.1 Viewing Details of all the Load Balancer Configuration Resource

- 54.4.2 Viewing Details of the specified Load Balancer Configuration

- 54.4.3 Creating the Load Balancer Configuration

- 54.4.4 Editing the Load Balancer Configuration

- 54.4.5 Deleting a Load Balancer Configuration

- 54.5 SSA User Operation API Examples

- 54.5.1 Viewing Details of all Service Templates

- 54.5.2 Viewing Details of all Service Instances

- 54.5.3 Viewing all Service Instances With UP Status

- 54.5.4 Viewing the Service Offering Metadata

- 54.5.5 Creating a Service Instance Request

- 54.5.6 Viewing all the Action IDs for the Service Instances

- 54.5.7 Stopping a Service Instance

- 54.5.8 Starting a Service Instance

- 54.5.9 Deleting a Service Instance

- 54.5.10 Scaling Up a Service Instance

55 Rapid Start Cloud Setup

- 55.1 Introduction

- 55.2 Installing the Kit

- 55.2.1 OMS Host

- 55.2.2 Other Hosts

- 55.3 Contents of the Kit

- 55.4 Prerequisites

- 55.4.1 Oracle Management Server

- 55.4.2 EMCLI Setup

- 55.4.3 Infrastructure Setup

- 55.4.3.1 Pluggable Database as a Service

- 55.4.3.1.1 Database as a Service

- 55.5 Artifacts Created by the Rapid Start Kit

- 55.6 Rapid Kit Modes

- 55.6.1 Simple Mode (On Exadata Only)

- 55.6.2 Advanced Mode (Exadata and Non Exadata)

- 55.7 Cloud Setup Inputs: Simple Mode

- 55.7.1 Pluggable Database as a Service: Simple Mode

- 55.7.2 Database as a Service: Simple Mode

- 55.7.3 Input Customization: Simple Mode

- 55.8 Cloud Setup Inputs: Advanced Mode

- 55.8.1 Creating Custom Users

- 55.8.2 Pluggable Database as a Service: Advanced Mode

- 55.8.3 Database as a Service: Advanced Mode

- 55.9 Command Line Interface

- 55.9.1 Usage

- 55.9.2 Database as a Service (DBaaS)

- 55.9.3 Pluggable Database as a Service (PDBaaS)

- 55.9.4 Securing the Cloud Setup

- 55.9.4.1 Expire Default Passwords

- 55.9.5 Set New Passwords

- 55.10 Rapid Start Kit Sample Run

56 Chargeback and Metering EMCLI Verbs

- 56.1 Performing UI Equivalent Chargeback Operations

- 56.1.1 list_chargeback_entity_types

- 56.1.2 list_chargeback_entities

- 56.1.3 add_chargeback_entity

- 56.1.4 remove_chargeback_entity

- 56.1.5 list_charge_plans

- 56.1.6 assign_charge_plan

- 56.1.7 unassign_charge_plan

- 56.1.8 list_cost_centers

- 56.1.9 assign_cost_center

- 56.1.10 unassign_charge_plan

- 56.2 Using Custom Charge Items

- 56.2.1 list_charge_item_candidates

- 56.2.2 create_charge_item

- 56.2.3 delete_charge_item

- 56.3 Examples of Custom Charge Item Verb Use

- 56.3.1 Metric Extension (PGA)

- 56.3.2 Metric Extension (Application A Orders)

- 56.3.3 Configuration Extensions

- 56.4 Creating a Generic Entity Type

- 56.5 Retrieving Metering Data from Enterprise Manager

- 56.5.1 get_metering_data

- 56.5.2 Data Retrieval Output

- 56.5.3 get_metering_data Examples

57 Introduction to Blueprints

- 57.1 Introduction to Blueprints

- 57.2 Uses of the Blueprint

- 57.3 Enterprise Manager Cloud Concepts

- 57.4 Blueprint Concepts

- 57.5 Deploying a Blueprint

- 57.6 Blueprint Deployment Processing

- 57.7 Blueprint Examples

- 57.7.1 Blueprint Structure and Basics

- 57.7.1.1 Simple Blueprint

- 57.7.1.2 Simple Resource: Database Service Instance

- 57.7.1.3 Intrinsic Functions

- 57.7.1.4 Simple Resource with Parameter

- 57.7.1.5 Data Section (Named Literals)

- 57.7.2 Putting It All Together – Multiple Interdependent Resources

- 57.7.2.1 Macro Section

- 57.7.2.2 Attributes of Created Resources (Dependencies)

- 57.7.3 Visual Depiction of Blueprint Processing

- 57.8 Conclusion

58 Cloud Blueprints and Blueprint Reference

- 58.1 Installing the Blueprint Processor

- 58.1.1 Linux (Oracle Linux)

- 58.1.1.1 Installing Python

- 58.1.1.2 Installing the Blueprint Processor from Zip File

- 58.1.1.3 Testing the Installation

- 58.1.2 Windows

- 58.1.2.1 Installing Python

- 58.1.2.2 Installing the Blueprint Processor from Zip File

- 58.1.2.3 Testing the Installation

- 58.2 Optional Components for Graphical Summary Report

- 58.3 Running the Blueprint Processor

- 58.4 Blueprint Processing Phases

- 58.4.1 Initialization

- 58.4.2 Input Parameter Evaluation

- 58.4.3 Resource Creation

- 58.4.4 Outputs

- 58.5 Language Specifics

- 58.6 Overview of Blueprint Content

- 58.6.1 Inputs Section

- 58.6.1.1 Example 1

- 58.6.1.2 Example 2

- 58.6.1.3 Example 3

- 58.6.2 Resources Section

- 58.6.3 Outputs Section

- 58.6.4 Data Section

- 58.6.5 Macros Section

- 58.6.6 Expressions

- 58.6.6.1 Path Expressions

- 58.6.6.2 Operator Summary

- 58.6.6.3 Example: Viewing all values of Info

- 58.6.6.4 Examples: Viewing Blueprint Values

- 58.6.6.5 Examples: Browsing Your Cloud

- 58.6.6.6 Eval or Blueprint Expressions

- 58.6.7 Intrinsic Functions

- 58.6.7.1 Evaluation Intrinsics

- 58.6.7.1.1 f_path(pathExpr)

- 58.6.7.1.2 Example - Value from Data Section

- 58.6.7.1.3 Example 2 - Value from Inputs Section

- 58.6.7.1.4 Example 3 - Default Input Parameter Value via Cloud Lookup

- 58.6.7.1.5 f_eval(blueprintExpr)

- 58.6.7.1.6 Example (Contrived)

- 58.6.7.2 Resource Access Intrinsics

- 58.6.7.2.1 f_getResourceAttr(bpResName, pathExpr)

- 58.6.7.2.2 f_getResourceURI(bpResName)

- 58.6.7.3 Lookup Intrinsics

- 58.6.7.3.1 f_getTemplateURI(name, type)

- 58.6.7.3.2 f_getZoneURI(name, type)

- 58.6.7.3.3 f_getAppCompURI(name, owner, version) …

- 58.6.7.4 Debugging Intrinsics

- 58.6.7.4.1

- 58.6.7.4.2 f_print(expression, [printpointMessage])

- 58.6.7.5 Other Intrinsics

- 58.7 Dealing with Errors

- 58.7.1 YAML Syntax Errors

- 58.7.2 Protocol Version Mismatch

- 58.7.3 Expression Evaluation Error

- 58.7.4 Cloud Resource Creation Error

- 58.8 Simulation Mode

- 58.9 Debugging with the Blueprint Processor

- 58.9.1 Printing Intermediate Results

- 58.9.2 Pause Points

- 58.9.3 Breakpoints

- 58.9.4 Debugger Commands

- 58.9.4.1 Path Command

- 58.9.4.2 Continue Command

- 58.9.4.3 Exit Command

- 58.9.4.4 Eval Command

- 58.10 Tips and Hints

- 58.10.1 Editing YAML - Notepad ++ Example

- 58.10.2 YAML Duplicate and Name / Value Pairs

- 58.10.3 Explicit Dependencies

- 58.10.4 Hint: Use &rsquor;-T' Option

- 58.10.5 Help Forums

59 Infrastructure as a Service REST APIs

- 59.1 Summary of Infrastructure as a Service REST APIs

- 59.2 Infrastructure as a Service Resource Model

- 59.2.1 Changes for Infrastructure as a Service

- 59.2.2 IaaS Zone [application/oracle.com.cloud.iaas.Zone]

- 59.2.3 AssemblyInstance [application/oracle.com.cloud.common.AssemblyInstance+json]

- 59.2.4 Scalability Group [application/oracle.com.cloud.common.ScalabilityGroup+json]

- 59.2.5 VM [application/oracle.com.cloud.common.VM+json]

- 59.2.6 VNet [application/oracle.com.cloud.common.VNet+json]

- 59.2.7 NetworkInterface [application/oracle.com.cloud.common.NetworkInterface+json]

- 59.2.8 VMTemplate [application/oracle.com.cloud.common.VMTemplate+json]

- 59.2.9 AssemblyTemplate [application/oracle.com.cloud.common.AssemblyTemplate+json]

- 59.2.10 IaasServiceFamilyType [application/oracle.com.cloud.iaas.IaasServiceFamilyType+json]

- 59.2.11 Iaas Quota Definition [application/oracle.com.cloud.iaas.Quota+json]

- 59.3 Infrastructure as a Service REST API Examples

- 59.3.1 Creating a Service Instance

- 59.3.1.1 Creating a VM

- 59.3.1.1.1 POST to the IaaS Zone on which the VM is to reside

- 59.3.1.1.2 POST to the VM Template on Which the VM is to be Based on

- 59.3.1.2 Viewing Details of the VM Creation Status

- 59.3.1.3 Creating an Assembly Instance

- 59.3.2 Updating a VM Service Instance

- 59.3.2.1 Changing the VM Status

- 59.3.2.2 Changing the VM Size

- 59.3.2.3 Adding a VM Disk

- 59.3.3 Deleting a Service Instance

- 59.3.4 Listing Service Instances

- 59.3.5 Searching Service Templates

- 59.4 Support for Version 1000

60 Testing as a Service REST APIs

- 60.1 Summary of Testing as a Service REST APIs

- 60.2 Introduction to Testing as a Service REST API

- 60.2.1 How to Use Testing as a Service REST API

- 60.2.2 How Resource Models Are Used in TaaS

- 60.3 Testing as a Service Resource Model

- 60.3.1 Application Resource

- 60.3.2 TestDriverType Resource

- 60.3.3 TestDriver Resource

- 60.3.4 QuotaUsage Resource

- 60.3.5 TestAsset

- 60.3.6 OltScenario

- 60.3.7 CustomParameters

- 60.3.8 OFTAssetScript Resource

- 60.3.9 OftAssetScriptCsvDatabanks

- 60.3.10 OftPlaybackSettings Resource

- 60.3.11 OftDatabaseDatabanks

- 60.3.12 TestEnvironment

- 60.3.13 Test

- 60.3.14 Trial

- 60.3.15 Metric

- 60.3.16 MetricValue

- 60.3.17 OltSession

- 60.3.18 OltCounter

- 60.3.19 OltCounterValue

- 60.3.20 OftTrialAssetExecution

- 60.3.21 TestDriverInstance

- 60.3.22 TestEnvironmentInstance Resource

- 60.3.23 Operation

- 60.3.24 TestType

- 60.3.25 Target

- 60.3.26 OltAgent

- 60.4 Testing as a Service REST API Examples

- 60.4.1 Viewing Details of all Applications

- 60.4.2 Querying an Application by Context ID

- 60.4.3 Viewing Details of All Test Assets

- 60.4.4 Querying a Test Asset by Context ID

- 60.4.5 Viewing Details of all Test Environments

- 60.4.6 Querying a Test Environment by Context ID

- 60.4.7 Viewing Details of all Test Drivers

- 60.4.8 Querying a Test Driver by Context ID

- 60.4.9 Querying Test Driver Type by Context ID

- 60.4.10 Viewing Details of all Test Environment Instances

- 60.4.11 Querying a Test Environment Instance by Context ID

- 60.4.12 Creating a Test Environment Instance

- 60.4.13 Executing an Operation on Test Environment / Driver Instance

- 60.4.14 Deleting a Stopped Test Environment Instance

- 60.4.15 Viewing Details of All Test Driver Instances

- 60.4.16 Querying a Test Driver Instance by Context ID

- 60.4.17 Creating a Test Driver Instance

- 60.4.18 Deleting a Stopped Test Driver Instance

- 60.4.19 Viewing Details of all Tests

- 60.4.20 Querying a Test by Context ID

- 60.4.21 Creating a Test

- 60.4.22 Updating a Test

- 60.4.23 Deleting a Test

- 60.4.24 Viewing Details of All Trials

- 60.4.25 Querying a Trial by Context ID

- 60.4.26 Creating a New Trial

- 60.4.27 Updating a Trial

- 60.4.28 Deleting a Trial

Part XVII Appendixes

A Use Case: Refreshing Test Data

- A.1 The Challenge of Refreshing Test Data

- A.2 The Enterprise Manager Solution

- A.3 Create the Test Master Database

- A.4 Mask and Subset Data on the Test Master Database

- A.5 Create Database Clones On-Demand

- A.6 Implementing the Example Scenario

- A.6.1 Assign and Create Roles in Enterprise Manager

- A.6.1.1 Assign Administrator Roles to Administrators

- A.6.1.2 Create Custom Roles for Self Service Users

- A.6.1.3 Create Self Service Users

- A.6.2 Create a Backup of the Production Database

- A.6.3 Prepare to Mask and Subset Data

- A.6.3.1 Plan the Masking and Subsetting Strategy

- A.6.3.2 Create the Application Data Model (ADM)

- A.6.3.3 Create the Masking Definition

- A.6.4 Configure the Storage Server

- A.6.5 Create the Test Master Database on the Storage Volume

- A.6.6 Enable the Test Master Database to Use Snap Clone

- A.6.7 Mask and Subset the Test Data

- A.6.7.1 Create the Subset Definition

- A.6.7.2 Save and Execute the Subset Script

- A.6.8 Configure the Database Cloud Self Service Portal

- A.6.8.1 Create the PaaS Infrastructure Zone

- A.6.8.2 Create Database Pools

- A.6.8.3 Configure Request Settings

- A.6.8.4 Set Up User Quotas

- A.6.8.5 Create a Database Provisioning Profile Using Snapshots

- A.6.8.6 Create the Service Template

- A.6.9 Create Database Clones to Use in Testing On-Demand

- A.7 Ongoing Refresh of Test Data

Index

Preface

This book describes how to set up a Private Cloud, manage and deploy virtualization targets with Oracle Enterprise Manager 12c Release 5. The preface covers the following:

- Audience

- Supported Plug-ins

- Documentation Accessibility

- Related Documents

- Conventions

Audience

This document is intended for administrators who want to setup and manage the cloud infrastructure. It is also intended for Cloud Administrators, Self Service Administrators and Self Service Users.

Supported Plug-ins

The features in this book pertain to the following plug-ins:

Note:
It is recommended that you check the My Oracle Support Note 1549855.1 for the latest patches.

Plug-in Name (My Oracle Support

Plug-in Name (Self Update)

Version

Enterprise Manager for Oracle Cloud

Oracle Cloud Application

12.1.0.10

Enterprise Manager for Oracle Consolidation Planning and Chargeback
Note: This is an optional plugin.

Oracle Consolidation Planning and Chargeback

12.1.0.7

Enterprise Manager for Oracle Virtualization

Oracle Virtualization

12.1.0.7

Enterprise Manager for Oracle Virtualization Infrastructure

Oracle Virtual Infrastructure

12.1.0.2

Note: The Oracle Virtual Infrastructure plugin is required for direct monitoring of Xen based systems. See Section 10, "Direct Monitoring of Xen Based Systems".

Enterprise Manager for Oracle Cloud Framework

Oracle Cloud Framework

12.1.0.3

Enterprise Manager for Oracle Database

Oracle Database

12.1.0.8

Enterprise Manager for Storage Management
Note: This is an optional plugin

Oracle Storage Management Framework

12.1.0.6

Enterprise Manager for Oracle Fusion Middleware

Oracle Fusion Middleware

12.1.0.8

Note:
To use the latest updates, you must upgrade all the plugins to the versions listed in the table. For instance, if you upgrade the Oracle Database plugin from 12.1.0.7 to 12.1.0.8, you must upgrade the Oracle Cloud Application plugin from 12.1.0.9 to 12.1.0.10.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Related Documents

For more information, see the following documents in the Enterprise Manager documentation set:

- Oracle Enterprise Manager Cloud Control Introduction

- Oracle Enterprise Manager Cloud Control Basic Installation Guide

- Oracle Enterprise Manager Cloud Control Advanced Installation and Configuration Guide

- Oracle Enterprise Manager Cloud Control Administrator's Guide

For the latest releases of these and other Oracle documentation, check the Oracle Technology Network at:

http://www.oracle.com/technetwork/documentation/index.html#em

Oracle Enterprise Manager also provides extensive Online Help. Click Help at the top of any Enterprise Manager page to display the online help window.

Conventions

The following text conventions are used in this document:

Convention

Meaning

boldface

Boldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.

italic

Italic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.

monospace

Monospace type indicates commands within a paragraph, URLs, code in examples, user names, text that appears on the screen, or text that you enter.

1 What's New in This Guide?

In addition updating the books for an incremental software release or a patch set release, Oracle revises its books regularly to incorporate bug fixes and value-added feedback from customers, product managers, support teams, and other key stakeholders. Every time a book is revised, the revision number of the book is increased by one and then published on Oracle Technology Network (OTN).This chapter lists the changes incorporated in the latest revision and all the previous revisions of Oracle Enterprise Manager Cloud Administration Guide (this book). Note that the latest revision is the current revision published on OTN, and the latest revision always contains all the changes incorporated in its previous revisions.

Since the last revision, the following changes have been made:

- The Service Template REST APIs have been moved over to the new (V2) framework and have thereby undergone a change. Also there are new additions and updates to the examples. See, Section 48.3.5.3, "Service Templates and Service Template REST API Examples".

- The PaaS Zones and PaaS Zone resources have moved over to the new (V2) framework. Therefore, there are changes to the Data Models and the REST APIs. See, Section 48.3.1, "PaaS Zones and PaaS Zone REST APIs".

- The placement of the chapters in the Part XV - Using the Cloud APIs is changed. See, Part I, "Using the Cloud APIs".

- Added new REST APIs for DBaaS Software pool. See, Section 48.3.2.3, "Software Pool REST API Examples".

- Support for custom database placement option using REST APIs. See, Section 50.8, "Configuring Custom Database Placement Option Using REST APIs".

- Updated the EM CLI Verbs for Database as a Service Administrator chapter. See, Chapter 47, "EM CLI Verbs for Database as a Service Administrator".

Part I

Cloud Management Overview

This section provides an introduction to the Oracle Cloud offering and explains the various Cloud service models available.

It contains the following sections:

- Chapter 2, "Cloud Management - An Overview"

2 Cloud Management - An Overview

This chapter introduces Cloud Management and provides an overview of the various service offerings and components available with the Oracle Cloud platform. It also describes the Consolidation Planner, which is useful in planning your Cloud requirements, as well as various life cycle management capabilities of Oracle Enterprise Manager including resource management, metering and chargeback support.

This chapter contains the following sections:

- Introduction to Cloud Management

- Managing the Cloud Management Lifecycle With Enterprise Manager

- Understanding the Oracle Cloud Service Models

- Accessing Oracle Cloud Features

2.1 Introduction to Cloud Management

Enterprises and Cloud service providers can use Oracle Enterprise Manager to build and operate their Cloud services. The functionality provided by Enterprise Manager spans the entire Cloud lifecycle and allows you to setup and manage any type of Cloud service.

Enterprises must support hundreds or even thousands of applications to meet growing business demands. This growth has driven up the cost of acquiring and managing servers and storage. Clouds enable customers to consolidate servers, storage, and database workloads onto a shared hardware and software infrastructure.

By providing on-demand access to servers and storage in a self-service, elastically scalable and metered manner, Enterprise Manager offers the following benefits.

- Increasing Quality of Service: IT organizations are not only trying to drive down costs, they are also looking at solutions that will simultaneously improve quality of service in terms of performance, availability and security. Cloud consumers inherently benefit from the high availability characteristics built into the Cloud.
Organizations can also enforce a unified identity and security infrastructure as part of standardized provisioning. Thus, instead of bolting on security policies, these policies and compliance regulations are part of the provisioning process.

- Enabling Faster Deployment: Building the Cloud infrastructure using standard building block components (for example, servers, CPUs, storage, and network), configurations, and tools, enables a streamlined, automated, and simplified deployment process.

- Providing Resource Elasticity: The ability to grow and shrink the capacity of a given database, both in terms of storage size and compute power, allows applications the flexibility to meet the dynamic nature of business workloads.

- Rapid Provisioning: Databases in a Cloud can be rapidly provisioned, often by way of a self-service infrastructure, providing agility in application deployment. This reduces overall time in deploying production applications, development platforms, or creating test bed configurations.

2.2 Managing the Cloud Management Lifecycle With Enterprise Manager

Enterprise Manager allows you to manage the entire Cloud lifecycle which includes the following:

- Planning

- Setting Up the Cloud

- Building the Cloud

- Testing and Deploying a Service

- Monitoring and Managing the Cloud

- Metering, Charging, and Optimization

Figure 2-1 Cloud Lifecycle

2.2.1 Planning

Using Enterprise Manager, you can transform existing data centers into a Cloud environment. Before setting up a Cloud, you should map out your infrastructure requirements, such as the physical and virtual networks, storage arrays, applications and so on.

The Enterprise Manager Consolidation Planner is a powerful tool that helps administrators plan the Cloud architecture. It allows you to identify source and destination targets and applicable technical and functional constraints such as where the application can reside, and so on. You can generate consolidation advisories that may include plans to move from Physical to Virtual (P2V), Physical to Physical (P2P), or Physical to an Exadata solution. The Consolidation Planner can also be used to identify the database consolidation plan which is helpful when setting up Database-as-a-Service (DBaaS). See Section 44, "Using Consolidation Planner" for details.

2.2.2 Setting Up the Cloud

Enterprise Manager can be used to model Infrastructure-as-a-Service (IaaS), Database-as-a-Service (DBaaS), and Middleware-as-a-Service (MWaaS) clouds. It is important to select the appropriate Cloud Service Model (as discussed in Section 2.3, "Understanding the Oracle Cloud Service Models") that suits the needs of your users and organization. To facilitate Cloud setup, Enterprise Manager offers capabilities for both physical and virtual infrastructure.

For physical infrastructure, Enterprise Manager leverages its core automation framework of deployment procedures, job system, and the enterprise software library. It offers out of the box deployment procedures that can be used for provisioning the pre-requisite software for both databases and middleware. The same automation framework is also used to interact with third party storage systems for the purposes of data cloning and storage management.For virtual infrastructure, it offers bare metal provisioning of hypervisor and setting up server and storage pools. Once completed, you can group all of these into zones based on functional or QoS characteristics. Enterprise Manager leverages the Virtualization Storage Connect technology, where the Cloud setup process is integrated with storage technologies like Netapp, Hitachi, Fujitsu. Administrators can define standardized service templates for databases and middleware platforms, and publish these as services. These services can represent single-tier templates or complex, multi-tier enterprise platforms.

Enterprise Manager uses components called assemblies. These assemblies help package a multi-tier platform into a single metadata which can be deployed by the Enterprise Manager Cloud service. An assembly is essentially a complete multi-tier application stack - including database, application server and other middleware components - packaged as a single downloadable entity. When an assembly is deployed, the result is the creation of a set of related virtual machines representing every tier of the application stack.

Using assemblies, platform architects can model the entire platform topology graphically, define all dependencies, deployment constraints, and deliver the entire stack in the form of an assembly. This assembly can then be published to the centralized Software Library in Enterprise Manager, and be made available to developers as a Cloud service – an entire application development stack, that can be provisioned quickly.Administrators can create different types of services depending upon the business needs. For example, administrators may offer a database service based on different versions of the Oracle database, but only the ones approved for use within the business.

Enterprise Manager supports role-driven access control. Resource limits, or quotas, are assigned to roles to control access to services. This prevents unauthorized usage of a service while also preventing a few users from using majority of the resources in the Cloud. Integration with LDAP allows Enterprise Manager to inherit enterprise roles.

2.2.3 Building the Cloud

Enterprise Manager allows entire applications or components to be packaged and published to the Cloud as a service. This expedites application development and provisioning processes within an organization.

Developers can publish utility components and applications in the form of assemblies and service templates for reuse within their groups. Similarly, allowing applications to be available as assemblies allows testing teams, business analysts or production teams to deploy pre-built applications in a few clicks.

2.2.4 Testing and Deploying a Service

After an application has been built, it needs to be tested. Enterprise Manager provides a testing portfolio that allows users to test both application changes and changes to the database. The testing solution provides the ability to capture a production load and replay in a test environment, so that the results are predictable. The testing solution also leverages the diagnostic capabilities built into the technology layers and provides prescriptions for remediation.Enterprise Manager provides a self-service application that lets end-users deploy a service. This self service application can also be customized. End users can choose to provision application assemblies, along with databases and platforms, in an on-demand manner. For each request, users can specify the amount of underlying resources such as CPU, memory, and so on that they require for each component. Enterprise Manager automatically provisions the requested service and the appropriate resources. The self-service application also lets users define policies to scale out or scale back resources based on schedule or performance metrics. For example, a user could set a policy to elastically scale out a Web server if the processor load on existing Web servers exceeds a certain threshold value.

2.2.5 Monitoring and Managing the Cloud

Enterprise Manger offers a number of inherent monitoring and management features that collectively comprise a full Cloud management system.

For example, Enterprise Manager provides the ability to collate targets into groups for better manageability. The Administration Group feature allows administrators to define monitoring settings, compliance standards and cloud policies through templates and also organize each target in multiple hierarchies, such as Line of Business and Lifecycle status. This allows the monitoring framework to scale to thousands of servers, databases and middleware targets in the Cloud.

Enterprise Manager's built-in Incident Management system allows you to monitor the Cloud for complex operational issues that may affect performance. You can review, suppress, escalate and remediate events that occur as needed, and even integrate incident escalation with existing support ticketing systems. See the Enterprise Manager Cloud Control Administrator's Guide for details.Contractual Service Level Agreements (SLAs) can be defined to govern the contract between the application owner and the provider of the Cloud. Administrators as well as users can also define management policies that automatically adjust the service resources to ensure that SLAs are met.

The configuration management capabilities of Enterprise Manager are optimized for Cloud environments. For example, Enterprise Manager can monitor vast numbers of configurations continuously to discover changes, measure drifts, pin-point configuration errors, and offer insight into system topologies - all through a single console. Enterprise Manager Cloud management capabilities are also integrated with My Oracle Support. This integration delivers facilities such as Patch Advisories, Service Request Management, Knowledge Management right on-premise and in-context of the overall Cloud.

The IaaS, DBaaS, and MWaaS Home pages provided through the Enterprise Manager Cloud Control user interface allow Cloud administrators to get a summary view of the requests, the general state of the service such as zones, pools, servers, service instances, and databases.

2.2.6 Metering, Charging, and Optimization

The Metering and Chargeback features in Enterprise Manager enable enterprises to account for actual usage versus representative usage. Administrators can also extend the pricing models to account for fixed costs, configurations, administrative expenses, people costs, energy utilization or a combination of these.Cloud Management also entails an ongoing optimization of resources as well as processes to make sure that the service levels are persistent. Enterprise Manager provides administrators and application users with features that help rediscover assets, re-evaluate the performance, rebalance the Cloud, and fine-tune the provisioning process. Chargeback supports basic metrics like CPU, memory, and storage usage. It also offers pricing models based on application usage, database usage, and Middleware-level metrics.

2.3 Understanding the Oracle Cloud Service Models

This section describes the available Oracle Cloud service models available.

- Oracle Cloud Service Models

- Oracle Cloud Anatomy

- IaaS Components

- DBaaS and MWaaS Components

- TaaS Components

2.3.1 Oracle Cloud Service Models

Oracle's Cloud service models can be divided into two primary categories: Infrastructure as a Service, which allows users to request the physical infrastructure required to run applications; and Platform as a Service, which provides the database and middleware components required by applications.

- Infrastructure as a Service (IaaS) Service Model: In the IaaS model, users request servers that are created as guest virtual machines, or Guest VMs.
The IaaS model allows users to request Guest VMs using the Self Service Portal in Enterprise Manager. It also allows users to specify an assembly or a template that is to be deployed on the requested Guest VMs. Using pre-packaged assemblies consisting of the operating system, database software and middleware software, a platform can be deployed using this service.

Users can monitor the services provided using the Self Service Portal and perform limited management operations as permitted. They can also run chargeback reports to review resource usage and chargeback amounts calculated for the resources consumed.

IaaS cloud infrastructure can be built out of Oracle hardware and software components such as Oracle VM, Oracle Solaris, Oracle Enterprise Linux, and so on, or it may have 3rd party components.

- Platform as a Service (PaaS) Service Model: The PaaS model allows you to create platforms onto which consumers can deploy their own applications. A platform resource is typically comprised of a host, an operating system, an Oracle WebLogic Application server - all of which can be virtualized. It can also include an Oracle database or RAC cluster.
Models available with PaaS include:

- Database as a Service (DBaaS) Service Model: In this model, users can request database services (single instance or RAC) through the Self Service Portal. DBaaS is implemented through several options:

- Virtual Machine Based: The database is deployed as a part of a virtual assembly or template, and several virtual machines share the same physical server. This offers the maximum level of isolation (at the operating system level).

- Shared Cluster: The database is deployed on existing clusterware. Typically the grid infrastructure (Oracle Clusterware, ASM) and database software is pre-installed; the Cloud service essentially consists of the deployment of databases on top of that infrastructure.

- Shared Installation: The database is deployed as a single instance database on an existing database installation.

- Pluggable Database as a Service: A pluggable database is deployed. This model provides high consolidation, and minimal administrative and maintenance overhead.

- Snap Clone: You can make a thin-clone using copy on write technology of the database. This model requires minimal space, provides instantaneous cloning, and is ideal for functional testing.

- Full Clone: You can make a full copy of the database. This model is ideal for load testing with significant data updates.

- Shared Database (Schema as a Service): The database service is a schema deployment on an existing database. It is assumed for purposes of metering and chargeback that each of the consumers of the database will use a different service while accessing the database. This service model is also referred to as Schema as a Service.

As in IaaS, users are allowed to perform a few administrative tasks such as start/stop, backup, and recovery of databases. Chargeback reports are also made available for Self Service users.

- Middleware as a Service (MWaaS): In this model, users submit requests for middleware domains to be created. Applications can then be deployed into these domains. MWaaS is implemented through the following option:

- Physical Provisioning Based: The MWaaS platform is built using physical hosts and Fusion Middleware Provisioning.

- Testing as a Service (TaaS): In this model, testing can be made faster and simpler though the Cloud Testing Self Service Portal. The applications being tested can be provisioned to the private cloud using assemblies or to an existing Enterprise Manager target. The TestDrivers need to be provisioned into the private cloud.

2.3.2 Oracle Cloud Anatomy

In the Oracle implementation, Clouds are composed of logical zones. Zones are composed of logical pools and pools are composed of targets on hosts.

The pools in an IaaS zone are collections of one or more Oracle VM servers and their associated storage resources. The pools in DBaaS zones are collections of one or more Oracle Database homes (used for database requests), or databases (used for schema requests) of the same platform and version (for example, Oracle Database 11.2.0.3 RAC on Oracle Linux 6 x86-64), or Oracle Middleware homes of the same platform and version (for example, Oracle Database 11.2.0.2 on Linux x86-64).

In either IaaS or PaaS, Self Service users will request resources at the zone level from a catalog of templates. Enterprise Manager will then determine which pool in the chosen zone can be used to satisfy the request. The needed Enterprise Manager jobs will be initiated on one or more hosts in the selected pool to create the entities required to fulfill the request.

In an IaaS Cloud, self-service users request that servers be created. These are actually guest virtual machines, or Guest VMs. A single IaaS request may result in one or more virtual machines being created complete with database(s), middleware software and deployed applications.

In the DBaaS view of a PaaS Cloud, a self-service user can request that new databases or schemas in existing databases be created. Databases can be single instance or RAC, depending upon the zones and catalog templates to which the user has access. Similarly, in the MWaaS view of the PaaS Cloud, self-service users request that middleware domains be created.

Figure Figure 2-2 shows the Cloud anatomy.

Figure 2-2 Cloud Anatomy

2.3.3 IaaS Components

The IaaS Cloud model consists of the following components:

- Cloud: A Cloud is a set of storage pools, server pools and zones under the programmatic control of a Cloud Controller and the administrative control of the Cloud Administrator. The Cloud Administrator works with the Cost Center Administrator who has paid for the cloud to determine a resource allocation and charge back policy that meets their needs.

- Zone: A Cloud can consist of one of more zones. A zone is a logical grouping of resources - for example, servers and storage entities - that facilitate self-service provisioning and administration. A typical zone may consist of hundreds to thousands of servers.
A zone can be an empty zone or consist of a set of server pools. The second case may be simple to set up and will not require shared storage; however no HA and live migration is permitted within this zone.

Zones are non-overlapping, which means that a resource can only belong to one zone. However, resources within a zone may be accessible from another zone. For example, it is possible for a virtual machine in Zone 1 to interact with a virtual machine in another zone.

- Server Pool: A server pool is a set of tightly coupled group of servers (typically up to 32 servers) that hosts a set of Guest VMs. The servers are assumed to be largely homogeneous in capabilities and in connectivity. High Availability and Live Migration is permitted within a server pool boundary. Each server pool needs to have access to a shared storage subsystem (which could just be an NFS mount point) to facilitate live migration. In addition, access to a clustered file system may be required to maintain the HA heartbeat file.

- Storage Entity: A storage entity is an individual file system or block store. Each storage entity is served by a storage pool. Some entities are free standing and will exist until they are deleted. Other storage entities that are associated with one or more Guest VMs are deleted when those VMs are retired.

- Storage Pool: A storage pool is an abstract storage system that hosts a set of storage entities. A storage pool is generally implemented using a set of storage devices such as disks, SSDs, and storage servers.

2.3.4 DBaaS and MWaaS Components

The DBaaS and MWaaS Cloud structures consist of the following:

- PaaS Infrastructure Zone: A PaaS infrastructure zone is a group of hosts. Each resource in a zone represents a location at which a service instance is to be deployed.
Before you enable or setup DBaaS or MWaaS, you must create a PaaS Infrastructure Zone which allows you to define the placement policy constraints for a specified set of targets and the users to whom this zone will be available.

- Software Pool: A software pool is a set of homogeneous resources. You can create software pools for DBaaS and MWaaS. A Database Pool, which is created in DBaaS, is a collection of database homes, databases, or container databases depending on the type of cloud service model selected. You can create a Middleware Pool, used for MWaaS, which is a collection of middleware homes.
A software pool has the following constraints:

- A target can belong to only one software pool.

- The name of the software pool and the version cannot be modified after it has been created.

- All targets in a software pool must be homogeneous.

- A service template can use multiple zones but only one software pool within each zone.

- Database Provisioning Profile: A database provisioning profile is an entity that captures source database information for provisioning. A profile can represent a complete database or a set of related schemas that form an application.

- Middleware Provisioning Profile: A middleware provisioning profile is used to standardize deployments and help reduce errors when deployment procedures are configured.

- Service Template: A service template is a standardized service definition that is offered to self service users to create databases, schemas, or middleware services.

2.3.5 TaaS Components

The TaaS solution is based on the IaaS platform. Before you set up TaaS, ensure that you have set up Enterprise Manager, and the IaaS components. To use TaaS with the Oracle Load Testing TestDriver, you must download this though the Enterprise Manager self-update.

2.4 Accessing Oracle Cloud Features

Access to the Oracle Cloud features is either through the standard Enterprise Manager console, or the Self Service Portal, which is also part of Enterprise Manager.

Access to the rest of the Enterprise Manager functionality is restricted. This allows enterprises to safely implement Clouds without worrying about exposing the entire infrastructure to the end users.

2.4.1 Enterprise Manager Cloud Control Console

Administrators will use the Enterprise Manager Cloud Control console to set up, monitor, and manage Cloud services. Each service is managed using a page specific to that service. For example, IaaS, DBaaS, MWaaS, and TaaS all have their own pages that can be accessed directly from the Cloud Summary page or from the Enterprise Manager menu.

The Enterprise Manager Cloud Summary page is a single pane that contains the summary of all Cloud services. Enterprise Manager enables a layer of abstraction that hides the underlying complexities of the application from the end-user. This abstraction is delivered via a self-service interface, both in Graphical User Interface (GUI) and Application Programming User Interface (API).

2.4.2 Self Service Portal

To directly manage the Cloud infrastructure, Enterprise Manager provides an out-of-the-box Self Service Portal that allows self-service users to access Cloud services (provisioning applications) without IT intervention. It provides several pre-packaged virtual assemblies and templates for on-demand provisioning, tracks usage of services and resources, and allows data to be used for Chargeback reports and capacity planning.

The Self Service Portal is the Home Page for the self service user. Users who have the necessary privileges can navigate between Services pages by clicking the appropriate radio button. How you use the Portal will vary depending on the type of service you are managing.

Figure 2-3 SSA User Portal

Part II

Setting Up and Enabling Cloud

This section provides an introduction to virtualization concepts and describes how to start managing virtualization targets in Enterprise Manager.

It contains the following sections:

- Chapter 3, "Setting Up the Cloud Management Infrastructure"

- Chapter 4, "How to Enable Cloud"

3 Setting Up the Cloud Management Infrastructure

This chapter describes the initial setup needed before you can begin using the Enterprise Manager Cloud Management solution.

The chapter includes the following sections:

- Setting Up Self Update

- Deploying the Required Plug-ins

- Defining Roles and Assigning Users

- Configuring LDAP Authentication

- Configuring Privilege Delegation Settings

- Customizing the Self Service Login Page

Note:
From the Enterprise Manager 12.1.0.4 release, the Software Library is configured during the installation of Enterprise Manager. It need not to be separately configured.

3.1 Setting Up Self Update

The Self Update feature allows you to expand Enterprise Manager's capabilities by updating Enterprise Manager components whenever new and updated features become available between official releases. Oracle makes functional updates available between releases by publishing them to the Enterprise Manager Store, an external site that is periodically checked by Enterprise Manager to obtain information about available updates.

The updatable entities for the Oracle Cloud platform include:

- Cloud Plug-ins. See Section 3.2, "Deploying the Required Plug-ins"

- Oracle VM Templates and Assemblies. See Section 5.13, "Using Self Update to Download Oracle VM Templates and Virtual Assemblies".

- Database Provisioning Profiles. See Section 15.1.2, "Creating a Database Provisioning Profile Using Database Template".

- Middleware Provisioning Profiles. See Section 13.3.1, "Creating Provisioning Profiles".

Before you can use the Self Update feature, you must satisfy these prerequisites:

- If you are applying an update in online mode, ensure that the My Oracle Support credentials have been set up using the SYSMAN user. This is required to enable entities to be downloaded from the My Oracle Support site.

- The Software Library (also known as the local store) has been configured. Updates are downloaded to this local store before being deployed into Enterprise Manager.

Review the following sections for instructions on setting up Self Update:

- Setting Up Enterprise Manager Self Update Mode

- Assigning Self Update Privileges to Users

- Setting Up the EM CLI Utility (Optional)

3.1.1 Setting Up Enterprise Manager Self Update Mode

In order to set up or modify the Enterprise Manager Self Update feature, you must have Enterprise Manager Super Administrator privileges.

1. Log in to Enterprise Manager as an administrator with Super Administrator privileges.

2. From the Setup menu, select Extensibility, then select Self Update. The Self Update console appears with the default setup displayed.

3. From the General status area, click the Connection Mode status to set either offline or online mode. Enterprise Manager takes you to the Patching Setup page to specify online and offline settings.

4. Once the desired connection mode has been selected, return to the Self Update console.
From here you can select entity types and schedule updates from the Enterprise Manager Update Store.

3.1.2 Assigning Self Update Privileges to Users

Enterprise Manager administrators must have the requisite privileges to use the Self Update feature. The Enterprise Manager Super Administrator must assign the following Self Update roles to these administrators:

- VIEW_SELF_UPDATE: The user can view the Self Update console and can monitor the status of download and apply jobs.

- MANAGE_SELF_UPDATE: The user can schedule download and apply jobs. User can also suppress/unsuppress updates. This privilege implicitly contains VIEW_SELF_UPDATE.

- EM_INFRASTRUCTURE_ADMIN: The user can perform all self update operations. This privilege implicitly contains MANAGE_SELF_UPDATE.

By default, the Super Administrator will be granted EM_INFRASTRUCTURE_ADMIN privilege.

To assign Self Update privileges to regular Enterprise Manager administrators:

1. From the Setup menu, select Security, then select Administrators.

2. Select an administrator and click Edit.

3. From the Roles page, assign the appropriate Self Update roles.

3.1.3 Setting Up the EM CLI Utility (Optional)

If you plan to apply software updates in offline mode, you will need to use the Enterprise Manager Command Line Utility, or EM CLI, to import entity archives for deployment to Enterprise Manager.

A page is provided in the Enterprise Manager Cloud Control console with instructions on setting up EMCLI. Access the page by appending /console/emcli/download to the URL used to access the Cloud Control console:

https://emcc_host:emcc_port/em

For example:

https://emcc_host:emcc_port/em/console/emcli/download

3.2 Deploying the Required Plug-ins

Much of the functionality available in Enterprise Manager Cloud Control is made available through plug-ins. As its name implies, a plug-in is a component or module that can be plugged into an existing Enterprise Manager installation to extend its management and monitoring capabilities.

The features that collectively comprise the Oracle Cloud Management solution are provided via several plug-ins which must be deployed to your Oracle Management Service (OMS). The plug-ins that must be deployed to enable each Cloud model are listed below.

You can deploy the plug-ins needed to enable Cloud in two ways:

- If you have not yet installed Enterprise Manager Cloud Control, or have not yet upgraded to the latest Enterprise Manager release, you can deploy the plug-ins as part of the installation or upgrade process. You will select the Advanced Install mode and in the Select Plug-ins screen, select the plug-ins that you wish to install.

- If you already have Enterprise Manager Cloud Control 12c installed, you must download the needed plug-ins to the Software Library. You can then deploy the plug-ins to your Oracle Management Service (OMS).
See the Enterprise Manager Cloud Control Administrator's Guide for instructions on downloading and deploying the plugins.

Note:

- The default plugins are:
- Enterprise Manager for Oracle Database

- Enterprise Manager for Oracle Fusion Middleware

- Enterprise Manager for Oracle Cloud Framework

- The Enterprise Manager for Oracle Consolidation Planning and Chargeback plugin is an optional plugin for all service families and is required only you are using the chargeback features.

- For a complete list of all cloud plug-ins along with the version numbers, see Supported Plug-ins. You must check for any plug-ins updates that are available and ensure that the latest version has been downloaded.

Plug-ins Required to Enable Infrastructure as a Service (IaaS)

- Enterprise Manager for Oracle Cloud (listed as Oracle Cloud Application in Self Update)

- Enterprise Manager for Oracle Virtualization (listed as Oracle Virtualization in Self Update)

- Enterprise Manager for Oracle Virtualization Infrastructure (listed as Oracle Virtual Infrastructure in Self Update)

- Enterprise Manager for Oracle Cloud Framework (listed as Oracle Cloud Framework in Self Update)

- Enterprise Manager for Oracle Consolidation Planning and Chargeback (listed as Oracle Consolidation Planning and Chargeback in Self Update)

Plug-ins Required to Enable Database as a Service (DBaaS)

- Enterprise Manager for Oracle Cloud (listed as Oracle Cloud Application in Self Update)

- Enterprise Manager for Oracle Virtualization (listed as Oracle Virtualization in Self Update)

- Enterprise Manager for Oracle Consolidation Planning and Chargeback (listed as Oracle Consolidation Planning and Chargeback in Self Update)

- Enterprise Manager for Oracle Database (listed as Oracle Database in Self Update)

- Enterprise Manager for Storage Management (listed as Oracle Storage Management Framework in Self Update)

- Enterprise Manager for Oracle Cloud Framework (listed as Oracle Cloud Framework in Self Update)

Note:
When you are upgrading to the latest plugin versions, you must upgrade them in the following sequence:

1. Enterprise Manager for Oracle Cloud Framework

2. Enterprise Manager for Oracle Database

3. Enterprise Manager for Oracle Fusion Middleware (Mandatory even if not performing any Fusion Middleware or Middleware as a Service operations).

4. Enterprise Manager for Oracle Virtualization

5. Enterprise Manager for Oracle Cloud (This plugin cannot be upgraded unless the Enterprise Manager for Oracle Fusion Middleware plugin has been upgraded).

6. Enterprise Manager for Storage Management

Plug-ins Required to Enable Middleware as a Service (MWaaS)

- Enterprise Manager for Oracle Consolidation Planning and Chargeback (listed as Oracle Consolidation Planning and Chargeback in Self Update)

- Enterprise Manager for Oracle Fusion Middleware (listed as Oracle Fusion Middleware in Self Update)

- Enterprise Manager for Oracle Cloud Framework (listed as Oracle Cloud Framework in Self Update)

Note:

- The Enterprise Manager for Cloud and the Enterprise Manager for Oracle Virtualization plugins are not required if you are using Middleware as a Service for the first time. The features that are part of these plugins have now been bundled with the Enterprise Manager for Oracle Fusion Middleware 12.1.0.7 plugin onwards.

- If you have already deployed the Enterprise Manager for Cloud plugin (12.1.0.8 or earlier), you must upgrade the following plugins to use the new features in this release:
- Enterprise Manager for Oracle Cloud to 12.1.0.10

- Enterprise Manager for Oracle Cloud Framework to 12.1.0.3

- Enterprise Manager for Oracle Virtualization to 12.1.0.8

- Enterprise Manager for Oracle Fusion Middleware to 12.1.0.8

Plug-ins Required to Enable Testing as a Service (TaaS)

- Enterprise Manager for Oracle Cloud (listed as Oracle Cloud Application in Self Update)

- Enterprise Manager for Oracle Virtualization (listed as Oracle Virtualization in Self Update)

- Enterprise Manager for Oracle Consolidation Planning and Chargeback (listed as Oracle Consolidation Planning and Chargeback in Self Update)

- Enterprise Manager for Oracle Cloud Framework (listed as Oracle Cloud Framework in Self Update)

Plug-ins Required for Direct Monitoring of Xen Based Systems

- Enterprise Manager for Oracle Virtualization Infrastructure (listed as Oracle Virtual Infrastructure in Self Update)

Plug-ins Required to Enable Infrastructure Compute as a Service

- Enterprise Manager for Oracle Cloud (listed as Oracle Cloud Application in Self Update)

- Enterprise Manager for Oracle Cloud Framework (listed as Oracle Cloud Framework in Self Update)

- Enterprise Manager for Oracle Consolidation Planning and Chargeback (listed as Oracle Consolidation Planning and Chargeback in Self Update)

3.3 Defining Roles and Assigning Users

Roles are named groups of related system and object privileges. You can create roles and then assign them to users and to other roles. You can assign any of the existing roles to a new role and the associated privileges. Enterprise Manager contains four out-of-the-box roles for the Cloud Self Service Portal, namely:

- EM_CLOUD_ADMINISTRATOR: Users with this role can set up and manage the cloud infrastructure. This role is responsible for deploying the cloud infrastructure (servers, zones, storage, and networks) and infrastructure cloud operations for performance and configuration management. This user has the following privileges:

- Access to all services and service families.

- Privileges to manage any service or service family.

- Privileges to view any target.

- EM_SSA_ADMINISTRATOR: Users with this role can define quotas and constraints for the self service users and grant them access privileges. Users with this role also have provisioning and patching designer privileges that allow them to create and save deployment procedures, create and view patch plans, and support the plug-in lifecycle on the Management Agent. These privileges are required for initial setup and on going maintenance of the infrastructure. This user has the following privileges:

- Access to all services and service families.

- Privileges to manage any service or service family.

- Privileges to view any target.

Apart from this default role, you can create custom self service administrator roles with access to specific service families and specific services.

- EM_SSA_ADMINISTRATOR_BASE: Users with this role do not have access to any services or service family. This user has View Any Target privilege only.

- EM_SSA_USER: Users with this role, by default, can only access the Self Service Portal and all the service families. An administrator with the EM_SSA_ADMINISTRATOR role can provide additional privileges that allow users with the EM_SSA_USER role to access other features in Enterprise Manager.

- EM_SSA_USER_BASE: Users with this role can access the Self Service Portal but will not have access to any service family. Access to a specific service family (DBaaS, MWaaS, and so on) needs to be explicitly granted to the users with this role. This user has the following privileges:

- Can submit service requests.

- Can view PaaS Infrastructure Zone targets.

The table below lists the roles associated with each user.

User Profile

EM_CLOUD_ADMINISTRATOR

EM_SSA_ADMINISTRATOR

EM_SSA_USER

EM_SSA_USER_BASE

Minimum roles required to create a user

- EM_CLOUD_ADMINISTRATOR

- PUBLIC

- EM_USER

- EM_SSA_ADMINISTRATOR

- PUBLIC

- EM_USER

EM_SSA_USER
EM_SSA_USER_BASE

EM_SSA_USER_BASE

Roles to be removed when creating a user

NONE

NONE

- PUBLIC

- EM_USER

NONE

Additional roles may be added as required

The Oracle Cloud Self Service Portal is intended for end-users to be able to provision and manage their own cloud services. Since the functions performed by users with the EM_CLOUD_ADMINISTRATOR and EM_SSA_ADMINISTRATOR roles are consistent across Enterprise Manager, these out-of-box roles can be used as they are. All you need to create users with the EM_CLOUD_ADMINISTRATOR and EM_SSA_ADMINISTRATOR roles.

If you want to restrict access to certain service families and specific service types, you can create custom self service administrator roles based on the out-of-the-box EM_SSA_ADMINISTRATOR role.

But the EM_SSA_USER and EM_SSA_USER_BASE roles are used for quota assignment, and to limit access to PaaS Infrastructure zones, and service templates. In this case, the pre-defined role cannot be used as it is defined. You must create custom self service user roles based on the standard EM_SSA_ROLE and EM_SSA_USER_BASE roles as described in Section 3.3.1, "Creating Custom Roles for Self Service Application Administrators and Users". After creating a custom role, you must assign users to this role.

For example, in a DBaaS Cloud setup, you may want to create the following users:

- CLOUD_ADMIN: This user will have the EM_CLOUD_ADMINISTRATOR role and is responsible for network, system, storage, and administration activities.

- SSA_ADMIN_DBAAS: This user will have the EM_SSA_ADMINISTRATOR role but will have access only to the Database Service Family. Users with this role will be responsible for all database administration activities. You can further restrict access by granting access to only to a certain service type within the Database Service Family.

- SSA_USER_DBAAS: In this case, the default EM_SSA_USER role must be customized and a custom role must be created. A user in this role is typically a junior database administrator, developer, or tester.

- SSA_USER_BASE_DBAAS: In this case, you need to create a copy of the EM_SSA_USER_BASE role and grant access to the Database Service Family to this role. You can then create the SSA_USER_BASE user who will have access the Database Cloud Self Service Portal.

For more details on Users and Roles, see the Enterprise Manager Cloud Control Security Guide.

3.3.1 Creating Custom Roles for Self Service Application Administrators and Users

This section describes the following:

- Creating a Custom Role Based on the EM_SSA_ADMINISTRATOR Role

- Creating a Custom Role Based on the EM_SSA_USER Role

- Creating a Custom Role Based on the EM_SSA_USER_BASE Role

3.3.1.1 Creating a Custom Role Based on the EM_SSA_ADMINISTRATOR Role

You can create a custom self service administrator role and grant access to the Database Service Family. You can grant privileges to users with this role to access all service types or specific service types and view or manage the services. To create a custom role, follow these steps:

1. Log in to Enterprise Manager as a Super Administrator user.

2. From the Setup menu, select Security, then select Roles.

3. Click Create in the Roles page to launch the Create Role wizard.

4. Provide a name and description (SSA_ADMIN_DBAAS) for the role and click Next.

5. From the list of Available Roles, select the EM_SSA_ADMINISTRATOR role and move it to the Selected Roles table. Click Next.

6. Accept the default target privileges and click Next.

7. In the Resource Privileges page, click the Edit icon for the Cloud Service Families. In the Resource Privileges page, click Add and select DBAAS and click Continue to return to the Manage Privileges page.

Note:
If you want users with this role to view and manage all the DBaaS service types, click the Manage Resource Privilege Grants icon and select the following privileges:

- View Service Family

- Manage Service Family

8. Click Continue to return to the Resource Privileges page. Click the Edit icon for the Cloud Service Types. Click Add and select the database service type for which the privileges should be granted. You can select one of the following:

- DB

- PDB

- Schema

9. Click the Manage Resource Privilege Grants for the Cloud Service Types resource type. Select the following privileges:

- Manage Service Type

- View Service Type

10. Click Continue to return to the Resource Privileges page.

11. Review the changes and click Finish to create the custom SSA user (SSA_ADMIN_DBAAS) role.

3.3.1.2 Creating a Custom Role Based on the EM_SSA_USER Role

Typically, you need to create new SSA User roles either for different functional groups like developers, testers, production DBAs, or for different customer teams like the Siebel DBA team, BRM DBA team, and operations team for hosting custom Java applications, and so on. To create a custom SSA user role who has access only to the Database Service Family and can submit requests, follow these steps:

1. Log in to Enterprise Manager as a Super Administrator user.

2. From the Setup menu, select Security, then select Roles.

3. Click Create in the Roles page to launch the Create Role wizard.

4. Provide a name and description (SSA_USER_DBAAS) for the role and click Next.

5. From the list of Available Roles, select the EM_SSA_USER role and move it to the Selected Roles table. Click Next.

6. Accept the default target privileges and click Next.

7. In the Resource Privileges page, remove access to the following resource types

- Cloud Self Service Portal for JVM Diagnostics

- Cloud Self Service Portal for Test

- Infrastructure Self Service Portal

8. Click the Manage Privilege Grants for the Cloud Service Families resource type. In the Resource Type Privileges region, select the View Any Service Family checkbox.

9. Click Add in the Resource Privileges region and select the DBAAS service family and click Continue.

10. Skip the Create Role: Administrators step and click Next.

11. Review the changes and click Finish to create the custom SSA user (SSA_USER_DBAAS) role.

3.3.1.3 Creating a Custom Role Based on the EM_SSA_USER_BASE Role

You may want to restrict some self service users from using all service families and allow them to access only certain service types depending on their requirements. In this case, you can create a custom role based on the EM_SSA_USER_BASE role and grant them access to only certain service types.

To create a custom SSA user role, follow these steps:

1. Log in to Enterprise Manager as a Super Administrator user.

2. From the Setup menu, select Security, then select Roles.

3. Click Create in the Roles page to launch the Create Role wizard.

4. Provide a name and description (SSA_USER_BASE_DBAAS) for the role and click Next.

5. From the list of Available Roles, select the EM_SSA_USER_BASE role and move it to the Selected Roles table. Click Next.

6. Select the default target privileges and click Next.

7. In the Resource Privileges page, click the Manage Privilege Grants icon for the Cloud Requests resource type.

8. In the Resource Privileges page, deselect the Create Any Cloud Request checkbox and click Continue.

9. Click the Manage Privilege Grants icon next to the Cloud Service Families and Cloud Service Types resource types and select the service families and service types for which you need access.

10. Skip the Create Role: Administrators step and click Next.

11. Review the changes and click Finish to create the custom SSA user (SSA_USER_BASE_DBAAS) role. This user can only access the Database Cloud Self Service Portal.

3.3.2 Creating a User and Assigning Roles

To create a user called SSA_USER1 and grant the custom role created earlier (SSA_USER_DBAAS), follow these steps:

1. Log in to Enterprise Manager as a Super Administrator user.

2. From the Setup menu, select Security, then select Administrators.

3. Click Create in the Administrators page to launch the Create Administrator wizard.

4. Enter the name and password for the user (SSA_USER1) and create Next.

5. From the list of Available Roles, select the SSA_USER_DBAAS role and move it to the Selected Roles table. Remove the EM_USER and PUBLIC roles from the Selected Roles table. Click Next.

6. Accept the default target privileges and click Next.

7. Accept the default resource privileges and click Next.

8. Review all the changes and click Finish to create the SSA_USER1 user.

Tip:
To create multiple users with the same role, select the newly created user and click Create Like. This will create a new user that will have the same properties as the source. You can then update the name, description, and email address for the new user.

Note:
Repeat these steps to create other users. For users with the EM_CLOUD_ADMINISTRATOR and EM_SSA_ADMINISTRATOR roles, the EM_USER and PUBLIC roles must be retained as these users need access to additional features.

3.3.3 Granting Roles and Privileges for Managing Storage Servers for Snap Clone

To perform various storage server activities, you need to grant the following roles and privileges:

- Granting General Privileges

- Granting Target Privileges

- Granting Roles

- Granting Privileges for Provisioning

3.3.3.1 Granting General Privileges

Table 3-1displays the general privileges you need to set before you register a storage server.

Table 3-1 General Privileges for Storage Server Registration and Management

Privilege

Description

Scope

Notion

Included Privilege

VIEW_ANY_STORAGE

Ability to view any storage.

class

VIEW

nil

REGISTER_STORAGE

Ability to register storage.

class

CREATE

nil

VIEW_STORAGE

Ability to view storage details.

object

VIEW

nil

MANAGE_STORAGE

Ability to synchronize storage.

object

EDIT

VIEW_STORAGE

CREATE_JOB

MANAGE_ANY_STORAGE

Ability to manage any of the registered storage servers.

object

EDIT

VIEW_ANY_STORAGE

CREATE_JOB

FULL_STORAGE

Ability to modify or remove storage.

object

FULL

MANAGE_STORAGE

3.3.3.2 Granting Target Privileges

Table 3-2 displays the target privilege you need to set, for enabling or disabling Snap Clone for a target.

Table 3-2 Target Privilege for Enabling or Disabling Snap Clone

Target Privilege

Scope

Notion

Include In Privilege

Included Privilege

Applicable Target Type

SNAP_CLONE_TARGET

object

Manage

FULL_TARGET

VIEW_TARGET

oracle_database

rac_database

3.3.3.3 Granting Roles

Table 3-3 displays the roles you need to grant to be able to register a storage server and perform various activities on the registered storage server.

Table 3-3 Roles for Registering and Managing the Storage Server

Role

Description

Security Class

Privilege

Granted To Role

EM_STORAGE_ADMINISTRATOR

Role has privileges to register storage hardware for Snap Clone.

STORAGE

STORAGE

TARGET

TARGET

NAMED_CREDENTIALS

JOB

SWLIB_ENTITY_MGMT

MANAGE_ANY_STORAGE

REGISTER_STORAGE

VIEW_ANY_TARGET

PERFORM_OPERATION_ANYWHERE

CREATE_CREDENTIAL

CREATE_JOB

SWLIB_CREATE_ANY_ENTITY

SWLIB_VIEW_ANY_ENTITY

EM_ALL_ADMINISTRATOR

EM_STORAGE_OPERATOR

Role has privileges to manage storage hardware for Snap Clone.

STORAGE

TARGET

TARGET

JOB

SWLIB_VIEW_ANY_ENTITY

MANAGE_ANY_STORAGE

VIEW_ANY_TARGET

PERFORM_OPERATION_ANYWHERE

CREATE_JOB

SWLIB_VIEW_ANY_ENTITY

EM_ALL_OPERATOR

3.3.3.4 Granting Privileges for Provisioning

You need the following privileges to be able to use the storage server for provisioning:

- VIEW_STORAGE on the storage server

- GET_CREDENTIAL on the storage server

- GET_CREDENTIAL on all the Management Agent credentials of the storage server

- PERFORM_OPERATION on the storage server Management Agent

Note:
Snap Clone supports Sun ZFS storage on HP-UX hosts only if the OS version is B.11.31 or higher. If the OS version is lower than that, the Sun Storage may not function properly thereby Snap Clone gives unexpected results.

3.4 Configuring LDAP Authentication

Oracle Enterprise Manager provides tools and procedures to help you ensure that you are managing your Oracle environment in a secure manner. Enterprise Manager's authentication framework consists of pluggable authentication schemes that let you use the type of authentication protocol best suited to your environment. The following authentication schemes are available:

- Oracle Access Manager (OAM) SSO

- Repository-Based Authentication

- SSO-Based Authentication

- Enterprise User Security Based Authentication

- Oracle Internet Directory (OID) Based Authentication

- Microsoft Active Directory Based Authentication

Enterprise User Security (EUS) provides automatic authentication to users and roles from the LDAP compliant directory server.

For more details on Enterprise User Security, see the Enterprise Manager Security Guide.

3.5 Configuring Privilege Delegation Settings

Privilege delegation allows a logged-in user to perform an activity with the privileges of another user. Sudo and PowerBroker are privilege delegation tools that allow a logged-in user to be assigned these privileges. These privilege delegation settings will be used for all provisioning and patching activities on these hosts.

For details on how to configure the privilege delegation settings, see the Enterprise Manager Cloud Control Security Guide.

3.6 Customizing the Self Service Login Page

You can configure Enterprise Manager and provide specific access to SSA users. To configure Enterprise Manager for SSA users, you must set some properties on the OMS and copy the required images to a specified directory. This section describes the following:

- Configuring the Self Service Login Page

- Switching Back to the Enterprise Manager Login Page

- Routing SSA Requests to a Specific OMS Pool

3.6.1 Configuring the Self Service Login Page

To launch a separate SSA login page for all SSA users, you must do the following:

- Set the following mandatory property on all OMSes:
$ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.ssa_oms -value true

If this property is not set to true, the standard Enterprise Manager login page is displayed.

- Set the following optional OMS properties.

- $ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.show_cloud_provider_brand -value true
If this property is not set to true, the default Oracle Enterprise Manager 12c logo is displayed.

- $ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.show_cloud_tenant_brand -value true
If this property is not set to true, the tenant logo is not displayed.

- $ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.cloud_provider_alt_text -value "Cloud Provider"

- $ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.cloud_tenant_alt_text -value "Cloud Tenant"
These properties are optional and if not set, the default values for "Cloud Provider", and "Cloud Tenant" are displayed.

- $ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.show_disclaimer_text -value true
If this property is not set to true, the default Oracle copyright message is displayed.

- $ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.disclaimer_text -value "Customer specified Disclaimer text"
If this property is set to true, the specified disclaimer text is displayed instead of the default Oracle copyright message.

- $ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.show_em_branding_text -value true
If this property is not set to false, the "Powered by Oracle Enterprise Manager" text will appear on the Self Service Login page.

- Copy the following images to the $ORACLE_HOME/sysman/config/ directory.

- cloud_provider_small_brand.png

- cloud_tenant_small_brand.png
If a single image is used, the maximum recommended size is 500 * 20 px. If 2 images are used, the maximum recommended size is 200 * 20 px per image. After login, these images are displayed instead of the Oracle logo, if the OMS properties oracle.sysman.ssa.logon.show_cloud_provider_brand and oracle.sysman.ssa.logon.show_cloud_tenant_brand are set. If the OMS property oracle.sysman.ssa.logon.show_cloud_provider_brand is not set to true, along with the tenant logo, the default Oracle logo appears.

- cloud_provider_large_brand.png

- cloud_tenant_large_brand.png
If a single image is used, then the maximum recommended size is 525 * 60 px. If 2 images are used, the maximum recommended size is 250 * 50 px per image. These images are displayed on the login page, if the OMS properties oracle.sysman.ssa.logon.show_cloud_provider_brand and oracle.sysman.ssa.logon.show_cloud_tenant_brand are set.

For example, if ACME Corp is the Cloud Service Provider and XYZ is the Cloud Tenant, the customized login page appears as follows:

Figure 3-1 Customized SSA Login Page

After the SSA user has logged in, the customized Infrastructure Self Service Portal is displayed as shown below:

Figure 3-2 Customized Post-Login Page

3.6.2 Switching Back to the Enterprise Manager Login Page

To revert to the default Enterprise Manager login page, set the following property:

$ORACLE_HOME/bin/emctl set property -name oracle.sysman.ssa.logon.ssa_oms -value false

3.6.3 Routing SSA Requests to a Specific OMS Pool

Oracle Management Service (OMS) is one of the core components of Enterprise Manager Cloud Control that works with the Oracle Management Agents (Management Agents) and plug-ins to discover targets, monitor and manage them, and store the collected information in a repository for future reference and analysis.

When you install Enterprise Manager for the very first time, by default, one OMS is installed along with one Management Agent. This default configuration is suitable for small environments. In larger production environments with several SSA users, you may need to install additional OMS instances to reduce the load on a single OMS and improve the efficiency of the data flow. You can then configure the Server Load Balancer (SLB) to redirect all SSA requests to a specific OMS pool. The other OMS pools will then be available for administration usage. To learn more about setting up multiple OMS instances and the SLB, see Adding Additional Oracle Management Service section in the Enterprise Manager Cloud Control Basic Installation Guide.

To redirect SSA requests, you must specify the following SLB configuration:

https://<slb_host_name>:<slb_em_port>/em redirecting to oms for em

https://<slb_host_name>:<slb_ssa_port>/em redirecting to oms for ssa

The SSA and non-SSA OMS pools are differentiated based on the port number. All requests with a particular port number will be redirected to a specific OMS pool (SSA OMS pool) and all the other requests will be redirected to the other pool.

4 How to Enable Cloud

This chapter lists the tasks to be performed to enable your IaaS or PaaS Cloud. It contains the following sections:

- Enterprise Manager Cloud Deployment Models

- Enabling Infrastructure as a Service (IaaS)

- Enabling Platform as a Service (PaaS)

- Enabling Middleware as a Service (MWaaS)

- Enabling Testing as a Service (TaaS)

4.1 Enterprise Manager Cloud Deployment Models

Figure 4-1 shows the cloud deployment models supported by Enterprise Manager.

Figure 4-1 Cloud Deployment Models

The sections below list the tasks that need to be performed to set up and use the various cloud deployment models. Apart from these tasks, you must also ensure that the correct plugins have been deployed. For more details on the plugins required, see Supported Plug-ins.

4.2 Enabling Infrastructure as a Service (IaaS)

This section describes the tasks that need to be performed by users with the Super Administrator, EM_CLOUD_ADMINISTRATOR, EM_SSA_ADMINISTRATOR, and EM_SSA_USER roles to setup and use IaaS.

4.2.1 Infrastructure as a Service (IaaS): Super Administrator Tasks

This section lists the tasks that can be performed by the Super Administrator.

Table 4-1 Super Administrator User Tasks (IaaS)

Cloud Service Model

Usecase

Infrastructure as a Service (IaaS)

- Defining Roles and Assigning Users

4.2.2 Infrastructure as a Service (IaaS): Cloud Administrator Tasks

This section lists the tasks that can be performed for IaaS by users with the EM_CLOUD_ADMINISTRATOR role.

Table 4-2 Cloud Administrator Tasks (IaaS)

Cloud Service Model

Usecase

Infrastructure as a Service (IaaS)

- Registering the Oracle VM Manager

- Synchronizing the Oracle VM Manager Targets

- Discovering a Virtual Server

- Rediscovering a Virtual Server

- Setting Up Networks

- Creating a Network Profile

- Creating a Storage Repository

- Presenting the Storage Repository

- Importing Assemblies, Templates, and Virtual Disks into the Storage Repository

- Creating a Virtual Server Pool

- Creating a Zone

- Setting Up the Storage Quality of Service (QoS)

- Patching the Oracle VM Server

- Acknowledging OVM Events

- Managing Cloud Policies

- Viewing Cloud Policies

- Viewing Policies for a Target

- Defining a Performance Policy

- Defining a Schedule-Based Policy

- Activating and Deactivating Policies

- Viewing Policy Groups

- DRS and DPM Policies

Chargeback

- Overview of Chargeback

- Setting Up Chargeback

- Accessing Chargeback Information

Consolidation Planner

- Overview of Consolidation Planner

- Using Consolidation Planner

4.2.3 Infrastructure as a Service (IaaS): Self Service Administrator Tasks

This section lists the tasks that need to be performed for IaaS by users with the EM_SSA_ADMINISTRATOR role.

Table 4-3 SSA Administrator Tasks (IaaS)

Cloud Service Model

Usecase

Infrastructure as a Service (IaaS)

- Setting Up the Self Service Portal

- Viewing the Infrastructure Cloud Home Page

- Viewing the OVM Manager Home Page

- Viewing and Managing Members

- Viewing the Virtual Server Pool Home Page

- Managing Guest Virtual Machines

- Deploying Guest Virtual Machines

- Viewing the Infrastructure Request Dashboard

- Viewing Request Details

4.2.4 Infrastructure as a Service (IaaS): Self Service User Tasks

This section lists the tasks that can be performed for IaaS by users with the following roles:

- EM_SSA_USER: Users with this role, by default, can only access the Self Service Portal and all the service families.

- EM_SSA_USER_BASE: Users with this role can access the Self Service Portal but will not have access to any service family. Access to a specific IaaS service family must to be explicitly granted to the users with this role. See Section 3.3.1.3, "Creating a Custom Role Based on the EM_SSA_USER_BASE Role" for details.

Table 4-4 SSA User Tasks (IaaS)

Cloud Service Model

Usecase

Infrastructure as a Service (IaaS)

- Using the Self Service Portal to Request Server Resources

- Requesting Servers

4.3 Enabling Platform as a Service (PaaS)

This section describes the tasks that need to be performed by users with the Super Administrator, EM_CLOUD_ADMINISTRATOR, EM_SSA_ADMINISTRATOR, and EM_SSA_USER roles to setup and use PaaS.

4.3.1 Platform as a Service (PaaS): Super Administrator Tasks

This section lists the tasks that need to be performed for PaaS by users with the Super Administrator role.

Table 4-5 Super Administrator User Tasks (PaaS)

Cloud Service Model

Usecase

Platform as a Service (PaaS)

- Database as a Service (DBaaS)

- Middleware as a Service (MWaaS)

- Defining Roles and Assigning Users

- Configuring Privilege Delegation Settings

4.3.2 Platform as a Service (PaaS): Cloud Administrator Tasks

This section lists the tasks that need to be performed for PaaS by users with the EM_CLOUD_ADMINISTRATOR role.

Table 4-6 Cloud Administrator Tasks (PaaS)

Cloud Service Model

Usecase

Platform as a Service (PaaS)

- Adding Hosts

- Creating a PaaS Infrastructure Zone

4.3.3 Platform as a Service (PaaS): Storage Administrator Tasks

This section lists the tasks that need to be performed for PaaS by users with the EM_STORAGE_ADMINISTRATOR role.

Table 4-7 Storage Administrator Tasks (PaaS)

Cloud Service Model

Usecase

Platform as a Service (PaaS)

- Registering and Managing Storage Servers

4.3.4 Platform as a Service (PaaS): Self Service Administrator Tasks

This section lists the tasks that need to be performed for PaaS by users with the EM_SSA_ADMINISTRATOR role.

Table 4-8 SSA Administrator Tasks (PaaS)

Cloud Service Model

Usecase

Platform as a Service (PaaS)

- Configuring Request Settings

- Creating the Resource Providers

- Setting Up Quotas

- Viewing the Cloud Home Page

- Viewing the List of Resource Providers

- Viewing the List of Service Templates

- Viewing the List of Service Instances

- Viewing the Cloud Request Dashboard

- Viewing All Cloud Requests

- Viewing the PaaS Infrastructure Zone Home Page

4.4 Enabling Database as a Service

Note:
Before you enable Database as a Service, you must have performed the tasks listed in Section 4.3, "Enabling Platform as a Service (PaaS)".

This section describes the tasks that need to be performed to enable the different Database as a Service (DBaaS) options:

- Provisioning Database Artifacts

- Cloning Databases

4.4.1 Provisioning Database Artifacts

This section describes the following:

- Creating Databases Using Database Template

- Creating Schemas

- Provisioning Pluggable Databases

4.4.1.1 Creating Databases Using Database Template

This section lists the tasks that need to be performed to create new databases using the Database Template.

Table 4-9 SSA Administrator Tasks (Database Template)

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Creating Resource Providers

- Creating a Database Provisioning Profile Using Database Template

- Configuring Request Settings

- Defining Quotas

- Creating a Service Template Using Database Template Profile

- Configuring Chargeback

Table 4-10 SSA User Tasks (Database Template)

Usr Role

Usecase

EM_SSA_USER

Requesting a Database

4.4.1.2 Creating Schemas

This section lists the tasks that need to be performed to provision new schemas.

Table 4-11 SSA Administrator Tasks (Schema)

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Creating Resource Providers

- Creating a Database Provisioning Profile Using Export Schema Objects (This step is not required if you are creating an empty schema)

- Configuring Request Settings

- Defining Quotas

- Creating a Service Template for Schema Based on Profile Or

- Creating a Service Template with Empty Schema

- Configuring Chargeback

Table 4-12 SSA User Tasks (Schema)

Usr Role

Usecase

EM_SSA_USER

Requesting a Schema

4.4.1.3 Provisioning Pluggable Databases

This section lists the tasks that need to performed to provision pluggable databases

Table 4-13 SSA Administrator Tasks (Pluggable Databases)

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Creating Resource Providers

- Creating a Database Provisioning Profile Using Export Schema Objects (This step is not required if you are creating an empty PDB)

- Configuring Request Settings

- Defining Quotas

- Creating a Service Template for PDB Based on Profile
Or

- Creating a Service Template for an Empty PDB

- Configuring Chargeback

Table 4-14 SSA User Tasks (Pluggable Databases)

User Role

Usecase

EM_SSA_USER

Requesting a Pluggable Database

4.4.2 Cloning Databases

This section describes the following:

- Creating Full Clones

- Creating Snap Clones

- Creating Snap Clones for Pluggable Databases

4.4.2.1 Creating Full Clones

This section describes the following:

- Creating Full Clones Using RMAN Backup

- Creating Full Clones Using RMAN Duplicate

4.4.2.1.1 Creating Full Clones Using RMAN Backup

This section lists the steps that need to be performed to create full clones using RMAN Backup.

Table 4-15 SSA Administrator Tasks (Creating Full Clones Using RMAN Backup

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Creating Resource Providers

- Creating a Database Provisioning Profile

- Configuring Request Settings

- Defining Quotas

- Create Service Template Using RMAN Backup Profile

- Configuring Chargeback

Table 4-16 SSA User Tasks (Creating Full Clones Using RMAN Backup)

User Role

Usecase

EM_SSA_USER

Requesting a Database

4.4.2.1.2 Creating Full Clones Using RMAN Duplicate

This section lists the steps that need to be performed to create full clones using RMAN Duplicate.

Table 4-17 SSA Administrator Tasks (Creating Full Clones Using RMAN Duplicate

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Creating Resource Providers

- Creating a Database Provisioning Profile

- Configuring Request Settings

- Defining Quotas

- Creating a Service Template Using RMAN Duplicate

- Configuring Chargeback

Table 4-18 SSA User Tasks (Creating Full Clones Using RMAN Duplicate)

User Role

Usecase

EM_SSA_USER

Requesting a Database

4.4.2.2 Creating Snap Clones

This section describes the following:

- Creating Snap Clones from the Cloning Dashboard

- Creating Snap Clones from an In-Sync Test Master

- Creating Snap Clones from a Discretely Synchronized Test Master

- Creating CloneDB Databases

4.4.2.2.1 Creating Snap Clones from the Cloning Dashboard

This section lists the steps that need to be performed to create and refresh snap clone databases from the Cloning Dashboard. The steps are:

- Creating a Snap Clone Database

- Creating an Exadata Test Master Database

- Creating a Snapshot Clone of an Exadata Test Master Database

- Enabling a Test Master Database

- Disabling a Test Master Database

- Creating a CloneDB Database

- Managing Clone Databases

- Refreshing Clone Databases

4.4.2.2.2 Creating Snap Clones from an In-Sync Test Master

This section lists the steps that need to be performed to create snap clones from an in-sync test master.

Table 4-19 SSA Administrator Tasks (Snap Clones from In-Sync Test Master)

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Registering Storage Servers

- Creating Resource Providers

- Configuring Request Settings

- Defining Quotas

- Using a Physical Standby Database as a Test Master

- Enabling the Test Master for Snap Clone

- Creating a Database Provisioning Profile Using Snapshots

- Creating Service Template Using Snap Clone Profile

- Configuring Chargeback

Table 4-20 SSA User Tasks (Snap Clones from In-Sync Test Master)

User Role

Usecase

EM_SSA_USER

Requesting a Database

4.4.2.2.3 Creating Snap Clones from a Discretely Synchronized Test Master

This section lists the steps that need to be performed to create snap clones from a discretely synchronized test master.

Table 4-21 SSA Administrator Tasks (Snap Clones - Discrete Sync)

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Registering Storage Servers

- Creating Resource Providers

- Configuring Request Settings

- Defining Quotas

- Creating a Discretely Synchronized Test Master

- Creating a Service Template Using Snap Clone Profile

- Configuring Chargeback

Table 4-22 SSA User Tasks (Snap Clones - Discrete Sync)

User Role

Usecase

EM_SSA_USER

Requesting a Database

4.4.2.2.4 Ongoing Refresh of the Test Master and the Database Instance

To ensure that the test master has the latest production data and the database instance reflects the latest information, the following steps must be performed:

- Refreshing the Test Master Database

- Refreshing the Snap Shot Profile

- Refreshing a Database

4.4.2.2.5 Creating CloneDB Databases

This section lists the steps that need to be performed to create a CloneDB database.

Table 4-23 SSA Administrator Tasks (Snap Clones - Discrete Sync)

User Role

Usecase

EM_SSA_ADMINISTRATOR

- Getting Started

- Creating Resource Providers

- Configuring Request Settings

- Defining Quotas

- Creating a Database Provisioning Profile Using RMAN Database Image

- Creating a Service Template Using RMAN Image Profile

- Configuring Chargeback

Table 4-24 SSA User Tasks (Snap Clones - Discrete Sync)

User Role

Usecase

EM_SSA_USER

Requesting a Database

4.4.2.3 Creating Snap Clones for Pluggable Databases

This section lists the different solutions available in creating a test master pluggable database and snapshot clones of pluggable databases.

- Creating Test Master Pluggable Databases

- Creating Snapshot Clones of Test Master Pluggable Databases

- Enabling a Test Master Pluggable Database

- Disabling a Test Master Pluggable Database

4.5 Enabling Middleware as a Service (MWaaS)

Note:
Before you enable Middleware as a Service, you must have performed the tasks listed in Section 4.3, "Enabling Platform as a Service (PaaS)".

This section describes the tasks that need to be performed by users with the EM_CLOUD_ADMINISTRATOR, EM_SSA_ADMINISTRATOR, and EM_SSA_USER roles to setup and use MWaaS.

4.5.1 Middleware as a Service (MWaaS): Cloud Administrator Tasks

This section lists the tasks that need to be performed for MWaaS by users with the EM_CLOUD_ADMINISTRATOR role.

Table 4-25 Cloud Administrator Tasks (MWaaS)

Cloud Service Model

Usecase

Middleware as a Service (MWaaS)

- Getting Started with Middleware as a Service

- Uploading a Java EE Component to the Software Library

4.5.2 Middleware as a Service (MWaaS): Self Service Administrator Tasks

This section lists the tasks that need to be performed for MWaaS by users with the EM_SSA_ADMINISTRATOR role.

Table 4-26 SSA Administrator Tasks (MWaaS)

Cloud Service Model

Usecase

Middleware as a Service (MWaaS)

- Creating a Middleware Pool

- Configuring Request Settings

- Setting Up Quotas

- Creating a WebLogic Service Template

- Configuring Chargeback

4.5.3 Middleware as a Service (MWaaS): Self Service User Tasks

This section lists the tasks that need to be performed for MWaaS by users with either of the following roles:

- EM_SSA_USER: Users with this role, by default, can only access the Self Service Portal and all the service families.

- EM_SSA_USER_BASE: Users with this role can access the Self Service Portal but will not have access to any service family. Access the MWaaS service family must to be explicitly granted to the users with this role. See Section 3.3.1.3, "Creating a Custom Role Based on the EM_SSA_USER_BASE Role" for details.

Table 4-27 SSA User Tasks (MWaaS)

Cloud Service Model

Usecase

Middleware as a Service (MWaaS)

- Using the MWaaS Self Service Portal

- Requesting a Middleware Service

- Viewing the Middleware Service Home Page

- Viewing the Application Home Page

- Uploading a Java EE Component to the Software Library

4.6 Enabling Testing as a Service (TaaS)

This section describes the tasks that need to be performed by users with the EM_CLOUD_ADMINISTRATOR, EM_SSA_ADMINISTRATOR, and EM_SSA_USER roles to setup and use TaaS.

4.6.1 Testing as a Service (TaaS): Cloud Administrator Tasks

This section lists the tasks that need to be performed for TaaS by users with the EM_CLOUD_ADMINISTRATOR role.

Table 4-28 Cloud Administrator Tasks (TaaS)

Cloud Service Model

Usecase

Testing as a Service (TaaS)

- Getting Started

- Creating Test Administrators

- Creating an Assembly Component

- Creating a Deployment Plan

4.6.2 Testing as a Service (TaaS): Self Service Administrator Tasks

This section lists the tasks that need to be performed for TaaS by users with the EM_SSA_ADMINISTRATOR.

Table 4-29 SSA Administrator Tasks (TaaS)

Cloud Service Model

Usecase

Testing as a Service (TaaS)

- Getting Started

- Creating Test Administrators

- Creating an Assembly Component

- Creating a Deployment Plan

4.6.3 Testing as a Service (TaaS): Self Service User Tasks

This section lists the tasks that need to be performed for TaaS by users with either of the following roles:

- EM_SSA_USER: Users with this role, by default, can only access the Self Service Portal and all the service families.

- EM_SSA_USER_BASE: Users with this role can access the Self Service Portal but will not have access to any service family. Access to a the TaaS service family must to be explicitly granted to the users with this role. See Section 3.3.1.3, "Creating a Custom Role Based on the EM_SSA_USER_BASE Role" for details.

Table 4-30 SSA User Tasks (TaaS)

Cloud Service Model

Usecase

Testing as a Service (TaaS)

Using the Testing as a Service Portal

Part III

Setting Up and Using Infrastructure as a Service

This section describes how to set up infrastructure as a service, manage virtualization targets, deploy guest virtual machines, set up, and use the self service application.

It contains the following chapters:

- Chapter 5, "Setting Up Cloud for IaaS"

- Chapter 6, "Defining and Managing Cloud Policies"

- Chapter 7, "Setting Up the IaaS Self Service Portal"

- Chapter 8, "Using the IaaS Self Service Portal"

- Chapter 9, "Administering and Monitoring an IaaS Cloud"

5 Setting Up Cloud for IaaS

This chapter describes the server, storage and networking infrastructure that needs to be defined for providing Infrastructure as a Service (IaaS) cloud using the Oracle VM technology. It contains the following sections:

- Getting Started

- Cloud Infrastructure Privileges

- Registering the Oracle VM Manager

- Synchronizing the Oracle VM Manager Targets

- Discovering a Virtual Server

- Rediscovering a Virtual Server

- Setting Up Networks

- Creating a Network Profile

- Registering Storage Servers

- Creating a Storage Repository

- Presenting the Storage Repository

- Using Self Update to Download Oracle VM Templates and Virtual Assemblies

- Importing Assemblies, Templates, and Virtual Disks into the Storage Repository

- Creating a Virtual Server Pool

- Creating a Zone

- Setting Up the Storage Quality of Service (QoS)

- Patching the Oracle VM Server

- Acknowledging OVM Events

- Managing the NTP Configuration

- Importing Virtual Machines

- Acknowledging the Repository Events

5.1 Getting Started

This section helps you get started with this chapter by providing an overview of the steps involved in setting up the virtualization infrastructure. Consider this section to be a documentation map to understand the sequence of actions you must perform to successfully set up virtualized systems.

Note:
Click here to view a visual demonstration on how to discover OVM servers into the Cloud, configure storage for the Cloud, configure networking, and create server pools and Cloud zones using Oracle Enterprise Manager Cloud Control 12c.

1. Before you start monitoring and managing virtualization targets, you must register the Oracle VM Manager with Oracle Enterprise Manager. See Section 5.3, "Registering the Oracle VM Manager" for details.

2. You can then discover one or more Oracle VM Server targets. See Section 5.5, "Discovering a Virtual Server" for details.

3. Set up the storage infrastructure for the cloud. See Section 5.9, "Registering Storage Servers" for details.

4. Configure networks and VLAN Groups. See Section 5.7, "Setting Up Networks" for details.
If you are using Oracle VM Manager 3.3, you must configure the VLAN Interface. See Section 5.7.3, "Creating a VLAN Interface for Oracle VM Manager 3.3"

5. Create a virtual server pool. See Section 5.14, "Creating a Virtual Server Pool" for details.

6. Create a zone by grouping one or more server pools. See Section 5.15, "Creating a Zone" for details.

Figure 5-1 shows the sequence of steps involved in setting up the virtualization infrastructure.

Figure 5-1 Setting Up the Cloud Infrastructure

5.2 Cloud Infrastructure Privileges

This section lists the actions that can be performed on various targets in the Infrastructure Cloud Home page when you:

- Right click on a target in the left panel.

- Select a target on the Members region on the parent target home page and then select the Action menu.

- Select the Target menu of the corresponding Target Home page.

Table 5-1 Infrastructure Cloud

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Register OVM Manager

Single

Add any Target

Setup

Single

View on Infrastructure Cloud

Members

Single

Operator on Infrastructure Cloud

Table 5-2 OVM Manager

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Members

Single

View On OVM Manager

Edit

Single

Operator on OVM Manager

Synchronize

Single

Full on OVM Manager

Deregister

Single

Full on OVM Manager and all its sub targets

Create Zone

Single

Operator on OVM Manager and Add any Target

Create Virtual Server Pool

Single

Operator on OVM Manager and Add any Target

Discover Virtual Server

Single

Operator on OVM Manager and Add any Target

Manage Unowned Virtual Servers

Single

Operator on OVM Manager

Manage Network

Single

Operator on OVM Manager

Manage Storage

Single

Operator on OVM Manager

Manage Storage Repository

Single

Operator on OVM Manager

Manage Yum Repository

Single

Full on OVM Manager

Manage NTP Configuration

Single

Full on OVM Manager

Table 5-3 Zone

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Members

Single

View On Zone

Edit

Single

Operator on Zone

Delete

Single

Full on Zone

Delete only from Enterprise Manager

Single

Full on Zone

Deploy Assembly

Single

Operator on Zone and Add any Target

Deploy Template

Single

Operator on Zone and Add any Target

Deploy ISO

Single

Operator on Zone and Add any Target

Deploy PXE

Single

Operator on Zone and Add any Target

Import Virtual Machine

Single

Operator on Zone and Add any Target

Table 5-4 Virtual Server Pool

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Members

Single

View On Virtual Server Pool

Edit

Single

Operator on Virtual Server Pool

Delete

Single

Full on Virtual Server Pool

Delete only from Enterprise Manager

Single

Full on Virtual Server Pool

Manage DRS / DPM Policies

Single

Operator on Virtual Server Pool

Deploy Assembly

Single

Operator on Virtual Server Pool and Add any Target

Deploy Template

Single

Operator on Virtual Server Pool and Add any Target

Deploy ISO

Single

Operator on Virtual Server Pool and Add any Target

Deploy PXE

Single

Operator on Virtual Server Pool and Add any Target

Import Virtual Machine

Single

Operator on Zone and Add any Target

Table 5-5 Virtual Server

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Edit

Single

Up

Operator on Virtual Server

Deregister

Single

Full on Virtual Server

Delete only from Enterprise Manager

Single

Full on Virtual Server

Start Maintenance

Multiple

Up

Operator on Virtual Server

Stop Maintenance

Multiple

Blackout

Operator on Virtual Server

Upgrade

Multiple

Full on Virtual Server

Start

Multiple

Down

Operator on Virtual Server

Stop

Multiple

Up

Operator on Virtual Server

Restart

Multiple

Up

Operator on Virtual Server

Rediscover Virtual Server

Single

Full on Virtual Server

Deploy Assembly

Single

Operator on Virtual Server and Add any Target

Deploy Template

Single

Operator on Virtual Server and Add any Target

Deploy ISO

Single

Operator on Virtual Server and Add any Target

Deploy PXE

Single

Operator on Virtual Server and Add any Target

Import Virtual Machine

Single

Operator on Zone and Add any Target

Members

Multi-select / Single Select:Single

View on Virtual Server

Table 5-6 Guest VM

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Edit

Single

Operator on Guest VM

Delete

Multiple

Down, Metric Error

Full on Guest VM

Delete only from Enterprise Manager

Multiple

Full on Guest VM

Migrate

Multiple

Up, Down

Operator on Guest VM

Move

Single

Down

Operator on Guest VM

Clone

Single

Up, Down

Operator on Guest VM

Save as Template

Single

Down

Operator on Guest VM

Start

Multiple

Down

Operator on Guest VM

Stop

Multiple

Up

Operator on Guest VM

Restart

Multiple

Up

Operator on Guest VM

Kill

Multiple

Up

Operator on Guest VM

Stop and Start

Multiple

Up

Operator on Guest VM

Suspend

Multiple

Up

Operator on Guest VM

Resume

Multiple

Operator on Guest VM

Launch VNC Console

Single

Operator on Guest VM

Table 5-7 Assembly

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Start

Single

Operator on Assembly

Stop

Single

Operator on Assembly

Delete

Single

Operator on Assembly

Scale Up

Single

Operator on Assembly

Scale Down

Single

Operator on Assembly

Add Nodes

Single

Operator on Assembly

Table 5-8 Tier

Action Label

Multi-select / Single Select

Required Target State

Privileges Required

Start

Single

Operator on Tier

Stop

Single

Operator on Tier

Scale Up

Single

Operator on Tier

Scale Down

Single

Operator on Tier

5.3 Registering the Oracle VM Manager

The Oracle VM Manager provides the user interface that allows you to create and manage zones, virtual server pools, virtual servers, and guest virtual machines. Before you use the Oracle VM Manager to manage virtualization targets in Enterprise Manager, you must register an existing installation of the Oracle VM Manager.

Note:

- The Oracle VM Manager that you register with Enterprise Manager must be at least version 3.0.2 or higher.

- The Oracle VM Manager must be associated with only one Enterprise Manager installation.

- As a best practice, it is recommended that the Management Agent and the Oracle VM Manager are present on the same physical machine.

- If you are registering Oracle VM Manager 3.3, you must ensure that the Enterprise Manager for Oracle Virtualization (Oracle Virtualization) plugin 12.1.0.7 or a later version has been deployed on the Oracle Management Service and the Management Agent.

To register the Oracle VM Manager, you must first add it as an Enterprise Manager target. To do so, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

Figure 5-2 Infrastructure Cloud Home

2. From the Infrastructure Cloud menu, select Register OVM Manager. The Add Oracle VM Manager page appears.

3. Figure 5-3 Add Oracle VM Manager

You can register an existing installation of Oracle VM Manager by following these steps:
Prerequisites

- If you are registering OVM Manager 3.1.1 or later, before you update the Oracle VM Manager URL, you must have configured tcps as described in Note 1490283.1.

- You must have imported the Oracle VM Manager certificate to the Agent keystore by following these steps:

- Export the OVM Manager certificate <JAVA_HOME>/bin/keytool -keystore <OVM_MANAGER_HOME>/ovmmCoreTcps.ks -exportcert -alias ovmm -file <file_loc_for_certificate>

- Import the OVM Manager certificate <AGENT_INSTANCE_HOME>/bin/emctl secure add_trust_cert_to_jks -trust_certs_loc <file_loc_for_certificate> -alias <alias_name>
If the certificate is being imported for multiple Oracle VM Managers, you can specify multiple alias names.

- If you are registering Oracle VM Manager 3.3, in addition to importing the Oracle VM Manager certificate, you must export the Oracle VM Manager WebLogic certificate and import the certificate to the Agent Keystore. See Section 5.3.3, "Importing the Oracle VM Manager WebLogic Certificate" for details.

1. Enter the target name for the Oracle VM Manager instance to be registered.

2. Select the Management Agent to monitor and manage the Oracle VM Manager instance to be registered. It is recommended that the Management Agent (with Enterprise Manager for Oracle Virtualization plug-in (listed as Oracle Virtualization in Self Update) is present on the same machine where the Oracle VM Manager instance is running.

3. Enter the Oracle VM Manager URL. Refer to Note 1490283.1 for details on configuring Oracle VM Manager for tcps access.
The URL must be in one of the following formats:

- tcp://localhost:<port>. Example: tcp://localhost:54321 (If the Oracle VM Manager version is 3.1.1 or greater, you can specify only the tcps URL.)

- tcps://<hostname:<port>. Example: tcps://server.domain:54322

4. Enter the Oracle VM Manager's Console URL. This is the URL to enable the VNC Console for the Guest VMs. For example, https://ovmmgr.example.com:7002/ovm/console
The URL must be in the following format:

https://<hostname>:<port>

Note:
If you are registering Oracle VM Manager 3.3, this URL is used to connect to the Oracle VM Manager.

5. By default, data from Oracle VM Manager is automatically synchronized with Enterprise Manager at fixed intervals of time. If you do not wish to enable this option, you must disable the Automatic Synchronization checkbox and manually synchronize the data. For more details on the automatic and manual synchronization options, see Section 5.4, "Synchronizing the Oracle VM Manager Targets" for details.

6. Enter the administrator user name and password to connect to the Oracle VM Manager URL provided in Step C. If you want to use separate credentials for managing Oracle VM Manager, check the Use Administration Credentials check box. If these credentials are not specified, the monitoring credentials are used by default.

7. Click Submit to register the Oracle VM Manager. You can now use the Oracle VM Manager to monitor and manage the virtualization targets in Enterprise Manager.

5.3.1 Port Requirements for Oracle VM Manager Setup

The ports required for the Web browser connection to Oracle VM Manager are 7002 and 15901. TCP 7002 is used by the Oracle VM Servers to connect to Oracle VM Manager. Oracle VM Manager, in turn, connects to the Oracle VM Servers through port 8899 for Oracle VM Agent communication, and port 6900 and up for secure VNC tunneling to virtual machines (one port per VM). Ports 7900 and up are used to allow Oracle VM Manager to open secure serial console tunnels to virtual machines (one port per VM) on the Oracle VM Servers. The Oracle VM Command Line Interface connects to Oracle VM Manager on port 10000. TCP ports 54321 and 54322 must be enabled for remote API access to the Oracle VM Manager core. Follow the guidelines of in the diagram below:

Figure 5-4 Oracle VM Manager Firewall Configuration

5.3.2 Updating the Oracle VM Manager URL

If you had Oracle VM Manager 3.0.x registered with Enterprise Manager previously and had upgraded it to higher versions 3.1.x or 3.2.1, you must update the Oracle VM Manager URL.

If you are upgrading to version 3.3, you must also import the WebLogic certificate. See Section 5.3.3, "Importing the Oracle VM Manager WebLogic Certificate" for details.

Prerequisites

- Before you update the Oracle VM Manager URL, you must have configured tcps as described in Note 1490283.1.

- You must have imported the Oracle VM Manager certificate to the Agent keystore by following these steps:

- Export the OVM Manager certificate <JAVA_HOME>/bin/keytool -keystore <OVM_MANAGER_HOME>/ovmmCoreTcps.ks -exportcert -alias ovmm -file <file_loc_for_certificate>

- Import the OVM Manager certificate <AGENT_INSTANCE_HOME>/bin/emctl secure add_trust_cert_to_jks -trust_certs_loc <file_loc_for_certificate> -alias <alias_name>

To update the Oracle VM Manager URL, follow these steps:

1. Right click on the OVM Manager target that is to be upgraded and select Edit.

2. Enter a tcps based (tcps://hostname:port) URL in the Oracle VM Manager field.

Note:
It is recommended that you use the tcps based URL. But if the Management Agent is running on the same host on which Oracle VM Manager has been installed, you can use the tcp based URL (tcp://localhost:54321).

5.3.3 Importing the Oracle VM Manager WebLogic Certificate

Oracle VM Manager 3.3 contains an internal Certificate Authority (CA) that is used to perform certificate-based authentication and to sign the SSL certificate that is used for the web-based user interface. Certificates are generated automatically when Oracle VM Manager is installed.

To export the Oracle VM Manager WebLogic certificate, enter the following command:

#/u01/app/oracle/ovm-manager-3/ovm_upgrade/bin/ovmkeytool.sh exportca > <file_loc_for_certificate>

To import the Oracle VM Manager Weblogic certificate to the Agent Keystore, enter the following command:

<AGENT_INSTANCE_HOME>/bin/emctl secure add_trust_cert_to_jks -trust_certs_loc <file_loc_for_certificate> -alias <alias_name>

Note:
The first line in the <file_loc_for_certificate> must be deleted before the OVM Manager certificate is imported.

5.3.4 Discovering and Promoting the Oracle VM Manager (Optional)

Automatic discovery is a process that detects hosts, Oracle VM Managers, and other targets so that they can be monitored and managed by Enterprise Manager. If you know the Oracle VM Manager instances in your environment, see Section 5.3, "Registering the Oracle VM Manager" for details on registering them with Enterprise Manager. Discovery and promotion of Oracle VM Manager should be attempted if you want to scan your networks to discover unknown Oracle VM Manager instances.

To discover an Oracle VM Manager, follow these steps:

1. Log in to Enterprise Manager as a user with the Super Administrator role.

2. From the Setup menu, select Add Target, then select Configure Auto Discovery.

Figure 5-5 Configure Auto Discovery

3. In the Network Scan-based Auto Discovery table, click Configure Network Scan Discovery in the Host and Oracle VM Manager row. The Network Discovery page appears. Use this page to search, browse, and create OVM Manager discovery specifications.

Figure 5-6 Network Scan Discovery

4. Click Create. The Network Scan Discovery: Create page appears.

Figure 5-7 Network Scan Discovery: Create

5. Enter the Name and Description for the Discovery Specification. Click Add in the Network Scans region to select the Agent that is to be used perform the IP scan. For each Agent, specify the IP ranges for the scan. The following formats are supported: host name, IP address, and IP range. Use space to separate values.

6. Use the Job Details tab on the Host Discovery Specification Create page to schedule the discovery IP scan, allowing you to start it immediately or at a later specified time. Use the Credentials section to enter preferred credentials for the host. You can choose from Preferred Credentials, Named Credentials, or New Credentials. The discovery IP Scan is run as root. It is required that you set privileged host credentials or named credentials that use Sudo.

7. You can use the Host Discovery page to check the status of discovery and view newly discovered OVM Managers.

8. After the target has been discovered, from the Setup menu, select Add Target, then select Auto Discovery Results. Enterprise Manager displays the Auto Discovery Results page where you can review discovered unmanaged targets and promote targets to be managed by Enterprise Manager for monitoring.

9. On the Network-scanned Targets tab, the target discovery results are displayed in the table at the bottom. Select the OVM Manager target and click Promote. The OVM Manager Registration page is displayed. See Section 5.3, "Registering the Oracle VM Manager" for details.

5.3.5 Monitoring Configuration (OVM Manager)

To customize or view the monitoring configuration details for the OVM Manager target, follow these steps:

1. From the Enterprise menu, select Cloud, then select Infrastructure Home.

2. Click on an OVM Manager target in the left panel.

3. From the VM Manager menu, select Target Setup, then select Monitoring Configuration. The Monitoring Configuration page for the OVM Manager target appears.

Figure 5-8 Monitoring Configuration (OVM Manager)

4. The following details are displayed:

- LiveSyncEnabled: Indicates if auto synchronization is enabled between Enterprise Manager and Oracle VM Manager. By default, this is true. If enabled, the data is synchronized every 1 minute.

- Timeout Settings For Network Configuration of Deployment: The total wait time allowed for network configuration during assembly deployment. The default is 60 minutes.

- OVM Job Retry Count: The number of attempts that can be made after which the OVM Job should be retired. The default number of attempts is 5.

- OVM Job Retry Sleep Interval: The interval between two subsequent OVM job retry attempts. The default interval is 5 seconds.

- Timeout value for short running OVM Job (minutes): The time interval allowed for an OVM job to be completed.

- OVM Manager Console URL: The URL used to launch VNC consoles for VM.

Note:
For Oracle VM Manager 3.3, this URL is used to connect to the Oracle VM Manager.

- OVM Manager URL: The OVM Manager registration URL used for communication between Enterprise Manager and Oracle VM Manager.

- Oracle VM Manager Password: The password required to access Oracle VM Manager.

- Oracle VM UUID: The internal Oracle VM identifier.

- Oracle VM Manager Username: The username required to access Oracle VM Manager

- Timeout Settings for Product Configuration of Deployment: The total wait time allowed for product configuration during assembly deployment. The default is 60 minutes.

- Timeout Value for Checking if SSH Service is Running on a Deployed Virtual Machine: The total wait time allowed to check if the SSH service is running on a Guest VM. This parameter is used as prerequisite for deploying the Management Agent on the Guest VM.

- SyncDataFetchTime: The time at which the Oracle VM Manager was last synchronized.

- SyncStatus: The status of the Oracle VM Manager synchronization.

- Deployed on Exalogic: Indicates whether the Oracle VM Manager is inside an Exalogic rack.

5. After editing the entries, click OK to return to the previous page.

5.3.6 Upgrading the Oracle VM Manager

To upgrade from earlier versions of Enterprise Manager and Oracle VM Manager to Oracle VM Manager 3.3, follow these steps:

1. Upgrade Oracle Management Service to 12.1.0.4 and deploy the Oracle Virtualization 12.1.0.7 plugin.

2. Upgrade Management Agent to 12.1.0.4 and the deploy the Oracle Virtualization 12.1.0.7 plugin.

3. Blackout the old Oracle VM Manager target.

4. Upgrade the Oracle VM Manager to 3.3.1. For more information, see the Oracle VM Installation and Upgrade Guide for Release 3.3.

5. Upgrade the Oracle VM Server to 3.3.1. For more information, see the Oracle VM Installation and Upgrade Guide for Release 3.3.

6. Import the WebLogic certificate. See Section 5.3.3, "Importing the Oracle VM Manager WebLogic Certificate" for details.

7. Change the blackout status of the Oracle VM Manager target.

8. Add or modify the target property if required. For example, Webservice URL using Edit Oracle VM Manager page.

5.4 Synchronizing the Oracle VM Manager Targets

Enterprise Manager can monitor the OVM Manager and the various virtualization targets registered with the OVM Manager. The targets registered with the OVM Manager must also be monitored targets in Enterprise Manager. If some targets have been created directly in OVM Manager, you can synchronize them in two ways:

- Automatic Synchronization

- Manual Synchronization

5.4.1 Automatic Synchronization

You can enable this option when Oracle VM Manager is registered or when you Edit Oracle VM Manager. If the Automatic Synchronization option is enabled, all changes made in Oracle VM Manager are automatically reflected in Enterprise Manager at fixed intervals. The default interval is 1 minute. To change the default interval, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select an Oracle VM Manager target from the right panel to navigate to the Oracle VM Manager Home page.

3. From the Target menu, select Monitoring, then select Metrics and Collection Settings.

4. Click Other Collected Items and then click the Collection Schedule link for the OVM Manager Events Data metric.

5. Modify the frequency as required, click Continue, then click OK.

Note:
If you do not enable automatic synchronization at this time, you can enable it later by following these steps:

- Navigate to the OVM Manager homepage.

- From the Target menu, select Target Setup, then select Edit OVM Manager.

- Select the Automatic Synchronization check box and click Submit.

5.4.2 Manual Synchronization

When the Oracle VM Manager is registered, if the Automatic Synchronization option is enabled, for the targets created in Oracle VM Manager, corresponding targets are created in Enterprise Manager. If, this option is not enabled, you can manually synchronize the targets by following these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target from the left panel and select Synchronize.

3. A confirmation message appears. Click Submit to submit a job to perform synchronization. The targets in Enterprise Manager and OVM Manager are synchronized.

- Targets that are not present in OVM Manager will be removed.

- For targets present only in OVM Manager, corresponding targets are created in Enterprise Manager.

- Configuration collections are refreshed for all other targets.

5.5 Discovering a Virtual Server

A virtual server is a generic term used to describe a physical box which has virtualization software (hypervisor) running on it. A new virtual server can be provisioned by installing the OVM Hypervisor on a bare metal box. Before you add a virtual server to a server pool, it must be discovered.

To discover an Oracle VM Server, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target from the left panel and select Discover Virtual Server.

Figure 5-9 Discover Virtual Servers

3. Specify the host name or the IP address of the virtual server. You can enter multiple host names or IP addresses on separate lines.

4. Enter the user name and password of the Oracle VM Agent running on the virtual server to be discovered.

5. Click Submit to discover the virtual server.

The newly discovered Oracle VM Server contains some basic information about itself, and about any immediate connectivity to a network storage, but it is considered to be in an unconfigured state. After the storage and networking has been configured, the Oracle VM virtual servers are ready to be used as the infrastructure for cloud.

5.6 Rediscovering a Virtual Server

To rediscover a virtual server, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a Virtual Server target in the left panel and select Rediscover Virtual Server.

3. A confirmation message appears. Click OK to rediscover the virtual server and discover any new NICs and LUNs that have been added.

5.7 Setting Up Networks

This section discusses creation and use of Oracle VM Networks. You can define a name or an alias for each logical network. When you have created your networks, you connect the physical network ports on Oracle VM Servers to the logical networks. Before you define the logical networks in Enterprise Manager, you have to review your physical network configuration that you intend to use, such as VLAN and subnet usage. Setting up an Oracle VM network involves:

- Generating MAC Addresses

- Creating and configuring VLAN Groups / Interfaces

- Configuring a VLAN Group for Oracle VM Manager 3.2 or Earlier Versions

- Creating a VLAN Interface for Oracle VM Manager 3.3

- Creating Networks

Figure 5-10 Setting Up Networks

Note:
In Oracle VM Manager 3.3, VLAN Groups have been replaced with VLAN Interfaces. When you are configuring the VLAN Interface, you are prompted for the VLAN Segment IDs and the ports on which the interfaces are to be created.

5.7.1 Generating MAC Addresses

Virtual network interfaces (VNICs) are used to carry network traffic to virtual machines. You can generate MAC addresses that can be assigned to VNICs in a virtual machine. Specify a range of MAC addresses that need to be generated.

VLAN Group has been replaced with VLAN Interface and during Vlan interface configuration, it asjs VLAN Segment ID's and then Select Ports of Servers where the Interfaces to be created"

Note:
MAC addresses must be unique across all Oracle VM Managers in the data center.

To create MAC Addresses, follow these steps:

1. From the Enterprise menu, select Cloud, then select VM Infrastructure Home.

2. Right click on an OVM Manager target from the left panel and select Manage Network.

3. Figure 5-11 Virtual Network Interface Card Manager

4. Click the Virtual Network Interface Card Manager tab.

5. Click Generate. In the Generate MAC Addresses pop-up window, you are prompted to specify an initial MAC address in 3 sets of 3 characters. This is a two-digit number for the Initial MAC Address. Click OK to return to the previous page. You can now use these VNICs while creating virtual machines.

5.7.2 Configuring a VLAN Group for Oracle VM Manager 3.2 or Earlier Versions

Note:
Configuring a VLAN Group is an optional feature. If VLANs exist in your physical network, you must follow the steps in this section to use them in the cloud.

VLAN (Virtual Area Network) is a mechanism to virtualize network interfaces across subnets and physical location so that they appear to be on a single confined LAN. This concept is used to isolate (and group) the network traffic across these distributed interface, which enables secure network traffic within such nodes.

You can create multiple virtual LAN (VLANs) on the same NIC port. Each VLAN is an independent logical network operating with other VLANs over the same physical connection. Configuring VLANs involves creating one or more VLAN Groups, each of which contain multiple VLANs segments.

Each VLAN is assigned a distinct VLAN identification. The VLAN ID is used by an attached VLAN switch to segregate traffic among the different VLANs operating on the same link. Once a VLAN is configured, it functions exactly like a separate physical connection. VLANs need to be configured in the physical switches before you use them. To create a VLAN group, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target from the left panel and select Manage Network.

3. Click the VLAN Groups tab and click Create.

4. Enter a name and description for the VLAN Group.

5. Enter one or more VLAN Segments. This is the VLAN ID that is enabled on the switch ports connecting the virtual server to the switch. The valid range is from 1 to 4094.

6. Click Add to select the ports to be added to the network. Select one or more virtual servers to be added to the network. If you add more than two ports of a virtual server, the first four ports will be bonded. Network bonding refers to the combination of network interfaces on one host for redundancy or increased throughput.
If your network supports jumbo frames, you must set the Maximum Transfer Unit size in the MTU field. Setting the MTU field, sets the maximum transmission rate, so that larger packets can be sent and received. You can set the MTU to a maximum of 1500 for Ethernet, 9000 for 1GbE, and 64,000 for 10GbE.

Note:
The ports that you have selected must have the VLAN Segment IDs enabled.

7. Click OK to create the VLAN Group.

5.7.3 Creating a VLAN Interface for Oracle VM Manager 3.3

Note:
Configuring a VLAN Interface is an optional feature. If VLANs exist in your physical network, you must follow the steps in this section to use them in the cloud.

VLAN (Virtual Area Network) is a mechanism to virtualize network interfaces across subnets and physical location so that they appear to be on a single confined LAN. This concept is used to isolate (and group) the network traffic across these distributed interface, which enables secure network traffic within such nodes. VLANs are divided into segments that are usually tagged with an ID.

To manage network traffic tagged for different VLAN IDs, a separate VLAN or virtual interface can be created for each VLAN ID. When creating different logical networks in Oracle VM Manager, these VLAN interfaces can be attached to different networks to specify the type of traffic that belongs to a particular VLAN ID.

If your network is configured to support VLANs, you should define interfaces for your different VLAN IDs on each of your servers, so that you are able to define Oracle VM networks that take advantage of VLAN separation.

You can create multiple virtual LAN (VLANs) on the same NIC port. Each VLAN is an independent logical network operating with other VLANs over the same physical connection. Configuring VLANs involves creating one or more VLAN Interfaces, each of which contain multiple VLANs IDs.

Each VLAN is assigned a distinct VLAN identification. The VLAN ID is used by an attached VLAN switch to segregate traffic among the different VLANs operating on the same link. Once a VLAN is configured, it functions exactly like a separate physical connection. VLANs need to be configured in the physical switches before you use them. To create a VLAN Interface, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target from the left panel and select Manage Network.

3. Click the VLAN Interfaces tab and click Create.

Figure 5-12 Create VLAN Interface

4. Enter one or more VLAN Segments separated by commas.
VLANs are divided into segments that are usually tagged with an ID. The ID is enabled on the switch ports connecting the virtual server to the switch. The valid range is from 2 to 4094.

5. Click Add to select the ports to be added to the network. In the Create VLAN Interfaces: Add Ports page, click the Search icon next to the Select Virtual Server(s) field. Select one or more virtual servers to be added to the network and click Select. The list of ports with the MTU size, MAC Address, and status is displayed. Select the ports to be added and click Continue. If you select more than one port of a virtual server, they will be bonded. Network bonding refers to the combination of network interfaces on one host for redundancy or increased throughput.

6. The selected ports are displayed. You can modify the following for each port:

- MTU: If your network supports jumbo frames, you must set the Maximum Transfer Unit size in the MTU field. Setting the MTU field, sets the maximum transmission rate, so that larger packets can be sent and received. You can set the MTU to a maximum of 1500 for Ethernet, 9000 for 1GbE, and 64,000 for 10GbE.

- Address Type: The network address assignment type can be Static, Dynamic, or None.

- IP Address: The IP address for the port.

- Netmask: The netmask for the port.

- Bonding Mode: Network bonding refers to the combination of network interfaces on one host for redundancy and/or increased throughput. This can be:

- Active-Backup: There is one NIC active while another NIC is asleep. If the active NIC goes down, another NIC becomes active.

- Load Balancing: The network traffic is equally balanced over the NICs of the machine and failover is also supported to provide redundancy.

- Link Aggregation: Aggregated NICs act as one NIC which results in a higher throughput, but also provides failover in the case that a NIC fails.

Note:
The ports that you have selected must have the VLAN Segment IDs enabled.

7. The VLAN Segments with the ports, MTU, Address Type, IP Address, and NetMask are listed in the VLAN Interfaces region. These parameters can be modified if necessary.
Click the Manage icon to add or delete VLAN Segments and click OK and return to the Create VLAN Interfaces page. Click OK to create the VLAN Interfaces and return to the Network page.

5.7.3.1 Viewing the VLAN Interfaces

To view the VLAN Interfaces that have been added, click the VLAN Interfaces tab on the Network page. The VLAN Interfaces are listed with the following details:

- Name: The name of the VLAN Interface that is created.

- Port: The network port on which the VLAN Interface has been assigned.

- Segment: The VLAN ID assigned to the VLAN Interface.

- Server: The server where the VLAN Interface is located.

- Network: The network to which the VLAN Interface is attached.

- MTU: The MTU value for the VLAN Interface.

- Address Type: The network address assignment type. This can be Static, Dynamic, or None.

- IP Address: The IP address allocated to the VLAN Interface.

- Netmask: The netmask applied to the VLAN Interface.

5.7.3.2 Editing a VLAN Interface

To edit a VLAN Interface, follow these steps:

1. Select the VLAN Interface you wish to edit from the list of VLAN Interfaces and click Edit.

2. In the Edit VLAN Interface page, you can edit the MTU setting and the Address Type. If you select Static type, you can specify the IP Address and the Netmask.

3. Click OK to save the changes and return to the previous page.

5.7.3.3 Deleting a VLAN Interface

To delete a VLAN Interface, follow these steps:

1. Select the VLAN Interface you wish to delete from the list of VLAN Interfaces and click Delete.

2. The Delete Confirmation dialog box is displayed. Click OK to delete the VLAN Interface.

5.7.4 Creating Networks

A network is a grouping of Oracle VM virtual server physical NIC ports. This section describes the procedure to create a logical network.

Prerequisites

- If you choose to associate a network profile with the network, then the network profile must be created before the network is created. A network profile stores the network interface configuration (IP address, subnet mask, host name, DNS servers) that is allocated to network interfaces of newly provisioned virtual machines.

Follow these steps to create a logical network:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target from the left panel and select Manage Network.

3. Click the Create option in the Networks tab. You are prompted to configure the ports of the VLAN groups. Click Create VLAN Groups to configure VLAN Groups.
For Oracle VM Manager 3.3, click Create VLAN Interfaces to configure the VLAN interfaces. See Section 5.7.3, "Creating a VLAN Interface for Oracle VM Manager 3.3" for details.

If you want to create the networks without configuring the VLAN groups or interfaces, click Continue Network Creation. In the Create Network: General page, enter the name and description of the network.

Figure 5-13 Create Network: General

4. Specify if you are creating an inter-server or intra-server network. An inter-server network is routable through standard switches. An intra-server network is available within a single server without a route to an external physical network.

5. Specify the network role by checking one or more check boxes in the Network Roles section.

Note:
To deploy a Guest VM, you must have at least one logical network with the Virtual Machine role.

- Server Management: Manages the physical virtual servers in a server pool, for example, to update the Oracle VM Agent on the different virtual servers.

- Live Migrate: Carries live migrate traffic. You can migrate virtual machines from one virtual server to another in a server pool, without changing the status of the virtual machine.

- Cluster Heartbeat: Carries cluster heartbeat traffic.

- Virtual Machine: Used for the network traffic between the different virtual machines in a server pool. The virtual machine role can either be an Inter-Server (routable through standard switches), or an Intra-Server (without a route to an external physical network). The Virtual Machine role must be unique on the network, which means that this network cannot have other network roles. It is however possible, and very likely, to have multiple networks with the Virtual Machine role in one Oracle VM Manager.

- Storage: Used for all storage transport in a server pool. It is used by the virtual servers to connect to ethernet-based storage repositories.

6. Click Next. In the Configure Ports and VLAN Interfaces page, click Add and select a VLAN Interface from the list.

Figure 5-14 Create Network: Configure Ports and VLAN Interfaces (OVM Manager 3.2)

7. After adding the VLAN Segment, click Add the VLAN Interfaces and the ports. Select the ports to be added to network. If you select more than two ports, they will be bonded or aggregated into a single interface. By default, the Bonding Mode is Active Passive but you can change it by selecting one of the following:

- Active Passive: There is one active NIC. If this one goes down, another NIC becomes active.

- Link Aggregation: All NICs act as one NIC which results in a higher throughput.

- Load Balanced: The network traffic is equally balanced over the NICs of the machine.

If your network supports jumbo frames, you must set the Maximum Transfer Unit size in the MTU field. Setting the MTU field, sets the maximum transmission rate, so that larger packets can be sent and received. You can set the MTU to a maximum of 1500 for Ethernet, 9000 for 1GbE, and 64,000 for 10GbE.

Note: If you are using Oracle VM Manager 3.3, you will see the following page:

Figure 5-15 Create Network: Configure Ports and VLAN Interfaces (OVM Manager 3.3)

8. Click Next. The Network Profile and QoS page appears.

Note:
Defining the Network Profile and QoS is optional. A network profile stores the network interface configuration (IP address, subnet mask, host name, DNS servers) to be allocated to network interfaces of newly provisioned virtual machines.

Figure 5-16 Create Network: Network Profile and QoS

Specify the following:

- Network Type: You can select Internet Routable, Non Internet Routable, or a predefined set of network types. For more details, see Section 5.16.1, "Setting Up the Network Type".

- Network Profile: A network profile defines a set of IP Addresses, their associated host names (optionally), and common networking attributes for them. See Section 5.8, "Creating a Network Profile" for details.

9. Review the details entered so far and click Finish to create the network.

5.8 Creating a Network Profile

A network profile is used to automate assignment of IP addresses to guest virtual machines. A network profile is a list of IP address along with host names. It defines a set of IP addresses, their associated host-names, and common networking attributes for them.

Figure 5-17 Network Profile

To create a network profile, follow these steps:

1. From the Setup menu, select Provisioning and Patching, then select Network Profile.

2. Click Create on the Network Profile page.

3. Enter the following details in the Create Network Profile pop-up window:

- Name: Unique name that identifies the network profile name.

- Domain Name: Domain for which the profile is being defined. The domain name must not begin with a dot ('.'). For example, you must specify the domain name as us.example.com and not with a dot ('.) in the front like .us.example.com.

- Netmask: Network mask for the subnet IP. For example: 255.255.240.0

- Gateway: Gateway for the IP address list.

- DNS Servers: Name resolution servers.

4. You can add a list of IP addresses or specify a range. If you select:

- List: Specify IP addresses with host name and MAC address (optional).

- Range: Specify a Hostname Pattern. The Start Value is appended to the host names generated. The First IP Address and the Last IP Address defines the range. For example: If the pattern is say hostprod and Start Value is 1, First IP Address is 10.1.1.1 and Last IP Address is 10.1.1.3, the host names will be hostprod1, hostprod2 and hostprod3.

5. Click OK to save the network profile.

5.9 Registering Storage Servers

You can create external storage elements like storage servers, file systems, and LUNs. An external storage element is created on dedicated storage hardware such as a server configured for NAS offering NFS shares. The server on which the storage element is present must be accessible by the Oracle VM Servers through a fibre channel or ethernet network. You can configure a virtual server pool with multiple such external storage devices.

Figure 5-18 Creating Storage Servers and File Systems

To set up a storage server, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target in the left panel and select Manage Storage. Figure 5-19 appears.

3. Figure 5-19 Storage Server

4. A list of file servers, storage arrays, and local file servers that have been defined appears.

- Type: Select the type of storage array that can be defined. A storage array is additional network provided storage that can be specifically used to store virtual disks for virtual machines. A server pool can be configured with multiple external storage devices. You can define 3 types of storage servers:

- iSCSI: An iSCSI target configured or discovered on the Oracle VM Server.

- SAN: A Fiber Channel SAN target configured/discovered on the Oracle VM Server.

- NFS: An NFS or NAS file system mounted locally.

Select File Server (NFS) or Storage Array (iSCSI or SAN).

5. You can register a File Server or a Storage Array by clicking the appropriate link.

6. Select a storage element and click Discover to start the discovery operation of the file systems available on the server. A confirmation message prompting you to refresh the file system appears. Click OK to refresh the file system and return to the Storage page.

7. Click on a File Server, Storage Array, or Local File Server link to drill down to the Details page.

8. Select a storage element and click Validate. A confirmation message prompting you to validate the storage server appears. Click OK to refresh the file system and return to the Storage page.

5.9.1 Registering the File Server

To register a file server, follow these steps:

1. Click the File Server link on the Storage page. The Register File Server: General page appears.

Figure 5-20 Register File Server: General

2. Enter the following details:

- Name: Name by which the storage server is to be identified.

- Plugin Name: The Oracle VM Manager communicates with the external storage through a set of plug-ins. Generic plug-ins offer a limited set of standard storage operations on virtually all storage hardware, such as discovering and operating on existing storage resources. Vendor-specific plug-ins include a much larger set of operations (snapshot, clone, and so on).

- Admin Host: Host name of the Administration Server.

- Admin Username and Password: User name and password for the Administration Server.

- Access Host: Host name or IP address of the server offering external storage.

- Uniform Exports: Select this check box to indicate that the NFS exports are uniform. This ensures that all the VM Servers in the server pool will have access to the same exports on the NFS server. If this check box is not selected, the NFS exports can be accessed only by specific servers that are used to refresh the NFS file systems.

3. Click Next. The Register File Server: Admin and Refresh Servers page appears. Enter the following:

- Admin Servers: VM Servers that have the required Storage Plugin installed and are responsible for information exchange with the Admin Host of the Storage Server are referred to as Admin Servers. Click Add to add one or more Admin Servers.

- Refresh Servers: If you have not selected the Uniform Exports checkbox in the Register File Server: General page, click Add to specify the list of Refresh servers that will be used to refresh the NFS file systems.

4. Click Finish to add the file server. The new server appears in the table. At this point, the Storage Connect plugin has established a link to the storage location. No storage has been mounted yet.

5. Click Discover to start the discovery operation of the file systems available on the server. When the operation is complete, the available file systems appear in the File Systems tab in the Storage Details page.

5.9.2 Registering the Storage Array

To register a storage array, follow these steps:

1. Click the Storage Array link on the Storage page. The Register Storage Array: General page appears.

Figure 5-21 Register Storage Array: General

2. Enter the following details:

- Name: Name by which the storage server is to be identified.

- Storage Type: Select the type of storage array that can be defined. A storage array is additional network provided storage that can be specifically used to store virtual disks for virtual machines. You can define 2 types of storage arrays:

- Fibre Channel Storage Array: A Fiber Channel SAN target configured or discovered on the Oracle VM Server.

- iSCSI Storage Array: An iSCSI target configured or discovered on the Oracle VM Server.

- Plugin Name: The Oracle VM Manager communicates with the external storage through a set of plug-ins. Generic plug-ins offer a limited set of standard storage operations on virtually all storage hardware, such as discovering and operating on existing storage resources. Vendor-specific plug-ins include a much larger set of operations (snapshot, clone, and so on).

- Plugin Private Data: Any vendor-specific storage plug-in data that may be required. This is not available to generic storage.

Note:
When registering a vendor-specific storage array, be sure to double-check the information you entered in the plug-in private data field. Once the storage array is registered, this field can no longer be modified. If you need to update the plug-in private data, you must unregister and re-register the storage array.

- Admin Host: Host name of the Administration Server.

- Admin Username and Password: User name and password for the Administration Server.

3. Click Next. The Register Storage Array: Access Information page appears.

Figure 5-22 Register Storage Array: Access Information

4. Enter the following details:

- Access Host: Host name or IP address of the server offering external storage.

- Access Port: Port number used to access the storage.

- Access Username and Password: User name and password for the Access Host.

- Use Chap (Applies to all Access Hosts): Select this check box to enable Chap authentication.

Note:
If you have selected the Storage Type as iSCSI Storage Array and Plugin Name as Oracle Generic SCSI Plugin (1.2.1 or above) in the Register Storage Array: General page, you can add multiple Access Hosts as shown in Figure 5-23.

Figure 5-23 Register Storage Array (Multiple)

5. Click Next. The Register Storage Array: Admin Servers page appears. Click Add to add one or more Administration Servers on which the storage plug-in has been installed. The Administration Server is responsible for information exchange with the Administration Host of the storage server.

6. Click Finish to add the storage array. The new server appears in the table. At this point, the Storage Connect plugin has established a link to the storage location. No storage has been mounted yet.

7. Click Discover to start the discovery operation of the file systems available on the server. When the operation is complete, the available file systems appear in the General tab of the Storage Details page.

5.9.3 File Server Details

Click a File Server link to view the Details page. This page contains the following tabs:

- General: A list of Administration Servers is displayed. An Administration Server is a virtual server on which the storage plug-in has been installed. You can add an Administration Server or delete an existing one.
In the Configuration region, the storage server details are displayed. Click Edit to modify details such as Name, Description, and the name of the Access Host which provides the external storage.

In the Storage QOS Mapping region, map the storage type defined by the Cloud Administrator to the QOS defined by the Storage Server.

- Refresh Servers: For non-uniform NFS file system exports, you can specify the servers that need to be refreshed. Click Add. The Refresh Servers dialog box is displayed. Click Select Servers, choose one or more servers from the list and click Select. Click OK to refresh the servers.

- File Systems: A list of file systems is displayed. You can do the following:

- Select a file system from the list and click Edit. You can modify the name and description of the file system.

- Select a file system and click Delete. A confirmation message is displayed. Click OK to delete the file system.

- Select one or more file systems and click Refresh. A confirmation message is displayed. Click OK to refresh the file system.

- Access Groups: Shows the mapping between Refresh Servers and File Systems (Exports). You can Create, Edit, or Delete an Access Group.

5.9.4 Storage Array Details

Click a Storage Array link to view the Details page. This page has four tabs:

- General: Provides general information on the storage array. A list of administration servers is displayed in the Administration region. An Administration Server is a virtual server on which the storage plug-in has been installed. You can add an Administration Server or delete an existing one.
In the Configuration region, the storage server details are displayed. Click Edit to modify the Name and Description.

- Physical Disks: Displays a list of all the physical disks on the storage array. Depending on the type of storage connector (You can Create, Clone, Edit, Resize (resize or extend the physical disk), Rescan (refreshes the physical disk), Delete, and Create File System (create OCFS2 file system on the physical disk).

Note:
The operation allowed depends on the type of storage connect plug-in that has been installed. For example, if the generic storage connect plug-in has been installed, you cannot perform a Create operation on the physical disks.

- Access Group: Shows the mapping between Storage Initiators and Physical Disks. You can Create, Edit, Present / Unpresent Access Group (Add or Delete physical disk), and Delete access group.

- Volume Group: Displays the volume group available for this storage server.

5.9.5 Local File Server Details

Click on a Local File Server Servers link to view the Details page. This page contains the following tabs:

- General: The configuration details of the selected Local File Server including the Administration Host, Plug-in Name, and so on are displayed.

- File Systems: You can edit or refresh a file system in the list. Select a file system from the list and click Edit. You can modify the name and description of the file system.
To refresh, select a file system from the list and click Refresh. Select the name of the virtual server and click OK to refresh the file system.

5.10 Creating a Storage Repository

A storage repository is virtual disk space on top of physical storage hardware, made available to the Oracle VM Servers in a server pool or various server pools. It defines where Oracle VM resources may reside. Resources include virtual machines, templates for virtual machine creation, virtual machine assemblies, ISO images, shared virtual disks, and so on.

After you have created the storage server, you can assign these storage resources to the server pools in a zone by creating a storage repository.

To create a storage repository, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target in the left panel and select Manage Storage Repository.

Figure 5-24 Storage Repository

3. The list of storage repositories that have been defined appears. Click Create to create a storage repository.

4. In the pop-up window, enter the name of the storage repository.

Figure 5-25 Create Storage Repository

5. Click the Search icon in the Disk field to select the Storage Server and File System on which the storage repository is to be created and click OK.
If you select the NFS File System, you must select the location of the storage server and a virtual server. You can optionally specify the Share Path and a description. The storage repository has now been created and will be displayed in the Storage Repositories page.

5.10.1 Performing Administrative Operations on a Storage Repository

After the storage repository has been created, you can perform a number of management operations on it. The listing of storage repositories depends on the server pool selection. If you select server pools, you see all the storage repositories. If you select an individual server pool, only the storage repositories related to that server pool appear. You can perform the following operations:

- Edit: Select a repository and click Edit. You can modify the name and description or release the ownership of the repository. Click OK to save the changes.

Figure 5-26 Edit Storage Repository

Note:
If you are editing a storage repository that has been created on a physical disk, you can change the server pool with which the storage repository is associated. To change the server pool, in the Edit dialog box, click the Search icon next to the Server Pool field, select a different server pool and click OK.

- Delete: Select a repository and click Delete. All the contents of the selected repository along with its associations will be deleted.

- Auto-Refresh: Select this option to enable Auto-Refresh and periodically refresh and update the file system size of all storage repositories. In the dialog box that appears, select the Enable check box and specify the Interval at which the file system size is to be refreshed.

Note:
As the Auto-Refresh option locks the repositories, you must use this option when no deployment operations are scheduled.

5.11 Presenting the Storage Repository

After you have created the storage repository, you can propagate it to one or more server pools. When the storage repository is prepared and created, it still must be made available for use by your virtual servers before it can be used. Typically you present the storage repository to all the virtual servers in the server pool.

To present a storage repository to server pool, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target from the left panel and select Manage Storage Repository.

3. In the Storage Repository page, select a storage repository from the list. The list of server pools on which the storage repositories have been propagated appears.

Figure 5-27 Presented Servers

4. Select one or more server pools from the list and click Present. In the Present Servers dialog box, click the Select Servers icon. The list of members appears in the Select Targets dialog box. Expand the Members in this dialog box and check the boxes for zones, pools, or individual virtual servers and click Select to return to the previous dialog box. Click Present to mount the member on the server.

5.12 Importing Assemblies, Templates, and Virtual Disks into the Storage Repository

A storage repository associated with an Oracle VM server stores binary components associated with an Oracle VM servers. The following software components can be stored in the storage repository:

- Oracle VM Templates

- Oracle Virtual Assemblies

- ISOs

- Virtual Disks

- VM Files

The Oracle Virtual Assemblies, Oracle VM Templates and ISO images need to be imported into the storage repository before guest virtual machines can be created using them. Follow these steps to import software components into the storage repository:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target in the left panel and select Manage Storage Repository.

3. Click on a Repository Name link. The Storage Repository Details page shows the list of server pools on which the selected storage repository has been propagated.

4. Click the Assemblies tab. An assembly can be imported as a single .ova file.

Figure 5-28 Storage Repository - Assemblies

- Click Import. You can import the assembly from the Software Library or from an external source. If you select:

- Software Library: The list of assemblies present in the Software Library are displayed. Select the assemblies to be imported and click OK. After the assembly has been imported, a series of templates is created. This option unpacks the contents of the assembly, for example, configuration files, disk images, and so on.

- External: Specify a external URL from which the assembly is to be imported and click OK. The URL you specify must be accessible from the OVS Host on which the repository is presented.

5. Click on the ISOs tab to import the ISO images. Virtual machines have no access to the physical DVD or CD-ROM drive. You can assign virtual drives to virtual machines by offering .iso files containing the image of a DVD or CD-ROM. These image files can be found in the ISOs tab of the storage repository.

- Click Import. You can import the ISO image from the Software Library or from an external source. If you select:

- Software Library: The list of ISO images present in the Software Library are displayed. Select the ISO images to be imported and click OK. Select the ISO image that has been imported and click Assign to assign this template to a server pool.

- External: Specify a valid external URL from which the ISO image is to be imported and click OK. The URL you specify must be accessible from the OVS Host on which the repository is presented.

6. Click the VM Templates tab. Templates contain the configuration of a single virtual machine. When you create a new virtual machine, you choose to either create it from scratch or from a template. In a storage repository, templates are typically imported as an archive (.tgz, .tar or other). The archive contains a .cfg file with the virtual machine configuration, and at least one .img file which is a virtual disk image.

Figure 5-29 Storage Repository - VM Templates

- Click Import. You can import the VM Template from the Software Library or from an external source. If you select:

- Software Library: The list of VM Templates present in the Software Library are displayed. Select the VM Template to be imported and click OK. After the template has been imported, select the template and click Assign to assign this template to a server pool.

- External: Specify a valid external URL from which the VM template is to be imported and click OK. The URL you specify must be accessible from the OVS Host on which the repository is presented.

7. Click on the Virtual Disks tab.

Figure 5-30 Storage Repository - Virtual Disks

- Click Create and size of virtual disk to be created.

- Indicate if this is a shared disk by checking the Shared check box.

- Click Import. You can import the virtual disk from the Software Library or an external source. If you select:

- Software Library: The list of virtual disks present in the Software Library are displayed. Select the virtual disks to be imported and click OK. Select the virtual disk has been imported, click Assign to assign this template to a server pool.

- External: Specify a valid external URL from which the virtual disk is to be imported and click OK. The URL you specify must be accessible from the OVS Host on which the repository is presented. If you reference the virtual disk using http:// or ftp:// protocols, you must include user/pw in the reference.
For example, you must specify the URL as http://user:pw@host/virtualdisk_file_image_file or ftp://user:pw@host/virtual_disk_image_file. If the virtual disk is accessible by way of NFS, you can also specify file:///net/host/virtual_disk_image_file if the OVS is enabled for NFS automount.

8. Click Return to return to the Storage Repository page.

5.12.1 Creating a Repository Export (Optional)

You can configure the virtual server to enable third party applications to back up the contents of the storage repository.

Prerequisites

- The Repository Exports feature is available only for storage repositories based on physical disks and at least one server must have been presented to the repository.

- The virtual server must be configured to provide an NFS share to access the contents of the repository.

- The virtual server must be in a clustered server pool and have the OCFS2-based storage repository presented to it.

To create a repository export, follow these steps:

1. Click the Repository Exports tab in the Storage Repository Details page.

2. Click Create. The Create Repository Export window appears.

Figure 5-31 Storage Repository - Repository Exports

3. Enter a name of the host which is used to mount the contents of the storage repository to the Export Server.

4. Specify the options to restrict access to the respository. For Linux systems, the default is rw, async, no_root_squash.

5. Click Add in the Export Server(s) region. Select one or more virtual servers on which the storage repository is to be presented and click Select.

6. Click OK to submit the job and return to the Storage Repository Details page.

5.13 Using Self Update to Download Oracle VM Templates and Virtual Assemblies

You can download the preconfigured assemblies and templates from the Self Update Console by following these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Setup menu, select Extensibility and then select Self Update. The Self Update Console with the list of entity types that can be downloaded appears.

Figure 5-32 Self Update Console

3. Select the Oracle VM Templates and Oracle Virtual Assemblies folder and click Open. The Oracle VM Templates and Oracle Virtual Assemblies Updates page appears.

4. Select an update and click Download. The Schedule Download dialog appears.

5. Specify if the update is to be downloaded immediately or at a later date.

6. Click Select. An Enterprise Manager job is created to download the update to the Software Library. Enterprise Manager starts downloading the archive from the Oracle Enterprise Manager store. Wait for the download to complete. (When in offline mode the system starts reading from the specified location.) When the download is complete, the status indicates that the update has been downloaded.

7. Click Apply. A job is submitted to apply the update. The downloaded plug-in is applied and appears on the Oracle VM Templates and Oracle Virtual Assemblies Updates page.

5.14 Creating a Virtual Server Pool

This section guides you through the ways of designing a server pool to meet your requirements.

Before creating a server pool, you need to consider how many physical servers will be contained in the server pool, and what functions each physical server will perform. The more virtual machines you will run in the server pool, the more resources these virtual machines will consume, therefore the more physical servers are needed to provide sufficient resources for the server pool.A server pool is scalable. If you find a server pool does not have sufficient resources, such as CPU and memory, to run the virtual machines and the applications inside, you can expand the server pool by adding more Oracle virtual servers.

A virtual server pool contains one or more virtual servers and guest virtual machines. A virtual server can belong to one and only one virtual server pool at a time. Guest virtual machines and resources are also associated with the server pools.

Prerequisites

- A non-clustered virtual server pool can contain a maximum of 64 Oracle VM servers and a clustered virtual server pool can contain a maximum of 32 Oracle VM servers.

- Virtual servers that can be deployed as the Master Server, the Utility Server, and/or the Guest Virtual Machine. At least one virtual server is required in a server pool.

- All virtual servers in a server pool should have CPUs in the same CPU family. If they are not in the same CPU family, some operations such as live migration may fail. Though the CPUs should be in the same CPU family, they may have differing configurations, such as different number of cores. Other hardware components on the host computer may also differ, such as the amount of RAM, the number and size of disk drives, and so on.

Note:
Although the host computers may have differing configurations, Oracle recommends that all virtual servers in a server pool are identical.

- A dedicated file system (either a NAS export, or a LUN) to use as the server pool file system is available.

- IP addresses for the virtual servers must be available. The IP address to be used as the Master Server's virtual IP address must be an unused and available IP address.

- To create a virtual server pool, you must be logged in as an Administrator with Add Any Target privilege.

- To delete a virtual server pool, you must have Full privilege on the server pool and appropriate privileges on the virtual servers and guest virtual machines belonging to the virtual server pool.

To create a virtual server pool:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target in the left panel and select Create Virtual Server Pool.

Figure 5-33 Create Virtual Server Pool

3. Enter the server pool information:

- Virtual Server Pool Name: The name of the server pool. A server pool name must consist of alphanumeric characters, and must not contain spaces or special characters, except the underscore (_) or hyphen (-) characters. The maximum length of a server pool name is 200 characters.

- Description: A description of the server pool.

- Keymap: Specify the keyboard type for the guest virtual machines created in this server pool.

- VM Start Policy: Select the policy to be used to start the virtual machines. You can choose:

- Start on Best Server: The best server in the server pool is used to start the virtual machine.

- Start on Current Server: The virtual machine will be started on the same server on which it was created.

- Secure VM Migrate: Specify whether encrypted migration of virtual machines is to be enabled. If this checkbox is selected, virtual machines are migrated using SSL to protect data during the migration process.

- Activate Cluster: Select this check box to enable high availability on the server pool.

- Cluster Timeout: If the Activate Cluster is enabled, you can set the cluster timeout period in seconds. The disk heartbeat and network heartbeat are derived from the cluster timeout value.

- Type of Pool File System: Select the pool file system to use for the server pool. The pool file system is used to hold the server pool, cluster data, and is also used for the cluster heartbeat.
The type can either be Network File System or Physical Disk. If you are using a file server for the server pool, select Network File System. If you are using a physical disk on a storage array for the server pool, select the type as Physical Disk.

- Location: Click the Search icon to search for and select the pool file system. This must be accessible by all virtual servers in the server pool.

- Virtual IP: An IP address used to locate the Master Server in the server pool. If the Master Server changes to another Oracle VM Server, this IP address is then assigned to the new host.

4. Click Add in the Virtual Servers section. Select one or more virtual servers from the Search window and click OK.

Note:
Before you add a virtual server to the server pool, it must have been discovered. See Section 5.5, "Discovering a Virtual Server" for details.

5. Click OK to create a virtual server pool.

5.14.1 Editing a Virtual Server Pool

You can edit the configuration information of a virtual server pool, including the description, key map, start policy, and so on. You can also change the master server, which controls the cluster, as well as whether the virtual machines are migrated securely. You cannot change the Virtual IP or the Pool File System used for the server pool. To edit a virtual server pool, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. From the left panel, select the virtual server pool target that you want to edit.

3. From the VM Server Pool menu, select Target Setup, then select Edit VM Server Pool. The Edit Virtual Server Pool page appears.

4. You can also edit the following fields:

- Keymap: The keyboard type for the guest virtual machines created in this server pool.

- VM Start Policy: The policy to be used to start the virtual machines. You can choose to start on the current server or on the best server.

- Secure VM Migrate: Indicates whether encrypted migration of virtual machines is to be enabled. If this checkbox is selected, virtual machines are migrated using SSL to protect data during the migration process.

5. In the Virtual Servers region, you can add or remove virtual servers.

6. Click Change Agent Password to change the password for the Management Agent running on the Master Server. The modified password will applied to the Management Agents running on all virtual servers in the server pool.

Note:
Before you add a virtual server to the server pool, it must have been discovered. See Section 5.5, "Discovering a Virtual Server" for details.

7. You can Add, Edit, or Delete Anti-Affinity Groups. Anti-affinity groups specify that a group of virtual machines cannot run on the same server. In the Add Anti-Affinity Group window, enter a name for the group and select one or more virtual machines that should be part of this group. The virtual machines that are part of this group cannot run on the same server.

8. Click OK to apply the changes to the virtual server pool.

5.15 Creating a Zone

A zone is used to group related cloud resources together. Cloud zones can be created based on location, software lifecycle status, for grouping resources according to a cost center or for metering and chargeback purposes. Typically, a zone can cover a department or possibly a small data center. The cloud environment can comprise of one or more zones. Each zone has a set of metrics that show the aggregate utilization of the zone.

Prerequisites

- To create a zone, you must be logged in as an Administrator with Add Any Target privilege.

- To remove a zone, you must have Operator / Full privilege on the zone.

Follow these steps to create a zone:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click the OVM Manager target for which the zone is to be created in the left panel and select Create Zone.

Figure 5-34 Create Zone

3. In the Create Zone page, specify the zone name and description.

4. Indicate if this zone will be used by the self service users by checking the Infrastructure Cloud Self Service Zone check box.

5. Click Add in the Virtual Server Pool section to add one or more virtual server pools. See Section 5.14, "Creating a Virtual Server Pool" for details. You can add the virtual server pools for which you have the privileges and that are not part of any other zone.

6. Click OK. The virtual server pools and the storage arrays appears in the newly created zone on the Home page.

5.16 Setting Up the Storage Quality of Service (QoS)

Storage QoS refers to quality of service that is defined at the storage server level. Setting up the storage QoS involves defining various storage properties. Before deploying a guest virtual machine, you can define the storage QoS, map this QoS to a storage server, and specify this QoS while deploying a guest virtual machine.

This involves defining the machine size, network type, and the storage QoS. After you have set up the storage QoS, you can set up the storage servers, network repositories, and storage arrays. This storage QoS can then be used during deployment of guest virtual machines.

To define the storage QoS, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on the Infrastructure Cloud menu in the left panel and select Setup.

Figure 5-35 Storage Quality of Service

3. Click Create in the Storage Quality of Service page.

4. In the pop-up window, specify the name and description of the storage QoS and click OK. The newly added storage QOS appears on the Storage Quality of Service page.

5. Navigate to the OVM Manager Home page and select Storage from the OVM Manager menu.

6. Click the Storage link under File Servers. In the General tab, scroll down to the Storage QOS Mapping region.

7. Click Edit. The Storage QOS Mapping window appears. Click Add and select that you had created earlier. The Storage QOS you have added appears in the Storage QOS Mapping table.

8. To see how this mapping is used when you deploy an assembly, navigate to the Home page of a Zone under the OVM Manager. From the Zone menu, select Deploy, then select Assembly.

9. In the Deployment Configuration page, click Override in the Disk section and select the Storage QOS you have created. This storage QOS will be used for deploying the assembly.

5.16.1 Setting Up the Network Type

You can define the QoS for network by defining some network types like routable, internet-facing, and so on. After the network QoS has been defined, you can map this to any network that is being created. You can then use this network type while deploying a guest virtual machine.

To define the network QoS, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select Setup from the Infrastructure Cloud menu.

3. Click the Network Types link on the Infrastructure Cloud page.

Figure 5-36 Network Types

4. Click Create in the Network Types page.

5. Enter a name and description of the network type and click OK.

5.16.2 Setting Up the Machine Sizes

You can define the machine size that will be available to the SSA users and during deployment. To define the machine size, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on the Infrastructure Cloud menu in the left panel and select Setup.

3. Click the Machine Sizes link on the Infrastructure Cloud page.

4. Click Add Machine Size.

5. Enter the name (internal name of the machine size), description, number of VCPUs, amount of memory and local storage assigned to machines of this size. Click Save to add this machine size.

5.16.3 Configuring the Software Library User

While setting up the storage repository, you can import VM Templates, Assemblies, and other software components into the storage repository. To configure the software library user who has the privileges to perform these tasks, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on the Infrastructure Cloud menu and select Setup.

3. Click the Software Library User Configuration link on the Infrastructure Cloud page.

4. Enter the password for the Cloud Software Library user who is allowed to import components from the Software Library. This password must be specified when the user accesses the Software Library and download the required components.

5.16.4 Configuring the Software Library User with External Management Agent

If the Management Agent is running on a remote machine, when importing the virtualization components, you must ensure that:

- The Software Library user must have Execute command privileges on the remote host.

- If Named Credentials are required to access the Management Agent on the remote host, the Software Library user must have View privileges while creating the Reference File locations for the Agent Storage Type.

To set up View privileges, follow these steps:

1. From the Setup menu, select Security, then select Named Credentials.

2. Select the Named Credentials to be used while creating the Software Library Reference Location of Storage Type: Agent.

3. Click Add Grant. Select the CLOUD_SWLIB_USER and click Save.

To set up Execute privileges on the remote host, follow these steps:

1. From the Setup menu, select Security, then select Administrators.

2. Select the CLOUD_SWLIB_USER and click Edit.

3. Navigate to the Target Privileges step. In the Target Privileges section, click Add and select the host target on which the Management Agent is running. The host target is added to the table.

4. Select the host target added in the Step 3 and click the Edit icon in the Manage Privilege Grants column. Select Execute Command in addition to the already existing View option and click Continue.

5. Click Save to save this configuration.

5.16.5 Defining the Request Purging Policy

All deployment requests can be retained for a certain period and then purged. To specify the number of days for which the requests should be available, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on the Infrastructure Cloud menu and select Setup.

3. Click the Request Archiving Policy link on the Infrastructure Cloud page.

4. Select the Enable Archiving check box, specify the Archiving Duration, and click Apply. The requests will be archived for the specified period and will then be purged.

5.17 Patching the Oracle VM Server

Oracle provides a publicly available YUM repository which includes repositories for Oracle VM. These repositories include the full releases of Oracle VM and mirror those releases on the Oracle VM DVDs/ISOs. The Oracle VM Server must be patched to ensure that the latest software updates and enhancements are applied. Patching the Oracle VM Server involves the following:

- Configuring the YUM Repository

- Upgrading the Virtual Server

5.17.1 Configuring the YUM Repository

You can configure the YUM repository that is to be used to upgrade the virtual server. The configured YUM repository can be used for to upgrade all discovered virtual servers.

Prerequisites

- The YUM repository being configured must be present at a http location. You can configure an internal or public YUM repository.

To configure the YUM repository, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on an OVM Manager target in the left panel, then select Manage YUM Repository.

3. Enter the following details in the YUM Repository page:

- Name: Name of the YUM repository.

- YUM Base URL: HURL for the YUM repository.

- Enable GPG Key: Select this check box if you want to enable the GPG key. The GPG key checks the validity of the YUM repository and packages downloaded from the repository.

- YUM GPG Key: If the Enable GPG Key field has been checked, specify the YUM GPG Key here.

4. Click OK. The YUM repository will be configured for the Oracle VM Manager.

5.17.2 Upgrading the Virtual Server

After you have configured the YUM repository, you must upgrade the virtual server to ensure that it has the latest updates. The virtual server being upgraded must be in maintenance mode. To upgrade the virtual server, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a VM Server in the left panel and select Upgrade.

Note:
The Upgrade button is disabled if the Oracle VM Manager version is 3.3.x and the Oracle Virtual Server version is less than 3.3.1.

3. A confirmation message appears. Click OK to proceed with the upgrade. After the virtual server has been upgraded, the virtual server will be restarted.

5.18 Acknowledging OVM Events

OVM events are generated for all operations performed on a server, server pool, storage, or network. The event can be Informational, Minor, or Critical. When a target is in an error state, a Critical event is generated. Targets with a Critical status cannot be used to perform any operations. The EM_CLOUD_ADMINISTRATOR can acknowledge such events as the associated targets cannot be used. To acknowledge an OVM event, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Click on a VM Server in the left panel to navigate to the VM Server Home page.

3. From the VM Server menu, select OVM Events. The list of unacknowledged events appears. Select an event from the list and click Acknowledge to acknowledge the event.

5.19 Managing the NTP Configuration

Note:

- This feature is available only with Oracle VM Manager 3.2.1 or later.

- The NTP Server to be added must already be configured to provide the NTP service.

Network Time Protocol (NTP) is a networking protocol that enables clock synchronization across all Oracle VM Servers managed by an Oracle VM Manager. By default, when an Oracle VM Server is discovered, it is configured to use the Oracle VM Manager host computer as the NTP time source. You can configure a custom list of NTP servers that will be used to synchronize the clock when an Oracle VM Server is discovered. To create a custom list of NTP servers, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home. The Infrastructure Cloud Home page appears.

Figure 5-37 NTP Configuration

2. Right click on an Oracle VM Manager target from the left panel and select Manage NTP Configuration.

3. To add an NTP server, click Add. In the Add NTP Server dialog box, enter the IP address or hostname of the NTP server in the IP Address/DNS Hostname field and click OK.

4. To edit an NTP server, select the server in the table and click Edit. In the Edit NTP Server dialog box, you are prompted for the name of the New NTP Server. Enter the IP address or hostname of the new NTP Server and click OK.

5. To delete an NTP server, select the server in the table and click Delete. A confirmation message is displayed. Click OK to delete the server or Cancel to cancel the operation.

6. To update the NTP server configuration on all Oracle VM Servers managed by the VM Manager, click Update All Servers. Any previous NTP configuration is overwritten.
Alternatively, you can save the NTP server configuration that you have added by clicking Save. This option saves the configuration but does not update the Oracle VM Servers. You can push the configuration to the VM Servers at a later date.

After any changes have been made the NTP server configuration, you must restart the VM Server for the changes to be effective.

Note:
If multiple NTP configurations have been defined, the order in which have they have been defined will be used for clock synchronization.

5.20 Importing Virtual Machines

Note:
This feature is available only with Oracle VM Manager 3.2.1 or later.

You can import a virtual machine into Oracle VM Manager from an external location. The imported virtual machine is placed under the VM Zone, VM Server Pool, or the VM Server you have selected. The virtual machine must be located on an FTP or web server, either as separate files, or compressed into a single archive file (for example, a .tgz or .zip file).

To import a virtual machine, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home. The Infrastructure Cloud Home page appears.

2. Right click on a VM Zone, VM Server Pool, or a VM Server target from the left panel and select Import Virtual Machine. The Import Virtual Machine: Select Target and Source page appears.

Figure 5-38 Import Virtual Machine: Select Target and Source

3. The destination target on which the virtual machine is to be imported and the name of the target is displayed.

4. Enter the following details:

- Source: Enter the URL of the archive (tgz or gzip) that is to be imported as a virtual machine. The URL can be in format HTTP, HTTPS, or FTP.

- Request Name: Enter a name for the virtual machine import request.

5. Click Next. The Import Virtual Machine: Instance Details page appears.

Figure 5-39 Import Virtual Machine: instance Details

6. Enter the following details:

- Enable High Availability: If you want to enable high availability for this guest virtual machine, select this checkbox. This option allows the guest virtual machine to be automatically restarted on other virtual servers in the pool in case the virtual server hosting the guest virtual machine fails.

Note:
High availability must be enabled both on the virtual server pool and on the guest virtual machine. If it is not enabled on both, high availability is disabled.

- Start VM After Creation: Specify whether the guest virtual machine should be started automatically after it is created.

- CPU Scheduling Priority: Specify the priority of a guest virtual machine to access the physical CPUs, while competing with other guest virtual machines on the same virtual server. Higher the priority, higher is the stake of the guest virtual machine in claiming CPU cycles

- CPU Scheduling Cap (%): Restricts the amount of physical CPU that a guest virtual machine can use. Use this to constrain guest virtual machine resource allocation.

- Keymap: The keyboard mapping that will be used by the guest virtual machine being cloned.

- Tags: Specify one or more tags for the virtual machine. These tags are used to logical group the virtual machines and can be used to search for one or more virtual machines that meet a certain criteria.

- VM Size: The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started. The size of the guest virtual machine (memory and CPU values). Select the VM Size which can be Small, Medium, Large, or Custom.

Note:
The Root Password, Network, and Storage configuration cannot be modified for an imported virtual machine.

7. Click Next. In the Import Virtual machine: Schedule page, specify the Start and End Date. The Start Date is the date on which the request is being submitted and the End Date is the date on which the virtual machine is retired. Click Next.

8. Review the details of the virtual machine being imported and click Submit. From the Enterprise menu, select Job, then select Activity to view the Job Activity page. This page shows the details of the submitted job. You can click on the Name link to view more details.

5.21 Acknowledging the Repository Events

When the file system on the storage repository gets corrupted, a critical event is raised on the storage repository. This page displays all the critical events for the storage repository. To acknowledge repository events, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home. The Infrastructure Cloud Home page appears. Select an OVM Manager target from the left panel.

2. From the VM Manager menu, select Administration, then select Storage Repository.

3. A list of storage repositories that have been defined is displayed. Click on a storage repository name and click the Repository Events tab.

4. A list of unacknowledged critical events is displayed. Select an event from list and click Acknowledge Events. The file system associated with the acknowledged event cannot be used

6 Defining and Managing Cloud Policies

This chapter describes the process to define policies for different target types and perform specific actions on virtualization targets. It contains the following sections:

- Managing Cloud Policies

- Viewing Cloud Policies

- Viewing Policies for a Target

- Defining a Performance Policy

- Defining a Schedule-Based Policy

- Activating and Deactivating Policies

- Viewing Policy Groups

- Creating a Policy Group

- DRS and DPM Policies

6.1 Managing Cloud Policies

Cloud management policies are rules that a EM_CLOUD_ADMINISTRATOR can define to take certain actions based on either performance metric thresholds or based on a schedule. You can create your own policies or use the ready-to-use policies. The ready-to-use policies provided by Oracle cannot be edited but you can do a create like cloning of the policy and then edit it as required.

Note:
A self service user (EM_SSA_USER) can also create cloud policies for the services for which he has been granted access..

There are two kinds of cloud management polices: Performance-based policies and Schedule-based policies. Performance policies are based on the performance metrics of a specific type of target. Schedule based policies are executed based on the schedule you have defined. You can group one or more policies together to form policy groups. You can:

- View and Monitor Cloud Policies

- Define a new policy which can be of the following types:

- Performance Policy

- Schedule Policy

- Activate or Deactivate a Policy

- Define Policy Groups

6.2 Viewing Cloud Policies

You can view all the cloud policies and policy groups from the Cloud Policy Home page. You can view details like the status of the policy, type of policy, action type, policy associations and the schedule for the policy.

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role and from the Enterprise menu, select Cloud, then select Infrastructure Policies.

Note:
if you have logged into as a user with the EM_SSA_USER role, click the Policies tab in the Infrastructure Cloud Self Service Portal.

2. On the Policy Home page, you will see a list of a policies that you own and for which you have administration privileges.

Figure 6-1 Cloud Policies

3. Select a policy from the table. The policy details including the type of policy, performance (rule, action, action description), or schedule (schedule, action and action description), the status, date on which it was created, and the target type are displayed.

4. You can perform the following actions on this page:

- Create: To create a new policy, from the Create menu, select either of the following:

- Schedule Policy: See Section 6.5, "Defining a Schedule-Based Policy".

- Performance Policy: See Section 6.4, "Defining a Performance Policy".

- Create Like: Select a policy and click Create Like to make a copy of an existing policy.

- Edit: Select a policy and click Edit to launch the Edit Policy wizard. You can modify the description of the policy and add metrics to the policy. You cannot change the name of the policy, the type of policy, the target with which the policy is associated, and the actions that can be performed.

- Activate or Deactivate a Policy: See Section 6.6, "Activating and Deactivating Policies".

- Create Policy Associations: In the Associations region, you can view a list of targets that have been associated with a selected policy. A policy can be associated with one or more targets. Click Add. In the Search and Select: Targets window, choose a target and click Select to associate the target with the policy. After you have associated one or more targets with the policy, you can:

- Click on a target to drill down to the Policies page for the target. See Section 6.3, "Viewing Policies for a Target".

- Select a target and click View History to view the Policy Action History.

- Select a policy and click Remove to delete the associations for the policy.

- Note:

- Associations cannot be added for inactive policies.

- The View History option is not available for users with the EM_SSA_USER role.

6.3 Viewing Policies for a Target

After you have associated a target with a policy, you can view all policies that can be associated with a target on the Policies page.

To view policies that can be associated with a selected target, follow these steps:

1. Navigate to the Cloud Policies page.

2. Select a policy from the list of active policies in the list. In the Associations region, click on a target link to drill down to the Policies page for the target.

Figure 6-2 Policies - Target

3. All policies that can be associated with the selected target are listed on this page. For each policy, the type of policy association that has been defined is displayed. This can be:

- Standalone

- Template Collection

- Policy Group

For each policy, the following details are displayed:

- Name and description of the policy.

- The type of policy which can be Schedule or Performance.

- The policy association method. A policy can be associated with a standalone association, template collection, a policy group or a combination of the three.

- The General section displays details like status of the policy, the number of associations, the date on which the policy was created, and the type of policy.

- The Policy Action History region shows the history of associations for this target.

Note:

- The history of policy associations is displayed only for users with the EM_CLOUD_ADMINISTRATOR role.

- The Policy Action History region is blank if the action has a Failed status.

4. For policies that are active, you can do the following:

- Select a policy and click Associate to associate it with the target.

- Select a policy that has already been associated and click Disassociate to delete the policy association.

6.4 Defining a Performance Policy

Performance policies are formed based on the performance metrics of a specific target type and its associated targets. You can create conditions and rules for the policy based on the metrics.

To define a performance policy, follow these steps:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. On the Policy Home page, you will see a list of policies that you own and for which you have administration privileges.

3. From the Create menu, select Performance Policy.

4. In the General Information page, enter the name and description of the policy. Select the Target Type with which the policy is to be associated.

Figure 6-3 Create Performance Policy - General

5. Click Next. In the Rule page, select a metric from the right panel and click Add to Definition, or drag and drop metric from the Metrics column to the Definition column. Specify the condition, value, and number of occurrences. In the Match radio button, you can select

- All: All conditions must be met before the policy is executed on the target.

- Any: Any of the conditions must be met for the policy to be executed.

Figure 6-4 Create Performance Policy - Rule

6. Click Next. Specify the action to be performed when the policy condition is met. The list of available actions can vary depending on the selected target type.
If notifications are disabled, you will see the following message:

Notification action is currently disabled. Contact your system administrator to set up the email server information.

Figure 6-5 Create Performance Policy - Action

7. Review the policy and click Save to define this policy and return to the Policy Home page.

Note:
After you have defined the policy, you can associate one or more targets with the policy.

6.5 Defining a Schedule-Based Policy

Schedules based on policies are based on a predefined schedule. To define a schedule-based policy, follow these steps:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. On the Policy Home page, you will see a list of a policies that you own and for which you have administration privileges. From the Create menu, select Schedule Policy.

Figure 6-6 Create Schedule Policy

3. In the Create Schedule Policy page, enter the name, description of the policy, and the Target Type with which the policy is to be associated.

4. Specify the Grace Period, frequency, and schedule for the policy.

5. When the policy conditions are met, the policy is executed as per the schedule on the selected target. The list of available actions can vary depending on the target type with which the policy is associated.

6. Click Save to define this policy.

Note:
After you have defined the policy, you can associate one or more targets with the policy.

6.6 Activating and Deactivating Policies

Once a policy is defined, it becomes active and can be applied to one or more targets. You can deactivate an active policy by following these steps:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. On the Policy Home page, you will see a list of a policies that you own and have administration privileges.

3. Select a policy from the table and click Deactivate. The policy is deactivated and the status of the policy is marked as Inactive. You cannot associate this policy to any target until it is activated and its current associations will be suspended for further evaluations.

Once a policy is deactivated, it is marked as Inactive. To activate an Inactive Policy, select the policy from the table and click Activate. In the confirmation window, click Activate again. The policy is now marked as Active.

6.7 Viewing Policy Groups

A policy group is a collection of policies that can be applied together and evaluated to generate a compliance score. To view the policy groups, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role and from the Enterprise menu, select Cloud, then select Infrastructure Policies.

Note:
if you have logged into as a user with the EM_SSA_USER role, click the Policies tab in the Infrastructure Cloud Self Service Portal.

2. The Cloud Policies page appears. Click on the Policy Groups tab.

Figure 6-7 Policy Groups

3. The list of policy groups that have already been defined are displayed. You can do the following:

- Create a Policy Group: See Section 6.8, "Creating a Policy Group".

- Create Like: Select a policy group and click Create Like to make a copy of an existing policy group.

- Edit: Select a policy group and click Edit to launch the Edit Policy Group wizard. You can add or remove policies from the policy group. You cannot modify the name of the policy group.

- Delete: Select a policy group and click Delete. When a policy group is deleted, all associations defined for the policy group will also be deleted.

Note:
You can edit or delete policy groups that you have created or for which you have the privileges.

- Create Policy Group Associations: Click the Associations tab in the Policy Group region, to view a list of targets that have been associated with the selected policy group.

Figure 6-8 Policy Group: Associations

A policy group can be associated with one or more targets. Click Add. In the Search and Select: Targets window, choose a target and click Select to associate the target with the policy group. After you have associated one or more targets with the policy group, you can:

- Click on a target to drill down to the Policies page for the target. See Section 6.3, "Viewing Policies for a Target".

- Select a target and click View History to view the Policy Group Action History.

- Select a target and click Remove to delete the policy group association.

- View Policies: Click the Policies Included tab in the Policy Group region to view the list of policies included in the policy group.

Figure 6-9 Policy Group: Policies Included

6.8 Creating a Policy Group

To define a policy group, follow these steps:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. Click on the Policy Groups tab. On the Policy Groups page, you will see a list of a policy groups that have been defined.

3. Click Create. The Create Policy Group page appears.

Figure 6-10 Policy Group: Create

4. Click Add. A list of policies that can be added to the policy group are displayed. Select one or more policies from the list and click Select.

5. The selected policies will be added to the policy group. Click OK to save this policy group.

6. Click OK to save this policy group.

6.8.1 Example 1

If you want to shut down a guest virtual machine every Friday at 6:00 pm and restart it every Monday at 9:00 pm, you can create policies as follows:

- First, create a schedule based policy where the guest virtual machine shuts down every Friday at 6:00 pm. See Section 6.8.1.1, "Policy for Shutting Down Guest Virtual Machine".

- Secondly, create another schedule based policy where the guest virtual machine is restarted every Monday at 6:00. See Section 6.8.1.2, "Policy for Starting Up Guest Virtual Machine".

- Combine these two policies into a Policy Group and associate these policies with one or more guest virtual machine targets. See Section 6.8.1.3, "Creating a Policy Group (Start Up and Shut Down)".

6.8.1.1 Policy for Shutting Down Guest Virtual Machine

To shut down a guest virtual machine every Friday, you can set up the policy as follows:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. In the Cloud Policies page, select Schedule Policy from the Create menu. In the Create Schedule Policy page, enter the following details:

- Enter a name and description for the policy.

- Select the Target Type as Oracle VM Guest.

- Select Stop in the Policy Action field.

- In the Start field, specify the date and time from which this policy should be effective.

- In the Repeat field, select Specific Days of the Week and select Friday in the Days of Week checkbox.

Figure 6-11 Create Schedule Policy (Example 1)

3. Click OK to save this policy and return to the Cloud Policies page.

6.8.1.2 Policy for Starting Up Guest Virtual Machine

To start a guest virtual machine every Monday, navigate to the Cloud Policy page and select the policy you just created. Perform the following steps:

1. Click Create Like to make a copy of the policy.

2. In the Cloud Policies page, select Schedule Policy from the Create menu. In the Create Schedule Policy page, enter the following details:

- Enter a name and description for the policy.

- Select the Target Type as Oracle VM Guest.

- Select Start in the Policy Action field.

- In the Start field, specify the date and time from which this policy should be effective.

- In the Repeat field, select Specific Days of the Week and select Monday in the Days of Week checkbox.

3. Click OK to save this policy and return to the Cloud Policies page.

6.8.1.3 Creating a Policy Group (Start Up and Shut Down)

After defining the two policies for the guest virtual machine target type, you can combine these policies into a policy group and associate these policies to one or more targets. To create a policy group, follow these steps:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. On the Cloud Policies page, click the Policy Groups tab.

3. Click Create. The Cloud Policy Group page appears.

4. Enter a name and description for the group.

5. Click Add and select the two schedule policies that you have created.

6. Click OK to return to the Cloud Policies page and click on the Policy Group that you have created.

7. The details of the policy group that you have created such as the name of the policy group, number of policies associated with this group, number of targets associated, and so on are displayed.

8. Click the Policies Included tab in the bottom region to view the policies associated with this policy group.

9. Click the Associations tab to view the list of guest virtual machines associated with this policy. Click Add to associate more guest virtual machines with this policy group.

10. When this policy group is active, the guest virtual machines associated with the policies are shut down and started up as per the schedule.

6.8.2 Example 2

Suppose you want to define a policy group for an Oracle Tier Instance target where the tier instance is scaled down to 1 every Friday and scaled up to 2 every Monday. You can create the following policies:

- First, create a Schedule Policy to scale down the tier instance to 1. See Section 6.8.2.1, "Policy to Scale Down a Tier Instance".

- Next, create another policy to scale up the tier instance to 2 every Monday. See Section 6.8.2.2, "Policy to Scale Up a Tier Instance".

- Combine these policies and create a Policy Group. See Section 6.8.2.3, "Creating a Policy Group (Scale Up and Scale Down)".

6.8.2.1 Policy to Scale Down a Tier Instance

To scale down a tier instance every Friday, you can set up a performance policy as follows:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. In the Cloud Policies page, select Schedule Policy from the Create menu. The Create Schedule Policy page appears.

Figure 6-12 Schedule Policy Example I

3. Enter a name and description for the policy and specify the following details:

- Target Type: Select the Tier Instance target type.

- Policy Action: Select the Scale Down policy action.

- Repeat: In the Repeat field, select Specify Days of the Week.

- Days of the Week: Select Friday here.

4. Click OK to save the policy.

6.8.2.2 Policy to Scale Up a Tier Instance

To scale down a tier instance every Friday, you can set up a performance policy as follows:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. In the Cloud Policies page, select Schedule Policy from the Create menu. The Create Schedule Policy page appears.

Figure 6-13 Schedule Policy Example II

3. Enter a name and description for the policy and specify the following details:

- Target Type: Select the Tier Instance target type.

- Policy Action: Select the Scale Up policy action.

- Action Parameters: Enter 2 for the Number of Nodes parameter.

- Repeat: In the Repeat field, select Specify Days of the Week.

- Days of the Week: Select Monday here.

4. Click OK to save the policy.

6.8.2.3 Creating a Policy Group (Scale Up and Scale Down)

After defining the two policies for the Oracle Tier Instance target type, you can combine these policies into a policy group and associate these policies to one or more targets. To create a policy group, follow these steps:

1. Depending on your user role, use the menu options to navigate to the Infrastructure Policies page.

2. On the Cloud Policies page, click the Policy Groups tab.

3. Click Create. The Cloud Policy Group page appears.

4. Enter a name and description for the group.

5. Click Add and select the two schedule policies that you have created.

6. Click OK to return to the Cloud Policies page and click on the Policy Group that you have created.

6.9 DRS and DPM Policies

The Dynamic Resource Scheduling (DRS) and Distributed Power Management (DPM) policies are automated policies that improve quality of service and reduce power consumption by dynamically relocating running virtual machines within a server pool based on the load.

Dynamic Resource Scheduling (DRS) policies provide real-time monitoring of Oracle VM Server utilization to rebalance a server pool and provide consistent resources to the running virtual machines. DRS migrates VMs away from heavily loaded Oracle VM Servers to those servers with more resources available.

Distributed Power Management (DPM) policies optimize the server pool for minimum power consumption. DPM complements DRS by reducing the number of powered-on servers in the pool when there are periods of low resource utilization. It can automatically power-on capacity as needed when resource utilization ramps up.

To set up a DRS / DPM policy, follow these steps:

1. Log in as a user with the EM_CLOUD_ADMINISTRATOR role, and from the Enterprise menu, select Cloud, then select Infrastructure Home.

2. Right click on a VM Server Pool target in the left panel and select Manage DRS/DPM Policies. Click Configure. The Configure DRS/DPM General page appears.

Figure 6-14 Configure DRS/DPM: General

3. Select the Policy Type. This can be:

- Distributed Resource Scheduler: Select this policy type to optimize virtual machine resource utilization in a server pool.

- Distributed Power Management: Select this policy type to increase the consolidation ratio to use fewer Oracle VM Servers during periods of relative low resource utilization.

4. Specify the Time Period (Minutes). This is the time period for the policy job to run. This sets the policy job to run every n minutes, for example, 10 sets the policy job to run every 10 minutes. You can enter a number between 1 and 60.

5. Click Add in the Virtual Servers region to add one or more virtual server targets for which the policy is to be enabled.

6. Specify the Constraints for the Virtual Server CPU as follows:

- Enable: Set this field to enable or disable logging of CPU performance and utilization.

- Threshold: The maximum amount of CPU percentage usage allowed before the policy must be enacted. You can enter between 0 and 99.

7. Click Next. The Configure DRS/DPM Network page appears.

Figure 6-15 Configure DRS/DPM Policies: Network

8. Select the Enable checkbox to indicate whether the policy is to be enabled on the network, and select the threshold at which the policy is to be enacted for the network.

9. Click Apply.

Note:
Once the policy is created, it is enabled and applicable to all the virtual server pool targets that have been included in the policy. To disable the DRS/DPM policy, create a schedule based policy for the Oracle VM Server Pool target type and in the Policy Action field, select Disable DRS/DPM policies. See Section 6.5, "Defining a Schedule-Based Policy" for more details on creating a schedule based policy. You can enable the policy by editing the Schedule Policy and select Enable DRS or Enable DPM as necessary.

6.9.1 Creating Automated DRS and DPM Policies

You can create automated DRS or DPM policies by following these steps:

1. Log in as a user with the EM_CLOUD_ADMINISTRATOR role and from the Enterprise menu, select Cloud, then select Infrastructure Policies.

2. From the Create menu, select Schedule Policy.

3. In the Create Schedule Policy page, enter a name and description for the policy.

4. Select Oracle VM Server Pool as the Target Type.

5. Select Enable DRS or Enable DPM Policy from the Policy Action field.

6. Specify the schedule and frequency for the policy and click OK to save the policy.

7. In the Cloud Policies page, select the policy you have created and click Add in the Associations region.

8. Select the Oracle VM Server Pool target with which the policy is to be associated and click Select.

9. The DRM or DPM policy is now automatically enabled for the selected target.

7 Setting Up the IaaS Self Service Portal

This chapter describes the process of setting up the Self Service Portal. It contains the following sections:

- Setting Up the Self Service Portal

- Uploading Large Files on the Self Service Portal

7.1 Setting Up the Self Service Portal

The Self Service Portal allows administrators to configure the cloud and perform various operations such as deciding the total amount of resources each user can reserve, quota for each user role, and so on. Users can log in to the Self Service Portal and identify the images they need, reserve resources (for example, compute power, storage, memory, and so on) and define policies specific to their system.

Note:
Click here to view a visual demonstration on how to enable the Self Service capability for the Cloud using Enterprise Manager Cloud Control 12c. You will see how to setup Self Service roles and users, allocating quota and privileges, publishing assemblies to the Self Service portal, and configuring metering and chargeback for the Cloud.

Before the Self Service Portal can be used, the user quota, roles for zone access, and software components must be defined.

Prerequisites

- Enterprise Manager Cloud Control is set up to manage the cloud environment.

- The Enterprise Manager administrator has the privileges to set up the self service application. This user must have the EM_SSA_ADMINISTRATOR role. See Section 3.3, "Defining Roles and Assigning Users" for details.

Follow this process to set up and configure the Self Service Portal.

1. From the Setup menu, select Cloud, then select Infrastructure. Click Machine Sizes in the left panel. Small, Medium, and Large machine sizes are available out-of-the-box.

Figure 7-1 Self Service Portal Setup - Machine Sizes

- To view a demo on setting up the self service portal, click the video link next to the Page Refreshed section of the page. Click Create to add a machine size. You are prompted for the Name (internal name of the machine size), description, number of VCPUs, amount of memory and local storage to be assigned to machines of this size. Click Create to add this machine size.

- Select a machine size from the list and click Edit. You can configure the machine sizes by specifying the amount of memory, number of CPUs, and the local storage for each machine. While requesting a server, the SSA user can specify any of the machine sizes defined here.

2. Click Request Settings in the left panel to define request related policies. On this page, you can enter the following details:

- Future Reservation: Indicate how far in advance you can make a request.

- Request Duration: The maximum duration for which requests should be made.

- Network Restriction: Allows you to restrict the physical networks for each EM_SSA_USER role. If this feature is enabled, you can navigate to the Roles page and assign networks for each EM_SSA_USER role.

- Configure EM Agent: Select the Enable EM Agent Configuration check box to configure the Management Agent on the servers while the self service user's request is being processed.

Note:
If you have chosen to configure the Management Agent, you must ensure the following:

- Write permissions to the directory specified in the Installation Base Directory field must be available.

- Write permissions to the /home/oracle/agent directory specified during assembly or template deployment must be available.

- Necessary software components must be configured.

- Allow Partial Deployment: Select this option to enable partial deployment. By default, when a deployment fails, the assembly instance, tier instance, and the Guest VMs that have been created are automatically deleted. But if partial deployment is enabled, this clean up activity is disabled.

- Software Library Top Folder: Select the top level folder in the Software Library in which user specific folders need to be created. This folder is used by the SSA users to store their assemblies, templates, and deployment plans.

Figure 7-2 Self Service Portal Setup - Request Settings

3. Click Roles in the left panel to define the mappings between roles and other entities like zones, quota, and network profiles. The SSA administrator can control the quota that the SSA user can request which ensures that there is no over provisioning of cloud resources.

Figure 7-3 Self Service Portal Setup - Roles

4. In the Roles page, click Assign Quota to Role to define quota at the role level. The quota assigned to a role is available to all users with that role. For example, if the Number of Servers for the SSA_USER_ROLE1 is set to 5, all users with this role can have a maximum of 5 servers. The quota is the aggregate amount of resources that can be granted to each self service user belonging to a certain role. If the user has more than one role, his quota is calculated as the absolute maximum across the roles for each attribute value.

- Select Roles: Click the torch icon to select a role for which the mapping is to be defined. The list of all the SSA roles appears.

- Select Zones: Click the torch icon. All zones marked as Cloud Self Service Zones during zone creation are displayed here. Select a zone from the list and click OK.

- Number of Servers: Maximum number of servers that can be reserved at any time. This number is across the zones. For example if the quota for a user is 5. Then, the total number of instances from all zones is 5. So the user can have 3 instances in zone 1 and 2 instances in zone 2, or all 5 instances in the same zone.

- Number of VCPUs: Maximum number of VCPUs that can be allocated.

- Memory: Maximum amount of memory that can be allocated.

- Local Disk: Maximum amount of local storage that can be allocated.

- Additional Storage: Maximum amount of additional storage that can be allocated.

- Allow Archiving to Software Library: Indicate whether the machine images can be archived in the Software Library after expiry. You can also select this option to save the machine image as a template when the guest virtual machine is stopped.

- Select Networks: This field is displayed only if Network Restriction has been enabled. Click the torch icon to select the physical networks that are to be assigned to all users in the role.

- Select Network Profiles: Select the network profile to assigned to the selected role. All deployments are done in a specific network defined by the network profile.

Note:
Network profiles that have been associated with networks in the selected zone are displayed. For more details on network profiles, see Section 5.8, "Creating a Network Profile"

- Override Global Request Settings: Select this checkbox to override the request settings for the selected role. You can modify the Future Reservation, Request Duration, and configure the Management Agent.

Select a role and click Edit. You can modify the role mappings in the Assign Quotas, Zones & Network Profiles to Role page.

5. Click Software Components in the left panel to select the set of templates or assemblies that are accessible to the SSA users. You can publish the assemblies and templates to the SSA Portal and provide SSA users with access to these software components.

Figure 7-4 Self Service Portal Setup - Software Components

6. You can do the following on this page:

- Add Components: Click Add Components. The Publish Assemblies / Templates to Roles page appears.

Figure 7-5 Publish Assemblies / Templates to Roles

On this page, do the following:

1. Click Add. Select the assembly or template from the list and click Select.

2. Click Add in the Select Roles section. Select the role from the list and click Select.

3. Click Publish to publish these software components to the SSA Portal. These software components are now available to the SSA users and can be deployed.

Note:
You will see a list of assemblies or templates if they have been uploaded to the Software Library. See the Oracle Enterprise Manager Cloud Control Administration Guide for details on uploading components to the Software Library.

- Import: You can import the published assembly to a selected set of zones. Select the assembly and click Import. In the Select Zones page, select one or more zones and click Save to import the assembly to the selected zones.

- Configure: Select a software component and click Configure to configure the Management Agent.

Note:
The Management Agent can be deployed only if the Enable Agent Configuration check box has been selected in the Request Settings page.

The Management Agent configuration details are displayed:

- Installation Base Directory (Mandatory): Specify the full path to the directory in which the Management Agent is to be installed. Ensure that the Installation Base Directory you specify in the response file is empty and has write permissions. This is a mandatory field.

- Platform (Mandatory): The platform for which you want to download the Management Agent software. This is a mandatory field.

- Password (Mandatory): Specify a password for registering the new Management Agents. By default, the communication between the Oracle Management Service and the Management Agent is secure and locked. Any new Management Agents that are registered must be authenticated. The password you specify here will be used to authenticate the new Management Agents.

- Port (Mandatory): Enter the port used for the Management Agent process. If no value is specified, then either 3872 or any free port between 1830 and 1849 will be used.

- Additional Parameters: You can add some options supported by agent installation. See the Enterprise Manager Basic Installation Guide for details.

- SSH Timeout: The timeout minutes for SSH.

- Privilege Delegation Settings: Run as root.

- Tier Configuration: Specify the product and network configuration time out values and the log file location.

Specify the details and click OK to configure the Management Agent.

- Import Rules: You can define rules to import published assemblies and templates to zones on a periodic basis based on a predefined schedule. Click Create in the Import Rules section. Enter a Rule Name, select a set of zones, a schedule for the import and click Save. The published assembly or template is imported to the selected server pools and zones on a regular basis.

7. Click Chargeback tab in the left panel. The Chargeback application allows the SSA Administrator to define a charge plan and assign the plan to a specific zone or target.

Figure 7-6 Chargeback

8. Setting up the Chargeback Plan involves:

- Defining Extended Charge Plans: Click Configure Charge Plan. You can edit the Base Charge Plan or create an Extended Charge Plan to customize the charge plan for a specified target type.

- Assigning Charge Plans: Click Configure Targets. You can assign charge plans to a set of targets.

- Setting Up the Cost Center: Click Configure Cost Center. You can setup cost centers to aggregate costs among groups of users.

For more details on setting up the chargeback plan, see Chapter 43, "Chargeback Administration".

7.2 Uploading Large Files on the Self Service Portal

The EM_SSA_USER can upload software components to a library location. See Section 8.7, "Viewing Library" for details. If the file to be uploaded is large, the EM_SSA_USER will see the following error message.

Error: The file is too large. Please add a smaller file,

To resolve this issue, you can use one of the following methods:

7.2.1 Setting the OMS Property Using emctl

To set the Oracle Management Service property, follow these steps:

1. Set the oracle.sysman.emSDK.ui.trinidad.uploadedfilemaxdiskspace OMS property to a value (in bytes) greater than the size of the file that is to be uploaded. For example, to set the value of the property to 3 GB,
$ORACLE_HOME/bin/emctl set property -name "oracle.sysman.emSDK.ui.trinidad.uploadedfilemaxdiskspace" -sysman_pwd sysman -value 3221225472

2. If the file to be uploaded is huge, the page may expire while the upload is still in progress (usually after 10 minutes). To avoid this, the oracle.sysman.eml.maxInactiveTime OMS property must be set to a value (in seconds) greater than the expected time for the upload to complete. If this property is set, you must restart the OMS to reflect the new property value.

7.2.2 Modifying the web.xml Configuration File

To modify the web.xml configuration file, follow these steps:

1. Locate the web.xml configuration file by navigating to the following location in the Oracle Management Service Home
./oms/sysman/archives/emgc/deployments/EMGC_DOMAIN/emgc.ear/em.war/WEB-INF/web.xml

If this directory structure is not present, navigate to the following location in the Oracle Management Service Home

./oms/sysman/archives/emgc/deployments/GCDomain/emgc.ear/em.war/WEB-INF/web.xml

2. Open the web.xml file and locate the following four lines. If these lines are not present in the web.xml, you must add them. Increase the size of the <param_value> parameter to a value larger than the size of the file to be uploaded.
<context-param>

<param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE</param-name>

<param-value>40960000</param-value>

</context-param>

<context-param>

<param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_FILE_SIZE</param-name>

<param-value>40960000</param-value>

</context-param>

3. A smaller  chunk size increases performance during large file upload. By default, the chunk size would be 2 GB. Setting this to a smaller chunk size such as 500MB will optimize browser memory usage. The parameter for setting the chunk size is org.apache.myfaces.trinidad.UPLOAD_MAX_CHUNK_SIZE.
<context-param>

<param-name> org.apache.myfaces.trinidad.UPLOAD_MAX_CHUNK_SIZE</param-name>

<param-value>40960000</param-value>

</context-param>

4. If the file to be uploaded is huge, the page may expire while the upload is still in progress (usually after 10 minutes). To avoid this, the OMS property oracle.sysman.eml.maxInactiveTime must be set to a value (in seconds) greater than the expected time for the upload to complete.
For example, set $ORACLE_HOME/bin/emctl set property -name oracle.sysman.eml.maxInactiveTime -value 3600

5. Restart the Oracle Management Service to reflect the updated settings.

6. While the file upload is in progress, the uploaded chunks are written in a default location on the OMS. This default location is usually a subdirectory of where the application is deployed on the WebLogic Server. This location can be configured by setting the parameter org.apache.myfaces.trinidad.UPLOAD_TEMP_DIR in the web.xml file to a custom location. If there are multiple users uploading files concurrently on the OMS, you must ensure that this location has enough disk space to accommodate all of this data. It is recommended that this location is on a different volume than the location on which the OMS is installed. This ensures that if the volume runs out of space, there is no impact on the OMS performance.

8 Using the IaaS Self Service Portal

This chapter provides instructions on using the Self Service Portal for IaaS. It contains the following sections:

- Using the Self Service Portal to Request Server Resources

- Requesting Servers

- Viewing Requests

- Viewing Servers

- Viewing Storage

- Viewing Chargeback Details

- Viewing Library

- Viewing Policies

- Viewing Preferences

Note:
Click here to view a visual demonstration on how to allow users to create new deployment requests through the Cloud Self Service Portal, manage requested deployments, track metering and chargeback information, and author and enforce Cloud policies using Enterprise Manager Cloud Control 12c.

8.1 Using the Self Service Portal to Request Server Resources

The Self Service Portal for IaaS provides a dashboard for business users and cloud consumers to request resources. It allows SSA users to request and manage resources, view the metering and usage of these resources, and define policies to manage the workload and deployment automatically. The SSA Portal allows users to:

- Create new deployment requests

- Manage requested deployments

- Track metering and chargeback information

- Author and enforce cloud policies.

To use the Self Service Portal, follow these steps:

1. Log in as a user with the EM_SSA_USER role.

2. The Cloud Self Service Portal Home page appears. Click on the video link next to the Page Refreshed section to view a demo on using the self service portal. The following details are displayed:

- Notifications: Lists notifications related to machine expiry and new assemblies.

- Your Usage: Lists the total quota allowances available for server and storage requests and quota that has been used.

- 10 Last Requested Servers: Lists the top 10 machines that you own in descending order of creation date. Click a Server Name to view the server details. See Section 8.4.4.3, "Server Details Page" for more information.

- 10 Latest Requests: This section lists the top 10 requests which are sorted as follows:

- Descending order of the End Date.

- Descending order of the Creation Date.

Click a Request Name to view the request details.

Figure 8-1 Self Service Portal

3. Click Request Servers. The New Server Request wizard appears. See Section 8.2, "Requesting Servers" for details.

8.2 Requesting Servers

Follow this process if you need to request or reserve servers for a specific duration:

1. From the Enterprise menu, select Cloud, then select Self Service Portal.

2. On the Cloud Self Service Portal page, click Request Servers to create a new request for a virtual machine.

3. In the General page, enter a name for the request and select a zone in which the server is to be created.

Figure 8-2 New Server Request: General

4. Click the Search icon in the Source field. Select an assembly or template to be used for this request and enter the server name. For details on how to create an assembly component, see Section 9.8.3.1.1, "Creating an Assembly Component". For details on how to create a template component, see Section 9.8.3.1.2, "Creating a Template Component".

Note:

- The source file that you select must be in the .ova format (for assemblies), and .tgz format (for templates).

- You can see only the assemblies and templates for which you have access (granted by the user with the EM_SSA_ADMINISTRATOR role),

5. You can optionally select a Deployment Plan to pre-fill values in the deployment flow from an existing saved or imported deployment plan.

6. Click Next. If you have selected an assembly, you will see the following page.

Figure 8-3 New Server Request: Deployment Configuration (Assembly)

7. If you have select a template, you will see the following page.

Figure 8-4 New Server Request: Deployment Configuration (Assembly)

8. Depending on your selection, the configuration properties defined for the assembly or template are displayed. Click on a tier that you wish to configure.

9. Click on the Server Configuration tab. The following regions can be configured:

- General

- Enable High Availability: If you want to enable high availability for this server, select this check box.

- Root Password: The root password to access the server.

- Keymap: Select a key board type for the server.

- Tags: You can specify tags that can be used to identify the servers. You can use these tags to search for servers in the My Servers page.

- Network: The network interfaces for the server. Click Add to add a network interface card. In the Add a Network Interface Card, specify the name of the NIC card and click OK.

Note:
You can use the Edit option to modify the IP Assignment of the NIC. This option can be performed only if:

- The NIC is a part of the assembly definition.

- The NIC does not have any assembly networks associated with it. For NICs associated with assembly networks, the IP Assignment can be changed only if the NICs have been assigned with a backend network.

To modify the QoS and Backend Network, click the Configure Networks in the top right hand corner of the page.

Note: If Network Restriction has been enabled by the self service administrator, the backend network cannot be edited.

Figure 8-5 SSA: Configure Networks

On this page, you can configure the Network QoS and Backend Network to be associated with Assembly Network. All the NICs will be configured based on the Network QoS and Backend Network that have been assigned. Click OK to return to the previous page.

- Server Size: If the server size is large, medium, or small, you can modify the maximum memory and maximum number of CPUs that can be allocated to the server. If the server size is custom, you can specify the memory that can be allocated and the number of CPU cores to be assigned to the server.

- Storage: The storage disks assigned to the server. This can be system defined or custom.

10. Click on the Product Configuration tab. This tab shows the properties of the products in the tier. You can choose to view All Properties or Required Properties. For each property, the default value and the current value is displayed. Select a property to modify the value if applicable.

11. If a tier has more than one server, you can configure each server separately. Click the Configure Individual Servers link on the top right corner of the lower region. The Deployment Configuration: Configure Individual Servers page appears. You can modify the configuration of the individual server and click Continue to return to the New Server Request: Deployment Configuration page.

12. Specify the schedule for the request and click Next.

Note:
The schedule for the new server request is dependent on the schedule defined by the EM_SSA_ADMIN in the Self Service Portal Setup pages. See Section 7.1, "Setting Up the Self Service Portal"

13. In the Review page, you can click Finish to submit the request or Save as Deployment Plan. If you select the Save as Deployment Plan option, the request will be saved as a Deployment Plan that can be used to record inputs that can be used to create new request.

8.3 Viewing Requests

The Requests tab lists all the requests made by the SSA user.

Figure 8-6 Requests

The name of the request, status, start and end date, type of request, number of servers, total CPU, and memory appears. Click a Name to drill down to the Request Details page which shows complete details about the request.

You can:

- Edit a Request: You can edit the following types of requests:

- Scheduled: Select a request that is Scheduled and click Edit to modify the request configuration details. The Request Server wizard appears and you can modify the request server configuration as required. See Section 8.2, "Requesting Servers" for details.

- Executed: Select a request that has been executed successfully and click Edit. In the window that appears, specify a new End Date for the request and click Edit to edit the request.

- Delete a Request: Select a request that has been scheduled or executed to click Delete to delete the request.

8.4 Viewing Servers

Click the Servers tab to view a list of servers grouped according to the zone. On this page, the self service user can view the specific assembly and template deployments, the tiers, and the servers in each tier. You will see a list of servers that you have requested and can perform a search based on either the name of the server or the tag.

Figure 8-7 My Servers

You can drill down to the Assembly or Tier Instance Home page or click a server name to drill down to the Server Details page. From this page, you can perform the following actions:

- Request Servers: You can request or reserve servers for a specific duration. See Section 8.2, "Requesting Servers" for details.

- Assemblies: You can start, stop, delete an assembly instance, and add tiers. Select an assembly instance from the list and from the Actions menu, select an appropriate option. See Section 8.4.2, "Assembly Operations".

- Tiers: You can start, stop, scale up, and scale down a tier instance. Select a tier instance from the list and from the Actions menu, select an appropriate option. See Section 8.4.3, "Tier Operations".

- Servers: You can modify the configuration of the server, stop, start or restart a server, clone a server, save as template, suspend, resume, and launch a VNC Console. See Server Operations.

8.4.1 Zone Details Page

The Zone Details page displays the details of all assemblies, tiers, and servers in the SSA Zone.

Figure 8-8 Zone Details Page

From this page, depending on the entity you select, the following options are available:

- Requesting Servers

- Assembly Operations

- Tier Operations

- Server Operations

You can click a tier instance, assembly instance, or a server link to drill down to the Details page.

8.4.2 Assembly Operations

You can perform the following operations on an assembly instance:

- Start: Select an assembly instance and select Start from the Actions menu. A confirmation message is displayed. Click Start to submit the Start Assembly Instance job. You can start an assembly instance only if it has been stopped.

- Stop: Select an assembly instance and select Stop from the Actions menu. A confirmation message is displayed. Click Stop to submit the Stop Assembly Instance job. You can stop an assembly instance only if it has been started.

- Delete: Select an assembly instance and select Delete from the Actions menu. A confirmation message is displayed. Click Delete to submit the Delete Assembly Instance job.

- Add Tier: Select an assembly instance and select Add Tier from the Actions menu.

8.4.2.1 Assembly Details Page

This page displays the details of the SSA Assembly Instance.

Figure 8-9 Assembly Details Page

It contains the following sections:

- General: This section displays the name of the assembly, the zone to which it belongs, the total number of servers or guest VMs deployed by the assembly, and the date on which the assembly was created.

- Members: A hierarchical view of the members in the assembly is displayed here. Click on a link to drill down to the member Home page.

- Request: This section lists all the requests corresponding to the assembly and its members. Click on a request link to drill down to the Request Details page.

You can perform operations such as Start, Stop, Delete, and Add Tiers on the assembly instance. Select the required option from the Assembly menu and click OK in the confirmation page to perform the selected operation.

8.4.3 Tier Operations

You can perform the following operations on an assembly tier instance:

- Start: Select a tier instance and select Start from the Actions menu. A confirmation message is displayed. Click Start to submit the Start Tier Instance job. You can start a tier instance only if it has been stopped.

- Stop: Select a tier instance and select Stop from the Actions menu. A confirmation message is displayed. Click Stop to submit the Stop Tier Instance job. You can stop an tier instance only if it has been started.

- Scale Up: You can scale up or add more servers to a tier instance. See Section 8.4.3.1, "Scaling Up a Tier Instance".

- Scale Down: You can scale down or stop servers that are part of a tier. See Section 8.4.3.2, "Scaling Down a Tier Instance".

8.4.3.1 Scaling Up a Tier Instance

A scalable tier allows creation of multiple servers and has a minimum and maximum limit. The scalability of the tier depends on how it is defined in the Assembly. See Section 9.8.4, "Provisioning Guest Virtual Machines Using Oracle Virtual Assemblies (OVA)" for details. To scale up a tier instance, follow these steps:

1. Log in to Enterprise Manager as an user with the EM_SSA_USER role.

2. Click the My Servers tab, expand an assembly and click on a tier of the assembly.

3. In the Tier Instance Home page, click the Scale Up option from the Tier menu.

4. The Scale Up: General page appears. The name of the request, the assembly, zone, and number of instances appears. Click Next to continue.

5. In the Server Selection page, select the servers for the scale up operation. As a part of the Scale Up operation, either the existing shutdown servers of the tier are brought up and/or new servers are created to the Max Instance Number Limit if required.
If the Max Instance Number Limit of the tier is 4 and only 1 server has been created during the assembly deployment, the tier can be scaled up by 3 new servers. Click Next to continue.

6. If new servers are to be provisioned, you can modify their configuration in the Server Configuration page. The values are pre-filled with the values that specified during the deployment of the assembly. Modify the details if required and click Next to continue.

Note:

- If the tier is auto scalable, the Server Configuration page cannot be modified.

- If Network Restriction has been enabled (see Section 5.7, "Setting Up Networks"), the backend network cannot be modified.

7. Specify the schedule for this operation and click Next.

8. Review the details and click Finish to scale up the tier.

8.4.3.2 Scaling Down a Tier Instance

You can scale down the servers belonging to a tier. To scale down a tier, follow these steps:

1. Log in to Enterprise Manager as an user with the EM_SSA_USER role.

2. Click the My Servers tab, expand an assembly and click on a tier of the assembly.

3. In the Tier Instance Home page, click the Scale Down option from the Tier menu.

4. In the Scale Down page, select the servers to be included in the Scale Down operation and click OK. The selected servers will be stopped and scaled down.

8.4.3.3 Tier Details Page

This page displays the details of the SSA Tier Instance.

Figure 8-10

It contains the following sections:

- General: This section displays the name of the tier, the zone to which it belongs, the total number of servers or guest VMs deployed, and the date on which the tier was created.

- Members: A hierarchical view of the members in the tier is displayed here. Click on a link to drill down to the member Home page.

- Request: This section lists all the requests corresponding to the tier and its members. Click on a request link to drill down to the Request Details page.

You can perform operations such as Start, Stop, Scale Up, and Scale Down on the tier instance. Select the required option from the Tier menu and click OK in the confirmation page to perform the selected operation.

8.4.4 Server Operations

You can perform the following operations for a server:

- Modify Configuration: Select the server to be modified and select Modify Configuration from the Actions menu. Note that the server must be in a Stopped status if the configuration is to be modified.

- Clone: Select the server to be cloned and select Clone from the Actions menu. See

- Delete: You can delete a server that is Down or Suspended. Select the server to be deleted and select Delete from the Actions menu. A confirmation message is displayed. Click Delete to submit the Delete Server Job.

- Save as Template: You can save a server that is Down or Suspended as a template for future use. Select the server and select Save as Template from the Actions menu. The Save as Template page appears. You can specify the following details:

- Template Name: Enter a unique name for the template

- Request Name: Enter a name for the Save as Template request.

- Keymap: Select a keyboard type for the server.

- Configuration: In this region, you can specify the default and maximum memory and number of CPUs.

Click OK to save as template.

- Start: Select a server that is Stopped and select Start from the Actions menu. A confirmation message is displayed. Click Start to submit the Start Server job to start the server.

- Stop: Select a server that is up and running and select Stop from the Actions menu. A confirmation message is displayed. Click Stop to submit the Stop Server job to stop the server.

- Restart: A server that is up and running can be restarted.

- Suspend: Select a server that is up and running and select Suspend from the Actions menu. A confirmation message is displayed. Click Suspend to submit the Suspend Server job.

- Resume: Select a server that is Suspended and select Resume from the Actions menu. A confirmation message is displayed. Click Resume to submit the Resume Server job to start the server.

- Launch VNC Console: Select this option from the Actions menu to launch a VNC Console. This option is available only if the server is up and running.

8.4.4.1 Modifying the Server Configuration

Select the server that is to be modified and select Modify Configuration from the Actions menu. The following page appears.

Figure 8-11 Modifying the Server Configuration

You can modify the details such as Server Size, Keymap, Tags, Network, and Storage. Click OK to save the configuration.

Note:
If the server is up and running, you cannot modify the Maximum Memory, Maximum Number of CPUs, Network, and Storage. To modify these parameters, you must stop the server and then select the Modify Configuration option.

8.4.4.2 Cloning the Server

You can clone a server to create one or more servers. Select a server and select Clone from the Actions menu. The Clone Server Request: General page appears. Enter the name for the clone request. The name of the source server cloned and the zone in which the cloned server will appear is displayed. Click Next to continue to the Clone Server Request: Deployment Configuration page. In this page, you can specify the number of servers to be cloned and the resource configuration parameters. These parameters will be applicable to all the servers being cloned. Specify the schedule, review the details, and click Finish to submit the Clone Server operation.

8.4.4.3 Server Details Page

The Server Details page displays detailed information about the server. From this page, you can modify configuration, clone, stop, restart, suspend, resume, and launch VNC console.

This page contains the following sections:

Figure 8-12 Server Details Page

- General: Displays information like status of server, the associated zone, date from which it is available, and the expiry date.

- Configuration: Displays configuration details of the server such as number of CPUs, memory, storage, operating system, and other software installed on the server.

- Availability: Shows the availability status of the server over the last 24 hours.

- Charts: You can see the Availability chart that displays the status of the server for past 24 hours, and the CPU, Memory, and Storage Utilization charts.

- Chargeback Details: This section displays all the charge back break-up data for the server. The charge incurred will be calculated from the server requested date to the current date.

8.5 Viewing Storage

Click the Storage tab to view all the storage elements grouped by the Guest VMs with which they are associated. The Storage tab lists all the Servers owned by the EM_SSA_USER along with all the storage resources in tree format. The top level nodes represent the servers owned by the user and the sub nodes represent the storage disks that belong to the server. You can do the following:

- Request Storage: This action allows the user to add a shared or non-shared storage disk to a server. Select one or more servers and click Request Storage. Enter the Disk Name, Size, and Mode. Select the Shared Disk check box to add a shared disk. If you create a non-shared storage disk, it is available only for the server on which it is created. A shared storage disk can be assigned to other servers. If you select multiple servers, you can create only non-shared storage disks.

- Assign Storage: This action allows the user to assign shared storage disk to any other server owned by the EM_SSA_USER. Select a server and click Assign Storage. The list of available shared storage disks are displayed. Select a disk from the list and click OK to assign the shared storage disk to the server.

- Release Storage: Select a server and click Release Storage. This action allows the user to release an existing shared or non-shared storage disks.

8.6 Viewing Chargeback Details

Click the Chargeback tab to view the chargeback details. The tab contains the following sections:

- Charge Trend: The Charge Trend shows the charges across a date range for various metrics. You can set a date range and click Go to recalculate charges.

- Details: This section shows charge details for the specified date range. You can reorder the data by selecting an option from the Detail Level drop-down menu. Click Export to export the details of the charge plan to a .csv file.

- Charge Plans: This section allows you to select a zone to see the charge plan in effect for the target type.

- Oracle VM Guest (Default): If you are using the Extended Charge Plan, the base plan for the Oracle Guest VM target type appears here.

8.7 Viewing Library

Click the Library tab to view the list of assemblies, templates, and deployment plans that you can access. You can choose to view:

- Public: The list published by the SSA Administrator for your role. The assemblies, templates and deployment plans on which you have view privileges. You will see the assemblies, templates, or deployment plans if the EM_SSA_ADMINISTRATOR has published them or if another EM_SSA_USER has made them shareable.

- Private: These include the assemblies, templates, and deployment plans that you own. Generally, an SSA user may not own assemblies but may own templates and deployment plans.

You can request servers from this page. See Section 8.2, "Requesting Servers" for details.

You can upload software, share, delete, or stop sharing a software component that you own. Select a component from the list and click Share. Select one or more users with whom the entity is to be shared and click Share.

To unshare an entity, select a shared entity from the list and click Stop Sharing. The list of users with whom this component has been shared appears. Select one or users from the list and click Stop Sharing.

To upload software, click Upload. In the dialog box that appears, select the source file to be upload, enter a name and description, and specify the type (Assembly or Template) of component being uploaded. Click Upload to upload to software to My Library.

8.8 Viewing Policies

Click the Policies tab to view the list of policies that you have defined. You can create a new Performance or Schedule Based Policy or a Policy Group. For example, you can define a policy to start an automatic scale up for a tier if the CPU Utilization is greater than 90 for 5 consecutive occurrences.

For more details on creating and using policies, see Section 6.1, "Managing Cloud Policies".

8.9 Viewing Preferences

Click Apply to save the preferences. The values specified here will be used when you request resources using Infrastructure Self Service Portal.

Click the Preferences link on the top right hand corner of the page. The following window appears:

Figure 8-13 Preferences

Before you request resources using SSA, you can set up your user profile by specifying the following details:

- General Preferences

- Email Address: The default email address to be used to receive notifications.

- Locale: The default locale for receiving cloud notifications.

- Request Notifications: Select this checkbox to receive notifications of different statuses of the request.

- Request Status: If you select the Request Notifications checkbox, select the status for each you wish to receive notifications from the drop down list.

- Days Before the First / Second Notification: If you select the Instance Expiry Notifications checkbox, specify the number of days before the first and second notifications are sent.

- Quota Notification: If you select this checkbox, notifications are sent when the quota reaches a specified threshold.

- Quota Threshold (%): If you have selected the Quota Notification checkbox, specify the quota threshold in this field.

- Self Service Portal: Select the default Self Service Portal page that should appear when you log in to the Self Service Portal.

9 Administering and Monitoring an IaaS Cloud

This chapter describes the monitoring and administrative tasks that you can perform on the zones, virtual server pools, virtual servers and guest virtual machines within an IaaS Cloud. It includes the following sections:

- Viewing the Infrastructure Cloud Home Page

- Viewing the OVM Manager Home Page

- Viewing and Managing Members

- Managing Zones

- Viewing the Virtual Server Pool Home Page

- Managing Virtual Servers

- Managing Guest Virtual Machines

- Deploying Guest Virtual Machines

- Viewing the Infrastructure Request Dashboard

9.1 Viewing the Infrastructure Cloud Home Page

The Cloud target is available out of the box and represents the entire virtualization infrastructure monitored by Enterprise Manager Cloud Control. You can view and monitor the various targets in the data center from the Infrastructure Cloud Home page. To view the Infrastructure Cloud Home page, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home. The Infrastructure Cloud Home page shows the various targets such as zones, pools, and virtual servers, request status, policies, and so on. Click the video link to view a demo on setting up the cloud infrastructure.

Figure 9-1 Infrastructure Cloud Home

The Infrastructure Cloud Home page shows the following details:

- General: Shows the number of OVM Managers, zones, and servers, and guest virtual machines in the cloud and the status of each target. Select a link to drill down to the Members page.

- Target Flux: Shows the number of targets (Guest VMs, Oracle VM Managers, Zones, server pools, virtual servers) created and deleted over the last 30 days.

- Request Status: Shows the status of various requests and reservations. Click the graph to drill down to the Requests page.

- CPU & Memory: Shows the CPU and memory utilization by the virtual servers in the data center.

- Software Library: Shows the number of assemblies and templates available in the software library and how many have been deployed.

- Policy: Shows the status of the various policies that have been defined for the cloud. It shows the number of corrective actions that were executed and whether they were successful. Click the graph to drill down to the Policy Home page.

- Overview of Incidents and Problems: Shows the various incidents and policy violations that have occurred in the last 24 hours.

- Charge Trend: Shows the charge back break-up data across the cloud. It lists the top 5 requests that have incurred the highest cost.

- Inventory and Usage: Shows the inventory summaries for virtual servers, guest virtual machines, and assembly instances. Select an option from the Show drop down list to view the details. You can view the summary information in the context of different dimensions. For example, for Oracle VM Servers, you can view the number of virtual servers under each Oracle VM Manager, zone, virtual server pool, and so on.
Click on the bar charts to drill down multiple levels of inventory details. Click See Details to drill down to the Inventory and Usage Details page which provides detailed information on the selected target and associated inventory charts.

Before you can start monitoring a virtualization target, you must register the OVM Manager target. See Section 5.3, "Registering the Oracle VM Manager" for details.

9.2 Viewing the OVM Manager Home Page

The OVM Manager provides the interface to monitor zones, virtual servers, virtual server pools, and guest virtual machines. A zone is a set of virtual server pools. Each virtual server pool contains one or more virtual servers and guest virtual machines. A virtual server pool cannot belong to more than one zone. To view the OVM Manager Home page, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Click on an OVM Manager target from the left panel. The OVM Manager Home page shows the following details:

Figure 9-2 OVM Manager Home

- General: Shows the number of zones, and servers, and guest virtual machines under the OVM Manager and the status of each target. Click on a link to drill down to the Members page.

- Request Status: Shows the status of all requests for this OVM Manager. Click on the graph to drill down to the All Requests page.

- Job Activity: Shows the list of jobs started within the last 7 days.

- Policy: Shows the status of all the policies that have been defined for the OVM Manager. It shows the number of corrective actions that were executed and whether they were successful.

- Overview of Incidents and Problems: Shows all the incidents and problems reported on the OVM Manager and member targets.

- Inventory and Usage: Shows the inventory summaries for virtual servers, guest virtual machines, and assembly instances. Select an option from the Show drop down list to view the details. You can view the summary information in the context of different dimensions. For example, for Oracle VM Servers, you can view the number of virtual servers under each Oracle VM Manager, zone, virtual server pool, and so on.
Click on the bar charts to drill down multiple levels of inventory details. Click See Details to drill down to the Inventory and Usage Details page which provides detailed information on the selected target and associated inventory charts.

- CPU & Memory: Shows the CPU and memory utilization by the virtual servers under the OVM Manager.

- Software Library: Shows the templates and assemblies that have been deployed.

- Charge Trend: Top 5 Tenants: Shows the charge back break-up data across the OVM Manager. It lists the top 5 requests that have incurred the highest cost.

3. From the OVM Manager Home page, you can do the following:

- Edit OVM Manager

- Synchronize OVM Manager

- Deregister OVM Manager

- Create a Zone

- Create a Virtual Server Pool

- Discover a Virtual Server

- Manage Unowned Virtual Server

- Manage Networks

- Manage Storage

- Manage Storage Repository

- Manage YUM Repository

- Manage NTP Configurations

9.3 Viewing and Managing Members

You can view and manage members for one or more virtualization targets on this page.

1. From the Enterprise menu select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on the Infrastructure Cloud menu, select Members, then select Show All.

3. The list of OVM Managers, Zones, Virtual Server Pools, Virtual Servers, and Guest Virtual Machines that can be managed from the Infrastructure Cloud appear.

4. You can:

1. Click on a target to drill down to its Home page.

2. Select a target and click on an option from the Actions menu. The actions you can perform vary based on the target you have selected.

Note:
You can view and manage the members under a OVM Manager target, zone, virtual server pool, or virtual server. From the Infrastructure Cloud Home page, select the appropriate target (such as an OVM Manager, zone, virtual server pool, or virtual server) from the left panel. From the Infrastructure Cloud menu, select Members, then select Show All. The Members page for the selected target appears and you can perform various administrative activities on these targets.

9.4 Managing Zones

This section describes the following:

- Viewing the Zone Home Page

- Creating or Editing a Zone

- Deleting a Zone

9.4.1 Viewing the Zone Home Page

A zone is a logical grouping of resources like servers and storage entities. It is a logical entity used to organize the guest virtual machines exposed to the self service application user. Zones have metrics that show the aggregate utilization of the zone. To view the Zone Home page, follow these steps:

1. From the Enterprise menu select Cloud, then select Oracle VM Infrastructure Home. In the left panel, click on the zone to be viewed. the The following details are displayed:

2. Figure 9-3 Zone Home

- General: Shows the number of virtual servers, virtual server pools, and guest virtual machines under this zone and the status of each target. Click on a link to drill down to the Members page.

- Job Activity: Shows the list of jobs started within the last 7 days.

- Overview of Incidents and Problems: Shows all the incidents and problems reported on the OVM Manager and member targets.

- CPU and Memory Usage Trending: Shows the average CPU and memory utilization over the last 30 days.

- CPU and Memory: Shows the CPU and memory utilization by the virtual servers and guest virtual machines in this zone.

9.4.2 Creating or Editing a Zone

A zone is a collection of virtual server pools which share storage. Follow these steps to create a zone:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select the OVM Manager target for which the zone is to be created, and click Create Zone from the OVM Manager menu.

3. In the Create Zone page, specify the zone name and description.

4. Indicate if this zone will be used by the self service users by checking the Infrastructure Cloud Self Service Zone check box.

5. Click Add in the Virtual Server Pool section to add one or more virtual server pools. See Section 5.14, "Creating a Virtual Server Pool" for details.

6. Click Create Zone and click OK. After the successful completion of this job, the virtual server pools appear in the newly created zone on the Virtualization Central Home page.

Note:
To edit an existing zone, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select a zone target from the left panel.

3. From the Zone menu, select Target Setup, then select Edit VM Zone.

9.4.3 Deleting a Zone

To delete a zone, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Click on a zone target from the left panel to navigate to the Zone Home page. From the Zone menu, select Target Setup, then select Delete. A confirmation message appears.

3. Click OK to delete the zone. Any virtual server pools that are members of this zone will now be moved under the OVM Manager target.

Note:
If Chargeback has been enabled for the zone (or virtual server pools / guest virtual machines within the zone) being deleted, the metric data is automatically disabled when the target is deleted.

9.4.4 Deleting a Zone from Enterprise Manager

To delete a zone from Enterprise Manager, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Click on a zone target from the left panel to navigate to the Zone Home page. From the Zone menu, select Target Setup, then select Delete from Enterprise Manager. A confirmation message appears.

3. Click OK to delete the zone. The zone and the associated targets under this zone will be removed from Enterprise Manager. After synchronization, these targets will be added back to Enterprise Manager.

Note:
If Chargeback has been enabled for the zone (or virtual server pools / guest virtual machines within the zone) being deleted, the metric data is automatically disabled when the target is deleted.

9.5 Viewing the Virtual Server Pool Home Page

A virtual server pool is logically an autonomous region that contains one, or more virtual servers. A virtual server pool may or may not belong to a zone. However, it can belong to only one zone at a time. The following details are displayed:

Figure 9-4 Virtual Server Pool Home

- General: Shows details of the virtual server pool such as the zone to which it belongs, the number of CPUs, memory and storage, and number of NICs.

- Job Activity: Shows the list of jobs started within the last 7 days.

- Issues: Shows all the incidents and problems reported on the virtual server pool and member targets.

- CPU and Memory Usage Trends: Shows the average CPU and memory utilization by the virtual servers in the zone over the last 30 days.

- CPU and Memory Utilization: These charts show the CPU and memory utilization by all the virtual servers in the server pool.

9.6 Managing Virtual Servers

This section describes the following:

- Virtual Server Home Page

- Editing a Virtual Server

- Upgrading a Virtual Server

- Starting and Stopping a Virtual Server

- Performing Maintenance on the Virtual Server

9.6.1 Virtual Server Home Page

A virtual server is a generic term used to describe a physical machine which has virtualization software (hypervisor) running on it. A virtual server can belong to one and only one virtual server pool at a time. Guest virtual machines and resources are also associated with the server pools.

Figure 9-5 Virtual Server Home

The following regions are displayed:

- General: Shows details of the virtual server such as the virtual server pool it belongs to, whether the server needs to be upgraded, if it is under maintenance, and so on.

- Job Activity: Shows the list of jobs started within the last 7 days.

- Configuration: The virtual server configuration such as number of enabled CPU cores and processors, memory, diskspace, OVS Agent Port, and so on.

- Network and Disk Activity: The network and disk activity of the virtual server.

Note:
If you are using Oracle VM Manager 3.2 4, the Disk Activity is not shown in the graph.

- CPU and Memory Utilization: The CPU and memory utilization of the virtual server.

- Incident Summary: This region shows a list of incidents and problems reported on all the Guest VMs and related targets.

9.6.2 Editing a Virtual Server

To edit a virtual server, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. In the left panel, select the virtual sever that is to be edited. The Virtual Server Home page appears.

3. From the Virtual Server menu, select Target Setup, then select Edit VM Server. You can modify the description of the virtual server and the following fields:

- Configure IPMI: Select the Enable Server IPMI checkbox to enable the Intelligent Platform Management Interface (IPMI). Selecting this option allows you to remotely power off a virtual server and send a wake on lan message to power on a virtual server without having to physically press the power button. If this checkbox is selected, you must enter the user name, password, and IP address of the IPMI.

- Server Role: A server can be designated to perform utility or virtual machine functions by specifying the role which can be:

- Utility Role: Servers with this role are used to perform non-virtual machine operations such as cloning, importing templates, creating repository, deleting assemblies and so on.

- Virtual Machine Role: Servers with this role are used to run virtual machines. This role cannot be deselected if the virtual server already contains Guest VMs.

4. Click OK to confirm the changes.

9.6.3 Upgrading a Virtual Server

After the YUM Repository has been set up (see Section 5.17.1, "Configuring the YUM Repository"), you must upgrade the virtual server to ensure that it has the latest updates. The virtual server must be in maintenance mode if it is to be upgraded.

To upgrade the virtual server, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a VM Server from the left panel and select Upgrade.

3. After the virtual server has been upgraded, the virtual server will be restarted.

9.6.4 Starting and Stopping a Virtual Server

You can start a virtual server that is in a Stopped state. To start a virtual server, follow these steps:

Note:
Before you start the virtual server, you must ensure that the IPMI has been configured. See Section 9.6.2, "Editing a Virtual Server".

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a virtual server target in the left panel and select Start. A confirmation message appears.

3. Click OK to start the virtual server.

You can stop a virtual server that is Up. To stop a virtual server, follow these steps:

1. Login to Enterprise Manager Cloud Control.

2. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

3. Right click on a virtual server target in the left panel and select Stop. A confirmation message appears.

4. Click OK to stop the virtual server.

9.6.5 Performing Maintenance on the Virtual Server

You can place a virtual server in maintenance mode to perform hardware and software maintenance. When a virtual server is placed in maintenance mode, any virtual machines running on the virtual server are automatically migrated to other virtual servers in the server pool, if they are available, otherwise they are stopped. The server pool roles being performed by the virtual server are also moved to other virtual servers in the server pool, if available.To place an Oracle VM Server into maintenance mode:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select a virtual server target from left panel.

3. Right click on a virtual server target from the left panel and select the Start Maintenance. The virtual server target is placed in blackout mode during maintenance.

When you have finished performing maintenance, click Stop Maintenance for it to rejoin the server pool.

9.7 Managing Guest Virtual Machines

This section describes the following:

- Creating a Guest Virtual Machine

- Guest Virtual Machine Home Page

- Migrating a Guest Virtual Machine

- Starting and Shutting Down a Guest Virtual Machine

- Cloning a Guest Virtual Machine

- Editing a Guest Virtual Machine

- Saving a Guest Virtual Machine as a Template

- Deleting a Guest Virtual Machine

- Deleting a Guest Virtual Machine Only From Enterprise Manager

9.7.1 Creating a Guest Virtual Machine

A guest virtual machine runs on a virtual server. You can create a guest virtual machine by using one of the following methods:

- Assemblies

- Templates

- Installation Media (ISO or PXE)

For more details on creating a Guest VMs, see Section 9.8, "Deploying Guest Virtual Machines".

Before you create a guest virtual machine, you must have:

- Discovered a virtual server.

- Created a virtual server pool.

- Created the necessary components in the Software Library

- Deployed assemblies, templates, ISO images, or PXEs for creating virtual machines based on these.

9.7.2 Guest Virtual Machine Home Page

A guest virtual machine is the container running on top of a virtual server. Multiple guest virtual machines can run on a single virtual server. The following regions are displayed:

- General: Shows details of the guest virtual machine such as the virtual server pool, and virtual server it belongs to, and a description.

- Networks: Displays the network configuration for the guest virtual machine.

- CPU and Memory Utilization: The CPU and memory utilization of the guest virtual machine.

- Networks and Network Activity: The networks in the guest virtual machine and the network throughput of the guest virtual machine.

- Configuration: The virtual server configuration such as number of virtual CPUs, CPU priority, allocated storage and memory, whether it is HA enabled, and the domain type.

- Job Activity: Shows the list of jobs started within the last 7 days.

- Incidents Summary: Shows the various alerts and policy violations that have occurred in the last 31 days.

From the Guest Virtual Machine Home page, you can do the following:

- Edit a Guest VM

- Migrate a Guest VM

- Clone a Guest VM

- Start and Stop

- Reboot, Restart, Suspend, and Resume

9.7.3 Migrating a Guest Virtual Machine

To migrate one or more guest virtual machines, do the following

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. From the Infrastructure Cloud menu, select Members, then select Show All.

3. Expand the list of targets displayed and select one or more guest virtual machines from the list. From the Actions menu, select Guest VMs, then select Migrate. The Migrate page appears. You can select the following:

- Running Guest VMs

- Stopped / Suspended Guest VMs.

4. Select one or more Guest VMs from these regions, and click Submit.

Note:
For running Guest VMs, the virtual server to which the guest virtual machine is to be migrated is auto selected by default. For stopped or suspended Guest VMs, the target server can be modified if required.

9.7.4 Starting and Shutting Down a Guest Virtual Machine

After a guest virtual machine has been created, you can start it or shut it down. When a guest virtual machine is running, you can pause or suspend it temporarily:

- Starting a Guest Virtual Machine

- Restarting a Guest Virtual Machine

- Stopping a Guest Virtual Machine

9.7.4.1 Starting a Guest Virtual Machine

When a Guest VM has not been used for a while, it may be shut down to release system resources. To use the Guest VM, you must start it:

Prerequisites

The guest virtual machine must be Down.

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select the guest virtual machine target from the left panel.

3. Click Start from the guest virtual machine menu.

9.7.4.2 Restarting a Guest Virtual Machine

You may need to reboot or restart a virtual machine if operating system updates require you to restart the virtual machine, for example Microsoft Windows updates. To reboot a guest virtual machine:

Prerequisites

The guest virtual machine must be Up.

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a guest virtual machine target from the left panel and click Restart.

9.7.4.3 Stopping a Guest Virtual Machine

You may need to stop a Guest VM that is not being used to release system resources.

Prerequisites

The guest virtual machine must be Up.

To stop a guest virtual machine:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a guest virtual machine target from the left panel and click Stop.

9.7.4.4 Killing a Guest Virtual Machine

Killing a virtual machine is equivalent to performing a power off of a virtual machine, similar to unplugging the power cable from a physical machine. This is not the recommended method of shutting down a virtual machine, but may be used if the Stop command fails to shut down the virtual machine.

To kill a guest virtual machine:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a guest virtual machine target from the left panel and click Kill.

9.7.5 Cloning a Guest Virtual Machine

Prerequisites

- At least one virtual machine must exist and be in a state appropriate for cloning to proceed.

- You can clone a guest virtual machine to create one or more new virtual machines in the same server pool.

Note:
If you are using the Enterprise Manager for Oracle Virtualization 12.1.0.3 (listed as Oracle Virtualization in Self Update) plug-in or above, you can clone running guest virtual machines if the virtual disks associated with them are thin cloneable.

To clone a guest virtual machine, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select a guest virtual machine target from the left panel.

3. Click Clone from the guest virtual machine menu.

4. In the Select Target and Source page, specify the Request Name.

5. In the Deployment Configuration page, you can modify the following:

- Guest VM:

- Number of Guest VMs: The number of guest virtual machine instances being cloned.

- Guest VM Naming: Indicates whether the guest virtual machine names are to be automatically generated or if the names will be uploaded from a file.

- Guest VM Name: Enter a name of the guest virtual machine being cloned. The guest virtual machine name cannot contain any special characters.

- General:

- Enable High Availability / Start VM After Creation: Select the Enable High Availability and Start VM After Creation checkboxes to restart the guest virtual machine automatically after any outage.

- CPU Scheduling Priority: Set the Priority of the virtual machine. You can select a high, medium, low, or custom priority for the virtual CPUs.

- CPU Scheduling CAP: This parameter defines the percentage to which the virtual CPUs can receive scheduled time. You can select a high, medium, low, or a custom percentage of scheduled time for the virtual CPUs.

- Keymap: The keyboard mapping that will be used by the guest virtual machine being cloned.

- Tags: Specify one or more comma separated tags. These tags are used to logical group the virtual machines and can be used to search for one or more virtual machines that meet a certain criteria.

- VM Size

- VM Size: The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started. The size of the guest virtual machine (memory and CPU values).

- Memory: Specify the memory allocated to guest virtual machine. For a running guest virtual machine, this can be increased up to the Max Memory.

- CPU Cores: Specify the number of virtual CPUs for the guest virtual machine. For a running guest virtual machine, this can be increased upto the Max virtual CPU.

- Disk Configuration: You can configure the storage type to specify the location of the disks of the new cloned Guest VM. You can use the Default type as specified by the server pool or select Override. If you select Override, you must specify the Storage QoS and click the Search icon in the Storage field to specify the Storage Type. In the Storage Type window, specify the following:

- Clone Target Type: This can be Repository or Storage Array.

- Clone Target: If you select Repository, select the storage location where the disk is to be created. If you select Storage Array, specify the type, which can be SAN or ISCSI storage server.

- Clone Type: This can be Sparse or Non-Sparse Copy. A sparse copy is a disk image file of a physical disk, taking up only the amount of space actually in use; not the full specified disk size. A non-sparse copy is a disk image file of a physical disk, taking up the space equivalent to the full specified disk size, including empty blocks.

- Apart from specifying the storage type, you can also add new disks for the Guest VM to be cloned. Click Add New Disk to create a new disk in repositories and connect it to the target Guest VM. Click Attach Disk to provide the existing disk in the repositories and connect it to the Guest VM.

6. Click Next to continue.

7. On the Schedule page, specify whether the guest virtual machine is to be cloned immediately or later. Click Next.

8. On the Review page, review the configuration details and click Submit to run the cloning procedure.

9.7.6 Editing a Guest Virtual Machine

Note:

- If you edit a guest virtual machine that is Up, you cannot modify the server size, storage and network fields. To edit these values, you must stop or halt the guest virtual machine.

- You can create a new disk for a guest virtual machine which is Down, if Oracle VM Manager 3.1.1 and Enterprise Manager for Oracle Virtualization 12.1.0.2 plug-in have been installed. In other cases, existing disks are attached to the guest virtual machines.

To modify the configuration of a guest virtual machine, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select a guest virtual machine target from the left panel. From the Guest VM menu, select Target Setup, then select Edit VM Guest. The Guest VM Configuration page appears.

Figure 9-6 Edit Guest Virtual Machine: Hardware Configuration

3. In the Hardware Configuration page, you can modify the following details:

- General:

- VM Size: The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started. The size of the guest virtual machine (memory and CPU values).

- Memory: Specify the memory allocated to guest virtual machine. For a running guest virtual machine, this can be increased upto the Max Memory.

- CPU Cores: Specify the number of virtual CPUs for the guest virtual machine. For a running guest virtual machine, this can be increased upto the Max virtual CPU.

- CPU Scheduling Priority: Set the Priority of the virtual machine. You can select a high, medium, low, or custom priority for the virtual CPUs.

- CPU Scheduling CAP: This parameter defines the percentage to which the virtual CPUs can receive scheduled time. You can select a high, medium, low, or a custom percentage of scheduled time for the virtual CPUs.

- Network: You can add delete virtual network interfaces. For more details, see Section 5.7, "Setting Up Networks".

- Storage: Select the desired storage configuration of your virtual machine, such as virtual disks and ISO file.

4. Click the Other Configuration tab.

Figure 9-7 Edit Guest Virtual Machine: Other Configuration

- Attribute: You can set the basic attributes of the guest virtual machine such as the description and the type of operating system to be used.

- High Availability: If the High Availability checkbox is selected, the guest virtual machine will automatically restart after any outage.

- Boot Sequence: Specify the boot sequence for the guest virtual machine. This is the boot order for the guest virtual machine and indicates if the guest virtual machine is forced to boot from disk, CDROM, or network.

- Advanced:

- Keymap Name: The name of the keyboard mapping that will be used by the guest virtual machine.

- Mouse Type: The mouse type to be used for the guest virtual machine. This can be Default, PS2 Mouse, USB Mouse, or USB Tablet.

- Domain Type: The domain type of the virtual machine. This can be:
Xen HVM: Hardware virtualization, or fully virtualized. When you select this option you must supply an ISO file in a repository (in the Create Storage step of the wizard) from which to create the virtual machine.

Xen HVM, PV Drivers: Identical to Xen HVM, but with additional paravirtualized drivers for improved performance of the virtual machine. This Domain Type is used to run Microsoft Windows guest operating systems with an acceptable performance level.

Xen PVM: Enables you to select a location for the mounted ISO file from which to create the virtual machine. Before you create the virtual machine using the paravirtualized method, mount the ISO file on an NFS share, or HTTP or FTP server. You supply the location of the mounted ISO file in the Network Boot Path field in the Boot Options step of the wizard.

OVM/SPARC: This domain type should be selected if the server pool and hypervisors use Oracle VM Server for SPARC as the hypervisor instead of Oracle VM Server for x86.

Unknown: This hypervisor should be selected if the domain type is unknown.

- VM Start Policy: Select the policy to be used to start the virtual machines. You can choose:
Start on Best Server: The best server in the server pool is used to start the virtual machine.

Start on Current Server: The virtual machine will be started on the same server on which it was created.

- Tags: Specify one or more comma separated tags. These tags are used to logical group the virtual machines and can be used to search for one or more virtual machines that meet a certain criteria.

9.7.7 Saving a Guest Virtual Machine as a Template

You can save a guest virtual machine as a template and use the template for provisioning guest virtual machines.

To save a guest virtual machine as a template, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select a Guest VM target from the left panel. From the Guest VM menu, select Target Setup, then select Save Guest VM as a Template. The Save Guest VM as Template: Select Target and Source page appears.

3. The name of the guest virtual machine target that is to be saved as template is displayed.

4. In the Target Repository field, select the repository on which the guest virtual machine template is to be stored.

5. Specify a name for the template and click Next.

6. In the Save Guest VM as Template: Deployment Configuration page, you can modify the following details:

- General Configuration:

- Memory and No. of CPU Cores: Specify the Memory and No of CPU Cores (virtual CPUs) for the virtual machine. The number of processors is expressed in number of physical CPU cores, and is limited to 32. The memory and the number of processors that you can select is limited to the properties of the Virtual Machine Server. If you do not select a Virtual Machine Server however, you can set your desired value. You can modify the Max Virtual CPUs and Max Memory fields without restarting the Guest VM.

- CPU Scheduling Priority: Set the Priority of the virtual machine. You can select a high, medium, low, or custom priority for the virtual CPUs.

- CPU Scheduling CAP: This parameter defines the percentage to which the virtual CPUs can receive scheduled time. You can select a high, medium, low, or a custom percentage of scheduled time for the virtual CPUs.

- Storage: Select the desired storage configuration of your virtual machine, such as virtual disks and ISO file.

- Tags: Specify one or more comma separated tags. These tags are used to logical group the virtual machines and can be used to search for one or more virtual machines that meet a certain criteria.

- Disk: Specify the storage type. You can use the Default type as specified by the server pool or select Override. If you select Override, you must specify the Storage QoS and click the Search icon in the Storage field to specify the Storage Type. In the Storage Type window, specify the following:

- Clone Target Type: This can be Repository or Storage Array.

- Clone Target: If you select Repository, select the storage location where the disk is to be created. If you select Storage Array, specify the type, which can be SAN or ISCSI storage server.

- Clone Type: This can be Sparse or Non-Sparse Copy. A sparse copy is a disk image file of a physical disk, taking up only the amount of space actually in use; not the full specified disk size. A non-sparse copy is a disk image file of a physical disk, taking up the space equivalent to the full specified disk size, including empty blocks.

9.7.8 Deleting a Guest Virtual Machine

To delete a guest virtual machine, follow these steps:

1. From the Enterprise menu, select Cloud, then select Infrastructure Home.

2. Click on a guest virtual machine target from the left panel to navigate to the Guest VM Home page. From the Guest VM menu, select Target Setup, then select Delete. A confirmation message appears.

3. Click OK to delete the guest virtual machine. The guest virtual machine must be down before it can be deleted. This option deletes the guest virtual machine permanently from Oracle VM Manager.

9.7.9 Deleting a Guest Virtual Machine Only From Enterprise Manager

To delete a guest virtual machine only from Enterprise Manager, follow these steps:

1. From the Enterprise menu, select Cloud, then select Infrastructure Home.

2. Click on a guest virtual machine target from the left panel to navigate to the Guest VM Home page. From the Guest VM menu, select Target Setup, then select Delete from Enterprise Manager. A confirmation message appears.

3. Click OK to delete the guest virtual machine from the Enterprise Manager repository. This option does not delete the guest virtual machine from the Oracle VM Manager. You can use the Synchronize operation to restore the target to the Enterprise Manager repository. See Section 5.4, "Synchronizing the Oracle VM Manager Targets".
To permanently delete the guest virtual machine from the Enterprise Manager repository and the Oracle VM Manager, see Section 9.7.8, "Deleting a Guest Virtual Machine".

9.8 Deploying Guest Virtual Machines

This section describes the various options that can be used to deploy guest virtual machines. It contains the following sections:

- Getting Started

- Deployment Options

- Prerequisites

- Provisioning Guest Virtual Machines Using Oracle Virtual Assemblies (OVA)

- Provisioning a Guest Virtual Machine Using Oracle VM Templates

- Provisioning a Guest Virtual Machine Using an ISO Image

- Creating PXE Bootable Guest Virtual Machines

9.8.1 Getting Started

This section helps you get started by providing an overview of the steps involved in provisioning virtualized systems. Consider this section to be a documentation map to understand the sequence of actions you must perform to successfully provision virtualized systems. Click the reference links provided against the steps to reach the relevant sections that provide more information.

Table 9-1 Getting Started with Oracle VM Provisioning

Step

Description

Reference Link

Step 1

Understanding the Deployment Options

Understand the deployment plans offered by Enterprise Manager for deploying virtualization systems.

To learn about the deployment options, see Section 9.8.2, "Deployment Options".

Step 2

Meeting the Prerequisites

Before you run the Deployment Procedure, you must meet the prerequisites, such as setting up the provisioning environment, applying mandatory patches, and creating the Software Library components.

To learn about the prerequisites for provisioning guest virtual machines, see Section 9.8.3, "Prerequisites".

Step 3

Selecting the Use Case

This section covers a few use cases for the provisioning of guest virtual machines. Select the use case that best matches your requirements.

To provision a guest virtual machine using:

- Assemblies: See Section 9.8.4, "Provisioning Guest Virtual Machines Using Oracle Virtual Assemblies (OVA)"

- Templates: See Section 9.8.5, "Provisioning a Guest Virtual Machine Using Oracle VM Templates"

- ISO Images: See Section 9.8.6, "Provisioning a Guest Virtual Machine Using an ISO Image"

- PXE Boot: See Section 9.8.7, "Creating PXE Bootable Guest Virtual Machines"

9.8.2 Deployment Options

Enterprise Manager provides the following deployment options for provisioning guest virtual machines:

- Virtual Machine Provisioning Using Assembly: Creates new guest virtual machines using an assembly component.

- Virtual Machine Provisioning Using Template: Creates new guest virtual machines using a template component.

- Virtual Machine Provisioning Using ISO: Creates a new guest virtual machine using an ISO image.

- Virtual Machine Provisioning Using PXE: Creates a new guest virtual machine using Preboot Execution Environment. The new guest virtual machines will be PXE-booted and they will get provisioned by way of networks.

- Cloning a Virtual Machine: Clones a guest virtual machine to one or more guest virtual machines.

9.8.3 Prerequisites

Before you run any deployment procedures, meet the infrastructure requirements described in this section.

- Mandatory Infrastructure Requirements as defined in the Enterprise Manager Lifecycle Administrator's Guide.

- Optional Infrastructure Requirements as defined in the Enterprise Manager Lifecycle Administrator's Guide.

- The assembly, template, or the ISO image to be deployed must be present as a Software Library component, or at an external HTTP or NFS location, or imported to the server pool shared location.

9.8.3.1 Creating and Storing Virtualization Components in the Software Library

This section describes the procedure to create the virtualization components in the Software Library. It includes the following:

- Creating an Assembly Component

- Creating a Template Component

- Creating an ISO Component

- Creating a Virtual Disk

9.8.3.1.1 Creating an Assembly Component

An assembly is a collection of virtual machine instances. When an assembly is deployed, a group of virtual machines or an assembly instance is created.

Prerequisites

- The Assembly Binary, a file with a .ova extension must be present on the Management Agent or on an external http/ftp/nfs location.

Follow this process to create a new assembly component:

1. From the Enterprise menu, select Provisioning and Patching, then select Software Library.

2. Select a folder on the Software Library page. From the Actions menu, select Create Entity, then select Virtualization. You can also right click on a folder and select the virtualization option from the context menu.

3. From the Create Entity: Virtualization pop-up window, choose Assembly from the Select Subtype drop down list.

4. In the Create Assembly: Describe page, enter the following details:

- Name and description of the assembly.

- In the Attachments section, click Add to attach any files relevant to the entity. Ensure that the file size is less than 2 MB.

- In the Notes section, include information related to the entity like changes being made to the entity or modification history that you want to track and click Add.

5. Click Next to continue. In the Create Assembly: Upload Files page, select one or more files to be associated with the assembly. You can either:

- Upload Files: You can upload files from a storage location in the Software Library. For Software Library to become usable, at least one upload file location must be configured. Select the Upload Files option. In the Specify Destination section, click the Browse button in the Upload Location field. Two storage options are supported:

- OMS Shared File System: An OMS Shared File System location is required to be shared (or mounted) across all the Oracle Management Server (OMS) hosts. This option is ideal for UNIX systems.
For single OMS environments, you can configure the Software Library either on the host where the OMS is running or in a shared location, so that it is accessible to all the OMS hosts. For multiple OMS environments, Oracle recommends that you configure the Software Library in a shared location so that the storage is accessible through NFS mount points to all Oracle Management Servers in the environment

- OMS Agent File System: An OMS Agent File System location is a location that is accessible to one of the OMS host's Agent. This option is ideal for OMS installed on Windows hosts. By selecting this option for uploading files, you can avoid sharing a location between all participating OMS hosts.

Credentials must be set before using an OMS Shared File System or OMS Agent File System. For an OMS Shared File System, normal host credential must be set before configuring a storage location. However, for OMS Agent File System location configuration, a credential (preferred or named) has to be specified.

- Refer Files: Select this option if you want to use an external file location where the software library files are staged. Referenced File Locations support three storage options:

- HTTP: An HTTP storage location represents a base URL which acts as the source of files that can be referenced. For example, the base URL http://my.files.com/scripts could be configured as an HTTP location for sourcing files such as http://my.files.com/scripts/perl/installMyDB.pl or http://my.files.com/scripts/linux/stopMyDB.sh.

- Agent: A storage location is similar to the OMS Agent File System option, but can be any host monitored by an Management Agent. The Management Agent can be configured to serve the files located on that host. For example, the directory /u01/binaries on the Enterprise Manager Host my.em.file.server could be configured as an Agent location for sourcing files such as /u01/binaries/rpms/myCustomDB.rpm or /u01/binaries/templates/myTemplate.tar.gz

- NFS: An NFS storage location represents an exported file system directory on a server. The server need not be an Enterprise Manager host target. For example, the directory /exported/scripts is exported on server my.file.server could be configured as an NFS location for sourcing files such as /exported/scripts/generic/installMyDB.pl or /exported/scripts/linux/stopMyDB.sh once mounted on a target host file system.

These locations require a named credential to be associated which will be used to access the files from the base location on the host through the Management Agent.

- Specify Source: You can add additional file storage locations.

- To add a HTTP location that can be accessed through a HTTP URL, select HTTP from the Storage Type list and click Add. In the Add HTTP Location dialog box, enter a unique name and a HTTP location for the storage that you want to reference, and click OK. A new entry for the storage location is created, with details like Name, Location, and Status.

- To add a Management Agent location that has read-only privileges set on it, select Agent from the Storage Type list and click Add.

6. Click Next. In the Assembly Details page, you will see a set of predefined deployment profiles. You will also see the structure of the assembly and all the appliances in the assembly. Click Next.

7. On the Review page, click Save to save the assembly component. Click Upload to upload the assembly component to the Software Library.

9.8.3.1.2 Creating a Template Component

Follow these steps to create a template component:

1. From the Enterprise menu, select Provisioning and Patching, then select Software Library.

2. Select a folder on the Software Library page. From the Actions menu, select Create Entity, then select Virtualization. You can also right click on a folder and select the virtualization option from the context menu.

3. Select the Subtype as Template.

4. In the Create Template: Describe page, enter the name and description of the template.

5. Select the Operating System Name, Type, and Virtualization Type. The Virtualization Type can be Para Virtualized, Hardware Virtualized or both. Select Para Virtualized if you want use machines that are not enabled for virtualization. Select Hardware Virtualized if you want to use machines that are enabled for virtualization.

- Para Virtualized: A virtual machine with a kernel that is recompiled to be made aware of the virtual environment. Runs at near native speed, with memory, disk and network access optimized for maximum performance.

- Hardware Virtualized: A virtual machine with an unmodified guest operating system. It is not recompiled for the virtual environment. There may be substantial performance penalties running as a hardware virtualized guest. Enables Microsoft Windows™ operating system to be run, as well as legacy operating systems. Hardware virtualization is only available on Intel VT or AMD SVM CPUs.

6. Click Next to continue. In the Create Template: Upload Files page, select one or more files to be associated with the assembly. You can:

- Upload Files: You can upload files from a storage location in the Software Library. For the Software Library to become usable, at least one upload file location must be configured. Select the Upload Files option. In the Specify Destination section, click the Browse button in the Upload Location field. The following storage options are supported:

- OMS Shared File System: An OMS Shared File System location is required to be shared (or mounted) across all the Oracle Management Service (OMS) hosts. This option is ideal for UNIX systems.
For single OMS environments, you can configure the Software Library either on the host where the OMS is running or in a shared location, so that it is accessible to all the OMS hosts. For multiple OMS environments, Oracle recommends that you configure the Software Library in a shared location so that the storage is accessible through NFS mount points to all Oracle Management Servers in the environment

- OMS Agent File System: An OMS Agent File System location is a location that is accessible to one of the OMS host's Agent. This option is ideal for OMS installed on Windows hosts. By selecting this option for uploading files, you can avoid sharing a location between all participating OMS hosts.

Credentials must be set before using an OMS Shared File System or OMS Agent File System. For an OMS Shared File System, normal host credential must be set before configuring a storage location. However, for OMS Agent File System location configuration, a credential (preferred or named) has to be specified.

- Refer Files: Select this option if you want to use a external file location where the software library files are staged. Referenced File Locations support three storage options:

- HTTP: An HTTP storage location represents a base URL which acts as the source of files that can be referenced. For example, the base URL http://my.files.com/scripts could be configured as an HTTP location for sourcing files such as http://my.files.com/scripts/perl/installMyDB.pl or http://my.files.com/scripts/linux/stopMyDB.sh.

- Agent: A storage location is similar to the OMS Agent File System option, but can be any host monitored by the Management Agent. The Management Agent can be configured to serve the files located on that host. For example, the directory /u01/binaries on the Enterprise Manager Host my.em.file.server could be configured as an Agent location for sourcing files such as /u01/binaries/rpms/myCustomDB.rpm or /u01/binaries/templates/myTemplate.tar.gz

- NFS: An NFS storage location represents an exported file system directory on a server. The server need not be an Enterprise Manager host target. For example, the directory /exported/scripts is exported on server my.file.server could be configured as an NFS location for sourcing files such as /exported/scripts/generic/installMyDB.pl or /exported/scripts/linux/stopMyDB.sh once mounted on a target host file system.

These locations require a named credential to be associated which will be used to access the files from the base location on the host through the Management Agent.

- Specify Source: You can add additional file storage locations.

- To add a HTTP location that can be accessed through a HTTP URL, select HTTP from the Storage Type list and click Add. In the Add HTTP Location dialog box, enter a unique name and a HTTP location for the storage that you want to reference, and click OK. A new entry for the storage location is created, with details like Name, Location, and Status.

- To add the Management Agent location that has read-only privileges set on it, select Agent from the Storage Type list and click Add and enter the required information in the Add Agent Location dialog box.

7. Click Next. In the Review page, review the details of the template and click Save. Click Upload to upload the template component to the Software Library. The template component will now appear as an entity in the Software Library page.

9.8.3.1.3 Creating an ISO Component

Follow these steps to create an ISO component:

1. From the Enterprise menu, select Provisioning and Patching, then select Software Library.

2. Select a folder on the Software Library page. From the Actions menu, select Create Entity, then select Virtualization. You can also right click on a folder and select the virtualization option from the context menu.

3. Select the Subtype as ISO.

4. In the Create ISO: Describe page, enter the name and description of the deployment plan.

5. Click Next to continue. In the Create ISO: Upload Files page, select one or more files to be associated with the assembly. You can either:

- Upload Files: You can upload files from a storage location in the Software Library. For Software Library to become usable, at least one upload file location must be configured. Select the Upload Files option. In the Specify Destination section, click the Browse button in the Upload Location field. The following storage options are supported:

- OMS Shared File System: An OMS Shared File System location is required to be shared (or mounted) across all the Oracle Management Service (OMS) hosts. This option is ideal for UNIX systems.
For single OMS environments, you can configure the Software Library either on the host where the OMS is running or in a shared location, so that it is accessible to all the OMS hosts. For multiple OMS environments, Oracle recommends that you configure the Software Library in a shared location so that the storage is accessible through NFS mount points to all Oracle Management Servers in the environment

- OMS Agent File System: An OMS Agent File System location is a location that is accessible to one of the OMS host's Agent. This option is ideal for OMS installed on Windows hosts. By selecting this option for uploading files, you can avoid sharing a location between all participating OMS hosts.

Credentials must be set before using an OMS Shared File System or OMS Agent File System. For an OMS Shared File System, normal host credential must set before configuring a storage location. However, for OMS Agent File System location configuration, a credential (preferred or named) has to be specified.

- Refer Files: Select this option if you want to use a external file location where the software library files are staged. Referenced File Locations support three storage options:

- HTTP: An HTTP storage location represents a base URL which acts as the source of files that can be referenced. For example, the base URL http://my.files.com/scripts could be configured as an HTTP location for sourcing files such as http://my.files.com/scripts/perl/installMyDB.pl or http://my.files.com/scripts/linux/stopMyDB.sh.

- Agent: A storage location is similar to the OMS Agent File System option, but can be any host monitored by the Management Agent. The Management Agent can be configured to serve the files located on that host. For example, the directory /u01/binaries on the Enterprise Manager Host my.em.file.server could be configured as an Agent location for sourcing files such as /u01/binaries/rpms/myCustomDB.rpm or /u01/binaries/templates/myTemplate.tar.gz

- NFS: An NFS storage location represents an exported file system directory on a server. The server need not be an Enterprise Manager host target. For example, the directory /exported/scripts is exported on server my.file.server could be configured as an NFS location for sourcing files such as /exported/scripts/generic/installMyDB.pl or /exported/scripts/linux/stopMyDB.sh once mounted on a target host file system.

These locations require a named credential to be associated which will be used to access the files from the base location on the host through the Management Agent.

- Specify Source: You can add additional file storage locations.

- To add a HTTP location that can be accessed through a HTTP URL, select HTTP from the Storage Type list and click Add. In the Add HTTP Location dialog box, enter a unique name and a HTTP location for the storage that you want to reference, and click OK. A new entry for the storage location is created, with details like Name, Location, and Status.

- To add an NFS shared location, select NFS from the Storage Type list and click Add. In the Add NFS Location dialog box, enter a unique name in the Name field for the storage. In NFS server field, provide a fully qualified domain name or the IP address of the hosted machine that has NFS services running on them. In the Location field, provide the shared location or directory path on the NFS server to define a storage location, then click OK. A new entry for the storage location is created in the table, with details like Name, Location, and Status.

- To add a Management Agent location that has read-only privileges set on it, select Agent from the Storage Type list and click Add.

6. Click Next. In the Review page, review the details and click Save. Click Upload the ISO component to the Software Library. The ISO image will now appear as an entity in the Software Library page.

9.8.3.1.4 Creating a Virtual Disk

Follow these steps to create a virtual disk component:

1. From the Enterprise menu, select Provisioning and Patching, then select Software Library.

2. Select a folder on the Software Library page. From the Actions menu, select Create Entity, then select Virtualization. You can also right click on a folder and select the virtualization option from the context menu.

3. Select the Subtype as Virtual Disk.

4. In the Virtual Disk: Describe page, enter the name and description of the deployment plan.

5. Click Next to continue. In the Create Virtual Disk: Upload Files page, select one or more files to be associated with the assembly. You can either:

- Upload Files: You can upload files from a storage location in the Software Library. For Software Library to become usable, at least one upload file location must be configured. Select the Upload Files option. In the Specify Destination section, click the Browse button in the Upload Location field. The following storage options are supported:

- OMS Shared File System: An OMS Shared File System location is required to be shared (or mounted) across all the Oracle Management Server (OMS) hosts. This option is ideal for UNIX systems.
For single OMS environments, you can configure the Software Library either on the host where the OMS is running or in a shared location, so that it is accessible to all the OMS hosts. For multiple OMS environments, Oracle recommends that you configure the Software Library in a shared location so that the storage is accessible through NFS mount points to all Oracle Management Servers in the environment

- OMS Agent File System: An OMS Agent File System location is a location that is accessible to one of the OMS host's Agent. This option is ideal for OMS installed on Windows hosts. By selecting this option for uploading files, you can avoid sharing a location between all participating OMS hosts.

Credentials must be set before using an OMS Shared File System or OMS Agent File System. For an OMS Shared File System, normal host credential must set before configuring a storage location. However, for OMS Agent File System location configuration, a credential (preferred or named) has to be specified.

- Refer Files: Select this option if you want to use an external file location where the software library files are staged. Referenced File Locations support three storage options:

- HTTP: An HTTP storage location represents a base URL which acts as the source of files that can be referenced. For example, the base URL http://my.files.com/scripts could be configured as an HTTP location for sourcing files such as http://my.files.com/scripts/perl/installMyDB.pl or http://my.files.com/scripts/linux/stopMyDB.sh.

- Agent: A storage location is similar to the OMS Agent File System option, but can be any host monitored by the Management Agent. The Agent can be configured to serve the files located on that host. For example, the directory /u01/binaries on the Enterprise Manager Host my.em.file.server could be configured as an Agent location for sourcing files such as /u01/binaries/rpms/myCustomDB.rpm or /u01/binaries/templates/myTemplate.tar.gz

- NFS: An NFS storage location represents an exported file system directory on a server. The server need not be an Enterprise Manager host target. For example, the directory /exported/scripts is exported on server my.file.server could be configured as an NFS location for sourcing files such as /exported/scripts/generic/installMyDB.pl or /exported/scripts/linux/stopMyDB.sh once mounted on a target host file system.

These locations require a named credential to be associated which will be used to access the files from the base location on the host through the Management Agent.

- Specify Source: You can add additional file storage locations.

- To add a HTTP location that can be accessed through a HTTP URL, select HTTP from the Storage Type list and click Add. In the Add HTTP Location dialog box, enter a unique name and a HTTP location for the storage that you want to reference, and click OK. A new entry for the storage location is created, with details like Name, Location, and Status.

- To add an Agent location that has read-only privileges set on it, select Agent from the Storage Type list and click Add.

6. Click Next. In the Review page, review the details of the virtual disk and click Save. Click Upload to upload the virtual disk component to the Software Library. The virtual disk component will now appear as an entity in the Software Library page.

9.8.4 Provisioning Guest Virtual Machines Using Oracle Virtual Assemblies (OVA)

An assembly is a packaging of a multi-tier application stack, which when deployed results in the creation of a set of related virtual machines representing every tier of the application stack. For example, a Siebel assembly can contain the Siebel mid-tier and a database. It can be deployed such that it creates 2 virtual machines for a 2-node Siebel mid-tier and 1 virtual machine running the database.

The deployment of the assembly is based on the policies/constraints defined in the assembly definition. The initial placement of virtual machines will be based on the storage, network and computational resources. Once an assembly is deployed, additional instances can be added (scale up) or removed (scale down) based on application demand.When an assembly is deployed, an assembly instance is created. An assembly instance is a collection of dependent virtual machines, which is created after an assembly is deployed. The composition of the assembly instance is dynamic in nature, as any subsequent scale-up or scale-down operations will change the membership. An assembly instance contains one or more tiers, each tier further comprising of virtual machines and or tiers.

Follow this process to deploy an assembly and create the virtual machines.

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a Zone, VM Server Pool, or VM Server target and select Deploy Assembly.

Figure 9-8 Assembly Deployment: Instance Details

3. On the Assembly Deployment: Instance Details page, specify the following:

- Target: Select the server pool on which the guest virtual machines are to be deployed.

- Source: You can select either of the following options:

- Deployment Plan: If you select the Use Deployment Plan check box, you can select a deployment plan (if available) with predefined configurations. The deployment plan will be used when the assembly is deployed. (image is selected automatically when the deployment plan is selected)

- Image: The assembly component to be used for this deployment. This can either be a component present in the Software Library, or at an external location. If it is stored in an external location, specify the NFS or HTTP location where the component is stored. For example, http://myvm_server/assembly or file://myvm_server/assembly.

- Details:

- Request Name: This is the name of the assembly deployment request.

- Assembly Instance Name: The name to be assigned to the assembly instance.

- Allow Partial Deployment: Select this option to enable partial deployment. By default, when a deployment plan fails, all virtual machines that have been created are automatically deleted. But if partial deployment is enabled, virtual machines are not deleted even if the deployment has failed.

- Assembly Content: You can disable an assembly tier or a node from being deployed. By default, all nodes and tiers in the selected component are automatically deployed. To disable a node or tier from being deployed, unselect the Deploy checkbox in the table.

Note:

- A tier or a node can be disabled for deployment if the minimum number of instances for the node or tier is set to 0 in the ovf metadata file.

- If you choose to use a deployment plan where a tier or a node has been enabled for deployment, that node or tier cannot be disabled.

4. Click Next. In the Deploy Assembly: Network and Agent page, specify the physical public and private networks to be used for the assembly instance. A public network is used for external traffic. In a private network, the guest virtual machines can communicate only within a predefined network set up by the Cloud Administrator.
Assembly network refers to the logical network defined in the OVF metadata file and the network defined here is the actual physical network to which it is to be mapped. If you do not choose to associate the network explicitly, the mappings are automatically assigned.

Figure 9-9 Assembly Deployment: Network and Agent

5. Click on the Browse icon in the Network field. Specify if the network should be allocated by the system or selected manually.

6. If you want to install the Management Agent on an assembly tier (collection of Guest VMs) or selected guest virtual machines, check the Enable EM Agent Push Configuration check box. You can then select the tiers and / or the guest virtual machines on which the Management Agent is to be installed using the Agent Push approach in the Assembly Node Selection for the EM Agent Push Selection table.

- Node Name: The name of the assembly tier on which the Management Agent is to be deployed.

- Installation Type: The type of installation which can be Push Agent Installation, No Agent Installation, and RPM Installation.

- Enable Agent Push: This checkbox is enabled only if the Enable EM Agent Push Configuration checkbox has been selected. Select this checkbox to select the tiers on which the Management Agent is to be installed by way of the Agent Push approach.
In a selected tier, you can also choose the guest virtual machines on which the Management Agent is to be installed.

Note:

- If you select Push Agent Installation, you can specify the guest virtual machines that need to be enabled or disabled in the Miscellaneous tab.

- For tiers that have the Management Agent as a product (as part of the binary package), the Enable Agent Push checkbox is disabled and only RPM Installation is available. In this case, you can specify the Management Agent details in the Product Configuration tab of the selected tier.

7. After you have specified the options to configure the Management Agent, enter the following details:

- Installation Base Directory: This is the parent directory on the remote host where the Oracle home of the Management Agent is created.

- Platform: The operating system on which the Management Agent is to be installed.

- User: The name of the Oracle Install user is displayed here.

- Port: The port used by the Management Agent for communication.

- Password: This field is mandatory for PS5 assemblies if the Enable Agent Push Configuration checkbox has been selected.

- Privilege Delegation Settings: Run as root.

- SSH Service Timeout: The timeout settings for SSH.

- Additional Parameters: Specify additional parameters to be used during the installation of the Management Agent. This field is pre-populated with the entry -ignoreDirPrereq -enablePty to ignore the prerequisite checks during installation.

8. Click Next to go to the Deploy Assembly: Deployment Configuration page.

Figure 9-10 Assembly Deployment: Deployment Configuration

The following details are displayed:

- Component: The assembly component that is being deployed.

- Guest VMs: The default number of guest virtual machines as specified in the deployment profile appears. Specify the minimum and maximum number of guest virtual machines that are to be created.

- Auto Scalable: Select this check box to indicate that the tier instances can be auto scaled based on their policies.

- VM Size: The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started. The size of the guest virtual machine (memory and CPU values).

- Deployment Option: The deployment for this assembly instance.

- Guest VM Name Prefix: This string will be used as a prefix in the guest virtual machine name. When a guest virtual machine is created using the Enterprise Manager, guest virtual machine names will be prefixed by the virtual machine name prefix you provide here and a number.

9. Select the assembly component to view and customize the default configuration properties.

Figure 9-11 Assembly Deployment: Deployment Configuration: Product Configuration

- Product Configuration: This tab shows the properties of the products in the assembly. You can choose to view All Properties or Required Properties. For each property, the default value and the current value is displayed. Select a property to modify the value if applicable.

- Miscellaneous: You can create one or more anti-affinity groups. An anti-affinity group is a group of virtual machines cannot run on the same server. Click Add and enter the Group Name and select the guest virtual machines that are to be part of the anti-affinity group.

10. Click a row in the table to select the tier you want to configure. There are 3 tabs that can be configured for each tier in the assembly: Guest VM Configuration, Product Configuration, and Miscellaneous.

11. Let us look at the first tab: Guest VM Configuration. This tab allows you to modify the resource configuration parameters for all guest virtual machine instances of the selected assembly tier.

Figure 9-12 Tier: Deployment Configuration: GuestVM Configuration

The following parameters can be configured:

- Guest VM Configuration:

- Enable High Availability: If you want to enable high availability for this guest virtual machine, select this check box. If this option is enabled, the virtual server is shut down or restarted, the guest virtual machine is migrated to or restarted on another virtual server.

Note:
High availability must be enabled both on the virtual server pool and on the guest virtual machine. If it is not enabled on both, high availability is disabled.

- CPU Scheduling Priority: Specify the priority of a guest virtual machine to access the physical CPUs, while competing with other guest virtual machines on the same virtual server. The higher the priority, the higher the stake of the guest virtual machine in claiming CPU cycles.

- CPU Scheduling Cap (%): Restricts the amount of physical CPU that a guest virtual machine can use. Use this to constrain guest virtual machine resource allocation.

- Root Password: Specify the operating system root password to log in to the guest virtual machine once it is up and running.

- Keymap: The keyboard mapping that will be used by the guest virtual machine being cloned.

- Tags: Specify one or more tags for the virtual machine. These tags are used to logical group the virtual machines and can be used to search for one or more virtual machines that meet a certain criteria.

- Memory (in MB): The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started.

- CPUs: The number of CPU cores to assign to this guest virtual machine. This will show up as virtual CPU (VCPU) configuration parameter for the guest virtual machine.

- Disk: Specify the storage type. You can use the Default type as specified by the server pool or select Override. If you select Override, you must specify the Storage QoS and click the Search icon in the Storage field to specify the Storage Type. In the Storage Type window, specify the following:
Clone Target Type: This can be Repository or Storage Array.

Clone Target: If you select Repository, select the storage location where the disk is to be created. If you select Storage Array, specify the type, which can be SAN or ISCSI storage server.

Clone Type: This can be Sparse or Non-Sparse Copy. A sparse copy is a disk image file of a physical disk, taking up only the amount of space actually in use; not the full specified disk size. A non-sparse copy is a disk image file of a physical disk, taking up the space equivalent to the full specified disk size, including empty blocks.

- Disk: Every guest virtual machine is created with at least one disk. You can specify additional disks and their sizes. These disks will be added to the guest virtual machine. After the guest virtual machine is created, log in to the guest virtual machine and reformat and mount the additional disks. Click Add to add a storage device (disk).
Specify the name of the hard disk, its size, and QoS Priority Class. You can enable the disk I/O priority by setting an appropriate QoS Priority Class. The priority class ranges from 0 to 7. The priority class 0 has the highest priority, and 7 the lowest.Select the Shared Disk check box to share this disk between multiple guest virtual machines. You can enable the disk I/O priority by setting an appropriate QoS Priority Class. The priority class ranges from 0 to 7. The priority class 0 has the highest priority, and 7 the lowest.

- NIC: Specify the network interfaces for this guest virtual machine. The minimum value is 1 and maximum is 8. Click Add to add a network interface and specify the following details:
Name: Enter a name for the network resource.

Network: Assembly Network / Backend network.

Network Type: Specify if the network type is Internet Routable, Non Internet Routable, or a predefined set of IP addresses.

IP Assignment: Select the protocol to be used to assign the IP address. This can be DHCP, Network Profile, or None.

The configuration parameters you specify here will be applied to all the guest virtual machine instances of the selected node. If you want to specify a different configuration for a guest virtual machine instance, click the Guest VM Instances option. In the Deployment Configuration: GuestVM Instance page, you can select a guest virtual machine instance from the View list and specify configuration parameters for that instance.

12. The next tab is Product Configuration. This tab shows the properties of the products in the tier. You can choose to view All Properties or Required Properties. For each property, the default value and the current value is displayed. Select a property to modify the value if applicable.

Figure 9-13 Tier Deployment Configuration: Product Configuration

13. The next tab is the Miscellaneous tab.

Figure 9-14 Tier Deployment Configuration: Miscellaneous

- Miscellaneous: Specify the following details:

- Log File Location: Specify the directory in which the log files are to be stored.

- Timeout Settings: Specify the timeout settings for the Product Configuration and Network Configuration. The default value is 60 minutes and this value can be modified for each Oracle VM Manager target. The timeout value specifies how long Enterprise Manager should wait for either Product Configuration or Network Configuration to be completed before proceeding with the assembly deployment.

2. If a tier has more than one Guest VM Instance, you can configure each Guest VM Instance separately. Select the tier for each Guest VM Instance has to be separately configured. Click the Guest VM Instances link on the top right corner of the lower region. The Deployment Configuration: Configure Guest VM Instance page appears. Click Edit VM Name to modify the name of the Guest VM Instance, specify a new name and click OK. You can modify the configuration of the Guest VM and click Continue to return to the Assembly Deployment: Deployment Configuration page.

3. Click Next. In the Assembly Deployment: Schedule page, specify the Start and End Date for the assembly deployment. The Start Date is the date on which the request is being submitted and the End Date is the date on which the assembly deployment instances are retired. Click Next.

4. Click Next. The Assembly Deployment: Review page appears.

Figure 9-15 Assembly Deployment: Review

5. Click Next. Review the details entered so far. You can save as a plan that can be used later. Click Save as Plan, specify a name, and description for the plan. Select the folder in which the deployment plan is to be saved and click OK. Note that the deployment plan is stored as a software library component but can be created only through this procedure or by a Cloud API that generates a default deployment plan for an assembly.

6. Click Submit to submit the job. From the Enterprise menu, select Job, then select Activity to view the Job Activity page. This page shows the details of the submitted job. You can click on the Name link to view more details.
To view details of the deployment request, from the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Request Dashboard. See Section 9.9, "Viewing the Infrastructure Request Dashboard" for details.

Note:
To ensure that Enterprise Manager has been configured correctly to push a 12c Management Agent automatically on the guest virtual machines when the assembly deployed, you must change the agentpush entry in the <OMS_ORACLE_HOME>/sysman/prov/agentpush/agentpush.properties file as follows:
From: oracle.sysman.prov.agentpush.pdpShellOutEnabled=true

To: oracle.sysman.prov.agentpush.pdpShellOutEnabled=false

After this change has been made, you must restart the Oracle Management Service.

9.8.5 Provisioning a Guest Virtual Machine Using Oracle VM Templates

You can create one or more virtual machines by deploying a template. The deployment of the template is based on the constraints defined while the template was created. Typically, a template can contain an operating system, basic configuration (number of CPUs, memory, disk size), and preinstalled applications. The initial placement of virtual machines will be based on the storage, network and computational resources. Once a template is deployed, additional instances can be added (scale up) or removed (scale down) based on application demand.

Note:
Enterprise Manager supports deployment of legacy Oracle VM 2.2 style Templates. This templates are available in the .tgz file format. Guest virtual machines are created when these templates are deployed, but the you need to manually login to the VNC console of the newly created virtual machines to complete the network and product configuration. Also, unlike for Oracle Virtual Assemblies (.ova file format), Enterprise Manager does not automatically push the Management Agent for Oracle VM 2.2 Templates (.tgz file format).

Prerequisites

- Enterprise Manager Cloud Control is set up to manage the cloud environment.

- The template is available to the zone and you have sufficient privileges to deploy it.There are sufficient resources available in the zone for successful deployment.

Follow this process to deploy a template:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a virtual server pool target and select Deploy Template.

3. Figure 9-16 Template Deployment - Select Target and Source

4. On the Select Target and Source page, select the following:

- Select the target machine on which the guest virtual machine is to be created.

- In the Source section, you can select either of the following options:

- Deployment Plan: If you select the Use Deployment Plan check box, you can select a deployment plan (if available) with predefined configurations. Selecting a plan at this stage allows you to prepopulate the interview with previously saved values of deployment and configuration parameters.

- Template: The template component to be used for this deployment. This can either be a component present in the Software Library, or at an external location. If it is stored in an external location, specify the NFS or HTTP location where the component is stored. For example, http://myvm_server/template or file://myvm_server/template.

5. Click Next. The Template Deployment: Instance Details page appears.

Figure 9-17 Template Deployment - Instance Details

This page contains the following sections:

- Guest VM

- Guest VM: Number of guest virtual machines to be deployed. Click Configure Each Guest VM Instance if you want to configure each guest virtual machine instance individually.

- Guest VM Naming: You can choose either of the following options:
Generate Guest VM Names Using Prefix: This string will be used as a prefix in the guest virtual machine name. When a guest virtual machine is created using the Enterprise Manager, guest virtual machine names will be prefixed by the virtual machine name prefix you provide here and a number.

Upload Guest VM Names from File: If you select this option, you can Browse and upload a file with user defined guest virtual machine names. The guest virtual machine name cannot contain any special characters.

- General Configuration

- Enable High Availability: If you want to enable high availability for this guest virtual machine, select this check box. If this option is enabled, the virtual server is shut down or restarted, the guest virtual machine is migrated to or restarted on another virtual server.

Note:
High availability must be enabled both on the virtual server pool and on the guest virtual machine. If it is not enabled on both, high availability is disabled.

- Start VM After Creation: Specify whether the guest virtual machine should be started automatically after it is created.

- CPU Scheduling Priority: Specify the priority of a guest virtual machine to access the physical CPUs, while competing with other guest virtual machines on the same virtual server. Higher the priority, higher is the stake of the guest virtual machine in claiming CPU cycles.

- CPU Scheduling Cap (%): Restricts the amount of physical CPU that a guest virtual machine can use. Use this to constrain guest virtual machine resource allocation.

- Keymap: The keyboard mapping that will be used by the guest virtual machine being cloned.

- Tags: Specify one or more tags for the virtual machine. These tags are used to logical group the virtual machines and can be used to search for one or more virtual machines that meet a certain criteria.

- Memory (in MB): The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started.

- CPU Cores: The number of CPU cores to assign to this guest virtual machine. This will show up as virtual CPU (VCPU) configuration parameter for the guest virtual machine.

- VM Size: The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started. The size of the guest virtual machine (memory and CPU values). Select the VM Size which can be Custom or Medium. If you select Custom, specify the Memory size and the number of CPUs.

- NIC: Specify the network interfaces for this guest virtual machine. The minimum value is 1 and maximum is 8. Click Add to add a network interface and specify the following details:

- Name: Enter a name for the network resource.

- Network Type: Specify if the network type is Internet Routable, Non Internet Routable, or a predefined set of IP addresses.

- IP Assignment: Select the protocol to be used to assign the IP address.

- Disk:
The list of available disks appears in the Disk section. Click Add to add an additional storage. In the Add Storage Device window, enter the name of the disk and its size. Indicate if it is a shared disk and specify the priority of a guest virtual machine to access the physical CPUs, while competing with other guest virtual machines on the same virtual server. Higher the priority, higher is the stake of the guest virtual machine in claiming CPU cycles.

6. Click Next and Review the details entered so far.

7. Review the details entered so far. You can save as a plan that can be used later. Click Save as Plan, specify a name, and description for the plan. Select the folder in which the deployment plan is to be saved and click OK. If you do not wish to save the deployment procedure, click Submit to submit the job. From the Enterprise menu, select Job, then select Activity to view the Job Activity page. This page shows the details of the submitted job. You can click on the Name link to view more details.
To view details of the deployment request, from the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Request Dashboard. See Section 9.9, "Viewing the Infrastructure Request Dashboard" for details.

9.8.6 Provisioning a Guest Virtual Machine Using an ISO Image

ISO images are imported into Enterprise Manager from installation media. You can create one or more virtual machines by deploying an ISO image.

Prerequisites

- Enterprise Manager Cloud Control is set up to manage the cloud environment.

- The ISO image is available to the zone and you have sufficient privileges to deploy the image.There are sufficient resources available in the zone for successful deployment.

- The Domain Type of the guest virtual machine being deployed must be set to HVM (hardware virtualized).

Follow this process to deploy an ISO image:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Right click on a virtual server pool target and select Deploy ISO.

Figure 9-18 ISO Deployment: Select Target and Source

3. On the Select Target and Source page, the server pool target on which the ISO image is to be deployed appears. In the Destination section, you can select either of the following:

- Deployment Plan: If you select the Use Deployment Plan check box, you can select a deployment plan (if available) with predefined configurations. Selecting a plan at this stage allows you to pre-populate the interview with previously saved values of deployment and configuration parameters.

- ISO: The ISO image to be used for this deployment. This can either be a component present in the Software Library, or at an external location. If it is stored in an external location, specify the NFS or HTTP location where the component is stored. For example, http://myvm_server/image or file://myvm_server/image.

4. Enter the name of the request and click Next to continue. The ISO Deployment: Deployment Configuration page appears.

5. This page contains the following sections:

- Guest VM

- Guest VM: Number of guest virtual machines to be deployed. Click Configure Each Guest VM Instance if you want to configure each guest virtual machine instance individually.

- Guest VM Naming: You can choose either of the following options:
Generate Guest VM Names Using Prefix: This string will be used as a prefix in the guest virtual machine name. When a guest virtual machine is created using the Enterprise Manager, guest virtual machine names will be prefixed by the virtual machine name prefix you provide here and a number.

Upload Guest VM Names from File: If you select this option, you can Browse and upload a file with user defined guest virtual machine names. The guest virtual machine name cannot contain any special characters.

- General Configuration

- Enable High Availability: If you want to enable high availability for this guest virtual machine, select this check box. If this option is enabled, the virtual server is shut down or restarted, the guest virtual machine is migrated to or restarted on another virtual server.

Note:
High availability must be enabled both on the virtual server pool and on the guest virtual machine. If it is not enabled on both, high availability is disabled.

- Start VM After Creation: Specify whether the guest virtual machine should be started automatically after it is created.

- CPU Scheduling Priority: Specify the priority of a guest virtual machine to access the physical CPUs, while competing with other guest virtual machines on the same virtual server. Higher the priority, higher is the stake of the guest virtual machine in claiming CPU cycles.

- CPU Scheduling Cap (%): Restricts the amount of physical CPU that a guest virtual machine can use. Use this to constrain guest virtual machine resource allocation.

- VM Size: The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started. The size of the guest virtual machine (memory and CPU values). Select the VM Size which can be Custom or Medium. If you select Custom, specify the Memory size and the number of CPUs.

- NIC: Specify the network interfaces for this guest virtual machine. The minimum value is 1 and maximum is 8. Click Add to add a network interface and specify the following details:

- Name: Enter a name for the network resource.

- Network Type: Specify if the network type is Internet Routable, Non Internet Routable, or a predefined set of IP addresses.

- IP Assignment: Select the protocol to be used to assign the IP address.

- Disk:
The list of available disks appears in the Disk section. Click Add to add an additional storage. In the Add Storage Device window, enter the name of the disk and its size. Indicate if it is a shared disk and specify the priority of a guest virtual machine to access the physical CPUs, while competing with other guest virtual machines on the same virtual server. Higher the priority, higher is the stake of the guest virtual machine in claiming CPU cycles.

6. Click Next. In the Schedule page, specify when the ISO image is to be deployed and click Next.

7. Review the details entered so far. You can save as a plan that can be used later. Click Save as Plan, specify a name, and description for the plan. Select the folder in which the deployment plan is to be saved and click OK. If you do not wish to save the deployment procedure, click Submit to submit the plan and complete the process.

9.8.7 Creating PXE Bootable Guest Virtual Machines

One of the key requirements of provisioning is the hardware server's ability to boot over the network instead of a diskette or CD-ROM. There are several ways computers can boot over a network, and Preboot Execution Environment (PXE) is one of them. PXE is an open industry standard supported by a number of hardware and software vendors. A detailed document on PXE specification can be found at http://www.pix.net/software/pxeboot/archive/pxespec.pdf.

You can create a network bootable (PXE boot) virtual machine that has the minimum configuration information, then start the virtual machine through Preboot Execution Environment (PXE) over a network later to install the guest operating system.

Prerequisites

- Enterprise Manager Cloud Control is set up to manage the cloud environment.

- There are sufficient resources available in the zone for successful deployment.

Follow this process to deploy an ISO image:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Home.

2. Select a Virtual Server Pool target. Select Deploy PXE from the Virtual Server Pool menu.

3. On the Select Target and Source page, select the following:

- Select the target machine on which the guest virtual machines are to be deployed.

- Select the deployment plan to be used while creating PXE bootable guest virtual machines. The Deployment Plan contains pre-configured values and configuration parameters. This is an optional field.

4. Click Next. In the General Configuration page, enter the following details:

- Name of the guest virtual machine to be deployed. If you are deploying more than one guest virtual machine, you can use a prefix or upload a file with user defined guest virtual machine names.

- Number of guest virtual machines to be deployed. Click Configure Each Guest VM Instance if you want to configure each guest virtual machine instance individually.

- Select the VM Size which can be Custom or Medium. If you select Custom, specify the Memory size and the number of CPUs.

- Specify the priority of a guest virtual machine to access the physical CPUs, while competing with other guest virtual machines on the same virtual server. Higher the priority, higher is the stake of the guest virtual machine in claiming CPU cycles.

- Specify the cap to restrict the amount of physical CPU that a guest virtual machine can use.

- CPU Cores: The number of CPU cores to assign to this guest virtual machine. This will show up as virtual CPU (VCPU) configuration parameter for the guest virtual machine.

- Keymap: The keyboard mapping to be used for the guest virtual machine.

- Memory (in MB): The amount of memory to be allocated to the guest virtual machine. The virtual server should have sufficient memory to run the guest virtual machine. Otherwise, the guest virtual machine will be created, but will not be started.

- CPU Cores: The number of CPU cores to assign to this guest virtual machine. This will show up as virtual CPU (VCPU) configuration parameter for the guest virtual machine.

- In the NIC Configuration section, you can specify the number of virtual network interfaces for this guest virtual machine. The minimum value is 1 and the maximum value is 8. You can add one or more network interfaces or edit existing ones.

- Enterprise Manager Cloud Control provides a VNC console to the newly created guest virtual machine. This is the VNC password to access the VNC console.

- Select a Domain Type for the virtual machine:

- xen_hvm (hardware virtualization, or fully virtualized): Enables you to select an ISO file from which to create the virtual machine.

- xen_pvm (para-virtualized): Enables you to select a location for the mounted ISO file from which to create the virtual machine. Before you create the virtual machine using the paravirtualized method, mount the ISO file on an NFS share, or HTTP or FTP server. The ISO file must be available in the relevant repository.

- xen_hvm_pv_drivers: Identical to xen_hvm but with additional paravirtualized drivers for improved performance of the virtual machine. This Domain Type is used to run Windows guest operating systems with an acceptable performance level.

- Select the Enable High Availability option if you want the guest virtual machine to run automatically on a different virtual server if the earlier virtual server shuts down.

- Select the Start VM After Creation check box to indicate whether the machine should automatically be started after it is created.

- The list of available disks appears in the Disk section. Click Add to add an additional storage.

5. Click Next. In the Schedule page, specify when the PXE bootable guest virtual machines are to be created and click Next.

6. Review the details entered so far and click Submit to create the PXE bootable guest virtual machines.

9.9 Viewing the Infrastructure Request Dashboard

The SSA Administrator can use the Request Dashboard to track the status of requests and reservations. The SSA administrator can view the requests across all zones for all users. The requests the SSA user can view depends on his zone and his instance level privileges.

Prerequisites

- Enterprise Manager Cloud Control is set up to manage the cloud environment.

- Appropriate self service users have been defined in the LDAP directory.

- Requests and reservations for resources have been submitted.

To view the Infrastructure Request Dashboard, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Request Dashboard. The Infrastructure Cloud Requests Dashboard appears.

Figure 9-19 Infrastructure Requests Dashboard

2. The following charts are displayed:

- Latest 10 Failed and Pending Requests

- Oldest 10 Running Requests

- Request Summary - Failed, Successful, and Partially Successful Requests

- Average Request Wait Time (Zone)

- Average Request Wait Time (Assemblies and Templates)

- Average Request Processing Time (Zone)

- Average Request Processing Time (Assemblies and Templates)

3. Click on the View All Requests link to go to the All Cloud Requests page.

4. In this page, you can search for one of the following:

- Request Name: The name of the request.

- Request Type: The type of request that you want to view. This can be Assembly Deployment, Template Deployment, ISO Deployment, PXE Deployment, Clone Guest VM, Update Guest VM.

- Requesting Application: The application making the request. You can view only Self Service requests from this dashboard.

- Status: The status of the request such as Successful, Canceled, Scheduled, Error Ending, and so on.

5. For each request type you select, you can view the Request Name, Request Type, Created By, Status, Begin Date, End Date, Memory, CPU, VMs, and so on. You can also select a request and click Delete to remove the request.

6. Click on a Request Name link to drill down to the Request Details page.

9.9.1 Viewing Request Details

The Request Details page shows the details of the selected request. The name of the request, type, the OVM Manager associated with the request, status, date on which it was created, and so on are displayed.

- General: This section displays the name of the request, request type, target name, and other details.

- Deployment: This section shows the name of the requests and the targets that have been deployed. Click on request link to drill down to the Job Details page. Click on a target link to drill down to the Home page of the target.

9.9.2 Viewing the Assembly / Tier Instance Page

To view the Home page for the assembly or tier instance, follow these steps:

1. From the Enterprise menu, select Cloud, then select Oracle VM Infrastructure Request Dashboard.

2. The Infrastructure Request Dashboard page appears. Click the All Requests link in the Requests table.

3. In the All Requests page, click on an assembly deployment request name in the table. The Assembly Deployment page appears. Click on the Deployment tab. The assembly instance that has been deployed is displayed.

4. Click on the Assembly Instance link. The following page appears.

Figure 9-20 Assembly Instance

- General: This section shows the name of the assembly, the target on which it was deployed, the total number of Guest VMs, the date on which it was created, and the owner of this assembly instance.

- Status: The status of the most affected members over the last 24 hours is displayed. Click on a Name link to drill down to the target Home page.

- Issues Overview: Shows the various incidents and policy violations that have occurred in the last 24 hours.

- Affinity Relations: The rules that have been defined for the assembly or tier are displayed here. For example, you can define rules to specify whether two guest VMs can exist together on the same server or server pool, rules to ensure that two guest VMs must exist on the same server, and so on.

- Members: The members in this instance, their status, and the installed software is displayed.

- Requests: The name of the request specified during deployment. Click on the link to navigate to the Deployment page.

Part IV

Direct Monitoring

This section describes how to discover and monitor a Xen based hypervisor and the associated virtual targets.

It contains the following chapters:

- Chapter 10, "Direct Monitoring of Xen Based Systems"

10 Direct Monitoring of Xen Based Systems

This chapter describes the procedures to discover and monitor Xen based systems. It contains the following sections:

- Direct Monitoring Overview

- Discovering the Hypervisor Target

- Viewing the Oracle Server Home Page

- Viewing the Oracle Virtual Platform Home Page

- Viewing the Oracle VM Instance Home Page

10.1 Direct Monitoring Overview

You can directly monitor a Xen based Hypervisor, the bare metal machine, its operating system, and the virtual machines without relying on their monitoring software. Monitoring these targets involves the following:

- Direct Monitoring of the Oracle Virtual Server (Guest OS or DomU running on the Hypervisor) target based on Xen 4.1.2 or later.

- Direct monitoring of Oracle Server (Physical Server)

- Direct monitoring of the Oracle Virtual Server (Xen based Hypervisor).

- Direct Monitoring of the Oracle Virtual Platform or the host operating system of the hypervisor machine.

Note:
To enable direct monitoring of Xen based Hypervisors, the Oracle Virtual Infrastructure 12.1.0.2 plugin must be deployed on the Management Server. This plugin is automatically deployed on the Management Agent when the Hypervisor is registered.

The following figure shows the high level architecture.

Figure 10-1 Direct Monitoring Architecture

10.2 Discovering the Hypervisor Target

Prerequisites:

- To discover a Hypervisor target, the administrator must have the following privileges:

- Add Any Target

- Create Job

- Operator privilege on the Management Agent that is monitoring the Hypervisor target.

To discover the Hypervisor by following these steps:

1. Log in to Enterprise Manager as a user with the above privileges.

2. From the Setup menu, select Add Targets, then select Add Targets Manually.

3. In the Add Targets Manually page, select Add Targets Using Guided Process (Also Related Targets) and select Oracle Virtual Platform from the Target Types drop down list.

4. Click Add Using Guided Process. The Discover Oracle Virtual Platforms page appears.

Figure 10-2 Discover Virtual Platform

5. In the Default Monitoring Agent and Credentials region, enter the following details:

Note:
The credentials specified in this region will be applied to all Oracle Virtual Platform targets discovered through this process by default. You can choose to override these credentials for a specific Oracle Virtual Platform target.

- Monitoring Agent: Click the Search icon and select the default monitoring agent to monitor the targets.

- Failover Monitoring Agent: Click the Search icon and select the failover monitoring agent to monitor the targets.

Note:
To ensure that Hypervisors and the associated targets can be monitored smoothly in a large scale environment, you must use the following recommendation for the Java Heap Size.

- If the Total Number of Targets (includes Oracle Virtual Platform, Oracle Server, and Oracle Virtual Server targets) is less than or equal to 300, the Java Heap Size for the Management Agent must be set to 128 MB.

- If you add another 300 targets, you must increase the Java Heap Size by an additional 128 MB.

- Privileged User: This field is used to provide the user with access to certain privileged commands. The access is available either by a root user or through the Privilege Delegation options provided here.

- Yes: If you select Yes, you must be a user who can execute the following xl / xm commands that require root access privileges:
/usr/sbin/xl list*,/usr/sbin/xl info*,/usr/sbin/xl network-list*,

/usr/sbin/xl uptime*,/usr/sbin/xl vcpu-list*,/usr/sbin/dmidecode,

/usr/sbin/xentop,/usr/bin/xenstore-read,/usr/bin/xenstore-list,

/usr/bin/xenstore-ls,/sbin/ethtool

These commands allow you to collect virtualization metrics when they are executed.If the xl command is not present on the system, the following commands will be used:

/usr/sbin/xm list*,/usr/sbin/xm info*,/usr/sbin/xm network-list*,

/usr/sbin/xm uptime*,/usr/sbin/xm vcpu-list*,/usr/sbin/dmidecode,

/usr/sbin/xentop,/usr/bin/xenstore-read,/usr/bin/xenstore-list,

/usr/bin/xenstore-ls,/sbin/ethtoo

- No: If you select No, you cannot execute the xl/xm commands, and virtualization and configuration metrics for the Oracle Virtual Platform target are not collected.

- Credential Type: Specify the credentials for the target being discovered. You can select Host Credentials or SSH Key Credentials. Depending on your choice, you must enter the credential properties as described in Section 10.2.2, "Setting the Credential Properties".

6. Click Add in the Host Name and IP Address region. In the Add Host/IP Address window, enter one or more host names, IP addresses or IP address ranges and click Add. Multiple host names, IP addresses or the ranges must be separated by a new line. The host names that you have added will appear in the Discover Oracle Virtual Platforms page.

7. You can choose to use the default agent and credentials or click Override to override them. You can also override the Failover Monitoring Agent credentials. In the Override Monitoring Agent and Credentials window, enter the monitoring agent and credential properties and click Override. This will override the monitoring credentials The new agent and credentials you specify will be applied.

8. Optionally, you can also specify the Global Target Properties. The Enterprise Manager Target Properties allows you to store descriptive target information, such as Contact or Location, which can then be used in dynamic/administration group definition, reports, incident rules and notifications. The Global Target Credentials region allows you to specify the values for the target properties that are applied to all the targets discovered using this process.

9. Click Submit. The registration information is validated and a job is submitted. On completion of the job, the following targets are discovered from a host that is running a Xen based hypervisor.

- Oracle Server: The bare metal box running the hypervisor.

- Oracle Virtual Platform: The host operating system that represents the hypervisor process.

- Oracle Virtual Server: The virtual machines managed by the hypervisor domain.

Note:
To facilitate monitoring of these targets in a group, you can specify global target properties to create dynamic groups while registering the targets or by editing the already registered targets.
For instance, you can include all production virtual platforms into a dynamic group with production lifecycle status.

10.2.1 Deleting the Targets

To delete the targets that have been discovered, you must first delete the Oracle Virtual Platform target. When this target is deleted, all associated Oracle Virtual Server and Oracle Server targets are deleted.

To delete the target, follow these steps:

1. From the Targets menu, select All Targets to navigate to the All Targets page.

2. In the left panel of the All Targets page, select Oracle Virtual Platform under Servers, Storage, and Network target type. The list of Oracle Virtual Platform targets available is displayed.

3. Click on one of the targets to navigate to the Oracle Virtual Platform Home page. From the Oracle Virtual Platform menu, select Target Setup, then select Remove Target. A confirmation message is displayed. Click Yes to delete the Oracle Virtual Platform target and the associated targets.

10.2.2 Setting the Credential Properties

You can specify the credentials for the Virtual Platform target being discovered. You can select the credential type as Host Credentials or SSH Key Credentials. Each of these credentials can be clubbed with the Sudo or PowerBroker privilege delegation option.

Figure 10-3 Discover Oracle Virtual Platform: Setting the Credentials

Host Credentials

If you have selected Host Credentials, you must specify the credential properties shown below:

- User Name: The user name required to access the target.

- Password: The password required to access the target.

- Run Privilege: This can be:

- None: Run privileges are not required. This option is used when the user is root and the Privileged User option is set to Yes.

- Sudo: If you select Sudo, you must specify the following:

- Sudo Command: Sudo allows a permitted user to execute a command as the super user or another user as specified in the sudoers file. Enter the command in the format /usr/bin/sudo -S -u %RUN_AS% %COMMAND% where /usr/bin/sudo is the path to the sudo executable, RUN_AS is the name of the user who is executing the command and COMMAND represents that Sudo command being executed.

- Run As: Specify root to run this command as a root user.

- Enable Pseudo Terminal: Select the checkbox if the sudo command requires the user to log in to a real terminal (tty). If this flag is set, the sudo user must log into the machine via a separate terminal.

- PowerBroker: If you select PowerBroker, you must specify the following:

- PowerBroker Command: Enter the command in the format /usr/bin/pbrun -l -u %RUN_AS% %COMMAND% where /usr/bin/pbrun is the path to the PowerBroker executable, RUN_AS is the name of the user running the command, and COMMAND represents the PowerBroker command being executed.

- Password Prompt: The prompt that is to be displayed when the password is specified.

- Run As: Specify root to run this command as a root user.

- Profile: Specify the user profile to be used to run this command.

SSH Key Credentials

If you select SSH Key Credentials, you must specify the user name, private and public key, passphrase (for further encryption), and the run privilege.

If you select Sudo or PowerBroker in the Run Privilege field, enter the additional details as listed in the Host Credentials section.

10.3 Viewing the Oracle Server Home Page

To view the Oracle Server Home page, follow these steps:

1. From the Targets menu, select All Targets to navigate to the All Targets page.

2. In the left panel of the All Targets page, select Oracle Server under Servers, Storage, and Network target type. The list of Oracle Server targets available is displayed.

3. Click on one of the targets to navigate to the Oracle Server Home page.

Figure 10-4 Oracle Server Home Page

This page contains the following regions:

- General: This region provides general details such as the Oracle Virtual Platform target, name of the target, CPU sockets, CPU cores, total memory, and local disk space.

- Availability: The chart in this region shows the status of the target over the last 24 hours.

- Overview of Incidents and Problems: This region shows any incidents or problems associated with the Oracle Server target.

10.4 Viewing the Oracle Virtual Platform Home Page

To view the Oracle Virtual Platform Home page, follow these steps:

1. From the Targets menu, select All Targets to navigate to the All Targets page.

2. In the left panel of the All Targets page, select Oracle Virtual Platform under Servers, Storage, and Network target type. The list of Oracle Virtual Platform targets available is displayed.

3. Click on one of the targets to navigate to the Oracle Virtual Platform Home page.

Figure 10-5 Oracle Virtual Platform Home Page

This page contains the following regions:

- General: This region shows general details such as the Oracle Server target, platform version, name of the target, VCPUs allocated to Dom0 and total VCPUs allocated to the Oracle Virtual Server targets. It also indicates if this is a Privileged User. Virtualization metrics are collected only for privileged users.

- Members: This region listed the virtual servers that belong to this virtual platform, their status, and the memory allocated to each virtual server.
Host names corresponding to the Oracle Virtual Server target are also displayed if the Management Agent is present on the virtual server.By default, this column is not visible. You can select this column using the View drop down menu.

- Network Activity: This region shows the total throughput (MB per second) over the last 24 hours.

- Overview of Incidents and Problems: This region shows any incidents or problems associated with the Oracle Server target.

- Charts: The CPU utilization, Memory Utilization, Network, and Disk Activity charts show the activity over the last 24 hours. It shows the CPU and memory usage trending

- Availability: The chart in this region shows the status of the target over the last 24 hours.

10.5 Viewing the Oracle VM Instance Home Page

To view the Oracle VM Instance Home page, follow these steps:

1. From the Targets menu, select All Targets to navigate to the All Targets page.

2. In the left panel of the All Targets page, select Oracle VM Instance under Servers, Storage, and Network target type. The list of Oracle VM Instance targets available is displayed.

3. Click on one of the targets to navigate to the Oracle VM Instance Home page.

Figure 10-6 Oracle VM Instance Home Page

This page contains the following regions:

- General: This region provides general details such as the Oracle Server and Oracle Virtual Platform targets, name of the target, and allocated memory.

- Availability: The chart in this region shows the status of the target over the last 24 hours.

- Overview of Incidents and Problems: This region shows any incidents or problems associated with the Oracle Server target.

- Charts: The CPU utilization, Memory Utilization, Network, and Disk Activity charts show the activity over the last 24 hours.

Part V

Setting Up and Using Platform as a Service

This section describes the steps required to enable Platform as a Service, which encompasses the Database as a Service (DBaaS) and Middleware as a Service (MWaaS) Cloud models.

It contains the following chapters:

- Chapter 11, "Setting Up the PaaS Infrastructure"

- Chapter 12, "Enabling the DBaaS Cloud"

- Chapter 13, "Setting Up an MWaaS Cloud"

11 Setting Up the PaaS Infrastructure

The PaaS model allows users to create platforms onto which consumers can deploy their own applications. A platform resource is typically comprised of a host, operating system, and application server, and may be virtualized. The platform may also include a database and even multiple hosts in a cluster.

This chapter covers the common operations that need to be performed to enable Platform as a Service (PaaS), which encompasses different service families such as Database as a Service (DBaaS) using Oracle Single Instance, and RAC or Middleware as a Service (MWaaS) using WebLogic Server, SOA Infrastructure, and Oracle Service Bus. It contains the following sections:

- About Service Families

- Common Setup Tasks

11.1 About Service Families

A service family can be classified as a group of services that provide a solution for a specific domain. For example, a Database Service provides RDBMS solutions and a WebLogic service provides the Java solutions for J2EE based application development and hosting.

Each service family can contain one or more service types. A service type provides a specialized service within a service family. For example, a database service can contain service types such as database service, schema service, or pluggable database service. A middleware service type can contain WebLogic service, OSB service, or SOA service. Each service type has certain fixed attributes, actions, configurations, metrics, and other properties.

A service instance is a cloud resource that is requested and managed by the self service user. For example, single instance database service instance, WebLogic service instance, and so on.

11.2 Common Setup Tasks

This section helps you get started by providing an overview of the common steps that must be performed before you set up a service family.

Table 11-1 Setting Up the Service Family

Step

Task

Role

1

Configure the Software Library. See Setting Up the Software Library section for details.

Cloud Administrator

2

Deploy the necessary plug-ins. See Section 3.2, "Deploying the Required Plug-ins"

Cloud Administrator

3

Define roles for administrators and self service users. See Section 3.3, "Defining Roles and Assigning Users".

Super Administrator

4

Install the Management Agent on unmanaged hosts so that they can be monitored by Enterprise Manager. See Section 11.2.1, "Adding Hosts".

Cloud Administrator

5

Create one or more resource providers. See Section 11.2.2, "Creating the Resource Providers".

Self Service Administrator

6

Configure the request settings. See Section 11.2.3, "Configuring Request Settings".

Self Service Administrator

7

Set up quotas for self service users. See Section 11.2.4, "Setting Up Quotas".

Self Service Administrator

11.2.1 Adding Hosts

Oracle Management Agent (Management Agent) is one of the core components of Enterprise Manager Cloud Control. It works in conjunction with the plug-ins to monitor the targets running on a managed host. You must install Oracle Management Agents on your unmanaged hosts to monitor them in Enterprise Manager.

To install the Management Agent on an unmanaged server, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Setup menu, select Add Target, then select Add Target Manually.

3. Select the Add Host Targets option and click Add Host.

4. Add the host names and select the platform. Check the Self Update console, if the Agent software for the desired platform is listed as not available, click Next.

5. Enter the Agent Install location by clicking the Instance directory field to auto-generate the path, create a named credential for the agent user (provide access to root user either by using sudo or pbrun), and clear the value in the port field (this will enable automatic selection of the port), click Next.

6. Review all entered values, and click Deploy Agent.

7. Track the progress of agent deployment on the Add Host Status page. The agent deployment takes between 5-10 minutes.

8. Select Targets, then select Hosts to navigate to the Hosts page. Confirm if all the hosts are listed on the page.

11.2.2 Creating the Resource Providers

A resource provider is a target that represents the type of resources required to provision a service instance of a specific service type. A PaaS Infrastructure zone is a resource provider which contains one or more hosts. A Software Pool is another resource provider that can contain resources such as Oracle Home targets, Oracle database targets, and so on. Resource providers such as the Database Pool or Middleware Pool are dependent on the PaaS Infrastructure Zone.

Resources can be grouped under a resource provider for easier administration and management. Resource providers allow administrators to enforce policies for service provisioning and capacity planning.

To create a resource provider, follow these steps:

1. Login as a user with the appropriate role. To create a PaaS Infrastructure Zone, you must login as a user with the EM_CLOUD_ADMINISTRATOR role. To create all other resource providers such as database pools, schema pools, and so on, you must login as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Resource Providers, then click Create. The Create Resource Provider window appears.

Figure 11-1 Create a Resource Provider

4. Select the type of resource provider you want to create. This can be:

- PaaS Infrastructure Zone. See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone".

- PaaS Pool. See Section 11.2.2.2, "Creating a PaaS Pool"

5. Click Create and follow the steps in the wizard to create the selected resource provider.

11.2.2.1 Creating a PaaS Infrastructure Zone

A PaaS Infrastructure Zone can contain a group of hosts. Each zone can contain homogeneous resources of only one type. Each resource in a zone represents a location at which a service instance is to be deployed.

The first step in building a PaaS cloud is to create at least one PaaS Infrastructure Zone, which is done by selecting one more Enterprise Manager host targets and identifying the SSA enabled roles that users will need to in order to request resources in this zone.

Figure 11-2 PaaS Infrastructure Zone

Prerequisites

Before you create a PaaS Infrastructure Zone, you must ensure that the following prerequisites are met:

- The EM_CLOUD_ADMINISTRATOR, EM_SSA_ADMINISTRATOR, and EM_SSA_USER roles must have been created. See Section 3.3, "Defining Roles and Assigning Users" for details.

- Note:
If you are using an OMS Shared System location in the Software Library, the credentials owner must grant privileges to the CLOUD_ENGINE_USER. Since the CLOUD_ENGINE_USER is a hidden user account, the owner of the named credential cannot grant View privileges from the Enterprise Manager Console. To address this issue, (especially on a Windows host where OMS Agent Filesystem is the recommended approach for setting up Software Library) you need to run the following EMCLI commands: emcli login -username=<username> -password =<password>
emcli grant_privs -name=CLOUD_ENGINE_USER -privileges="GET_CREDENTIAL; CRED_NAME=<namedcred>:CRED_OWNER=<loginusername>"

- You must log in as a user with EM_CLOUD_ADMINISTRATOR privileges to create a PaaS Infrastructure Zone.

To create a PaaS Infrastructure Zone, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

2. From the Cloud Home menu, select Resource Providers, then select Create. In the Create Resource Provider window, select PaaS Infrastructure Zone, then click Create. The Create PaaS Infrastructure Zone: General page appears.

3. Figure 11-3 Create PaaS Infrastructure Zone: General

4. Enter the target name, name, and description for the zone. Click Next.

5. Click Add to add one or more host members to the zone. The hosts that you select cannot be present in more than one PaaS Infrastructure Zone. Click Next.

6. In the Create PaaS Infrastructure Zone: Credentials page, specify the host credentials that are to be used for provisioning all targets in this zone. The credentials provided should be of global credential type (valid across the members in the zone) and owned by the current user. Click Next.

Note:
To create new named credentials, from the Setup menu, select Security, then select Named Credentials. You can create user or password named credentials here. Other types of credentials such as SSH must be created from the Security menu and can be used here.

7. Specify appropriate values for the placement policy constraints based on the resources available to the host members. The placement policy constraints are used to set maximum ceilings for any host in the zone. Placement policy values are used during deployment to filter out hosts that are overburdened. You can define the following placement policy constraints for each host:

- Maximum CPU Utilization: The average CPU utilization percentage for the past 7 days.

- Maximum Memory Allocation: The average memory allocation for the past 7 days.

Hosts exceeding these thresholds will not be considered for provisioning operations.

8. Click Next. In the Create PaaS Infrastructure Zone: Characteristics page, specify the target properties such as cost center, lifecycle status, location, and so on

9. Click Next. The Create PaaS Infrastructure Zone: Roles page appears. A PaaS Infrastructure Zone can be made available to a restricted set of self service users with the EM_SSA_USER role. Click Add to add and select the roles that can access this PaaS Infrastructure Zone.

10. Click Next. The Create PaaS Infrastructure Zone: Review page appears. Review the details of the zone being created and click Submit to create the zone. You will return to the Database and Cloud Home page.

Note:
You can use EMCLI commands (see Section 51.13.1.1, "Creating a PaaS Zone") or REST APIs (see Section 48.3.1.3.3, "Creating a PaaS Zone") to create a PaaS Infrastructure Zone.

11.2.2.1.1 Editing a PaaS Infrastructure Zone

To edit a PaaS Infrastructure Zone, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

2. From the Cloud Home menu, select Resource Providers. The Resource Providers page appears.

3. Select a PaaS Infrastructure Zone from the list and click Edit.

Note:
If you do not have access to or own the Named Credentials that have been defined for the PaaS Infrastructure Zone, you must specify new credentials.

4. Follow the steps in the wizard to edit the necessary parameters and click Submit to accept the changes.

11.2.2.1.2 Deleting a PaaS Infrastructure Zone

To delete a PaaS Infrastructure Zone, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

2. From the Cloud Home menu, select Resource Providers. The Resource Providers page appears.

3. Select a PaaS Infrastructure Zone from the list and click Delete.

4. A confirmation message is displayed. Click Delete PaaS Infrastructure Zone to delete the zone.

11.2.2.2 Creating a PaaS Pool

The second step in building a PaaS cloud is to create software pools (for example, database or middleware Oracle Homes that exist on hosts within the PaaS Infrastructure Zone, or database instances for schema as a service). The figure below shows an example of a PaaS pool.

Figure 11-4 PaaS Pool

A PaaS pool must be a homogeneous collection of Oracle Homes of the same platform, type, and version. For example, Solaris 10 Oracle Database single instance version 10.2.0.5 or Oracle Enterprise Linux 5 x86-64 WebLogic Server version 10.3.6. You can create a Database Pool or a Middleware Pool.

- To create a Database Pool, see Section 11.2.2.2.1, "Creating a Database Pool".

- To create a Middleware Pool, see Section 11.2.2.2.2, "Creating a Middleware Pool".

11.2.2.2.1 Creating a Database Pool

A Database Pool contains a set of resources that can be used to provision a database instance within a PaaS Infrastructure Zone. A database pool is a collection of homogenous targets such as servers or clusters with database software installed. For more details, see Section 11.2.2.2, "Creating a PaaS Pool".

Depending on the type of database service you are setting up, you can do one of the following:

- Creating a Database Pool for Database as a Service

- Creating a Database Pool for Schema as a Service

- Creating a Database Pool for PDB as a Service

11.2.2.2.2 Creating a Middleware Pool

A Middleware Pool contains a set of resources that can be used to provision a service instance within a PaaS Infrastructure Zone. For more details on creating the middleware pool, see Section 25.2, "Creating a Middleware Pool".

11.2.3 Configuring Request Settings

You can configure the request settings by specifying when a request can be made, its duration, and so on. To configure request settings, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Request Settings.

Figure 11-5 Configuring Request Settings

3. You can specify the following settings:

- Future Reservation: How far in advance can a request be made.

- Request Archive Retention: Period for which archived requests are stored before they are automatically deleted by the system.

- Request Duration: Maximum duration for which requests can be made.

- Service Instance Share Settings: You can choose to share the service instance with other users or roles by selecting either of the following checkboxes.

- Enable SSA User to share service instances with other Users

- Enable SSA User to share service instances with Roles

Note: By default, service instances are not shared with users or roles.

4. Click Apply.

Request settings can be defined for all services or a specific service family, service type or role. The most restrictive value of request settings is taken from all matched values. "No Restriction" on a level means the setting is not applied at this level and will not be considered in evaluating final value.For example, if a user requests a schema service and the Request Duration settings are as follows: All Services 30 Days, Database family 10 days, Schema service type (Global) 5 days, and Schema service type (SSAUser1 Role) 3 days. Then the most restrictive setting, 3 days from the Schema service type (SSAUser1 Role) setting, will be applied.

Share Service Instance Settings are taken from the highest enabled level. For example, if sharing is enabled for All Services, then sharing is allowed for all users regardless of any lower level settings. To turn off sharing for the Middleware family, you must first disable sharing at the All Services level, then disable sharing for the Middleware family and enable sharing for the other families.Any modified settings must be saved before making another selection. Any changes not yet applied will be discarded.

11.2.4 Setting Up Quotas

Quota is the aggregate amount of resources that can be granted to each self service user belonging to a certain role. This quota applies only to the databases provisioned through the Database Cloud Self Service Portal. To set up quotas, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Cloud menu, select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Quotas.

3. Click the Databases link on the left hand side. The quota definition page appears. Click Create.

Note:
Quota validation ensures that a request is executed only if the user's current usage is within the limits specified for the roles to which the user belongs. Only the direct roles are considered for the quota determination, and not nested ones.

4. In the Create New Quota window, select the Role Name for which the quota is to be granted. Only roles that have the EM_SSA_USER privileges are displayed in the Select Roles dialog box. After you have selected the role, enter the following details:

- Memory: Total allocated memory that can be assigned for all the databases owned by a specific user. This should be the total memory used by all:

- Databases

- Schemas requested

- Pluggable Databases

- Storage: Total allocated storage that can be assigned for all the databases owned by a user. This should be total storage used by all:

- Databases

- Schemas requested

- Pluggable Databases

Note:
Storage used for backups is not included here.

- Number of Database Requests: The number of databases that can be requested by a user at any point in time. The standby databases created as part of database requests will not be included in this quota. But the storage and memory values for the standby databases will be added to the total allocated storage and memory.

- Number of Schema Service Requests: The number of database services that can be requested by the user.

- Number of Pluggable Database Service Requests: The number of PDBs that can be requested by the user.

For example, if a user has 3 roles with quota setup for each role as shown in the table below:

Role Name

Attribute

Value

Dev Role

Memory

30 GB

Storage

40 GB

DB Requests

10

Schema Requests

2

PDB Requests

3

Test Role

Memory

40 GB

Storage

60 GB

DB Requests

12

Schema Requests

3

PDB Requests

5

PM Role

Memory

Quota not set

Storage

Quota not set

DB Requests

Quota not set

Schema Requests

Quota not set

PDB Requests

Quota not set

The quota limits for each of the attributes would be determined based on all the roles to which a user directly belongs. The quota is calculated as the absolute maximum across the roles for each attribute value. For the user who belongs to the Dev, Test, and PM Role, the Quota is calculated as:

Value for Memory = MAX (Dev, Test, PM) = MAX (2, 5, NA) = 5 GB

Value for Storage = MAX (Dev, Test, PM) = MAX (15, 10, NA) = 15 GB

Value for DB Requests = MAX (Dev, Test, PM) = MAX (10, 12, NA) = 12 Databases

Value for Schema Requests = MAX (Dev, Test, PM) = MAX (2, 3, NA) = 5 Database Services

Value for PDB Requests = MAX (Dev, Test, PM) = MAX (3, 5, NA) = 8 PDB Services

A sample quota validation log generated by the user request follows:

Quota validation:
==================================================================
Quota Details
==================================================================
Total resources avaialble
Memory: 15
Storage: 20
Number of Database Instances: 5
Number of Schema Services: 5
Number of Pluggable Databases: 10

==================================================================
Current Usage
==================================================================
Memory: 0.0
Storage: 0.0
Number of Database Instances: 0.0
Number of Database Services: 0.0

==================================================================
Requested Resource
==================================================================
Memory: 0.681640625
Number Of Databases: 1
Storage: 0.681640625

-----------------------------------------------------------
Quota validation for 'Memory'
-----------------------------------------------------------
Allocated Resource: 15.0
Current Usage: 0.0
Requested: 0.681640625
------------------
Remaining Resource After Allocation: 14.318359375
-------------------

Result: Passed
-----------------------------------------------------------
Quota validation for 'Storage'
-----------------------------------------------------------
Allocated Resource: 20.0
Current Usage: 0.0
Requested: 0.681640625
------------------
Remaining Resource After Allocation: 19.318359375
-------------------

Result: Passed
----------------------------------------------------------
Quota validation for 'Number of Database Instances'
----------------------------------------------------------
Allocated Resource: 5.0
Current Usage: 0.0
Requested: 1.0
------------------
Remaining Resource After Allocation: 4.0
-------------------

12 Enabling the DBaaS Cloud

This chapter covers the initial configuration required to enable a DBaaS Cloud. It contains the following sections:

- Getting Started

- Setting Up Credentials for Provisioning

- Provisioning Database Software for Database as a Service

- Provision the Database for Schema as a Service

- Provision a Container Database for PDB as a Service

- Configuring the Oracle Listener

- Registering and Managing Storage Servers

12.1 Getting Started

This section helps you get started by providing a list of steps that must be performed to get started in setting up a private database cloud. Before you set up the database cloud, you must have completed the common setup tasks described in Section 11.2, "Common Setup Tasks".

Table 12-1 Getting Started with DBaaS

Step

Task

Role

1

Configure Privilege Delegation Settings on your managed hosts. See Section 3.5, "Configuring Privilege Delegation Settings"

Super Administrator

2

Set up provisioning credentials. See Section 12.2, "Setting Up Credentials for Provisioning"

Self Service Administrator

3

- Setting up Database as a Service, you must provision the database software or create Oracle Homes. See Section 12.3, "Provisioning Database Software for Database as a Service".

- Setting up Schema as a Service, you must provision the database. See Section 12.4, "Provision the Database for Schema as a Service".

- Setting up Pluggable Database as a Service, you must create a container database (CDB) with one or more pluggable databases (PDBs). See Section 12.5, "Provision a Container Database for PDB as a Service".

Self Service Administrator

4

Configure the Listener. See Section 12.6, "Configuring the Oracle Listener".

Self Service Administrator

5

If you are using the Snap Clone profile, you must register the storage servers. See Section 12.7, "Registering and Managing Storage Servers".

Self Service Administrator

12.2 Setting Up Credentials for Provisioning

Before you perform any operations on the Managed Servers or databases, you must define the credentials that will be used by Enterprise Manager to connect to the targets.

You need to set up the following types of credentials:

- Normal credentials are the host operating system credentials used to provision the database software and create databases. For example, oracle/<login password>. These credentials are saved when the Database Pool is created and are used when the EM_SSA_USER requests a database or a schema.

- Privileged credentials are the host operating system credentials used to perform privileged actions like executing root scripts. These credentials are used deploying software (for running root.sh during deployment), for mounting and unmounting storage volumes (for databases created with snapshots) and so on. These credentials are saved along with the Database Pool if the pool is used for creating databases using snapshots.

- Database SYSDBA credentials are used and saved for schema as a service database pool. These credentials are required only for schema as a service.

Note:
It is recommended that the same OS user who owns the Oracle Home on the host, creates the database.

To create named credentials, follow these steps:

1. Log in to Enterprise Manager as an administrator with the EM_SSA_ADMINISTRATOR role.

2. From the Setup menu, select Security, then select Named Credentials.

3. Click Create in the Named Credentials page.

4. Enter the Credential Name and Credential Description. Set the Authenticating Target Type field to Host and Scope field to Global. Enter the user name and password in the Credential Properties section. If you need to set privileged credentials, select Sudo or PowerBroker in the Run Privilege field and enter values in the Run As and Profile fields.

5. Click Test and Save.

6. Verify these credentials against a host target and click OK.

12.3 Provisioning Database Software for Database as a Service

Before you can enable database as a service, the database software must already be provisioned on all hosts. Database software can be provisioned by an administrator with the EM_SSA_ADMINISTRATOR role in the following ways:

- Provisioning Profile

- Capture a gold image of an existing database using a Provisioning Profile. See the Enterprise Manager Lifecycle Management Administrator's Guide for details.

- Use the Provisioning Profile to provision the Clusterware/ASM or Grid Infrastructure (for Real Application Cluster databases), and Database Oracle Home. This method ensures that the necessary database plug-in (monitoring part of the database plug-in) is deployed onto the Management Agent as part of the database provisioning Oracle Home installation.
To create a provisioning profile, from the Enterprise menu, select Provisioning and Patching, then select Database Provisioning and select the database provisioning deployment procedure to be used. You can select either Provision Oracle Database or Provisioning Oracle RAC Database deployment procedure.

Note: Do not create a new database as part of this deployment procedure.

- Using the Database Installer

- From the Setup menu, select Extensibility, then select Plug-ins. and deploy the complete SSA (Enterprise Manager for Oracle Cloud) plug-in on all the Management Agents in a PaaS Infrastructure Zone.

- Run the Clusterware/ASM or Grid Infrastructure installer to set up the cluster and ASM (for RAC databases).

- Run the Database Installer and ensure you select the create database option on all hosts.

- Discover the database. From the Setup menu, select Add Target, then Add Targets Manually, and then select Add Non-Host Targets Using Guided Process (Also Adds Related Targets).

- From the Enterprise menu, you can also select Job, then select Library and submit the Discover Promote Oracle Home Target job to add the Oracle Home.

For more details on provisioning the database software, see the Enterprise Manager Lifecycle Management Administrator's Guide.

12.4 Provision the Database for Schema as a Service

For schema as a service, you must deploy a single instance or RAC database. To deploy a database, you must use the Provision Oracle Database deployment procedure. See the Enterprise Manager Lifecycle Management Administrator's Guide for details.

12.5 Provision a Container Database for PDB as a Service

Note:
If pluggable databases (PDBs) need to be provisioned, you must be create container databases.

An Oracle Database can contain a portable collection of schemas, schema objects, and nonschema objects, that appear to an Oracle Net client as a separate database. This self-contained collection is called a pluggable database (PDB). A multi-tenant container database (CDB) is a database that includes one or more PDBs.

You can create a CDB either by using the Database Configuration Assistant (DBCA) or the CREATE_DATABASE SQL statement. See the Oracle Database Administrator's Guide for details. After the CDB is created, it consists of the root and the seed. The root contains minimal user data or no user data, and the seed contains no user data.

PDBs contain user data. After the CDB has been created, you can add PDBs to the CDB by using either of the following options:

- Create a new CDB. See the Enterprise Manager Lifecycle Management Administrator's Guide for details.

- Plug in an unplugged PDB into a CDB. See the Enterprise Manager Lifecycle Management Administrator's Guide for details.

12.6 Configuring the Oracle Listener

You need to configure an Oracle Home and the Oracle Listener before you can add them as Enterprise Manager targets.

To set up the Oracle Listener (Listener) for the database hosts, follow these steps:

1. Log in as a user with the EM_SSA_ADMINISTRATOR role and perform mass deployment of database homes on the newly added hosts as described in Section 11.2.1, "Adding Hosts"

2. To configure a Listener running from the same Oracle Home on which the database instance is to be created, launch a Bash shell and enter the following commands:

1. <AGENT_BASE>/agent_inst/bin/emctl stop agent

2. export TNS_ADMIN=<DB_HOME_LOCATION>/network/admin

3. <AGENT_BASE>/agent_inst/bin/emctl start agent

4. export ORACLE_HOME=<DB_HOME_LOCATION>

5. Run $ORACLE_HOME/bin/netca and create the listener. Make sure you have the same Listener name and Listener port on all the hosts.

3. To configure a Listener running from the Single Instance High Availability (SIHA) Oracle Home, launch a Bash shell and enter the following commands:

1. export ORACLE_HOME=<SIHA_HOME_LOCATION>

2. Run $ORACLE_HOME/bin/netca and create the listener. Make sure you have the same listener name and listener port on all the hosts

4. Log in as the user with the DBAAS_ADMIN_ROLE and discover the newly added Listener target on all the hosts. From the Setup menu, select Add Target, then select Add Target Manually.

5. Select the Add Non-Host Targets Using Guided Process option and select Target Type as Oracle Database, Listener, and Automatic Storage Management and click Add Guided Discovery and follow the steps in the wizard. Before you add the new Listener target, ensure the ORACLE_HOME for the Listener is pointing to the correct ORACLE_HOME location. This process adds the Oracle Home target which is used when a database pool is created.

12.7 Registering and Managing Storage Servers

Note:
If you are creating thin clones from a snap clone based profile, you must register and manage the storage servers such as NetApp, Sun ZFS, or EMC. See Chapter 20, "Creating Snap Clones for Databases" for details.

This section describes the following:

- Overview of Registering Storage Servers

- Before You Begin

- Prerequisites for Registering Storage Servers

- Registering Storage Servers

- Administering the Storage Server

- Managing Storage Servers

12.7.1 Overview of Registering Storage Servers

Registering a storage server, such as NetApp storage server, Sun ZFS storage server, or EMC storage server in Enterprise Manager enables you to provision databases using the snapshot and cloning features provided by the storage.

The registration process validates the storage, and discovers the Enterprise Manager managed database targets on this storage. Once the databases are discovered, you can enable them for Snap Clone. Snap Clone is the process of creating database clones using the Storage Snapshot technology.

Note:
Databases on Windows operating systems are not supported.

12.7.2 Before You Begin

Before you begin, note the following:

- Windows databases are not discovered as part of storage discovery. This is because the Windows storage NFS collection does not happen at all. NFS collection is also not supported on certain OS releases, and thus databases on those OS releases cannot be Snap Cloned. For further details please refer to the My Oracle Support note 465472.1. Also, NAS volumes cannot be used on Windows for supporting Oracle databases.

- Snap Clone is supported on Sun ZFS Storage 7120, 7320, 7410, 7420 and ZS3 models, NetApp 8 hardware in 7-mode and c-mode, EMC VMAX 10K and VNX 5300, and Solaris ZFS Filesystem.

- Snap Clone supports Sun ZFS storage on HP-UX hosts only if the OS version is B.11.31 or higher. If the OS version is lower than that, the Sun Storage may not function properly thereby Snap Clone gives unexpected results.

- By default, the maximum number of NFS file systems that Enterprise Manager discovers on a target host is 100. However, this threshold is configurable. You can also choose a list of file systems to be monitored if you do not want all the extra file systems to be monitored.
The configuration file $agent_inst/sysman/emd/emagent_storage.config for each host agent contains various storage monitoring related parameters.

To configure the threshold for the NFS file systems, you need to edit the following parameters:

Collection Size:START
Disks=1000
FileSystems=1000
Volumes=1000
Collection Size:END

If you choose to provide a list of file systems to be monitored, it can be provided between the following lines:

FileSystems:START

FileSystems:END

Restart the Management Agent and refresh the host configuration for the changes to this configuration file to be effective.

- If the OMS Repository is running on RDBMS with 11.1.0.7.0 and AL32UTF8 character set, you need to apply patch 11893621.

12.7.3 Prerequisites for Registering Storage Servers

Before you register a storage server, follow the prerequisites outlined in the following sections:

- Configuring Storage Servers

- Customizing Storage Proxy Agents

12.7.3.1 Configuring Storage Servers

Before you register a storage server, you require the following privileges and licenses to successfully use Snap Clone:

- Configuring NetApp Hardware

- Configuring Sun ZFS and ZF3 Hardware

- Configuring Solaris File System (ZFS) Storage Servers

- Configuring EMC Storage Servers

Note:
Enterprise Manager Cloud Control 12c supports NetApp, Sun ZFS, Solaris File System (ZFS) and EMC storage servers.

Configuring NetApp Hardware

This section consists of the following:

- Obtaining NetApp Hardware Privileges

- Obtaining NetApp Hardware Licenses

- Creating NetApp Storage Credentials

- Configuring NetApp 8 Cluster Mode Hardware

- NetApp 8 Configuration Supported with Cluster Mode

- Preparing the NetApp 8 Storage and SVM

Obtaining NetApp Hardware Privileges

Privileges is a generic term. NetApp refers to privileges as Capabilities.

For NetApp storage server, to use Snap Clone, assign the following privileges or capabilities to the NetApp storage credentials:

Note:
You can assign these capabilities individually or by using wildcard notations. For example:

'api-volume-*', 'api-*', 'cli-*'

- api-aggr-list-info

- api-aggr-options-list-info

- api-file-delete-file

- api-file-get-file-info

- api-file-read-file

- api-license-list-info

- api-nfs-exportfs-append-rules

- api-nfs-exportfs-delete-rules

- api-nfs-exportfs-list-rules

- api-nfs-exportfs-modify-rule

- api-snapshot-create

- api-snapshot-delete

- api-snapshot-list-info

- api-snapshot-reclaimable-info

- api-snapshot-restore-volume

- api-snapshot-set-reserve

- api-system-api-get-elements

- api-system-api-list

- api-snapshot-set-schedule

- api-system-cli

- api-system-get-info

- api-system-get-ontapi-version

- api-system-get-version

- api-useradmin-group-list

- api-useradmin-user-list

- api-volume-clone-create

- api-volume-clone-split-estimate

- api-volume-create

- api-volume-destroy

- api-volume-get-root-name

- api-volume-list-info

- api-volume-list-info-iter-end

- api-volume-list-info-iter-next

- api-volume-list-info-iter-start

- api-volume-offline

- api-volume-online

- api-volume-restrict

- api-volume-set-option

- api-volume-size

- cli-filestats

- login-http-admin

Obtaining NetApp Hardware Licenses

Snap Clone on a NetApp storage server requires a valid license for the following services:

- flex_clone

- nfs

- snaprestore

Creating NetApp Storage Credentials

To create the NetApp storage credentials, follow these steps:

Note:
Snap Clone is supported only on NetApp Data ONTAP® 7.2.1.1P1D18 or higher, and ONTAP@ 8.x (7-mode, c-mode, and v-server mode).

1. Create ROLE em_smf_admin_role' with all the recommended capabilities, such as api-aggr-list-info,api-file-delete-file, and the like.

2. Create GROUP em_smf_admin_group with the ROLE em_smf_admin_role.

3. Create USER em_smf_admin with GROUP em_smf_admin_group and a secure password.

Note:
The user em_smf_admin must be a dedicated user to be used by Oracle Enterprise Manager. Oracle does not recommend sharing this account for any other purposes.

Configuring NetApp 8 Cluster Mode Hardware

This topic discusses how to setup NetApp 8 cluster mode (c-mode) hardware for supporting Snap Clone in Enterprise Manager Cloud Control 12c.

NetApp 8 hardware in 7-mode is already supported for Snap Clone.

To configure NetApp 8 c-mode hardware, refer to the following sections:

- NetApp 8 Configuration Supported with Cluster Mode

- Preparing the NetApp 8 Storage and SVM

NetApp 8 Configuration Supported with Cluster Mode

The configuration supported with c-mode is as follows:

- Snap Clone features are supported only with SVM (Vserver).

- Registration of a physical cluster node is not supported.

- Multiple SVMs can be registered with Enterprise Manager Cloud Control 12c. All the registered SVMs are managed independently.

Preparing the NetApp 8 Storage and SVM

To prepare the NetApp 8 storage and SVM, ensure that the following requirements are done:

- The NetApp 8 c-mode hardware should have an SVM created. If not, you should create an SVM which will be registered with the Enterprise Manager.

- The SVM should have a network interface (LIF) with both Management and Data access. The domain name and IP address of this interface should be provided on the Storage Registration page in the Enterprise Manager.

- There should be at least one aggregate (volume) assigned to the SVM. The aggregates should not be shared between the SVMs.

- The SVM should have a user account that has the vsadmin-volume role assigned for ontapi access.
The user credentials should be supplied on the Storage Registration page in the Enterprise Manager.

- The root volume of SVM should have an export policy with a rule that allows Read Only access to all hosts. If you are using NFS v4, then the Superuser access needs to be granted from the Modify Export Rule dialog box.

Note:

- A directory named em_volumes is created with permissions 0444 inside the root volume of SVM. This directory will be used as an Enterprise Manager name space for the junction point.

- All the storage volumes created will use the junction point /em_volumes in the name space.

Note:
When you register an SVM in Enterprise Manager Cloud Control, the details of all the aggregates assigned to it are fetched. The total size of an aggregate is required to set the quota, perform space computation, and for reporting.
Presently, NetApp does not provide any Data ONTAP API to fetch the aggregate total size from an SVM. As a workaround, the available size of an aggregate is considered as the total size and is set as the Storage Ceiling during first Synchronize run. Storage Ceiling is the maximum amount of space that Enterprise Manager can use in an aggregate.

If the total space of an aggregate is increased on the storage, you can increase the Storage Ceiling till you consume the available space in that aggregate.

Configuring Sun ZFS and ZF3 Hardware

This section consists of the following:

- Obtaining Sun ZFS Hardware Privileges

- Obtaining Sun ZFS Hardware Licenses

- Creating Sun ZFS Storage Credentials

Obtaining Sun ZFS Hardware Privileges

Privileges is a generic term. For example, Sun ZFS refers to privileges as Permissions.

For Sun ZFS storage server, to use Snap Clone, assign the following privileges or permissions to the Sun ZFS storage credentials:

Note:
All the permissions listed must be set to true. The scope must be 'nas' and there must not be any further filters.

- changeProtocolProps

- changeSpaceProps

- clone and createShare

- destroy

- rollback

- takeSnap

Obtaining Sun ZFS Hardware Licenses

Snap Clone on Sun ZFS Storage Appliance requires a license for the Clones feature. A restricted-use license for the same is included with the Enterprise Manager Snap Clone.

Creating Sun ZFS Storage Credentials

To create the Sun ZFS storage credentials, follow these steps:

1. Create ROLE em_smf_admin_role.

2. Create AUTHORIZATIONS for the ROLE em_smf_admin_role.

3. Set SCOPE as nas.

4. Set the recommended permissions, such as, allow_changeProtocolProps, allow_changeSpaceProps, and the like to true.

5. Create USER em_smf_admin and set its ROLE property as em_smf_admin_role.

Note:
The user em_smf_admin must be a dedicated user to be used by Oracle Enterprise Manager. Oracle does not recommend sharing this account for any other purposes.

Configuring Solaris File System (ZFS) Storage Servers

This section consists of the following:

- Obtaining Solaris File System (ZFS) Privileges

- Obtaining Solaris File System (ZFS) Licenses

- Setting Up Solaris File System (ZFS) Storage Servers

Obtaining Solaris File System (ZFS) Privileges

Solaris File System (ZFS) refers to privileges as Permissions. For Solaris File System (ZFS) storage server, to use Snap Clone, grant the following permissions on the pool for the Solaris File System (ZFS) user:

- clone

- create

- destroy

- mount

- rename

- rollback

- share

- snapshot

- quota

- reservation

- sharenfs

- canmount

- recordsize

Obtaining Solaris File System (ZFS) Licenses

Solaris File System (ZFS) does not require any special hardware license. Only Oracle Solaris OS version 11.1 is supported.

Setting Up Solaris File System (ZFS) Storage Servers

Solaris File System (ZFS) storage servers can work with any storage hardware. You do not need to buy any additional storage hardware. Instead, you can attach your in-house storage hardware and to acquire the Oracle Snap Clone functionality. For example, you can attach LUNs from an EMC VMAX, VNX systems, a Hitachi VSP, or an Oracle Pillar Axiom FC array.

The following storage topology figure explains how this works:

Note:
This figure assumes that you have a SAN storage device with 4 x 1TB logical unit devices exposed to the Solaris File System (ZFS) storage server.

This section contains the following:

- Prerequisites for Setting Up Solaris File System (ZFS) Storage Servers

- Requirements for Storage Area Network Storage

- Recommendations for Solaris File System (ZFS) Pools

- Configuring Solaris File System (ZFS) Users and Pools

Prerequisites for Setting Up Solaris File System (ZFS) Storage Servers

Before you configure a Solaris File System (ZFS) storage server, ensure that you meet requirements:

- Ensure that zfs_arc_max is not set in /etc/system. If it needs to be set ensure that it is set to a high value such as 80% of RAM.

- Ensure that the storage server is configured with multiple LUNs. Each LUN should be a maximum of 1TB. A minimum 2 LUNs of 1TB each is recommended for a Snap Clone. Each LUN should have a mirror LUN which is mounted on the host over a different controller to isolate failover. A LUN can be attached to the Solaris host over Fibre Channel for better performance.

Note:
If Fibre Channel is not available, any direct attached storage or iSCSI based LUNs are sufficient.

- All LUNs used in a pool should be equal in size. It is preferable to use less than 12 LUNs in a pool.

- Apart from LUNs, the storage needs cache and log devices to improve zpool performance. Both these devices should ideally be individual flash/SSD devices. In case it's difficult to procure individual devices, one can use slices cut from a single device. Log device needs to be about 32GB in size and also have redundancy and battery backup to prevent data loss. Cache device can be about 128GB in size and need not have redundancy.

Requirements for Storage Area Network Storage

The requirements for Storage Area Network (SAN) storage are as follows:

- It is recommended to create large LUNs and lesser number of LUNs. The maximum recommended size for a LUN is 3TB.

- LUNs should come from different SAN storage pools or an entirely different SAN storage device.
These LUNs are needed for mirroring, to maintain the pool level redundancy. If your SAN storage maintains a hardware level redundancy, then you can skip this requirement.

- The LUNs should be exposed over Fiber Channel.

Recommendations for Solaris File System (ZFS) Pools

The recommendations for Solaris File system (ZFS) pools are as follows:

- Create the Storage pool with multiple LUNs of the same size. You can add more disks to the storage pool to increase the size based on your usage.

- The storage pool created on the Solaris File System (ZFS) storage server should use the LUNs coming from a different SAN storage pool or an entirely different SAN storage device. You can skip this if your SAN storage maintains hardware level redundancy.

- To repair data inconsistencies, use ZFS redundancy such as mirror, RAIDZ, RAIDZ-2 or RAIDZ-3 to repair data inconsistencies, regardless of whether RAIDZ is implemented at the underlying storage device.

- For better throughput and performance, use cache and log devices. Both these devices should ideally be on individual flash/SSD devices. In case of difficulty in procuring individual devices, you can use slices cut from a single device.
It is recommended to have the Log device at about 50% of RAM and also have redundancy and battery backup to prevent data loss. Cache device size could be based on the size of the workload and the pool.

Cache device do not support redundancy. This is optional.

- While creating the pool, it has to be sized to accommodate the test master database along with the cloned databases. A clone will co-exist with the parent database in the same storage pool. Therefore, you should plan for test master and clone capacity well ahead.
For example, The size of the test master is 1TB and you expect to create 10 clones with each of them expected to differ from the test master by 100G. Then, the storage pool should be minimum 2.5TB in size.

- Maintain the storage pool with at least 20% free space. If the free space falls below this level, then the performance of the pool degrades.

Configuring Solaris File System (ZFS) Users and Pools

You need to create a user which will be able to administer the storage from Enterprise Manager. To do this, run the following commands as root user:

# /sbin/useradd -d /home/emzfsadm -s /bin/bash emzfsadm
# passwd emzfsadm

Note:
The username should be less than or equal to 8 characters.

You need to configure the ZFS pool that is used to host volumes, and grant privileges on this pool to the user created. The emzfsadm user should have the privileges on all the zpools and its mount points in the system.

To configure the ZFS pool, refer to the following table and run the following commands:

Note:
The table displays a reference implementation, and you can choose to change this as required.

Pool Name

lunpool

Disks (SAN exposed LUNs over FC/iSCI)

lun1=c9t5006016E3DE0340Ed0,
lun2=c9t5006016E3DE0340Ed1

Disks Mirror (SAN exposed LUNs over FC/iSCI)

mir1=c10t5006016E3DE0340Ed2,
mir2=c10t5006016E3DE0340Ed3

Flash/ SSD disk (log)

ssd1=c4t0d0s0

Flash/SSD disk (cache)

ssd2=c4t0d1s0

# zpool create lunpool mirror lun1=c9t5006016E3DE0340Ed0 mir1=c10t5006016E3DE0340Ed2 mirror lun2=c9t5006016E3DE0340Ed1 mir2=c10t5006016E3DE0340Ed3 log ssd1=c4t0d0s0 cache ssd2=c4t0d1s0

Example format output is as follows:

bash-4.1# /usr/sbin/format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
0. c9t5006016E3DE0340Ed0 <DGC-VRAID-0532-1.00TB>
/pci@78,0/pci8086,3c08@3/pci10df,f100@0/fp@0,0/disk@w5006016e3de0340e,0
1. c9t5006016E3DE0340Ed1 <DGC-VRAID-0532-1.00TB>
/pci@78,0/pci8086,3c08@3/pci10df,f100@0/fp@0,0/disk@w5006016e3de0340e,1
2. c10t5006016E3DE0340Ed2 <DGC-VRAID-0532-1.00TB>
/pci@78,0/pci8086,3c08@3/pci10df,f100@0/fp@0,0/disk@w5006016e3de0340e,2
3. c10t5006016E3DE0340Ed3 <DGC-VRAID-0532-1.00TB>
/pci@78,0/pci8086,3c08@3/pci10df,f100@0/fp@0,0/disk@w5006016e3de0340e,3

[ We need to find the size of pool that was created ]
# df -k /lunpool
Filesystem           1024-blocks        Used   Available Capacity  Mounted on
lunpool              1434746880          31  1434746784     1%    /lunpool

[ We use the Available size shown here to set quota as shown below ]

# zfs set quota=1434746784 lunpool

# zfs allow emzfsadm clone,create,destroy,mount,rename,rollback,share,snapshot,quota,reservation,sharenfs,canmount,recordsize,logbias lunpool

# chmod A+user:emzfsadm:add_subdirectory:fd:allow /lunpool

# chmod A+user:emzfsadm:delete_child:fd:allow /lunpool

- When you set the quota using the command zfs set quota, you may get the following error message::
Size is less than current used or reserved space You need to ensure that the quota is set to more than the used space. To ensure that the quota is set correctly, it is recommended that you verify the quota by running the following command:
$ zfs get quota lunpool

- It is recommended that you verify if all the required parameters are set correctly after you run the zfs allow emzfsadm command.

Configuring EMC Storage Servers

Before you use an EMC Symmetrix VMAX Family or an EMC VNX storage server, you need to first setup the EMC storage hardware for supporting Snap Clone in Oracle Enterprise Manager 12c. Ensure that all the requirements are met in the following sections:

- Supported Configuration for EMC Storage Servers

- Requirements for EMC Symmetrix VMAX Family and Database Servers

- Preparing the Storage Area Network

- Understanding VMAX Terminology

- Preparing the EMC VMAX Storage

- Preparing the EMC VNX Storage

- Preparing Database Servers

- Setting Privileged Host Monitoring Credentials

Supported Configuration for EMC Storage Servers

Before you configure the EMC Symmetrix VMAX family or the EMC VNX storage server, check the following list. The list displays components that are supported and are not supported for EMC VMAX and EMC VNX storage.

- EMC VMAX 10K and VNX 5300 are certified to use. Higher models in the same series are expected to work.

- Only Linux and Solaris operating systems are supported. Other operating systems are not yet supported.

- Multi-pathing is mandatory.

- Only EMC PowerPath, and Solaris MPxIO are supported.

- Switched fabric is supported. Arbitrated loop is not supported.

- Emulex (LPe12002-E) host bus adapters are certified to use. Other adapters are expected to work.

- SCSI over Fibre Channel is supported. iSCSI, NAS are not yet supported.

- Oracle Grid Infrastructure 11.2 is supported.

- Oracle Grid Infrastructure 12.1 with Local ASM Storage option is supported. Flex ASM is not supported.

- ASM Filter Driver is not supported.

- ASM support is only for raw devices. File System is not supported.

- Support for Thin Volumes (TDEV) on VMAX.

- Support for only LUNs on VNX. NAS is not yet supported.

Requirements for EMC Symmetrix VMAX Family and Database Servers

The requirement for the operating system version of EMC Symmetrix VMAX Family is:

- EMC VMAX Enginuity Version: 5876.251.161 and above

- SMI-S Provider Version: V4.6.1.6 and above

- Solutions Enabler Version: V7.6-1755 and above

Note:
The EMC VMAX Enginuity version is the Operating System version of the storage.
The SMI-Provider and Solutions Enabler are installed on a host in a SAN.

The requirements for database server are as follows:

Oracle Database Requirements

- Oracle Database 10.2.0.5 and higher

Operating System Requirements

- Oracle Linux 5 update 8 (compatible with RHEL 5 update 8) and above

- Oracle Linux 6 (compatible with RHEL 6) and above

- Oracle Solaris 10 and 11

Multipathing Requirements

- EMC PowerPath Version 5.6 or above as available for Linux Operating System release and kernel version

- EMC PowerPath Version 5.5 or above as available for Oracle Solaris 11.1 release

- EMC PowerPath Version 6 is not supported.

- Solaris MPxIO as available in latest update

Oracle Grid Infrastructure Requirements

- Oracle Grid Infrastructure 11.2

- Oracle Grid Infrastructure 12.1. Flex ASM is not supported.

Preparing the Storage Area Network

To prepare the storage area network, follow the configuration steps outlined in each section.

SAN Fabric Configuration

Configure your SAN fabric with multipathing by ensuring the following:

- You must have redundancy at storage, switch and server level.

- Perform the zoning such that multiple paths are configured from the storage to the server.

- Configure the paths such that a failure at a target port, or a switch or a host bus adapter will not cause unavailability of storage LUNs.

- Configure gatekeepers on the host where EMC SMI-S provider is installed. To configure gatekeepers, refer to the documentation available on the EMC website:

SMI-S Provider

You should install the SMI-S provider and Solutions Enabler on one of the servers in the fabric where the storage is configured. To install and configure the SMI-S provider, refer to the documentation available on the EMC website:

The SMI-S provider URL and login credentials are needed to interact with the storage. An example of an SMI-S Service Provider URL is https://rstx4100smis:5989.

These details are needed when you register a storage server. You are required to do the following:

- Ensure that the VMAX or VNX storage is discovered by the SMI-S provider.

- Add the VNX storages to the SMI-S provider.

- Create a user account with administrator privileges in the SMI-S provider to access the VMAX or VNX storage.

- Set a sync interval of 1 hour.

Understanding VMAX Terminology

The following table outlines VMAX terms that are used in this section. Refer to these terms to gain a better conceptual understanding, before you prepare the EMC VMAX storage.

Table 12-2 VMAX terminologies

Term

Definition

Logical Unit

An I/O device is referred to as a Logical Unit.

Logical Unit Number

A unique address associated with a Logical Unit.

Initiator

Any Logical Unit that starts a service request to another Logical Unit is referred to as an Initiator

Initiator Group

An initiator group is a logical grouping of up to 32 Fibre Channel initiators (HBA ports), eight iSCSI names, or a combination of both. An initiator group may also contain the name of another initiator group to allow the groups to be cascaded to a depth of one.

Port Group

A port group is a logical grouping of Fibre Channel and/or iSCSI front-end director ports. The only limit on the number of ports in a port group is the number of ports in the Symmetrix system. It is also likely that a port group can contain a subset of the available ports in order to isolate workloads to specific ports.

Note: As a pre-requisite, OEM expects a port group created with the name ORACLE_EM_PORT_GROUP and it should contain the required target ports.

Storage Group

A storage group is a logical grouping of up to 4,096 Symmetrix devices.

Target

Any Logical Unit to which a service request is targeted is referred to as a Target

Masking View

A masking view defines an association between one initiator group, one port group, and one storage group. When a masking view is created, the devices in the storage group are mapped to the ports in the port group and masked to the initiators in the initiator group.

SCSI Command

A service request is referred to as a SCSI command

Host Bus Adapter (HBA)

The term host bus adapter (HBA) is most often used to refer to a Fibre Channel interface card. Each HBA has a unique World Wide Name (WWN), which is similar to an Ethernet MAC address in that it uses an OUI assigned by the IEEE. However, WWNs are longer (8 bytes). There are two types of WWNs on a HBA: a node WWN (WWNN), which is shared by all ports on a host bus adapter, and a port WWN (WWPN), which is unique to each port. There are HBA models of different speeds: 1Gbit/s, 2Gbit/s, 4Gbit/s, 8Gbit/s, 10Gbit/s, 16Gbit/s and 20Gbit/s.

For more information on VMAX storage and terminologies, refer to the document EMC Symmetrix VMAX Family with Enginuity available in the EMC website.

Preparing the EMC VMAX Storage

Configure your EMC VMAX appliance such that it is zoned with all the required nodes where you need to provision databases. To prepare the EMC VMAX storage, do the following on the storage server:

- Ensure that all the Host Initiator ports are available from the storage side.

- It is recommended to create one initiator group per host with corresponding initiators to increase security. The 'Consistent LUNs' property of the immediate parent Initiator Group of the initiators should to set to 'No'

- Create a Port Group called ORACLE_EM_PORT_GROUP to be used by Oracle Enterprise Manager for creating Masking Views. This port group should contain all the target ports that will be viewed collectively by all the hosts registered in the Enterprise Manager Cloud Control system.
For example, host1 views storage ports P1 and P2, and host2 views storage ports P3 and P4. Then, the ORACLE_EM_PORT_GROUP should include all ports P1, P2, P3 and P4. Include only the necessary target ports as needed by the development infrastructure.

- Create a separate Virtual Provisioning Pool also known as Thin Pool, and dedicate it for Oracle Enterprise Manager.

- Ensure that the TimeFinder license is enabled to perform VP Snap

Preparing the EMC VNX Storage

Configure your EMC VNX appliance such that it is zoned with all the required nodes where you need to provision databases. To prepare the EMC VNX storage, do the following on the storage server:

Note:
EMC VNX Storage supports only LUN creation, cloning, and deletion. It does not support NAS.

- Ensure that all host initiator ports are available from the storage side.

- Ensure that the initiators belonging to one host are grouped and named after the Host on the EMC VNX storage.

- Create one storage group with one host for each of the hosts registered in Enterprise Manager.
For example, if initiators i1 and i2 belong to host1, register the initiators under the name Host1. Create a new storage group SG1 and connect Host1 to it. Similarly, create one storage group for each of the hosts that are to be added to Enterprise Manager.

Preparing Database Servers

To prepare your server for Enterprise Manager Snap Clone, ensure the following:

- Servers should be physical and equipped with Host Bus Adapters. NPIV and VMs not supported.

- Configure your servers with recommended and supported multipath software. If you use EMC PowerPath, then enable the PowerPath license.To enable the PowerPath license, use the following command:

emcpreg -install

- If you need the servers to support Oracle Real Application Clusters, then install Oracle Clusterware.

Note:
ASM and Clusterware have to be installed and those components have to be discovered in Enterprise Manager as a target. Once ASM and Clusterware are installed, additional ASM disk groups can be created from Enterprise Manager.

- Enable Privileged Host Monitoring credentials for all the servers. If the server is part of a cluster, then you should enable privileged host monitoring credential for that cluster.
For more details on enabling privileged host monitoring credentials, refer to Oracle Enterprise Manager Framework, Host, and Services Metric Reference Manual.

- If you are using Linux, you should configure Oracle ASMLib, and set the asm_diskstring parameter to a valid ASM path. For example:
/dev/oracleasm/disks/

Update the boot sequence such that the ASMLib service is run first, and then the multipath service.

To install Oracle ASMLib, refer to the following website:

http://www.oracle.com/technetwork/server-storage/linux/install-082632.html">>http://www.oracle.com/technetwork/server-storage/linux/install-082632.html

To configure Oracle ASMLib on multipath disks, refer to the following website:

http://www.oracle.com/technetwork/server-storage/linux/multipath-097959.html">>http://www.oracle.com/technetwork/server-storage/linux/multipath-097959.html

Setting Privileged Host Monitoring Credentials

You should set the privilege delegation settings before setting Host monitoring credentials. Do the following:

Note:
This is required only on hosts that are used for snap cloning databases on EMC storage.

1. From the Setup menu, click on Security and then select Monitoring Credentials.

2. On the Monitoring Credentials page, select Cluster or Host according to your requirement and then. click Manage Monitoring Credentials.

3. On the Cluster Monitoring Credentials page, select Privileged Host Monitoring Credentials set for the cluster or host and click Set Credentials.

4. In the dialogue box that appears, specify the credentials, and click Save.

5. After the host monitoring credentials are set for the cluster, refresh the cluster metrics. Verify if the Storage Area Network metrics get collected for the hosts.

12.7.3.2 Customizing Storage Proxy Agents

A Proxy Agent is required when you register a NetApp, Sun ZFSSA or Solaris File System (ZFS) File System.

Before you register a NetApp storage server, meet the following prerequisites:

- Acquiring Third Party Licenses

- Uploading Storage Vendor SDK

- Overriding the Default SDK

- Overriding Third Party Server Components

Note:
Storage Proxy Agent is supported only on Linux Intel x64 platform.

Acquiring Third Party Licenses

The Storage Management Framework is shipped by default for Linux x86-64 bit platform, and is dependent on the following third party modules:

- Source CPAN - CPAN licensing apply

- IO::Tty (version 1.10)

- XML::Simple (version 2.20)

- Net::SSLeay (version 1.52)

- Open Source - Owner licensing apply

- OpenSSL(version 1.0.1e)

Uploading Storage Vendor SDK

Before you register a NetApp storage server, do the following:

1. Download the NetApp Manageability SDK version 5.0R1 for all the platforms from the following NetApp support site: http://support.netapp.com/NOW/cgi-bin/software">>http://support.netapp.com/NOW/cgi-bin/software

2. Unzip the 5.1 SDK and package the Perl NetApp Data OnTap Client SDK as a tar file. Generally, you will find the SDK in the lib/perl/NetApp folder. The tar file when extracted should look as follows:

NetApp.tar
- netapp
- Na  Element.pm
- NaServer.pm
- NaErrno.pm

For example, the Software Library entity Storage Management Framework Third Party/Storage/NetApp/default should have a single file entry that contains NetApp.tar with the above tar structure.

Note:
Ensure that there is no extra space in any file path name or software library name.

3. Once the tar file is ready, create the following folder hierarchy in software library: Storage Management Framework Third Party/Storage/NetApp

4. Upload the tar file as a Generic Component named default.

Note:
YTo upload the tar file, you must use the OMS shared filesystem for the software library.

The tar file should be uploaded to this default software library entity as a Main File.

Overriding the Default SDK

The default SDK is used for all the NetApp storage servers. However, the storage server may work with only a certain SDK. In such a case, you can override the SDK per storage server, by uploading an SDK and using it only for this particular storage server.

To override the existing SDK for a storage server, upload the tar file to the Software Library entity. The tar file should have the structure as mentioned in Step 3 of the previous section.

The Software Library entity name should be the same as the storage server name.

For example, if the storage server name is mynetapp.example.com, then the Software Library entity must be as follows:

Storage Management Framework Third Party/Storage/NetApp/mynetapp.example.com

Note:
A storage specific SDK is given a higher preference than the default SDK,

Overriding Third Party Server Components

By default, all the required third party components are shipped for Linux Intel 64 bit platform. If you need to override it by any chance, package the tar file as follows:

Note:
The tar file should contain a thirdparty folder whose structure should be as mentioned below:

thirdparty
|-- lib
| |-- engines
| | |-- lib4758cca.so
| | |-- libaep.so
| | |-- libatalla.so
| | |-- libcapi.so
| | |-- libchil.so
| | |-- libcswift.so
| | |-- libgmp.so
| | |-- libgost.so
| | |-- libnuron.so
| | |-- libpadlock.so
| | |-- libsureware.so
| | `-- libubsec.so
| |-- libcrypto.a
| |-- libcrypto.so
| |-- libcrypto.so.1.0.0
| |-- libssl.a
| |-- libssl.so
| `-- libssl.so.1.0.0
`-- pm
|-- CPAN
| |-- IO
| | |-- Pty.pm
| | |-- Tty
| | | `-- Constant.pm
| | `-- Tty.pm
| |-- Net
| | |-- SSLeay
| | | `-- Handle.pm
| | `-- SSLeay.pm
| |-- XML
| | `-- Simple.pm
| `-- auto
| |-- IO
| | `-- Tty
| | |-- Tty.bs
| | `-- Tty.so
| `-- Net
| `-- SSLeay
| |-- SSLeay.bs
| |-- SSLeay.so

Ensure that the tar file is uploaded to the Software Library entity which is named after the platform name, x86_64. The Software Library entity must be under the following:

Storage Management Framework Third Party/Server

The x86_64 entity, when uploaded is copied to all the storage proxy hosts irrespective of which storage server it would be processing. To use this entity on a specific storage proxy agent, name the entity after the host name.

For example, Storage Management Framework/Third Party/Server/x86_64 will be copied to any storage proxy host which is on an x86_64 platform. Similarly, Storage Management Framework Third Party/Server/myhost.example.com is copied only to myhost.example.com, if it is used as a storage proxy host.

The host name is given a higher preference than the platform preference.

12.7.4 Registering Storage Servers

To register a particular storage server, follow the procedure outlined in the respective section:

- Registering a NetApp or a Sun ZFS Storage Server

- Registering a Solaris File System (ZFS) Storage Server

- Registering an EMC Storage Server

12.7.4.1 Registering a NetApp or a Sun ZFS Storage Server

To register the storage server, follow these steps:

1. From the Setup menu, click on Provisioning and Patching, and then select Storage Registration.

2. On the Storage Registration page, in the Storage section, click on Register, and then select either NetApp Storage Appliance or Sun ZFS Storage Appliance, based on which storage server you want to register.

Note:
If you see a No named credentials available message, it means that no credentials are registered or the credentials are owned by another user.

Note:
You need the EM_STORAGE_ADMINISTRATOR role to complete the storage registration.

3. On the NetApp or Sun ZFS Storage Registration page, in the Storage section, do the following:

- Enter the storage server name in the Name field. Ensure that the name is the valid host name and contains no spaces and invalid characters.

- Select the protocol.

Note:
For NetApp storage, the connection is over http or https. For Sun ZFS storage, the connection is over ssh.

- Select the Storage Credentials, or click on the green plus sign to add.

Note:
These credentials will be used by the Management Agent to execute storage (NetApp or Sun ZFS) APIs.
Only credentials owned by the user are displayed here.

In the display box that appears, enter the storage server name and password. Confirm the password and click OK.

- Enter storage name aliases (optional).
The storage name alias should be in lowercase.

Note:
A storage name alias is any name that may have been used when mounting a volume from the storage.
For example: IP address, FQDN, DNS alias, and the like.

A storage alias is necessary to identify the database targets on the storage. The database targets are identified by mapping the mount points to the files used by the database. For example, if the storage mystorage.com has an alias mystorage.net, and a database uses a data file mounted as mystorage.net:/u01, then mystorage.net must be added as an alias for the discovery to work.

When you register the storage, use the admin interface as the storage name. List the data interfaces in the storage alias section. The registered storage name will be used to perform registration operations and while mounting the volumes on target host, it will give preference to interfaces listed as storage aliases.

4. In the Agent to Manage Storage section, do the following:

- Click Add to add a Management Agent host. A Storage Agent display box appears. Select a Management Agent from the Target Name column of the table. Then, click Select.

Note:
The Management Agent list displays only Linux X64 Management Agents.

The Management Agent selected is used for performing operations on the storage server.

- Once a Management Agent is selected, the Management Agent credentials are found and a named credential for the host is displayed.

Note:
The Management Agent credentials are used to connect to the Management Agent from Oracle Management Service.

Multiple Management Agents can be configured to monitor the storage device. Click Add to choose a second Management Agent if required.

Note:
Configuring multiple Management Agents to monitor the storage device provides you with a backup in the event that an host is down or the Management Agent is under blackout.

- Click Submit to register the storage server.

12.7.4.2 Registering a Solaris File System (ZFS) Storage Server

To register the storage server, follow these steps:

1. From the Setup menu, click on Provisioning and Patching, and then select Storage Registration.

2. On the Storage Registration page, in the Storage section, click on Register, and then select Solaris File System (ZFS)

Note:
If you see a No named credentials available message, it means that no credentials are registered or the credentials are owned by another user.

Note:
You need the EM_STORAGE_ADMINISTRATOR role to complete the storage registration.

3. On the Register File System (ZFS) page, in the Storage section, do the following:

- Enter the Solaris system name in the Name field. Ensure that the name is the valid host name or IP address and contains no spaces and invalid characters.

- Select the protocol.

- Select the Storage Credentials, or click on the green plus sign to add.

Note:
These credentials will be used by the Management Agent to execute Solaris file system APIs.
Only credentials owned by the user are displayed here.

In the display box that appears, enter the storage server name and password. Confirm the password and click OK.

- Enter storage name aliases (optional).
The storage name alias should be in lowercase.

Note:
A storage name alias is any name that may have been used when mounting a volume from the storage.
For example: IP address, FQDN, DNS alias, and the like.

Storage alias is necessary to identify the database targets on the storage. The database targets are identified by mapping the mount points to the files used by the database. For example, if the storage mystorage.com has an alias mystorage.net, and a database uses a data file mounted as mystorage.net:/u01, then mystorage.net must be added as an alias for the discovery to work.

When you register the storage, use the admin interface as the storage name. List the data interfaces in the storage alias section. The registered storage name will be used to perform registration operations and while mounting the volumes on target host, it will give preference to interfaces listed as storage aliases.

4. In the Synchronize Schedule section, specify the frequency to synchronize the storage details with the hardware.
Ensure that the zpools setup is completed before clicking Submit. To setup the zpools, refer to Configuring Solaris File System (ZFS) Users and Pools.

12.7.4.3 Registering an EMC Storage Server

To register the storage server, follow these steps:

Note:
Before you register an EMC storage server, the storage server should be prepared. To prepare the storage server refer to Configuring EMC Storage Servers.

1. From the Setup menu, click on Provisioning and Patching, and then select Storage Registration.

2. On the Storage Registration page, in the Storage section, click on Register, and then select EMC Storage Appliance.

Note:
If you see a No named credentials available message, it means that no credentials are registered or the credentials are owned by another user.

Note:
You need the EM_STORAGE_ADMINISTRATOR role to complete the storage registration.

3. On the Register EMC Storage Appliance page, in the Storage section, do the following:

- Specify the storage server name in the Name field. Ensure that the name is the valid storage name and contains no spaces and invalid characters.

- For EMC storage, the connection is over SMI-S protocol. Specify the SMI-S Provider URL.

- Specify the SMI-S User Credentials, or click on the green plus sign to add.

Note:
These credentials are used by the Enterprise Manager to interact with the EMC storage appliance.
The credentials should be of the Administrator in the SMI-S provider and not that of the storage.

Only credentials owned by the user are displayed here.

In the display box that appears, enter the SMI-S User name and password. Confirm the password and click OK.

4. In the Synchronize Schedule section, specify the frequency to synchronize the storage details with the hardware.

Click Submit.

12.7.5 Administering the Storage Server

To administer the storage server, refer to the following sections:

- Synchronizing Storage Servers

- Deregistering Storage Servers

12.7.5.1 Synchronizing Storage Servers

When you register a storage server for the first time, a synchronize job is run automatically. However, to discover new changes or creations, you should schedule a synchronize job to run at a scheduled time, preferably during a quiet period when Snap Clone actions are not in progress. To do this, follow these steps:

1. On the Storage Registration page, in the Storage section, click Synchronize.

Note:
When you click on Synchronize, a deployment procedure is submitted which discovers all databases monitored by Enterprise Manager Cloud Control which can be used for Snap Clone.
Windows databases are not discovered as part of storage discovery. This is because the Windows storage NFS collection does not happen at all. For further details please refer to the MOS note 465472.1

You need EM_STORAGE_OPERATOR role along with GET_CREDENTIAL privilege on the Storage Server and Storage Management Agent credentials to be able to synchronize the storage.

2. A confirmation box appears. Click OK.

This action now submits a one-time synchronization job.

Note:
The synchronization job fetches latest storage information, and recomputes the mapping between storage volumes and databases.

3. On the Storage Registration page, in the Storage section, to view the procedure details of the Management Agent host, click on the value (for example, Scheduled) in the Status column.

4. On the Provisioning page, in the Procedure Steps section, click View, and then select Expand All. Keep clicking the Refresh button on the page to view the procedure activity as it progresses.

The synchronization status of the Management Agent on the Storage Registration page, changes to Succeeded once the synchronization process is complete.

5. To update a synchronize schedule of a registered storage server, select a storage server on the Storage Registration page and then click on Edit. On the Edit Storage page, in the Synchronize Storage section, edit the repetition time and frequency of the synchronize job.

Note:
The frequency of a synchronization job is set at 3 hours by default.

Click Submit.

Note:
The Associating Storage Volumes With Targets step relies on both database target metrics and host metrics. The database target (oracle_database/rac_database) should have up-to-date metrics for the Controlfiles, Datafiles and Redologs. The File Systems metric should be up to date for the hosts on which the database is running.

12.7.5.2 Deregistering Storage Servers

To deregister a registered storage server, follow these steps:

Note:
To deregister a storage server, you need FULL_STORAGE privilege on the storage along with FULL_JOB privilege on the Synchronization GUID of the storage server.

1. From the Setup menu, click on Provisioning and Patching, and then select Storage Registration.

2. On the Storage Registration page, in the Storage section, select a storage server from the list of registered storage servers.

3. Select Remove.
On the Remove Storage page, select the storage server that you want to deregister, and then click Submit.

The storage server is now deregistered.

Note:
Once a storage is deregistered, the Snap Clone profiles and Service Templates on the storage will no longer be functional, and the relationship between these Profiles, Service Templates and Snap Cloned targets will be lost.

Note:
It is recommended to delete the volumes created using Enterprise Manager before deregistering a storage. As a self service user, you should submit deletion requests for the cloned databases.
To submit these deletion requests, click Remove from the Hierarchy tab on the Storage Registrations page for deleting the volumes that were created by Enterprise Manager for hosting test master databases.

12.7.6 Managing Storage Servers

To manage the storage server, refer to the following sections:

- Managing Storage Allocation

- Managing Storage Access Privileges

- Viewing Storage Registration Overview and Hierarchy

- Editing Storage Servers

12.7.6.1 Managing Storage Allocation

You can manage storage allocation by performing the following tasks:

- Editing the Storage Ceiling

- Creating Storage Volumes

- Resizing Volumes of a Database

- Creating Thin Volumes (for EMC Storage Servers)

- Understanding Space Utilization on EMC Storage Servers

Editing the Storage Ceiling

Storage Ceiling is the maximum amount of storage from a project, aggregate, or thin pool that Enterprise Manager is allowed to use. This ensures that Enterprise Manager creates clones in that project only till this limit is reached. When a storage project is discovered for the first time, the entire capacity of the project is set as the ceiling. In case of Sun ZFS, the quota set on the project is used.

Note:
You must explicitly set quota property for the Sun ZFS storage project on the storage end. Also, the project should have a non zero quota set on the storage end. Else, Enterprise Manager will not be able to clone on it.

To edit the storage ceiling, do the following:

1. On the Storage Registration page, from the Storage section, select the storage server for which you want to edit the storage ceiling.

2. Select the Contents tab, select the aggregate, and then click Edit Storage Ceiling.

Note:
Edit Storage Ceiling option enables you modify the maximum amount of storage that Enterprise Manager can use. You can create clones or resize volumes only till this limit is reached.

3. In the Edit Storage Ceiling dialog box, enter the storage ceiling, and then, click OK.

Creating Storage Volumes

To create storage volume, do the following:

1. On the Storage Registration page, from the Storage section, select the storage server for which you want to create storage volume.

2. Select the Contents tab, select the aggregate, and then select Create Storage Volumes.

3. On the Create Storage Volumes page, in the Storage Volume Details section, click Add.

4. Select a storage and specify the size in GB (size cannot exceed the storage size). The specified size should be able to accommodate the test master database size, without consuming the entire storage size.
Next, specify a mount point starting with /.

For example,
If the storage is "lunpool", select the "lunpool".
The specified size under the size column should not exceed the storage space. If the size of the "lunpool" is 100GB and the test master database is 10 GB, then specify size as 10GB.
The mount point should be a meaningful mount point starting with "/".
For example: /oracle/oradata

5. In the Host Details section, specify the following:

- Host Credentials: Specify the target host credentials of the Oracle software.

- Storage Purpose: For using Snap Clone, the most important options are as follows:

- Oracle Datafiles for RAC

- Oracle Datafiles for Single Instance

Note:
You can also store the OCR and Voting disks and Oracle binaries in the storage volume,

- Platform: Select the supported target platform. The volume will be mounted on the supported target platform.

- Mount Options: Mount options field is automatically filled based on the values specified for the storage purpose and the platform. Do not edit the mount options.

- Select NFS v3 or NFS v4.

6. Select one or more hosts to perform the mount operations by clicking Add.
If you select Oracle Datafiles for RAC, you would normally specify more than one host. The volume is then mounted on the specified hosts automatically after the completion of the procedure activity.

7. Click Submit.
When you click Submit, a procedure activity is executed. On completion of the procedure activity, the volumes get mounted on the target system. You can now proceed to create a test master database on the mounted volumes on the target system.

Resizing Volumes of a Database

When a database runs out of space in any of its volumes, you can resize the volume according to your requirement. To resize volume(s) of a clone, follow these steps:

Note:
This is not available for EMC storage servers.

Note:
Resizing of volumes of a Test Master database cannot be done using Enterprise Manager, unless the volumes for the Test Master were created using the Create Volumes UI.

Note:
You need the FULL_STORAGE privilege to resize volumes of a database or a clone. Also, ensure that the underlying storage supports quota management of volumes.

1. On the Storage Registration page, from the Storage section select the required storage server.

2. In the Details section, select the Hierarchy tab, and then select the target.
The Storage Volume Details table displays the details of the volumes of the target. This enables you to identify which of the volume of the target is running out of space.

3. In the Volume Details table, select Resize.

4. On the Resize Storage Volumes page, specify the New Writable Space for the volume or volumes that you want to resize. If you do not want to resize a volume, you can leave the New Writable Space field blank.

5. You can schedule the resize to take place immediately or at a later time.

6. Click Submit.

Note:
You can monitor the re-size procedure from the Procedure Activity tab.

Creating Thin Volumes

This section is only for EMC Symmetrix VMAX Family and EMC VNX Storage.

An EMC Symmetrix VMAX Family or an EMC VNX storage enables you to create thin volumes and ASM disks from the created thin volumes. To create thin volumes on an EMC Symmetrix VMAX Family or EMC VNX storage, follow these steps:

Note:
Enterprise Manager enables you to create a thin volume from a thin pool after clusterware and ASM components are installed.
After you install the clusterware and ASM components, the asm_diskstring parameter may be set to Null. This could cause failure during creation of the thin pool.

To prevent this from happening, set the asm_diskstring parameter to a valid disk path and restart the ASM instance.

For example, set the asm_diskstring parameter as:

/dev/oracleasm/disks/*

1. On the Storage Registration page, in the Storage section, select the EMC Symmetrix VMAX Family or EMX VNX storage on which you want to create thin volumes.

2. In the Details section, select the Contents tab, and then click Create Thin Volume.

3. In the Storage Details section, the ASM Disk Group is set to Create with External Redundancy, by default. ASM Disk Group creation is optional. If you want to create an ASM Disk Group with redundancy you can skip this step for now by selecting Do not create. I will create later. You can then later create it using the Oracle Enterprise Manager ASM target home page or the ASM Configuration Assistant.

4. Click Add to create multiple LUNs of same size and create an ASM disk group with those volumes. You can create one or more disk groups at a time.

5. Select the thin pool/storage pool, and then specify the number of thin volumes, and the size for the thin volume.

Note:
It is recommended to create larger LUNs and lesser number of LUNs.
For example, if you want a disk group of size 200 GB, create 1 LUN of size 200 GB and make a disk group out of it. Do not create 10 x 20 GB LUNs for it.

Note:
A thin volume of size more than 240GB is not permitted by default on a VMAX storage. To create thin volumes of size more than 240GB, request the storage administrator to enable auto meta on the VMAX. The storage administrator can remove this restriction or in the alternative, create multiple thin volumes of size less than 240GB.
To create LUNs of size more than 240GB, contact the storage administrator to enable auto meta.

Do not create LUNs of size more than 2TB.

6. In the Host Details section, specify a host or a cluster, or select one by clicking the Search icon. The disks will be created on the ASM instance present on this host or cluster. A single disk partition is created on all the presented disks.

Note:
Only Linux and Solaris hosts are supported.

7. Specify the root and grid infrastructure credentials. Only the credentials that you own are listed.

Click Submit.

Note:
Once a Create Target request succeeds and a diskgroup has been created, you must manually set the attributes of the diskgroup in compatible.asm and compatible.rdbms depending on the version of the database that will be installed on the diskgroup.

Understanding Space Utilization on EMC Storage Servers

Writable space implementation on EMC Storage Server is different from NetApp, Sun ZFS SA, and Sun ZFS storage servers. In NetApp, Sun ZFS SA, and Sun ZFS storage servers, writable space defined in a service template will be allocated from the storage pool to the clone database even if data is not written to the volume. In EMC storage servers (VMAX and VNX) space is only reserved on the storage pool. The space is consumed only when data is written to the volume or LUN.

For example, if you define 10GB writable space in a service template, in NetApp, Sun ZFS SA, and Sun ZFS, space of 10GB will be allocated to the clone database from storage pool even if data is not written to the volume. In an EMC storage, space is consumed only when data is written to the volume or LUN.

In Enterprise Manager, to create thin volumes (ASM Disk groups/LUNS) up to the maximum size defined for the storage pool, select the Contents tab on the Storage Registration page, and then select Create Thin Volume.The test master database can then be created on ASM Disk groups or LUNs.

The following graphic shows the Test Master database and the created clone database:

The following graphic shows the storage volume of the Test Master database:

The following graphic shows storage volume of the clone database:

Note:
ASM disk groups, as discussed, can be created using the Create Thin Volumes option. However, they can also be created using other methods.The following example illustrates the space usage on EMC VMAX and VNX storage servers:
Let us assume the Storage Pool is of size 1 TB and Storage ceiling is set to 1 TB.

Scenario 1:

If an Enterprise Manager Storage Administrator creates 2 ASM disk groups, as an example, DATA and REDO of sizes 125GB and 75GB respectively through the Create Thin Volume method and the Test Master database is created on those disk groups, used space on DATA and REDO disk groups are 100GB and 50GB respectively (remaining free space on DATA and REDO disk groups are 25GB), then each clone database created by a self service user will be allocated 25GB of writable space on the DATA and REDO disk groups.

New data written to the cloned database is the actual used space and can grow up to 25GB on each disk group. The DATA and REDO disk groups in this scenario.

The Enterprise Manager Storage Administrator will be able to create 600GB LUNs through the Create Thin volume method, assuming a clone database is created from a 200GB Test Master database. The size of the clone database will also be deducted from available space. The Self Service User will be able to create multiple clones. The number of clone databases that can be created cannot be estimated as it depends on the amount of new data written to the initial clone database in that storage pool.

Scenario 2:

If an Enterprise Manager Storage Administrator creates 2 ASM disk groups, as an example, DATA and REDO of sizes 850GB and 150GB respectively through the Create Thin Volume method, and the Test Master database is created on those ASM disk groups, used space on the DATA and REDO disk groups are 750GB and 50GB respectively (remaining free space on DATA and REDO is 100GB), then each clone database created by a self service user will be allocated 100GB of writable space on DATA and REDO disk groups.

New data written to the cloned database is the actual used space and can grow up to 100GB on each disk group. The DATA and REDO disk groups in this scenario.

Similar to Scenario 1, the Self Service User will be able to create multiple clones, but number of clone databases cannot be estimated. The Enterprise Manager Storage Administrator will not be able to create additional disk groups in scenario 2. This is the major difference when compared to Scenario 1.

In both scenarios, only the actual used space of the clones will be subtracted from the Storage Ceiling.The general formula for writable disk space is the difference between the LUN size and the actual space occupied by data.

12.7.6.2 Managing Storage Access Privileges

To manage storage access privileges for a registered storage server, follow these steps:

1. On the Storage Registration page, in the Storage section, select a storage server from the list of registered storage servers.

Note:
The Storage Registration page displays only the databases which you have VIEW_STORAGE privilege on.

2. Click Manage Access.

3. On the Manage Access page, do the following:

- Click Change, if you need to change the Owner of the registered storage server.

Note:
The Owner of a registered storage server can perform all actions on the storage server, and grant privileges and roles to other Administrators.

- Click Add Grant to grant privileges to an Administrator, Role or both.

- On the Add Grant page, enter an Administrator name or select the type, and then click Go.

- Select an Administrator from the list of Administrators or Roles, and then click Select.

4. On the Manage Access page, you can change privileges of an Administrator or Role by selecting the Administrator or Role from the Grantee column, and then clicking Change Privilege.

5. In the Change Privilege display box, you can select one of the three following privileges:

- View Storage (ability to view the storage)

- Manage Storage (ability to edit the storage)

- Full Storage (ability to edit or remove the storage)

Click OK.

6. You can also revoke a grant to an Administrator by selecting the Administrator from the Grantee column, and then clicking Revoke Grant.

7. When you are done with granting, revoking, or changing privileges to Administrators or Roles, click Submit.

Note:
To be able to use the storage server, you also need to specifically grant privileges to the storage server and storage Management Agent credentials to the user.

12.7.6.3 Viewing Storage Registration Overview and Hierarchy

To view the storage registration overview, on the Storage Registration page, in the Details section, select the Overview tab. The Overview section provides a summary of storage usage information. It also displays a Snap Clone Storage Savings graph that shows the total space savings by creating the databases as a Snap Clone versus without Snap Clone.

Note:
If you have NetApp volumes with no space guarantee, you may see negative allocated space in the Overview tab. Set guarantee to 'volume' to prevent this.

To view the storage registration hierarchy, on the Storage Registration page, in the Details sections, select the Hierarchy tab. This displays the storage relationships between the following:

- Test Master Database

- Database Profile

- Snap Clone Database

- Snap Clone Database Snapshots

You can select a row to display the corresponding Volume or Snapshot Details.

If a database profile or Snap Clone database creation was not successful, and it is not possible to delete the entity from its respective user interface, click on the Remove button to access the Manage Storage page. From this page, you can submit a procedure to dismount volumes and delete the snapshots or volumes created from an incomplete database profile or snap clone database.

Note:
The Manage Storage page only handles cleanup of storage entities and does not remove any database profile or target information from the repository.
The Remove button is enabled only if you have the FULL_STORAGE privilege.

You can also select the Procedure Activity tab on the right panel, to see any storage related procedures run against that storage entity.

To view the NFS Exports, select the Volume Details tab. Select View, Columns, and then select NFS Exports.

The Volume Details tab, under the Hierarchy tab also has a Synchronize button.This enables you to submit a synchronize target deployment procedure. The deployment procedure collects metrics for a given target and its host, determines which volumes are used by the target, collects the latest information, and updates the storage registration data model. It can be used when a target has been recently changed, data files added in different locations, and the like.

12.7.6.4 Editing Storage Servers

To edit a storage server, on the Storage Registration page, select the storage server and then, click Edit. On the Storage Edit page, you can do the following:

- Add or remove aliases.

- Add, remove, or select an Agent that can be used to perform operations on the storage server.

- Specify a frequency to synchronize storage details with the hardware.

Note:
If the credentials for editing a storage server are not owned by you, an Override Credentials checkbox will be present in the Storage and Agent to Manage Storage sections. You can choose to use the same credentials or you can override the credentials by selecting the checkbox.

13 Setting Up an MWaaS Cloud

This chapter covers the initial configuration required to set up and enable a Middleware as a Service Cloud which includes WebLogic as a Service, SOA as a Service, and OSB as a Service. It contains the following sections:

- About Middleware as a Service

- New Features and Enhancements in this Release

- Getting Started with Middleware as a Service

13.1 About Middleware as a Service

The Oracle Middleware as a Service (MWaaS) service family includes the following:

- WebLogic as a Service (WLaaS)

- SOA as a Service (SOaaS)

- Service Bus as a Service (SBaaS)

- Java Application Service (JVMaaS)

Oracle Enterprise Manager Cloud Control 12c offers a single management tool for creating, monitoring and managing a private MWaaS environment. MWaaS delivers a complete runtime environment comprised of all services necessary to deploy and run an enterprise-class application, including services such as application hosting, persistence store, application integration and APIs that enable programmatic access to additional computing services that might be required by an application. MWaaS facilitates deployment of applications without requiring the developer to deal with the complexity of underlying hardware and software components, thereby achieving cheaper and faster time-to-delivery.

Middleware as a Service provides:

- A shared, consolidated platform on which middleware services can be provisioned.

- A self service model for deploying and managing applications.

- Seamless integration with other services such as a Database as a Service (DBaaS) and Java Diagnostics as a Service (JDaaS).

- Ability to scale up and scale down resources manually and based on policies.

- Metering and Chargeback based on platform usage and the underlying infrastructure.

13.2 New Features and Enhancements in this Release

The following enhancements have been made in this release:

- A single consolidated script to perform create, delete, scale up, and scale down operations can be executed on the hosts on which the Administration Server and Managed Servers are running, and on external hosts.

- By default, the Domain Home Base Directory was created under the Middleware Home. The location of this directory can now be changed either by the self service administrator or the self service user.

- The self service administrator must specify a different location while creating the middleware pool.

- If the Advanced Settings option is enabled, the self service user can specify the Domain Home Base directory for each instance.

Note:
The directory location specified by the self service user takes precedence over the location specified by the self service administrator.

- Placement Enhancements:

- Rack Aware Exalogic Placement: If the middleware pool contains Exalogic host targets, the self service administrator can set the Exalogic with Multiple Racks field to Yes to ensure that servers from the same instance are distributed among available racks to ensure high availability.

- Load Distribution Among Hosts: The self service administrator can set the Distribute Load on Available Hosts field to Yes to spread the server allocation among available hosts or set it to No to use the first available host fully before moving on to the next host.

- The self service administrator can choose to enable Advanced Settings option to the self service user. If these settings are enabled, the self service user can specify custom parameters such as instance base directory, JVM parameters, and so on.

- While creating a service instance, the self service user can now specify the minimum number of servers that must be maintained during the scale down operation.

- WebLogic Server 12.1.2 and 12.1.3 JRF profiles are now supported.

- Custom certificates are now supported. New profiles containing these certificates must be created. These certificates must be placed in the same location with same name on all the hosts in the middleware pool or placed in a NFS mounted location that is accessible to all the hosts in the middleware pool.

- Middleware pools can now contain member hosts without Oracle Homes when used in combination with Middleware Profiles with binaries. In this case, Oracle Homes will be created on the fly.

13.3 Getting Started with Middleware as a Service

This section helps you get started by providing a list of steps that must be performed to get started in setting a private middleware cloud. Before you set up MWaaS, you must have completed the common tasks listed in Section 11.2, "Common Setup Tasks".

Table 13-1 Getting Started with Middleware as a Service

Step

Task

Role

1

You may need to configure Privilege Delegation Settings on your managed hosts. See Section 3.5, "Configuring Privilege Delegation Settings".

Note: This is an optional step.

Super Administrator

2

Creating a Middleware Home. See Section 13.3.2, "Provisioning a Middleware Home".

Note: This is an optional step. It is required only if a shared middleware home (NFS location) is used. If middleware home is local, it is provisioned by the deployment procedure used to create SOA or Service Bus service.

Self Service Administrator

3

Load Middleware Provisioning Profiles into the Software Library. See Section 13.3.1, "Creating Provisioning Profiles".

Self Service Administrator

4

If you are setting up WebLogic as a Service (WLaaS), you must create a WebLogic Domain Provisioning Profile. See Section 13.3.1.1, "Creating a WebLogic Domain Provisioning Profile".

Self Service Administrator

13.3.1 Creating Provisioning Profiles

Provisioning profiles can be used to standardize deployments and help reduce errors when deployment procedures are configured. These provisioning profiles are used by operators for mass deployment. You can create a Middleware Provisioning Profile from a domain by using the Software Library. See Section 13.3.1.1, "Creating a WebLogic Domain Provisioning Profile" for details.

13.3.1.1 Creating a WebLogic Domain Provisioning Profile

A WebLogic Domain Provisioning Profile consists of the Middleware Home, binaries, and the domain configuration. You can create a profile, save it in the Software Library, and then use the saved profile as the source for creating new WebLogic domains. This will ensure that future WebLogic installations follow a standard, consistent configuration.

Before you create a WebLogic Domain Provisioning profile, ensure that the following prerequisites are met:

- The Management Agent must be running on the Administration Server.

- You must have the host credentials for the Administration Server running on the source machine.

- The WebLogic Domain for which the profile is being created must be a monitored target in Enterprise Manager.

- The disk space required to create a profile is calculated as follows:
Disk Space = Middleware Home Size + WebLogic Domain Size + Space for Temporary Scripts

- If Log Viewing support is required on the service instance, the self service administrator must do the following:

- Configure the host credentials required for querying the log files. From the Target menu, select Logs, then select Configure Log Location Settings to access the corresponding WebLogic domain target page and configure the credentials.

- Grant privileges to the self service user to access the host credentials specified in the Configure Log Location Settings page.

- Provide the view target privilege to the self service user to all the host targets associated with this WebLogic domain.

- If Fusion Middleware console access support is required, you must configure the WebLogic domain through Fusion Middleware Control. This ensures that the Fusion Middleware Control link is displayed in the Service Instance Home page in the Middleware Self Service Portal. See Section 28.3, "Viewing the Middleware Service Home Page".

- The WebLogic Domain that is used to create a profile must meet the following requirements:

- The machine associated with the WebLogic Server must not be of Unix type.

- The Administration Server must not be associated with a machine.

- The Administration Server must be present on the same host as one of the Managed servers.

- The maximum Java heap size of all the servers must have an appropriate -Xmx setting in multiples of 256. For example, Xms1024m -Xmx1536m -XX:PermSize=512m -XX:MaxPermSize=1536m and so on. You must define the -Xmx server setting to ensure that the MWaaS memory metric and quota checking feature works properly. The value of the memory metric for a MWaaS service is the sum of the maximum heap available for all servers in the service.

For detailed instructions on how to create a WebLogic Domain Provisioning profile, see the Enterprise Manager Lifecycle Management Guide.

13.3.2 Provisioning a Middleware Home

A Middleware Home consists of one or more Oracle Homes. The Middleware Home must be created on the hosts that are part of the PaaS Infrastructure Zone. See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone" for details.

You can:

- Use pre-provisioned Oracle Homes: This is the recommended approach as it requires less turnaround time for instance creation and scale up operations.

- Create Oracle Homes on demand: If pre-provisioned Oracle Homes are not present, you can create an Oracle Home on the fly or on demand. To create an Oracle Home on the fly, you must use a profile that contains Oracle Home binaries. This option requires less administrator overhead but more turnaround time.

- Use a combination of both: You can have a combination of both (pre-provisioned Oracle Homes and hosts without Oracle Homes). In this case, Oracle Homes are created on the fly on hosts where they are not present.

If you are provisioning the Middleware Home on multiple hosts, you must specify a shared mount directory that is accessible by all destination hosts.

Note:
You can also manually install the Middleware Home and use the Discover Promote Oracle Home Target job to discover it in Enterprise Manager.

To create a Middleware Home, you must run the Provision from Oracle Middleware Home Gold Image deployment procedure.

Prerequisites

Before running this deployment procedure, you must meet the following prerequisites:

- The user must have Write permissions on:

- The Working Directory on all destination hosts.

- The Middleware Home on all destination hosts.

- An Oracle Middleware Home Gold Image must be present in the Software Library. For details on creating this gold image. You can create an Oracle Middleware Home Gold Image and save it in the Software Library. You can then use this gold image as the source for future Middleware Home installations. For the detailed procedure on creating an Oracle Middleware Home Gold Image, see the Enterprise Manager Lifecycle Management Guide.

13.3.2.1 Provision from Oracle Middleware Home Gold Image Deployment Procedure

Note:

- If you have manually created and discovered a Middleware Home, this step can be ignored.

- You cannot have more than one Middleware Home of the same WebLogic Server version on a single host.

You can clone a Middleware Home from a gold image present in the Software Library. This gold image must have been created earlier by pointing to an existing Middleware Home. For a detailed description on cloning a Middleware Home from a gold image, refer to the Enterprise Manager Lifecycle Management Guide.

Part VI

Provisioning New Database Artifacts

This section describes the procedures to provision new databases, schemas, and pluggable databases using Database as a Service.

It contains the following chapters

- Chapter 14, "Getting Started with Database as a Service"

- Chapter 15, "Creating Databases Using Database Template"

- Chapter 16, "Creating Schemas"

- Chapter 17, "Provisioning Pluggable Databases"

14 Getting Started with Database as a Service

This chapter describes the procedure to different DBaaS use cases supported in this release. It contains the following sections:

- Supported DBaaS Use Cases

- Getting Started with DBaaS

14.1 Supported DBaaS Use Cases

The following figure provides an overview of the different flavors of Enterprise Manager DBaaS.

Figure 14-1 DBaaS Use Cases

This table lists the DBaaS use cases that are supported in this release and lists the different methods (GUI, EMCLI, and Rest API) that can be used to run these use cases.

Table 14-1 DBaaS Use Cases

Service Type

Service Offering

Using Graphical User Interface

Using EMCLI

Using Rest API

New

Creating Databases Using Database Template.

Chapter 15, "Creating Databases Using Database Template"

Section 50.2, "Creating Databases Using Database Template With REST APIs and EM CLI Verbs"

Section 50.2, "Creating Databases Using Database Template With REST APIs and EM CLI Verbs"

Schema

- Creating an Empty Schema

- Creating a Schema Based on Profile

Chapter 16, "Creating Schemas"

Section 50.3, "Creating Empty Schemas and Schemas Based on Profile With REST APIs and EM CLI Verbs"

Section 50.3, "Creating Empty Schemas and Schemas Based on Profile With REST APIs and EM CLI Verbs"

Pluggable Database

- Creating an Empty Pluggable Database

- Creating a Pluggable Database Based on Profile

Chapter 17, "Provisioning Pluggable Databases"

Section 50.4, "Creating Empty PDBs and PDBs Based on Profile With REST APIs and EM CLI Verbs"

Section 50.4, "Creating Empty PDBs and PDBs Based on Profile With REST APIs and EM CLI Verbs"

Clone

Full Clone

- Cloning Databases Using RMAN Backup

- Cloning Databases Using RMAN Duplicate

Chapter 19, "Creating Full Clones"

Section 50.7, "Creating Full Database Clones Using RMAN With REST APIs and EM CLI Verbs"

Section 50.7, "Creating Full Database Clones Using RMAN With REST APIs and EM CLI Verbs"

Snap Clone

- Software Solution
Sun ZFS

Clone DB

- Hardware Solution
ZFS File System

NetApp

EMC

Section 20, "Creating Snap Clones for Databases"

Section 50.6, "Creating Databases Using Snap Clone With REST APIs and EM CLI Verbs"

Section 50.6, "Creating Databases Using Snap Clone With REST APIs and EM CLI Verbs"

14.2 Getting Started with DBaaS

To get started with database as a service, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. The following page appears:

Figure 14-2 Cloud Home Page

2. From the Oracle Cloud menu, select Setup, then select Getting Started. You must first perform the common setup tasks as described in Section 11.2, "Common Setup Tasks". This page is the main entry point for setting up database as a service.

3. Click the Setup link next to the Database Service Family in the left panel. Select one of the service types (Database, Pluggable Database, or Schema) from the drop down list and perform the necessary tasks required for the selected service type.

Figure 14-3 Getting Started with DBaaS

4. Depending on your selection, the list of tasks can be different. Any step that has been configured is marked with a green check mark and the non-configured are listed as not configured.

Note:
The service types you can access are based on your user role. For example, if you have logged in as a user (for instance DBAAS_ADMIN) who can access only Database service type, you will see only the tasks relevant to that service type. But if you have logged in as a user with the EM_SSA_ADMINISTRATOR role, you can view all the service types. See Section 3.3, "Defining Roles and Assigning Users" for more details.

5. Depending on the service type you wish to configure, you can perform the relevant tasks required to set up that service type.

- See Part VI, "Provisioning New Database Artifacts"

- See Part VI, "Cloning Databases"

15 Creating Databases Using Database Template

This chapter describes the process involved in creating single instance and cluster databases using database template based profiles. It contains the following sections:

- Creating Databases Using Database Template

- Provisioning Standby Databases

15.1 Creating Databases Using Database Template

The DBCA template supports both structure plus data and structure only types. This database provisioning profile is created from the production or source database registered with Enterprise Manager. It supports both structure plus data and structure only types. This option is recommended if the database size being created is less than 50 GB.

The table below shows the list of tasks that are involved in creating a database using the database template based profile.

Table 15-1 Creating Databases Using Database Template

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

2

Create resource providers.

- Create one or more PaaS Infrastructure Zones.

- Create one or more database pools.

See Section 15.1.1, "Creating Resource Providers"

6

Create a DBCA template based database provisioning profile.

See Section 15.1.2, "Creating a Database Provisioning Profile Using Database Template"

4

Configure the request settings.

See Section 15.1.3, "Configuring Request Settings"

5

Define quotas for each self service user.

See Section 15.1.4, "Defining Quotas"

7

Create a service template based on the profile you have created.

See Section 15.1.5, "Creating a Service Template Using Database Template Profile"

8

Configure the Chargeback Service.

See Section 15.1.6, "Configuring Chargeback"

9

While creating a database, select the service template (associated with the database template based profile) you have created.

See Section 15.1.7, "Requesting a Database"

15.1.1 Creating Resource Providers

You must create one or more resource providers which include:

- PaaS Infrastructure Zones: See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone"

- Database Pool: See Section 11.2.2.2, "Creating a PaaS Pool"

15.1.1.1 Creating a Database Pool for Database as a Service

To create a database pool for database as a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Database service family, click the Database Pool link and click Create.

Figure 15-1 Create Database Pool

3. In the Credentials region, specify the following credentials:

- Host: Required for creating and starting the database.

- Root: This is an optional field. It is required if you plan to use this database pool for database requests based on snap clone profile.

- Grid Infrastructure: This is an optional field. It is required for registering database services with credentials.

- Automatic Storage Management: This is an optional field. It is required if you plan to use this database pool for live cloning on any database running on ASM.

4. Enter a name and description for the database pool.

5. Specify the following details:

- PaaS Infrastructure Zone: Select the PaaS Infrastructure Zone into which the database instance is to be provisioned.

- Database Configuration: Specify the configuration of the database being provisioned. This can either be Single Instance or Cluster Database (RAC) but cannot be a combination of both.

- Platform and Version: Specify the platform and version of the database being deployed.

6. Click Add and select one or more Oracle Homes to be added to the database pool.

7. In the Maximum Number of Database Instances (per host), enter the maximum number of database instances that can be running on each host in the pool.

Note:
For RAC databases. the value specified in this field is used to ensure that the nodes on which the database is be created meets this criteria.

8. Click Submit to create a database pool. The newly created pool will appear in the Database Cloud Self Service Portal Setup: Database Pools page. The database pool can now be added to the Service Template.

15.1.2 Creating a Database Provisioning Profile Using Database Template

To create a database provisioning profile, follow these steps:

1. You can access the Database Provisioning page using either of the following ways:

- From the Enterprise menu, select Cloud, and then select Cloud Home. On the Cloud home page, click Oracle Cloud, select Setup, and then select Data Sources. On the Database: Data Sources page, in the Data Profiles tab, click Create.

- From the Enterprise menu, select Provisioning and Patching, and then select Database Provisioning. On the Database Provisioning page, in the Profiles section, click Create.

- From the database target home page, click Oracle Database, select Provisioning, and then select Create Provisioning Profile.

2. On the Reference Target page, click the search icon to select a target.

3. In the Search and Select:Targets display box, select the database you want to create a profile for, and then, click Select.

4. On the Reference Target page, select the following:

- Data Content

- Structure Only to include only the structural files in the template.
Note: You can use the Structure and Data option if the database size is lesser than or equal to 5 GB.

- Create

- Database Template

5. In the Credentials section, select the database. In the Credentials column, you can select Named Credentials and then select a credential name from the Credential Name column (or) select Preferred Credentials. Click Next.

6. On the Create Database Provisioning Profile: Page, in the Profile Information section, do the following:

- Specify or select a profile location in the software library where the database profile will be created.

- Specify a unique profile name.

For example:
Database Template for HR database

- Add a description for the profile.

- Verify the profile version and the vendor.

- Add any additional notes such as host name, database, data content, data content mode, and the like.

7. In the Schedule section, you can choose to start the profile creation immediately, or you can schedule it for a later time. You can also choose to repeat the creation of the provisioning profile, and set a repeat time.

8. Specify or select a working directory. Click Next.

9. On the Review page, ensure that the selections you have made in the previous pages are correctly displayed and click Submit. Otherwise, click Back repeatedly till you reach the page where you want to make changes. Click Cancel to abort the provisioning profile creation.

Once you have submitted the provisioning profile creation job, manually refresh the page if View Data has been set to Real Time: Manual Refresh. Else, set View Data to reload after a specific period of time, and then select an execution step from the Procedure Steps tree on the left pane to view the details.

To view the submitted jobs, select the Procedure Activity link in the Data Profiles tab.

15.1.3 Configuring Request Settings

You can configure the request settings by specifying when a request can be made, its duration, and so on. See Section 11.2.3, "Configuring Request Settings"

15.1.4 Defining Quotas

After configuring the request settings, you must define quotas for each self service user. See Section 11.2.4, "Setting Up Quotas"

15.1.5 Creating a Service Template Using Database Template Profile

A service template is a standardized service definition that is offered to self service users to create databases or schemas. Self service users can create one or more databases based on the service template definition.

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 15-2 Create Service Template: General (DBCA Template)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. Click the Search icon next to the Source Identification field and select a DBCA template based profile from the list.

8. In the Database Definition region, specify the following:

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, specify the Number of Nodes.

- Database SID: This is an optional field. You can select Specify Prefix or Specified by User at Request Time.

- Specify Prefix: If you choose this option, enter a prefix that is to be used to generate a unique System Identifier (SID) at the time of database creation. The prefix helps to identify databases created using this service template. The prefix can be a maximum of 6 characters.
The new database name generated will be based on the SID Prefix specified here. For example, if the prefix is specified as MYDB, the SID for the new database is generated as MYDB0000, MYDB0001, MYDB0002, and so on.

For existing databases (running databases and in progress requests), a unique SID name is generated for single instance databases, or a unique name is generated for real application cluster databases. For example, if the existing SIDs running on a host are MYDB0000, MYDB0001, MYDB0002 And In progress are MYDB0003, MYDB0004, the new SID or database name generated for the new request is MYDB0005.

- Specified by User at Request Time: If you choose this option, you can leave this field blank and specify the SID when you are making a database request.

- Domain Name: This is an optional field. Enter a Domain Name to be used for the new database being created. You must ensure that the domain name does not contain a preceding "." (dot).

- Enable Standby Database: Select this checkbox if you want to provision standby databases using this service template. If this checkbox is selected, you have to add standby databases. See Section 15.2.2, "Creating a Service Template" for details.

9. In the Zones region, click Add to select a PaaS Infrastructure Zone into which the database instance is to be provisioned. Click Assign Pool. Select a pool from the list and assign this pool to the PaaS Infrastructure Zone. The database will be provisioned into this pool.

10. After you have selected the zone and the pool, the host target is populated in the Reference Host field.

11. Click Next. The Create Service Template: Database page appears.

Figure 15-3 Create Service Template: Database (DBCA Template)

12. In the Reference Host region, the name of the PaaS Infrastructure zone, the database pool, and the reference host you have selected in the Database Cloud Self Service Portal Setup: General page are displayed.
The database values such as a Automatic Storage Management (ASM) disk group, location of the file system, and listener port you select must be available on the reference host.

13. Specify the following:

- Storage Type: This can be:

- Automatic Storage Management: The Oracle Automatic Storage Management (ASM) is a volume manager and a file system for database files that supports single-instance and RAC configurations. ASM groups the disks in your storage system into one or more disk groups. If you select ASM, select the Disk Group here.

- File System: The Oracle Database File System creates a standard file system interface on top of files and directories that are stored in database tables. If you select this option, you must specify or select the Location of the File System.

- Fast Recovery (Optional): To simplify the management of backup and recovery files, you can create a fast recovery area for your database. Select the Enable Fast Recovery Area checkbox to specify the location in which recovery related files must be stored. The fast recovery area can be a ASM disk group or a file system that provides a centralized disk location for backup and recovery file. Specify the location of the Fast Recovery Area and the Fast Recovery Size. The amount of disk space to allocate for the fast recovery area depends on the size and activity levels of your database.
To allow self service users to schedule backups and perform restore operations, configure a Fast Recovery Area and select the Enable Archiving check box.

- Listener Port: In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number.

- Administrator Credentials: Specify passwords for the system schemas of the new database. These schemas will not be available to the self service users. You can choose to use the same password for all the schemas or different passwords for each schema. If these values are not specified, default values will be used and the self service administrator can change them.

- Non-Administrator Credentials: Apart from the system schemas, if you want to restrict access to other schemas, you can select them in the Non-Administrator Credentials region and specify the password. These schemas will be locked and the EM_SSA_USERS cannot access them. Click Next.

14. Click Next. The Create Service Template: Initialization Parameters page appears. In this page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select a parameter and click the Set icon to modify the value of the parameter.

15. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

16. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

17. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

18. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

15.1.6 Configuring Chargeback

Optionally, you can configure the chargeback service. See Chapter 43, "Chargeback Administration".

15.1.7 Requesting a Database

The self service user can now select the service template based on the database template profile and create a database. See Section 22.2, "Requesting a Database".

15.2 Provisioning Standby Databases

A data guard configuration consists of one primary database and one or more standby databases. The databases in a Data Guard configuration are connected by Oracle Net and may be dispersed geographically. There are no restrictions on where the databases are located, provided they can communicate with each other.

Oracle Data Guard ensures high availability, data protection, and disaster recovery for enterprise data. It provides a comprehensive set of services that create, maintain, manage, and monitor one or more standby databases to enable production Oracle databases to survive disasters and data corruptions. Oracle Data Guard maintains these standby databases as copies of the production database. If the production database becomes unavailable due to a planned or an unplanned outage, the Oracle Data Guard can switch any standby database to the production role, minimizing the downtime associated with the outage.

The production database, also referred to as the primary database an be either a single-instance Oracle database or an Oracle Real Application Clusters (RAC) database. A standby database is a transactionally consistent copy of the primary database. Using a backup copy of the primary database, you can create one or more standby databases and incorporate them in a Data Guard configuration. Using Enterprise Manager Database as a Service, users with the EM_SSA_ADMINISTRATOR role can setup the DBaaS Cloud with single instance of RAC standby databases.

Table 15-2 Provisioning Standby Databases

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

2

Create resource providers.

- Create one or more PaaS Infrastructure Zones.

- Create one or more database pools for provisioning standby databases

See Section 15.1.1, "Creating Resource Providers"

6

Create either of the following types of profiles:

- DBCA template based database provisioning profile.

- RMAN Backup based database provisioning profile.

See:

- Section 15.1.2, "Creating a Database Provisioning Profile Using Database Template"

- Section 19.1.2.1, "Creating a Database Provisioning Profile Using RMAN Backup"

4

Configure the request settings.

See Section 15.1.3, "Configuring Request Settings"

5

Define quotas for each self service user.

See Section 15.1.4, "Defining Quotas"

7

Create a service template based on the profile you have created.

See Section 15.2.2, "Creating a Service Template"

8

Configure the Chargeback Service.

See Section 15.1.6, "Configuring Chargeback"

9

While deploying a database, select the service template (associated with the DBCA template based profile) you have created. Additionally, you can also specify the standby database information while requesting the database.

See Section 15.1.7, "Requesting a Database"

15.2.1 Defining Database Pools for Provisioning Standby Databases

A Data Guard configuration consists of one production database and one or more standby databases. To define a database pool for provisioning standby databases, you must follow these steps:

1. Create a database pool. See Section 15.1.1.1, "Creating a Database Pool for Database as a Service".

2. Associate the database pool with one or more pools that host standby databases. See Section 15.2.1.1, "Associating a Standby Database Pool with a Primary Database Pool".

15.2.1.1 Associating a Standby Database Pool with a Primary Database Pool

To include standby support, you must add one or more pre-created database pools on which the standby databases will be created by following these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Resource Providers, and select the database pool that has been designated as the primary database pool and click Edit. The Edit Pool: Setup page appears.

Figure 15-4 Edit Database Pool

3. The pool details and the Oracle homes in the pool are displayed. You can now add one or more standby database pools and associate it with the primary database pool. Click Add in the Standby Pools region. The Add Standby Pools window appears.

4. Select one or more standby pools and click Select. The selected pools appear in the Standby Pools region. These pools are now associated with the primary database pool and can be used to provision standby databases.

Note:
The OS user name and password for the primary and standby database pool must be the same but the Named Credentials can be different.

5. Specify the Placement Constraints that will allow the self service administrator to set the maximum limits for resource utilization. For example, if you are using the database pool to provision standby databases, you can specify a higher value in the Maximum Number of Database Instances Per Host field, since the standby database may not used for active operations all the time.

6. Click Submit. The primary pool is now associated with the standby database pool and can be used to provision standby databases.

15.2.2 Creating a Service Template

Service templates are standardized service definitions that allow self service users to create standby databases. Self service users can create one or more standby databases based on the service template definition. To create a database service template, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

6. Click the Search icon next to the Profile field and select a database provisioning profile.

7. You can select the following types of profiles:

- RMAN Backup Based Database Provisioning Profile.

- DBCA Template Based Database Provisioning Profile.

8. In the Database Definition region, specify the following:

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, specify the Number of Nodes.

- Database SID: This is an optional field. You can select Specify Prefix or Specified by User at Request Time.

- Specify Prefix: If you choose this option, enter a prefix that is to be used to generate a unique System Identifier (SID) at the time of database creation. The prefix helps to identify databases created using this service template. The prefix can be a maximum of 6 characters.
The new database name generated will be based on the SID Prefix specified here. For example, if the prefix is specified as MYDB, the SID for the new database is generated as MYDB0000, MYDB0001, MYDB0002, and so on.

For existing databases (running databases and in progress requests), a unique SID name is generated for single instance databases, or a unique name is generated for real application cluster databases. For example, if the existing SIDs running on a host are MYDB0000, MYDB0001, MYDB0002 And In progress are MYDB0003, MYDB0004, the new SID or database name generated for the new request is MYDB0005.

- Specified by User at Request Time: If you choose this option, you can leave this field blank and specify the SID when you are making a database request.

- Domain Name: This is an optional field. Enter a Domain Name to be used for the new database being created. You must ensure that the domain name does not contain a preceding "." (dot).

- Enable Standby Database: Select this checkbox if you want to provision standby databases using this service template. The database lock icon and the Add Standby Database region appears. Click the database lock icon to lock the database. This forces the self service user to request standby databases. If unlocked, the self service user can deselect the standby database while submitting the database request.

Figure 15-5 Create Service Template: General (Standby Database)

9. Click Add Standby Database. In the Add Standby Database window that appears, specify the following details:

Figure 15-6 Add Standby Database

- Standby Name: The name used to identify the standby database.

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, you must specify the Number of Nodes.

- Standby Domain Name: Enter a domain name for the new standby database that is to be created.

- Standby Protection Mode: Specify the protection mode which can be:

- Maximize Protection: Provides the highest level of data protection with no data loss. If this mode is selected, you must set the SYNC Redo Transport Mode on at least one standby database.

- Maximize Availability: Provides very high data protection. If this mode is selected, you must set the SYNC Redo Transport Mode on at least one standby database.

- Maximize Performance: Provides high data protection with the ASYNC Redo Transport Mode. If you select this mode, there is no performance impact on the primary database.

- Enable Real Time Query: Select this option to enable real time data query on the database. This feature requires an active data guard license.

- Apply Delay: Specifies the delay period before which the archived redo log data is applied on the standby database. When the property is set to 0 minutes, the redo log data is applied immediately on the standby database.

Note:
You can use a single service template to provision multiple standby databases.

10. In the Pools and Zones (Primary Pools) region, click Add to add one or more PaaS Infrastructure zones into which the database instance is to be provisioned. Click Assign Pool and select a database pool which will be the primary database pook for the standby database.

11. In the Standby Pools region, you will see the list of standby databases that you have defined. From the drop down list, select the standby pool with which the standby database is to be associated. You can associate multiple standby pools with one primary pool.

Note:
If the Primary Pool is of single instance type, both single instance and RAC database pools are listed. But if the Primary Pool is RAC, only RAC database pools are listed in the Standby Pools region.

Figure 15-7 Create Service Template: General (Standby Database)

12. Click Search in the Reference Host field to select a host target.

13. Specify the Shared Location and click Next to continue to the Database Cloud Self Service Portal Setup: Database page.

14. The name of the Zone, Pool, and Reference Host you have selected is displayed. You can select the ASM Disk Group, File System Location, and Listener Port that is available on the Reference Host.

Note:
The storage locations and listener ports must be identical on all the primary and standby pools.

- Storage Type: Storage type can be:

- Automatic Storage Management: The Oracle Automatic Storage Management (ASM) is a volume manager and a file system for database files that supports single-instance and RAC configurations. ASM groups the disks in your storage system into one or more disk groups. If you select ASM, specify the Disk Group here.

- File System: The Oracle Database File System creates a standard file system interface on top of files and directories that are stored in database tables. If you select this option, you must specify the Location of the File System.

- Fast Recovery: To simplify the management of backup and recovery files, you can create a fast recovery area for your database. The fast recovery area can be a ASM disk group or a file system that provides a centralized disk location for backup and recovery file. Specify the location of the Fast Recovery Area and the Fast Recovery Size. The amount of disk space to allocate for the fast recovery area depends on the size and activity levels of your database.
To allow self service users to schedule backups and perform restore operations, configure a Fast Recovery Area and select the Enable Archiving check box.

15. In the Port Number field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number.

16. In the Location fields, specify the RMAN Duplicate Backup location. This directory must be present on all members of the Primary and Standby pools. The free space available in this location must be equal to or more than the size of the database from which the profile has been created.

17. Specify the Administrator Credentials. Specify passwords for the system schemas of the new database. These schemas will not be available to the EM_SSA_USERS. You can choose to use the same password for all the schemas or different passwords for each schema. If these values are not specified, default values will be used and the EM_ADMINISTRATOR can change them.

18. Apart from the system schemas, if you want to restrict access to other schemas, you can select them in the Non-Administrator Credentials region and specify the password. These schemas will be locked and the EM_SSA_USERS cannot access them.

19. Click Next. The Database Cloud Self Service Portal Setup: Initialization Parameters page appears. In this page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select the parameter and click the Set icon to modify the value of the parameter.

Note:
Database sizes that can selected by the self service user while creating a service instance are defined globally using EMCLI commands. A subset of these global database sizes can be defined on the Initialization Parameters page and the self service user can choose one of these sizes while creating a database.

20. Click Next. The Database Cloud Self Service Portal Setup: Scripts page appears. Specify the custom scripts that need to be executed before and after the database is created.

21. Click Next. The Database Cloud Self Service Portal Setup: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template.

22. Click Next. The Database Cloud Self Service Portal Setup: Review page appears. Review the information you have entered so far and click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

16 Creating Schemas

You can create one or more schemas on a running database. Schemas can either be empty or based on a profile. This chapter covers the following sections:

- Getting Started

- Creating Resource Providers

- Creating a Database Provisioning Profile Using Export Schema Objects

- Configuring Request Settings

- Defining Quotas

- Configuring Chargeback

- Requesting a Schema

16.1 Getting Started

The data content of this database provisioning profile is compiled from an export dump created using the Data Pump tool. You can choose to export Schema objects (structure only) or the Schema with data (structure + data).

The table below shows the list of tasks that are involved in creating an empty schema or a schema based on profile.

Table 16-1 Creating Databases Using Database Template

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

2

Create resource providers.

- Create one or more PaaS Infrastructure Zones.

- Create one or more database pools.

See Section 16.2, "Creating Resource Providers"

6

Create a database provisioning profile. This step is optional and is required if you are importing schemas from a profile.

See Section 16.3, "Creating a Database Provisioning Profile Using Export Schema Objects"

4

Configure the request settings.

See Section 16.4, "Configuring Request Settings"

5

Define quotas for each self service user.

See Section 16.5, "Defining Quotas"

7

Create as service template based on:

- User Defined Schema: In this case, the service template is created with an empty schema.

- Schema from a Profile: In this case, you can import schemas from a database provisioning profile. You can select this option for applications with data such as eBusiness applications.

See Section 16.6, "Creating a Service Template for Schema Based on Profile"

8

Configure the Chargeback Service.

See Section 16.8, "Configuring Chargeback"

9

While creating a database, select the service template (associated with the database template based profile) you have created.

See Section 16.9, "Requesting a Schema"

16.2 Creating Resource Providers

You must create one or more resource providers which include:

- PaaS Infrastructure Zones: See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone"

- Schema Pool: See Section 16.2.1, "Creating a Database Pool for Schema as a Service"

16.2.1 Creating a Database Pool for Schema as a Service

You can create a database service with one or more schemas with or without seed data and database objects. To do so, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Database service family, select Schema from the drop down list, click Schema Pool and click Create.

Figure 16-1 Create Database Pool (Schema as a Service)

3. Enter a name and description for the schema pool.

4. In the Credentials region, specify the credentials that will be used for performing database operations. Specify the following credentials:

- Host: Required for starting the database.

- Grid Infrastructure: Required to register a database service with grid infrastructure credentials. These credentials are used when schema backups taken by the self service user from ASM need to be deleted.

- Database: Required for creating schemas on the database. The database credentials must have SYSDBA privileges.

5. Specify the following details:

- PaaS Infrastructure Zone: Select the PaaS Infrastructure Zone in which the databases are present. The schemas will be created on the databases selected for the pool.

- Target Type: Specify the configuration of the target database on which the schema is being deployed. This can be Single Instance or Cluster Database (RAC).

- Platform and Version: Specify the platform and version of the database being deployed.

6. Click Add and select one or more databases to be added to the pool. All databases you select must be present in the same PaaS Infrastructure Zone.

Note:
You can search for database groups that meet your requirements by specifying a search string in the Groups field.

7. Click Next. The Create New Pool: Policies page appears.

Figure 16-2 Create Database Pool: Policies (Schema as a Service)

Specify the placement policy constraints to set maximum ceilings for resource utilization on each database. Placement policy constraints for each database can be defined by services or workloads as follows:

- Services: If you select this check box, you must specify the Maximum Number of Database Services that can be running on each database.

- Workloads Associated with Service Requests: The amount of resources (such as CPU and memory) to manage the workload can be specified here. Specify the total workload for each database.

- Maximum CPU Allocation: Specify the maximum CPU that can be allocated to each database.

- Maximum Memory Allocation: Specify the maximum memory that can be allocated for each database.

8. If you have chosen to set the placement constraints by Workloads Associated with Service Requests, you can choose to enable the resource manager by selecting the Enable Resource Manager for CPU check box. You can use the resource manager to manage the CPU resource and ensure that EM_SSA_USER will not exceed the maximum allocated value.

9. Click Submit to create a database pool. The newly created database pool will appear in the Database Cloud Self Service Portal Setup: Database Pools page.

16.3 Creating a Database Provisioning Profile Using Export Schema Objects

To create a database provisioning profile, follow these steps:

1. You can access the Database Provisioning page using either of the following ways:

- From the Enterprise menu, select Cloud, and then select Cloud Home. On the Cloud home page, click Oracle Cloud, select Setup, and then select Data Sources. On the Database: Data Sources page, in the Data Profiles tab, click Create.

- From the Enterprise menu, select Provisioning and Patching, and then select Database Provisioning. On the Database Provisioning page, in the Profiles section, click Create.

- From the database target home page, click Oracle Database, select Provisioning, and then select Create Provisioning Profile.

2. On the Reference Target page, click the search icon to select a target.

3. In the Search and Select:Targets display box, select the database you want to create a profile for, and then, click Select.

4. On the Reference Target page, select the following:

- Data Content

- Structure and Data to include physical and structural files from the database or Structure Only to include only the structural files in the template.

- Export Schema Objects

5. In the Credentials section, select the database. In the Credentials column, you can select Named Credentials and then select a credential name from the Credential Name column (or) select Preferred Credentials. Click Next.

6. On the Content Options page, do the following:

- Select the schema you want to include in the profile by clicking on a schema in the Available Schema list and moving it to the Selected Schema list.

Note:
When one or more schemas are selected, the database checks if the dependent schemas are also selected for export. If the dependent schemas are not exported, you will receive a warning. You can choose to go ahead with the selected schemas, or to include the schemas which were not initially selected.
The same warning is also displayed when you select a profile that does not have the dependent schemas exported.

Note:
The Available Schemas section displays only the user created schemas that has data content in it. All the empty schemas are filtered out by default.

Note:
System schemas such as SYS, SYSTEM, and DBSNMP will not be exported.
The user schemas which do not have their own tablespace are not shown in left side of the shuttle.

- In the Degree of Parallelism section, enter the number of threads required to perform the export operation.

Note:
Increasing the number of threads helps reduce the time required to create the profile at the cost of using system resources.

- In the Directory Locations section, click on Add. In the Select Directory window, select a directory object listed to perform the export operation, and then click Select.

Note:
The number of export threads determines the number of parallel export processes that will run in parallel during export.
Hence, the dump file names should contain %U, to ensure the file names are auto generated with the running count to facilitate parallel operation along with the maximum size for the dump file. For example, 5GB. This means that the file rotation will start after 5GB limit is reached.

Note:
Ensure that the directory location is accessible. The directory object that you select must refer to a location that is accessible across all the nodes. You can also create a directory object on ASM. However, it is not supported on ASM.

In the Log subsection, click on the search icon. In the Select Directory window, select the directory object you require to perform the export operation, and then click Select.

In the Log subsection, enter the file name, and then click on Next.

Note:
You can make use of degree of parallelism with dump file names. The default value of dump files contain %U which creates a running count when degree of parallelism is greater than 1.
Also, this enables you to add multiple dump directories to distribute the storage if required.

7. On the Create Database Provisioning Profile: Page, in the Profile Information section, do the following:

- Specify or select a profile location in the software library where the database profile will be created.

- Specify a unique profile name.

For example:
Export Schema Objects Provisioning Profile for HR database

- Add a description for the profile.

- Verify the profile version and the vendor.

- Add any additional notes such as host name, database, data content, data content mode, and the like.

8. In the Schedule section, you can choose to start the profile creation immediately, or you can schedule it for a later time. You can also choose to repeat the creation of the provisioning profile, and set a repeat time.

9. Specify or select a working directory. Click Next.

10. On the Review page, ensure that the selections you have made in the previous pages are correctly displayed and click Submit. Otherwise, click Back repeatedly till you reach the page where you want to make changes. Click Cancel to abort the provisioning profile creation.

Once you have submitted the provisioning profile creation job, manually refresh the page if View Data has been set to Real Time: Manual Refresh. Else, set View Data to reload after a specific period of time, and then select an execution step from the Procedure Steps tree on the left pane to view the details.

To view the submitted jobs, select the Procedure Activity link in the Data Profiles tab.

16.4 Configuring Request Settings

You can configure the request settings by specifying when a request can be made, its duration, and so on. See Section 11.2.3, "Configuring Request Settings"

16.5 Defining Quotas

After configuring the request settings, you must define quotas for each self service user. See Section 11.2.4, "Setting Up Quotas"

16.6 Creating a Service Template for Schema Based on Profile

One or more schemas can be created based on the service template definition. To create a service template for schema as a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Schema from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 16-3 Create Service Template: Name (Schema)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Source region, select the Import Schemas from Profile option and select a database provisioning profile from which the schema is to be imported. Click the Search icon next to the Profile field and select an export schema objects based profile from the list. If a profile does not exist, you must create one. See Section 16.3, "Creating a Database Provisioning Profile Using Export Schema Objects".

8. After selecting the profile, you must select the Master Account that has privileges on all the schemas. If the Master Account is not selected, the self service user will have to select it when requesting a schema.

9. In the Zones region, click Add to select a PaaS Infrastructure Zone into which the service instance is to be provisioned. Click Assign Pool to add a Database Pool for the zone.

10. After you have selected the zone and the pool, the host target is populated in the Reference Host field. If you have added multiple zones and pools, you must click the Search icon and select a host target from the list.

11. If you creating a service template based on an export schema objects profile, in the Shared Location region, specify the Path or the Shared Location in which the schema dumps are present. The Shared Location must be accessible by all the databases.

12. Click Next. The Create New Service Template: Configurations page appears. Specify the following details:

- Workload Size: Workload represents the total CPU, memory, and storage requirements for each service. You can define workload sizes such as small, medium, and large for the schema service. Click Create and in the Create Workload window, enter the name, CPU, Memory, and Storage limit for each service. Select a workload size and click Default to designate it as the default workload size.

- Assign Schema Privileges: You can select existing roles or create a role that will be assigned to all the schemas. All database privileges such as CREATE_SESSION, CREATE DIMENSION, and so on can be granted to the role. Enter the name of the user, description, and the privileges that will be granted to the user.

Note:

- If the role with the name specified already exists in the database, the database privileges cannot be modified.

- The Master Account will have the CREATE SESSION, CREATE DIMENSION, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE, CREATE VIEW, and CREATE SYNONYM privileges over all the schemas created as part of this service request.

- Tablespace: Specify the tablespace storage configuration. Enter the following details:

- Maximum Size: The maximum size of the tablespace can be Unlimited or Specified by the workload size selected at request time.

- Auto Extend: Select this check box to automatically extend the new data file.

Note:
If you are creating an empty schema, the tablespaces are not listed in the Tablespace Details section. In this case, you must specify the Initial Size and the Increment value for the tablespace and only one tablespace is created.

- Tablespace Details: Based on the profile you have selected, one or more tablespaces are listed here. You can edit the following values in the table:

- Initial Size: If you selected Specified by the workload size selected at request time in the Maximum Size field, enter the initial size of the tablespace.

- Increment: If you have selected the Auto Extend checkbox, specify the size by which the data file is to be automatically incremented.

- Maximum Size: If the tablespace storage is Specified by workload size specified at request time, enter the maximum size here that can be distributed across tablespaces.

13. Click Next. The Create Service Template: Scripts page appears. Specify the custom scripts that need to be executed before and after the service instance has been created. See Pre and Post Scripts section for details.

Figure 16-4 Create Service Template: Scripts (Schema)

14. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a schema.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a schema.

15. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template.

16. Click Next to go to the Review page. Review the details entered so far and click Submit. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

16.7 Creating a Service Template with Empty Schema

One or more schemas can be created based on the service template definition. To create a service template that can be used to create empty schemas, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Schema from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 16-5 Create Service Template: Name (Empty Schema)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Source region, select the Create User Defined Schemas option to create empty schemas which can be configured by the user. If you select this option, you must specify the Maximum Number of Schemas that can be created.

8. In the Zones region, click Add to select a PaaS Infrastructure Zone into which the service instance is to be provisioned. Click Assign Pool to add a Database Pool for the zone.

9. After you have selected the zone and the pool, the host target is populated in the Reference Host field. If you have added multiple zones and pools, you must click the Search icon and select a host target from the list.

10. Click Next. The Create New Service Template: Configurations page appears. Specify the following details:

- Workload Size: Workload represents the total CPU, memory, and storage requirements for each service. You can define workload sizes such as small, medium, and large for the schema service. Click Create and in the Create Workload window, enter the name, CPU, Memory, and Storage limit for each service. Select a workload size and click Default to designate it as the default workload size.

- Assign Schema Privileges: You can select existing roles or create a role that will be assigned to all the schemas. All database privileges such as CREATE_SESSION, CREATE DIMENSION, and so on can be granted to the role. Enter the name of the user, description, and the privileges that will be granted to the user.

Note:

- If the role with the name specified already exists in the database, the database privileges cannot be modified.

- The Master Account will have the CREATE SESSION, CREATE DIMENSION, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE, CREATE VIEW, and CREATE SYNONYM privileges over all the schemas created as part of this service request.

- Tablespace: Specify the tablespace storage configuration. Enter the following details:

- Maximum Size: The maximum size of the tablespace can be Unlimited or Specified by the workload size selected at request time.

- Auto Extend: Select this check box to automatically extend the new data file. If this check box is selected, enter the following details:
Initial Size: Enter the initial size of the tablespace.

Increment: Specify the size by which the data file is to be automatically incremented.

11. Click Next. The Create Service Template: Scripts page appears. Specify the custom scripts that need to be executed before and after the service instance has been created.

Figure 16-6 Create Service Template: Scripts (Empty Schema)

12. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a schema.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a schema.

13. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template.

14. Click Next to go to the Review page. Review the details entered so far and click Submit. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

16.8 Configuring Chargeback

Optionally, you can configure the chargeback service. See Chapter 43, "Chargeback Administration".

16.9 Requesting a Schema

The self service user can now select the service template based on the database template profile and create a database. See Section 22.2.1, "Requesting a Schema".

17 Provisioning Pluggable Databases

This chapter describes the process involved in provisioning pluggable databases. It contains the following sections:

- Getting Started

- Creating Resource Providers

- Creating a Database Provisioning Profile Using Export Schema Objects

- Configuring Request Settings

- Defining Quotas

- Creating a Service Template for PDB Based on Profile

- Creating a Service Template for an Empty PDB

- Configuring Chargeback

- Requesting a Pluggable Database

17.1 Getting Started

An Oracle Database can contain a portable collection of schemas, schema objects, and nonschema objects, that appear to an Oracle Net client as a separate database. This self-contained collection is called a pluggable database (PDB). A multi-tenant container database (CDB) is a database that includes one or more PDBs. Oracle Database 12c Release 1 (12.1) and later versions allow you to create many PDBs within a single CDB.

Table 17-1 Provisioning Pluggable Databases

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

2

Create one or more resource providers.

See Section 17.2, "Creating Resource Providers"

4

Configure the request settings.

See Section 17.4, "Configuring Request Settings"

5

Define quotas for each self service user.

See Section 17.5, "Defining Quotas"

6

Create a database provisioning profile. This step is optional and is not required if you are creating an empty pluggable database.

See Section 17.3, "Creating a Database Provisioning Profile Using Export Schema Objects"

7

Create a service template. A service template can contain:

- Empty Pluggable Database: In this case, the service template is created with an empty schema.

- Pluggable Database from a Profile: In this case, you can import schemas from a database provisioning profile. You can select this option for applications with data such as eBusiness applications.

See Section 17.6, "Creating a Service Template for PDB Based on Profile"

8

Configure the Chargeback Service.

See Section 17.8, "Configuring Chargeback"

9

While deploying a database, select the service template that you have created.

See Section 22.2.2, "Requesting a Pluggable Database"

17.2 Creating Resource Providers

You must create one or more resource providers which include:

- PaaS Infrastructure Zones: See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone"

- Database Pool: See Section 17.2.1, "Creating a Database Pool for PDB as a Service"

17.2.1 Creating a Database Pool for PDB as a Service

A Pluggable Database (PDB) is portable set of schemas, schema objects, and related structures that appears logically to an application as a separate database. This self-contained collection is called a pluggable database (PDB). Every PDB is owned by a SYS user.

A container is a collection of schemas, objects, and related structures in a container database (CDB) that appears logically to an application as a separate database. A container database (CDB) is an Oracle database that includes zero, one, or many user-created PDBs.

A database pool for PDB as a Service must contain a set of container databases. The container databases must meet the following guidelines:

- All CDBs in a database pool must be of the same version and platform.

- All CDBs in a database pool must either be single instance databases or RAC databases. Mix and match of database types is not supported.

To create a database pool for PDB as a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Database service family, select Pluggable Database from the drop down link, click on the Pluggable Database Pool link and then click Create.

Figure 17-1 Create Database Pool: Setup Page (PDB)

3. Enter a name and description for the database pool.

4. In the Credentials region, specify the credentials that will be used for performing database operations. Specify the following credentials:

- Host: Required for performing remote host operations.

- Grid Infrastructure: Required to register a database service with grid infrastructure credentials.

- Database: Required for creating the pluggable database.

- Container Database Wallet Password: If the PDB is to be encrypted, you must specify the password required to open the wallet from the keystore.

5. Specify the following details:

- PaaS Infrastructure Zone: Select a PaaS Infrastructure Zone in which the container databases are present. The PDBs will be created on the databases selected for the pool. For details on creating container databases, see Section 12.5, "Provision a Container Database for PDB as a Service".

- Target Type: Specify the configuration of the target database on which the PDB is being deployed. This can be Single Instance or Cluster Database (RAC).

- Platform and Version: Specify the platform and version of the database being deployed.

6. Click Add and select one or more container databases to be added to the pool. All databases you select must be present in the same PaaS Infrastructure Zone.

Note:
You can search for database groups that meet your requirements by specifying a search string in the Groups field.

7. Click Next. The Create New Pool: Policies page appears.

Figure 17-2 Create Database Pool: Policies (PDB)

Specify the placement policy constraints to set maximum ceilings for resource utilization on each database. Placement policy constraints for each database can be defined by services or workloads as follows:

- Pluggable Database: Select the Pluggable Database checkbox and specify the Maximum Number of Pluggable Databases that can be created inside each CDB.

- Workloads Associated with Service Requests: The amount of resources (such as CPU and memory) to manage the workload can be specified here. Specify the workload that is to be enforced for the pluggable database.

- Maximum CPU Allocation: Specify the maximum CPU that can be allocated to each database.

- Maximum Memory Allocation: Specify the maximum memory that can be allocated for each database.

For example: If a container database is caged to 2 CPUs with SGA of 4GB, and you specify the Maximum CPU Allocation and Maximum Memory Allocation as 80%:

- the maximum CPU limit for each pluggable database is 1.6

- the maximum SGA / memory limit for each pluggable database is 3.2

8. If you have chosen to set the placement constraints by Workloads Associated with Service Requests, you can choose to enable the resource manager by selecting the Enable Resource Manager for CPU check box. You can use the resource manager to manage the CPU resource and create Consumer Groups. A Consumer Group is used to ensure that the service gets the requested CPU cycles on a fully loaded system.

9. Click Submit to create a database pool for PDB as a service. The newly created database pool will appear in the Database Cloud Self Service Portal Setup: Database Pools page.

17.3 Creating a Database Provisioning Profile Using Export Schema Objects

To create a database provisioning profile, follow these steps:

1. You can access the Database Provisioning page using either of the following ways:

- From the Enterprise menu, select Cloud, and then select Cloud Home. On the Cloud home page, click Oracle Cloud, select Setup, and then select Data Sources. On the Database: Data Sources page, in the Data Profiles tab, click Create.

- From the Enterprise menu, select Provisioning and Patching, and then select Database Provisioning. On the Database Provisioning page, in the Profiles section, click Create.

- From the database target home page, click Oracle Database, select Provisioning, and then select Create Provisioning Profile.

2. On the Reference Target page, click the search icon to select a target.

3. In the Search and Select:Targets display box, select the database you want to create a profile for, and then, click Select.

4. On the Reference Target page, select the following:

- Data Content

- Structure and Data to include physical and structural files from the database or Structure Only to include only the structural files in the template.

- Export Schema Objects

5. In the Credentials section, select the database. In the Credentials column, you can select Named Credentials and then select a credential name from the Credential Name column (or) select Preferred Credentials. Click Next.

6. On the Content Options page, do the following:

- Select the schema you want to include in the profile by clicking on a schema in the Available Schema list and moving it to the Selected Schema list.

Note:
When one or more schemas are selected, the database checks if the dependent schemas are also selected for export. If the dependent schemas are not exported, you will receive a warning. You can choose to go ahead with the selected schemas, or to include the schemas which were not initially selected.
The same warning is also displayed when you select a profile that does not have the dependent schemas exported.

Note:
The Available Schemas section displays only the user created schemas that has data content in it. All the empty schemas are filtered out by default.

Note:
System schemas such as SYS, SYSTEM, and DBSNMP will not be exported.
The user schemas which do not have their own tablespace are not shown in left side of the shuttle.

- In the Degree of Parallelism section, enter the number of threads required to perform the export operation.

Note:
Increasing the number of threads helps reduce the time required to create the profile at the cost of using system resources.

- In the Directory Locations section, click on Add. In the Select Directory window, select a directory object listed to perform the export operation, and then click Select.

Note:
The number of export threads determines the number of parallel export processes that will run in parallel during export.
Hence, the dump file names should contain %U, to ensure the file names are auto generated with the running count to facilitate parallel operation along with the maximum size for the dump file. For example, 5GB. This means that the file rotation will start after 5GB limit is reached.

Note:
Ensure that the directory location is accessible. The directory object that you select must refer to a location that is accessible across all the nodes. You can also create a directory object on ASM. However, it is not supported on ASM.

In the Log subsection, click on the search icon. In the Select Directory window, select the directory object you require to perform the export operation, and then click Select.

In the Log subsection, enter the file name, and then click on Next.

Note:
You can make use of degree of parallelism with dump file names. The default value of dump files contain %U which creates a running count when degree of parallelism is greater than 1.
Also, this enables you to add multiple dump directories to distribute the storage if required.

7. On the Create Database Provisioning Profile: Page, in the Profile Information section, do the following:

- Specify or select a profile location in the software library where the database profile will be created.

- Specify a unique profile name.

For example:
Export Schema Objects Provisioning Profile for HR database

- Add a description for the profile.

- Verify the profile version and the vendor.

- Add any additional notes such as host name, database, data content, data content mode, and the like.

8. In the Schedule section, you can choose to start the profile creation immediately, or you can schedule it for a later time. You can also choose to repeat the creation of the provisioning profile, and set a repeat time.

9. Specify or select a working directory. Click Next.

10. On the Review page, ensure that the selections you have made in the previous pages are correctly displayed and click Submit. Otherwise, click Back repeatedly till you reach the page where you want to make changes. Click Cancel to abort the provisioning profile creation.

Once you have submitted the provisioning profile creation job, manually refresh the page if View Data has been set to Real Time: Manual Refresh. Else, set View Data to reload after a specific period of time, and then select an execution step from the Procedure Steps tree on the left pane to view the details.

To view the submitted jobs, select the Procedure Activity link in the Data Profiles tab.

17.4 Configuring Request Settings

You can configure the request settings by specifying when a request can be made, its duration, and so on. See Section 11.2.3, "Configuring Request Settings"

17.5 Defining Quotas

After configuring the request settings, you must define quotas for each self service user. See Section 11.2.4, "Setting Up Quotas"

17.6 Creating a Service Template for PDB Based on Profile

One or more pluggable databases can be created based on the service template definition. To create a service template for PDB as a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Pluggable Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 17-3 Create Service Template: General (PDB)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Pluggable Database region, select the Create Pluggable Databases from Profile option and select a database provisioning profile that is to be used to create the pluggable database. Click the Search icon next to the Profile field and select an export schema objects profile from the list. If a profile does not exist, you must create one. See Section 16.3, "Creating a Database Provisioning Profile Using Export Schema Objects" for details.

- Note:
You can also create a PDB from an uplugged PDB. To do so, follow these steps:

- Unplug the PDB from the container database and specify the location in the Software Library which the PDB template (contains data files and the metadata XML file) is to be stored.

- In the Service Template Creation wizard, specify the PDB template location in the Shared Location field. The PDB is created with the specified data files.

8. In the Pools and Zones region, click Add to select a PaaS Infrastructure Zone into which the pluggable database instance is to be provisioned. Click Assign Pool to add a Database Pool (for Pluggable Databases) for the zone.

Note:
A database pool (for PDBs) must be present in the PaaS Infrastructure Zone that you select here.

9. After the database pool has been assigned, the container database into which the pluggable database is to be added is displayed in the Reference Container Database field. All the validations for the service template will be performed against this database.

10. If you have selected Create Pluggable Databases from Profile in the Pluggable Database region, in the Shared Location field, specify the Path or the shared location on all hosts in which the schema dumps are present. The Dump File Location must be accessible by all the databases.

11. In the Placement region, the pluggable database can be provisioned on the container database using one of the following options:

- Selected by placement algorithm: If this option is selected, the container database will be selected based on the placement algorithm.

- Selected by user during request: If this option is selected, while requesting a new PDB, the self service user can select the container database on which the PDB is to be provisioned.

12. In the Identification region, in the Pluggable Database Prefix Name field, specify the prefix that is to be used to generate a unique Pluggable Database name at the time of database creation. The prefix helps to identify the PDBs that are created using this service template.

13. Click Next. The Create New Service Template: Configurations page appears.

Figure 17-4 Create Service Template: Configurations (PDB)

Specify the following details:

- Workload Size: Workload represents the total CPU, memory, number of sessions, and storage requirements for each service. You can define workload sizes such as small, medium, and large. The workload sizes defined here will be the default workload sizes available to the users with the EM_SSA_USER role.
Click Create and in the Create Workload window, enter the name, CPU, Memory, and Storage limit for each service.

- Pluggable Database Administrator Privileges: You can assign privileges to the Pluggable Database Administrator by:

- From Existing Database Roles: If you select this option, click Add Roles to add one or more existing roles from which the privileges will be assigned to the Pluggable Database Administrator.

- Creating a new Database Role: If you select this option, you must specify the Role Name, Description, and the Privileges such as CREATE_SESSION, ALTER_SESSION, CREATE ANY OPERATOR, CREATE ANY PROCEDURE and so on that will be assigned to the administrator.

- Pluggable Database Storage: The maximum size of the PDB storage can either be Unlimited or Specified by the workload size selected at request time.

- Tablespace: The tablespaces in the profile are displayed. You can edit the value of the Initial Size of the tablespace.

Note:
You can create encrypted tablespaces by specifying a Tablespace Data Encryption (TDE) key. This encrypts and decrypts the data in the tablespace. If you are using a profile with encrypted tablespaces, you will be prompted for the wallet password here.

14. Click Next. The Create Service Template: Initialization Parameters page appears. In this page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select the parameter and click the Set icon to modify the value of the parameter.

15. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

16. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

17. Click Next. The Create Service Template: Roles page appears. Click Add to select the EM_SSA_USER roles to which this service template will be available. All users belonging to the selected role can use this service template.

18. Click Next. The Create Service Template: Review page appears where you can review the details entered so far.

19. Click Submit. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

17.7 Creating a Service Template for an Empty PDB

One or more pluggable databases can be created based on the service template definition. To create a service template for PDB as a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Pluggable Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 17-5 Create Service Template: General (PDB)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Pluggable Databases region, select the Create Empty Pluggable Database option to create an empty PDB that can be configured by the user.

8. In the Pools and Zones region, click Add to select a PaaS Infrastructure Zone into which the pluggable database instance is to be provisioned. Click Assign Pool to add a Database Pool (for Pluggable Databases) for the zone.

Note:
A database pool (for PDBs) must be present in the PaaS Infrastructure Zone that you select here.

9. After the database pool has been assigned, the container database into which the pluggable database is to be added is displayed in the Reference Container Database field. All the validations for the service template will be performed against this database.

10. In the Placement region, the pluggable database can be provisioned on the container database using one of the following options:

- Selected by placement algorithm

- Selected by user during request

11. In the Identification region, in the Pluggable Database Prefix Name field, specify the prefix that is to be used to generate a unique Pluggable Database name at the time of database creation. The prefix helps to identify the PDBs that are created using this service template.

12. Click Next. The Create New Service Template: Configurations page appears.

Figure 17-6 Create Service Template: Configurations (PDB)

Specify the following details:

- Workload Size: Workload represents the total CPU, memory, number of sessions, and storage requirements for each service. You can define workload sizes such as small, medium, and large. The workload sizes defined here will be the default workload sizes available to the users with the EM_SSA_USER role.
Click Create and in the Create Workload window, enter the name, CPU, Memory, and Storage limit for each service.

- Pluggable Database Administrator Privileges: You can assign privileges to the Pluggable Database Administrator by:

- From Existing Database Roles: If you select this option, click Add Roles to add one or more existing roles from which the privileges will be assigned to the Pluggable Database Administrator.

- Creating a new Database Role: If you select this option, you must specify the Role Name, Description, and the Privileges such as CREATE_SESSION, ALTER_SESSION, CREATE ANY OPERATOR, CREATE ANY PROCEDURE and so on that will be assigned to the administrator.

- Pluggable Database Storage: The maximum size of the PDB storage can either be Unlimited or Specified by the workload size selected at request time.

- Tablespace: Specify the number of tablespaces that should be present in the new empty PDB.

13. Click Next. The Create Service Template: Initialization Parameters page appears. In this page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select the parameter and click the Set icon to modify the value of the parameter.

14. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

15. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

16. Click Next. The Create Service Template: Roles page appears. Click Add to select the EM_SSA_USER roles to which this service template will be available. All users belonging to the selected role can use this service template.

17. Click Next. The Create Service Template: Review page appears where you can review the details entered so far.

18. Click Submit. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

17.8 Configuring Chargeback

Optionally, you can configure the chargeback service. See Chapter 43, "Chargeback Administration".

17.9 Requesting a Pluggable Database

The self service user can now select the service template and create a pluggable database. See Section 22.2.2, "Requesting a Pluggable Database"

Part VII

Cloning Databases

This section describes how you can create full clones or snap clones either by using profiles or from a live database.

This section contains the following chapters:

- Chapter 18, "Supported Cloning Options"

- Chapter 19, "Creating Full Clones"

- Chapter 20, "Creating Snap Clones for Databases"

- Section 21, "Creating Snap Clones for Pluggable Databases"

18 Supported Cloning Options

This chapter describes the different options offered by Enterprise Manager to clone a database. It contains the following sections:

- About Data Lifecycle Management

- Supported Cloning Options

18.1 About Data Lifecycle Management

The Data Lifecycle Management (DLM) is a complete end-to-end solution offered by Enterprise Manager that enables administrators to refresh production databases after they are masked and instantly clone large databases on demand. The DLM solution:

- Supports creation of full and thin database clones.

- Is technology agnostic (storage and vendor agnostic).

- Integrates masking of production data and inline patching.

- Can be accessed through the Cloud Self Service Portal and the Database Provisioning dashboard.

- Is available through EMCLI and Rest APIs.

18.2 Supported Cloning Options

IT environments typically require multiple copies of production databases for application development and testing purposes. When an application developer or tester needs a database clone, he or she must typically go through an approval cycle, which then initiates a cumbersome and time-consuming cloning process that may span days. Clones are shared by multiple users and applications, which results in degraded performance due to increased sharing by multiple users. In such an environment, refreshing test data to reflect changes made to a production database is typically done on a fixed schedule, and may not be done as often as needed. As a result, it may often not be feasible to ensure that developers and testers are testing with the latest data.

Creating database clones with the latest data involves the following steps:

- Identifying the production database that is to be cloned.

- Taking periodic backups using RMAN Backup, RMAN Image, and so on.

- Masking the sensitive data.

- Mask and Subset Data on the Test Master Database

- Creating a test master which is a sanitized copy of the production database or creating a standby database.

- Creating full clones for performance or stress testing, and snap clones for functional testing.

- Refreshing the clones to keep them in sync with the changes in the production database.

Using Enterprise Manager, you can create full clones or snap clones either from the Administration Dashboard or from the Self Service Portal. The figure below shows the cloning options supported in Enterprise Manager.

Figure 18-1 Supported Cloning Options

Enterprise Manager allows you to create:

- Full Clones: You can make a full or complete copy of the production database using one of the following methods:

- RMAN Backup

- RMAN Duplicate

- Data Pump

For more details, see Chapter 19, "Creating Full Clones".

- Snap Clones: You can make a snap clone or a thin clone using copy on write technology of the database. This model requires minimal space, provides instantaneous cloning, and is ideal for functional testing. You can create snap clones using one of the following solutions:

- Software Solution

- Hardware Solution

For more details, see Chapter 20, "Creating Snap Clones for Databases".

19 Creating Full Clones

This chapter describes how to create a full database clone. It contains the following sections:

- Creating a Full Database Clone Using RMAN Backup from the Self Service Portal

- Creating a Full Database Clone Using RMAN Duplicate from the Self Service Portal

19.1 Creating a Full Database Clone Using RMAN Backup from the Self Service Portal

Database backups created by RMAN (Recovery Manager) are stored as image copies or backup sets. You can create profiles using these backups and use these profiles to create full database clones.

Table 19-1 Creating a Full Database Clone Using RMAN Backup

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

2

Create one or more resource providers.

See Section 19.1.1, "Creating Resource Providers"

4

Configure the request settings.

See Section 11.2.3, "Configuring Request Settings"

5

Define quotas for each self service user.

See Section 11.2.4, "Setting Up Quotas"

6

Create one of the following types of profiles:

- RMAN Backup

- Existing RMAN Backup

See:

- Section 19.1.2.1, "Creating a Database Provisioning Profile Using RMAN Backup"

- Section 19.1.2.2, "Creating a Database Provisioning Profile Using Existing RMAN Backup"

8

Create a service template based on the profile you have created.

See Section 19.1.5, "Create Service Template Using RMAN Backup Profile"

9

Configure the Chargeback Service.

See Section 19.1.6, "Configuring Chargeback"

10

While deploying a database, select the service template you have created.

See Section 22.2, "Requesting a Database"

19.1.1 Creating Resource Providers

You must create one or more resource providers which include:

- PaaS Infrastructure Zones: See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone"

- Database Pool: See Section 19.1.1.1, "Creating a Database Pool for Database as a Service"

19.1.1.1 Creating a Database Pool for Database as a Service

To create a database pool for database as a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Database service family, click the Database Pool link and click Create.

Figure 19-1 Create Database Pool

3. In the Credentials region, specify the following credentials:

- Host: Required for creating and starting the database.

- Root: This is an optional field. It is required if you plan to use this database pool for database requests based on snap clone profile. See Section 20, "Creating Snap Clones for Databases".

- Grid Infrastructure: This is an optional field. It is required if you plan to use this database pool for live cloning using of a database using ASM.

4. Enter a name and description for the database pool.

5. Specify the following details:

- PaaS Infrastructure Zone: Select the PaaS Infrastructure Zone into which the database instance is to be provisioned.

- Database Configuration: Specify the configuration of the database being provisioned. This can either be Single Instance or Cluster Database (RAC) but cannot be a combination of both.

- Platform and Version: Specify the platform and version of the database being deployed.

6. Click Add and select one or more Oracle Homes to be added to the database pool.

7. In the Maximum Number of Database Instances (per host), enter the maximum number of database instances that can be running on each host in the pool.

Note:
For RAC databases. the value specified in this field is used to ensure that the nodes on which the database is be created meets this criteria.

8. Click Submit to create a database pool. The newly created pool will appear in the Database Cloud Self Service Portal Setup: Database Pools page. The database pool can now be added to the Service Template.

19.1.2 Creating a Database Provisioning Profile

You can create either of the following types of profiles:

- RMAN Backup. See Section 19.1.2.1, "Creating a Database Provisioning Profile Using RMAN Backup".

- Existing RMAN Backup. See Section 19.1.2.2, "Creating a Database Provisioning Profile Using Existing RMAN Backup".

Note:
It is recommended that you create the profile from a database that is designated as the test master database. For details on setting up the test master, see Section 20.4.7, "Enabling the Test Master for Snap Clone".

19.1.2.1 Creating a Database Provisioning Profile Using RMAN Backup

To create a database provisioning profile, follow these steps:

1. You can access the Database Provisioning page using any of the following ways:

- From the Enterprise menu, select Cloud, and then select Cloud Home. On the Cloud home page, click Oracle Cloud, select Setup, and then select Data Sources. On the Database: Data Sources page, in the Data Profiles tab, click Create.

- From the Enterprise menu, select Provisioning and Patching, and then select Database Provisioning. On the Database Provisioning page, in the Profiles section, click Create.

- From the database target home page, click Oracle Database, select Provisioning, and then select Create Provisioning Profile.

2. On the Reference Target page, click the search icon to select a target.

3. In the Search and Select:Targets display box, select the database you want to create a profile for, and then, click Select.

4. On the Reference Target page, select the following:

- Data Content

- Structure and Data to include physical and structural files from the database.

- Create

- RMAN Backup

5. In the Credentials section, select the database. In the Credentials column, you can select Named Credentials and then select a credential name from the Credential Name column (or) select Preferred Credentials. Click Next.

6. On the Content Options page, do the following:

- Select Online Backup or Offline Backup.

- Enter the number of channels.

Note:
A channel is the connection between the RMAN and the database. The usage of channels in RMAN backups sets the degree of parallelism. Each channel represents one stream of data to the device type. The more number of channels you allocate, the faster the backup jobs run. The maximum number of channels you can use is 25.

- (optional) Select Compress files and then select High, Medium, or Low strength of compression.

- (optional) Select Use File Encryption and then, enter the password and confirm the password.

- Select Directory for the Backup location, and enter the directory path (or) select Fast Recovery Area, which already contains a backup location.

Note:
Ensure that the given location is accessible to the nodes in the database pool.

- Enter the backup file name format. This will be used to generate backup files.
backup file tag, control file name, and control file tag.

- Enter the backup file tag. Backup files will be tagged with this tag.

- Enter the control file name. The control file backup will be generated with this name.

- Click Next.

7. On the Create Database Provisioning Profile: Page, in the Profile Information section, do the following:

- Specify or select a profile location in the software library where the database profile will be created.

- Specify a unique profile name.

For example:
RMAN Backup Profile for HR database

- Add a description for the profile.

- Verify the profile version and the vendor.

- Add any additional notes such as host name, database, data content, data content mode, and the like.

8. In the Schedule section, you can choose to start the profile creation immediately, or you can schedule it for a later time. You can also choose to repeat the creation of the provisioning profile, and set a repeat time.

Note:
If a periodic RMAN profile is being used in a Service Template, then as an SSA_admin, you need to device a way to synchronously transfer all the backup pieces to a shared location among the Pool. Else, you need to take the backup on a shared nfs directory.

9. In the Purge Policy section, you have three options:

- None. Select this option you do not want to purge any data collected.

- Snapshots. This option enables you to specify the maximum number of snapshots that can be purged.

- Day(s). This option enables you to specify the number of days after which the data component should be purged.

10. Specify or select a working directory. Click Next.

11. On the Review page, ensure that the selections you have made in the previous pages are correctly displayed and click Submit. Otherwise, click Back repeatedly till you reach the page where you want to make changes. Click Cancel to abort the provisioning profile creation.

Once you have submitted the provisioning profile creation job, manually refresh the page if View Data has been set to Real Time: Manual Refresh. Else, set View Data to reload after a specific period of time, and then select an execution step from the Procedure Steps tree on the left pane to view the details.

To view the submitted jobs, select the Procedure Activity link in the Data Profiles tab.

19.1.2.2 Creating a Database Provisioning Profile Using Existing RMAN Backup

To create a database provisioning profile, follow these steps:

1. You can access the Database Provisioning page using either of the following ways:

- From the Enterprise menu, select Cloud, and then select Cloud Home. On the Cloud home page, click Oracle Cloud, select Setup, and then select Data Sources. On the Database: Data Sources page, in the Data Profiles tab, click Create.

- From the Enterprise menu, select Provisioning and Patching, and then select Database Provisioning. On the Database Provisioning page, in the Profiles section, click Create.

- From the database target home page, click Oracle Database, select Provisioning, and then select Create Provisioning Profile.

2. On the Reference Target page, click the search icon to select a target.

3. In the Search and Select:Targets display box, select the database you want to create a profile for, and then, click Select.

4. On the Reference Target page, select the following:

- Data Content

- Structure and Data to include physical and structural files from the database.

- Use Existing RMAN Backup

5. In the Credentials section, select the database. In the Credentials column, you can select Named Credentials and then select a credential name from the Credential Name column (or) select Preferred Credentials. Click Next.

6. On the Content Options page, select an existing RMAN backup from the list provided.

Note:
The list of existing RMAN backups are fetched from the database. Backups with multiple tags are supported.

Click Next.

7. On the Create Database Provisioning Profile: Page, in the Profile Information section, do the following:

- Specify or select a profile location in the software library where the database profile will be created.

- Specify a unique profile name.

For example:
Existing RMAN Backup Profile for HR database

- Add a description for the profile.

- Verify the profile version and the vendor.

- Add any additional notes such as host name, database, data content, data content mode, and the like.

8. In the Schedule section, you can choose to start the profile creation immediately, or you can schedule it for a later time. You can also choose to repeat the creation of the provisioning profile, and set a repeat time.

Note:
If a periodic RMAN profile is being used in a Service Template, then as an SSA_admin, you need to device a way to synchronously transfer all the backup pieces to a shared location among the Pool. Else, you need to take the backup on a shared nfs directory.

9. In the Purge Policy section, you have three options:

- None. Select this option you do not want to purge any data collected.

- Snapshots. This option enables you to specify the maximum number of snapshots that can be purged.

- Day(s). This option enables you to specify the number of days after which the data component should be purged.

10. Specify or select a working directory. Click Next.

11. On the Review page, ensure that the selections you have made in the previous pages are correctly displayed and click Submit. Otherwise, click Back repeatedly till you reach the page where you want to make changes. Click Cancel to abort the provisioning profile creation.

Once you have submitted the provisioning profile creation job, manually refresh the page if View Data has been set to Real Time: Manual Refresh. Else, set View Data to reload after a specific period of time, and then select an execution step from the Procedure Steps tree on the left pane to view the details.

To view the submitted jobs, select the Procedure Activity link in the Data Profiles tab.

19.1.3 Configuring Request Settings

You can configure the request settings by specifying when a request can be made, its duration, and so on. See Section 11.2.3, "Configuring Request Settings".

19.1.4 Defining Quotas

After configuring the request settings, you must define quotas for each self service user. See Section 11.2.4, "Setting Up Quotas".

19.1.5 Create Service Template Using RMAN Backup Profile

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 19-2 Create Service Template (RMAN Backup)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Source Identification section, select the Using Profile radio button, click the Search icon and select a RMAN Backup profile from the list.

8. In the Profile Version field, you can select either of the following:

- Latest: This ensures that the latest profile is always used by the self service user.

- Selected by user at request time: If this option is selected, the self service user can select a revision of the profile that is to be used when creating a service request.

9. In the Database Definition region, specify the following:

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, specify the Number of Nodes.

- Database SID: This is an optional field. You can select Specify Prefix or Specified by User at Request Time.

- Specify Prefix: If you choose this option, enter a prefix that is to be used to generate a unique System Identifier (SID) at the time of database creation. The prefix helps to identify databases created using this service template. The prefix can be a maximum of 6 characters.
The new database name generated will be based on the SID Prefix specified here. For example, if the prefix is specified as MYDB, the SID for the new database is generated as MYDB0000, MYDB0001, MYDB0002, and so on.

For existing databases (running databases and in progress requests), a unique SID name is generated for single instance databases, or a unique name is generated for real application cluster databases. For example, if the existing SIDs running on a host are MYDB0000, MYDB0001, MYDB0002 And In progress are MYDB0003, MYDB0004, the new SID or database name generated for the new request is MYDB0005.

- Specified by User at Request Time: If you choose this option, you can leave this field blank and specify the SID when you are making a database request.

- Domain Name: This is an optional field. Enter a Domain Name to be used for the new database being created. You must ensure that the domain name does not contain a preceding "." (dot).

- Enable Standby Database: Select this checkbox if you want to provision standby databases using this service template. If this checkbox is selected, you have to add standby databases.

10. In the Zones region, click Add to select a PaaS Infrastructure Zone into which the database instance is to be provisioned. Click Assign Pool. Select a pool from the list and assign this pool to the PaaS Infrastructure Zone. The database will be provisioned into this pool.

11. After you have selected the zone and the pool, the host target is populated in the Reference Host field.

12. Specify a Shared Location and click Next.

13. In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number. Click Next. The Create Service Template: Database page appears.

Figure 19-3 Create Service Template: Database (RMAN Backup)

14. In the Reference Host region, the name of the PaaS Infrastructure zone, the database pool, and the reference host you have selected in the Database Cloud Self Service Portal Setup: General page are displayed.
The database values such as a Automatic Storage Management (ASM) disk group, location of the file system, and listener port you select must be available on the reference host.

15. Specify the following:

- Storage Type: This can be:

- Automatic Storage Management: The Oracle Automatic Storage Management (ASM) is a volume manager and a file system for database files that supports single-instance and RAC configurations. ASM groups the disks in your storage system into one or more disk groups. If you select ASM, select the Disk Group here.

- File System: The Oracle Database File System creates a standard file system interface on top of files and directories that are stored in database tables. If you select this option, you must specify or select the Location of the File System.

- Fast Recovery (Optional): To simplify the management of backup and recovery files, you can create a fast recovery area for your database. Select the Enable Fast Recovery Area checkbox to specify the location in which recovery related files must be stored. The fast recovery area can be a ASM disk group or a file system that provides a centralized disk location for backup and recovery file. Specify the location of the Fast Recovery Area and the Fast Recovery Size. The amount of disk space to allocate for the fast recovery area depends on the size and activity levels of your database.
If the Enable Archiving check box is selected, the database will not be shut down during a refresh. This allows self service users to schedule backups and restore operations without shutting down the database.

16. In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number.

17. Specify the Administrator Credentials. Specify passwords for the system schemas of the new database. These schemas will not be available to the EM_SSA_USERS. You can choose to use the same password for all the schemas or different passwords for each schema. If these values are not specified, default values will be used and the EM_ADMINISTRATOR can change them.

18. Apart from the system schemas, if you want to restrict access to other schemas, you can select them in the Non-Administrator Credentials region and specify the password. These schemas will be locked and the EM_SSA_USERS cannot access them.

19. Enter the name of the Master Account. You can specify the privileges that are to be provided to the master account user by specifying them in the Privileges field. Click Next.

20. Click Next. The Create Service Template: Initialization Parameters page appears. In this page, you can specify the following:

- Database Sizes: Select the database sizes that are to be supported by this service template. You can select sizes such as small, medium, and large. Each database size has a specific memory, storage, CPU cores, and units. Select a size and select Include in Template to associate it with the service template. Click Default to designate it as the default database size.

- Initialization Parameters: You can configure the values of various initialization parameters that affect the operation of the database instance. Select a parameter and click the Set icon to modify the value of the parameter.

21. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.
You can also specify a custom Post SQL Script and select the user who can run the script. For more details, see Section 24.1.1, "Post SQL Script".

22. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. These properties will be applied to the database clones that are created. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

23. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

24. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

19.1.6 Configuring Chargeback

Optionally, you can configure the chargeback service. See Chapter 43, "Chargeback Administration".

19.1.7 Requesting a Database

The self service user can now select the service template based on the database template profile and create a database. See Section 22.2, "Requesting a Database".

19.2 Creating a Full Database Clone Using RMAN Duplicate from the Self Service Portal

You can use the RMAN Duplicate feature to create a test master and use the test master to create a full database clone.

Table 19-2 Creating a Full Database Clone Using a Live Standby Database

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started".

2

Create one or more resource providers

See Section 19.1.1, "Creating Resource Providers".

3

Create the test master by using a live standby database.

See Section 19.2.1, "Creating a Service Template Using RMAN Duplicate".

4

Configure the request settings.

See Section 19.1.3, "Configuring Request Settings".

5

Define quotas for each self service user.

See Section 19.1.4, "Defining Quotas".

6

Create a service template based on the live standby database.

See Section 19.2.1, "Creating a Service Template Using RMAN Duplicate".

7

Configure the Chargeback Service.

See Section 19.1.6, "Configuring Chargeback".

8

While deploying a database, select the service template you have created.

See Section 22.2, "Requesting a Database".

19.2.1 Creating a Service Template Using RMAN Duplicate

To create a service template using an existing database, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 19-4 Create Service Template: General: RMAN Duplicate

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Source Identification section, select the Using Existing Database radio button, click the Search icon and select the test master database that you had created earlier.

8. Specify the host and database credentials.

9. In the Database Definition region, specify the following:

- Create: Select Full Clone Using RMAN Duplicate. This option is used to create a full database clone using an existing database.

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, specify the Number of Nodes.

- Database SID: This is an optional field. You can select Specify Prefix or Specified by User at Request Time.

- Specify Prefix: If you choose this option, enter a prefix that is to be used to generate a unique System Identifier (SID) at the time of database creation. The prefix helps to identify databases created using this service template. The prefix can be a maximum of 6 characters.
The new database name generated will be based on the SID Prefix specified here. For example, if the prefix is specified as MYDB, the SID for the new database is generated as MYDB0000, MYDB0001, MYDB0002, and so on.

For existing databases (running databases and in progress requests), a unique SID name is generated for single instance databases, or a unique name is generated for real application cluster databases. For example, if the existing SIDs running on a host are MYDB0000, MYDB0001, MYDB0002 And In progress are MYDB0003, MYDB0004, the new SID or database name generated for the new request is MYDB0005.

- Specified by User at Request Time: If you choose this option, you can leave this field blank and specify the SID when you are making a database request.

- Domain Name: This is an optional field. Enter a Domain Name to be used for the new database being created. You must ensure that the domain name does not contain a preceding "." (dot).

10. In the Zones region, click Add to select a PaaS Infrastructure Zone into which the database instance is to be provisioned. Click Assign Pool. Select a pool from the list and assign this pool to the PaaS Infrastructure Zone. The database will be provisioned into this pool.

11. After you have selected the zone and the pool, the host target is populated in the Reference Host field.

12. Specify a Shared Location and click Next.

13. In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number. Click Next. The Create Service Template: Database page appears.

14. In the Reference Host region, the name of the PaaS Infrastructure zone, the database pool, and the reference host you have selected in the Database Cloud Self Service Portal Setup: General page are displayed.
The database values such as a Automatic Storage Management (ASM) disk group, location of the file system, and listener port you select must be available on the reference host.

15. Specify the following:

- Storage Type: This can be:

- Automatic Storage Management: The Oracle Automatic Storage Management (ASM) is a volume manager and a file system for database files that supports single-instance and RAC configurations. ASM groups the disks in your storage system into one or more disk groups. If you select ASM, select the Disk Group here.

- File System: The Oracle Database File System creates a standard file system interface on top of files and directories that are stored in database tables. If you select this option, you must specify or select the Location of the File System.

- Fast Recovery (Optional): To simplify the management of backup and recovery files, you can create a fast recovery area for your database. Select the Enable Fast Recovery Area checkbox to specify the location in which recovery related files must be stored. The fast recovery area can be a ASM disk group or a file system that provides a centralized disk location for backup and recovery file. Specify the location of the Fast Recovery Area and the Fast Recovery Size. The amount of disk space to allocate for the fast recovery area depends on the size and activity levels of your database.
If the Enable Archiving check box is selected, the database will not be shut down during a refresh. This allows self service users to schedule backups and restore operations without shutting down the database.

16. In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number.

17. Specify the Administrator Credentials. Specify passwords for the system schemas of the new database. These schemas will not be available to the EM_SSA_USERS. You can choose to use the same password for all the schemas or different passwords for each schema. If these values are not specified, default values will be used and the EM_ADMINISTRATOR can change them.

18. Apart from the system schemas, if you want to restrict access to other schemas, you can select them in the Non-Administrator Credentials region and specify the password. These schemas will be locked and the EM_SSA_USERS cannot access them. Click Next.

19. Click Next. The Create Service Template: Initialization Parameters page appears. In this page, you can specify the following:

- Database Sizes: Select the database sizes that are to be supported by this service template. You can select sizes such as small, medium, and large. Each database size has a specific memory, storage, CPU cores, and units. Select a size and select Include in Template to associate it with the service template. Click Default to designate it as the default database size.

- Initialization Parameters: You can configure the values of various initialization parameters that affect the operation of the database instance. Select a parameter and click the Set icon to modify the value of the parameter.

20. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

21. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

22. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

23. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

20 Creating Snap Clones for Databases

This chapter describes how to create snap clones. It contains the following sections:

- About Snap Clones

- Cloning and Refreshing Databases

- Creating Snap Clones from the Cloning Dashboard

- Creating Snap Clones from an In-Sync Test Master

- Creating Snap Clones from a Discretely Synchronized Test Master

- Creating a CloneDB Database

20.1 About Snap Clones

Snap Clone provides a storage agnostic approach to creating rapid and space efficient clones of large databases. Clones of the production database are often required for test and development purposes, and it is difficult and time consuming to create these clones, especially if the databases are huge.

Enterprise Manager offers Snap Clone as a way to address this issue, so that thin clones can be created from production databases by using the copy on write technology available in some storage systems. This means that these clones take up little space initially (about 2 GB of writable space required for a thin clone of a multi-terabyte database), and will grow as inserts, updates and deletes are performed. Enterprise Manager offers two solutions with snap clone:

- Hardware Solution: Vendor specific hardware solution which supports NetApps, Oracle Sun ZFS storage appliance, EMC VMAX, and VNX.

- Software Solution: Storage agnostic software solution that supports all NAS and SAN storage devices. This is supported through use of the ZFS file system, and the CloneDB feature.

The main features of snap clone are:

- Self Service Driven Approach: Empowers the self service user to clone databases as required on an ad-hoc basis.

- Rapid Cloning: Databases can be cloned in minutes and not in days or weeks.

- Space Efficient: This features allows users to significantly reduce the storage footprint.

20.2 Cloning and Refreshing Databases

The Enterprise Manager Data Lifecycle Management solution provides a complete end to end automated flow to move data from the production environment to the test environment.

In a production environment, the database administrator will first take a backup of this production database, create a test master database from the backup, then mask the sensitive data, and finally create clones from the test master. The clones then need to be refreshed as required to ensure that the data is in sync with the production data. With the Data Lifecycle Management solution, this process is completely automated and can be performed either from the Cloning Dashboard or through the Self Service Portal. The following options are available:

- Creating Snap Clones from the Cloning Dashboard

- Creating Snap Clones from an In-Sync Test Master

- Creating Snap Clones from a Discretely Synchronized Test Master

20.3 Creating Snap Clones from the Cloning Dashboard

You can create a snap clone from the Administration Dashboard and promote the snap clone as the Test Master Database. This section outlines the following procedures which you can use to create and manage snap clone databases:

- Creating a Snap Clone Database

- Creating an Exadata Test Master Database

- Creating a Snapshot Clone of an Exadata Test Master Database

- Enabling a Test Master Database

- Disabling a Test Master Database

- Creating a CloneDB Database

- Managing Clone Databases

- Refreshing Clone Databases

20.3.1 Creating a Snap Clone Database

To create a Database Snap Clone, follow these steps:

1. On the Databases page, you can access the Database Snap Clone wizard by following any one method:

- Select the database that you want to clone from the list of the databases displayed. On the Database homepage, click the Database menu, select Cloning, and then select Create Snap Clone.

- Right click on the database target name, select Database, select Cloning, and then select Create Snap Clone.

- Right click on the database target name, select Database, select Cloning, and then select Clone Management. On the Clone Management page, in the Snap Clone Databases box, click Create.

2. On the Create Snap Clone Database: Source and Destination page, do the following:

- In the Source section, launch the credentials selector by clicking the search icons for SYSDBA Database and Database Host credentials. Click OK.

- In the Data Time Series section, select Now or Prior Point in Time.
If you selected Now, specify or search and select the SYSASM ASM Credentials. Now refers to Live Clone.

In the Database Snapshot section specify the location, name, description, version, and vendor of the snapshot profile which will be created as part of the clone database job.You can add additional notes, such as host name, database, data content, and data content mode.

- If you selected Prior Point in Time, a carousel of Storage Snapshot images appear. Select the appropriate RMAN backup by clicking Select on the image.
You can create snap clones by selecting a storage snapshot from the carousel. You can modify this in case you have to create a new clone between these two time periods. Similarly, you can do the same for SCN by selecting the Select SCN option.

3. In the Destination Database Definition section, do the following:

- Specify a display name.

- Specify a global database name and SID.
A database is uniquely identified by a Global Database Name. The typical form of a name is name.domain. A database is referenced by at least one Oracle instance which is uniquely identified by SID.

- Select one of the following types of databases:

- Single Instance Database.
In the Hosts section, specify the Oracle Home location. The host gets specified by default. Next, select the Database Home credentials and the SYSASM ASM credentials.

- RAC Database
In the Hosts section, specify or select the cluster target. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

- RAC One Node Database
In the Hosts section, specify or select the cluster target. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

Click Next.

Note:
Oracle supports inline patching as part of clones. When the destination home selected has patches applied such as the latest CPU or PSU, then the cloned database is automatically brought up with that level.

4. On the Create Snap Clone Database: Configuration page, do the following:

- In the Configure Volumes, configure the volumes that will be used by the clone database, by specifying the following:

- Mount Point Prefix: Specify a new mount point for the database being cloned. This value would be prefixed to an auto-generated mount point where a clone of this volume will be mounted. The volume will be mounted on /<mount-prefix> <unique-suffix-generated-by-EM> /<source-path>. The mount point prefix can be the Same for All Volumes or Different for Each Volume.

Note:
the volumes must be pre-created.

- Writable Space: Specify the amount of space required for block changes. The value specified here cannot exceed the Storage Ceiling specified for the server. For example, for minimal data changes, you specify the value as 1% of the original volume size. The writable space can be the Same for All Volumes or Different for Each Volume.

- The storage details of the selected database are displayed in the Volume Content Information section. Click Show Files to view the layout of the database files in the volumes.

- In the Listener Configuration section, select the listener targets running under the new Oracle Home, to register the clone database, You can add new listeners by clicking Add, and specifying the listener name and port.

- In the Database Credentials section, specify passwords for the SYS, SYSTEM, and DBSNMP administrative users in the clone database. You can choose to have the same password for all the three users or a different password for each.
Click Next.

5. On the Create Snap Clone Database: Initialization Parameters page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select the parameter and click Edit to modify the value of the parameter.
Click Next.

6. On the Create Snap Clone Database: Post Processing page, specify the following:

- Masking Definition: Data masking is the process of masking sensitive data in test or non-production databases. The masking definition defines the columns to be masked in the format of the masked data. Specify the masking definition to be applied after the database is cloned.

Note:
The masking definition can be used only when you have a Subset-Masking license pack.

- Custom Scripts: Specify the custom scripts that need to be executed before and after the database is created.

Click Next.

7. On the Create Snap Clone Database: Schedule page, specify a unique deployment procedure instance name. You can choose to start the deployment procedure immediately or at a later time.
In the Notification Details section, you can choose to set the following notifications:

- Scheduled

- Running

- Action Required

- Suspended

- Succeeded

- Problems

Click Next.

8. On the Create Snap Clone Database: Review page, verify the details of the source database, the data source of the clone, and the destination database.
Click Submit.

20.3.2 Creating an Exadata Test Master Database

A test master database is a sanitized version of the production database. Production data can be optionally masked before the test master is created. A test master can be created from a snapshot or an RMAN Backup profile taken at a prior point in time and refreshed at specific intervals. This option is useful if the source data has to be masked to hide sensitive data.

To create a test master, follow these steps:

1. On the Databases page, you can access the Full Clone database wizard by following any one method:

- Select the database that you want to clone from the list of the databases displayed. On the Database home page, click the Database menu, select Cloning, and then select Create Test Master.

- Right click on the database target name, select Database, select Cloning, and then select Create Test Master.

- Right click on the database target name, select Database, select Cloning, and then select Clone Management. On the Clone Management page, in the Test Master Databases box, click Create.

2. On the Create Test Master Database: Source and Destination page, do the following:

- In the Source section, launch the credentials selector by selecting the search icons for SYSDBA Database and Database Host credentials. Click OK.

- In the Data Time Series section, select Now or Prior Point in Time.
If you selected Now, specify or search and select the SYSASM ASM Credentials. Now refers to Live Clone.

If you selected Prior Point in Time, a carousel of RMAN Backup images appear. Select the appropriate RMAN backup by clicking Select on the image.

Select a specific time between the selected backup or snapshot and the next (or latest point of source). The backups or dumps are created at specific intervals and the test master that is based on these will reflect the production database at specific points in time. To reflect the latest data in the production database, the test master needs to be periodically refreshed.

3. In the Destination Database Definition section, do the following:

- Specify a display name.

- Specify a global database name and SID.
A database is uniquely identified by a Global Database Name. The typical form of a name is name.domain. A database is referenced by at least one Oracle instance which is uniquely identified by SID.

- Select one of the following types of databases:

- Single Instance Database.
In the Hosts section, specify the Oracle Home location. The host gets specified by default. Next, select the Database Home credentials and the SYSASM ASM credentials.

- RAC Database
In the Hosts section, specify or select the cluster target. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

- RAC One Node Database
In the Hosts section, specify or select the cluster target. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

Note:
Oracle supports inline patching as part of clones. When the destination home selected has patches applied such as the latest CPU or PSU, then the cloned database is automatically brought up with that level.

Click Next.

4. On the Create Test Master Database: Configuration page, do the following.

- Database Files Location: Specify the location in which the data files, temporary files, redo log files, and control files will be created.

- Access Controls and Permissions: Specify the data files owner and group that should be given read-only permissions on the datafiles.

- Listener Configuration: Select the listener with which the test master will be registered.

- Database Credentials: Specify the passwords for the administrative users (SYS, SYSTEM and DBSNMP) of the new database being cloned. You can choose to use the same password for all the schemas or different passwords for each schema.

- Click Next.

5. On the Create Test Master Database: Initialization Parameters page, you can configure the values of various initialization parameters that affect the operation of the database instance.
Select the parameter and click Edit to modify the value of the parameter. Some values such as db_block_size cannot be modified.

Click Next.

6. On the Create Test Master Pluggable Database: Post Processing page, in the Data Masking section, specify the data masking definition that you want to apply after creating the test master PDB. Data masking masks sensitive data in a database.
For information on how to create a data masking definition, see Oracle Data Masking and Subsetting Guide. Note that you can apply a data masking definition only if you have the Subset-Masking license pack.

In the Custom Scripts section, for Pre Script and Post Script, specify the Oracle Software Library components that contain the scripts that you want to run before, and after creating the test master PDB respectively. Also, for SQL Script, specify the SQL scripts that you want to run after creating the test master PDB. For Run As User, select the user account that you want to use to run the SQL scripts.

Click Next.

7. On the Create Test Master Database: Schedule page, specify the schedule for the creation of the test master. It can be created immediately (if physical standby used, it is created immediately and automatically refreshed) or can be created at a later date / time and refreshed at specified intervals.
Click Next.

8. On the Create Test Master Database: Review page, review and verify the information specified and click Submit to create the test master. After the Test Master has been created, you can refresh the Test Master as required to create a new version of the profile on which the Test Master is based.

20.3.3 Creating a Snapshot Clone of an Exadata Test Master Database

To create a snapshot clone of an Exadata Test Master database, follow these steps:

1. From the Targets menu, select Databases.

2. On the Databases page, you can access the Database Snap Clone wizard by following any one method:

- Select the test master database that you want to clone from the list of the databases displayed. On the Database homepage, click the Database menu, select Cloning, and then select Create Snapshot Clone.

- Right click on the test master database target name, select Database, select Cloning, and then select Create Snapshot Clone.

3. On the Create Exadata Snapshot Clone Database: Source and Destination page, do the following:

- In the Source section, launch the credentials selector by clicking the search icons for SYSDBA Database and Database Host credentials. Click OK.

- In the Data Time Series section, Now is selected by default.
Now refers to Live Clone.

Specify or select the SYSASM ASM credentials.

4. In the Destination Database Definition section, do the following:

- Specify a display name.

- Specify a global database name and SID.
A database is uniquely identified by a Global Database Name. The typical form of a name is name.domain. A database is referenced by at least one Oracle instance which is uniquely identified by SID.

- Select one of the following types of databases:

- Single Instance Database.
In the Hosts section, specify the Oracle Home location. The host gets specified by default. Next, select the Database Home credentials and the SYSASM ASM credentials.

- RAC Database
In the Hosts section, the cluster field is auto selected from the parent database and disabled. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

- RAC One Node Database
In the Hosts section, specify or select the cluster target. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

Click Next.

Note:
Oracle supports inline patching as part of clones. When the destination home selected has patches applied such as the latest CPU or PSU, then the cloned database is automatically brought up with that level.

5. On the Create Exadata Snapshot Clone Database: Configuration page, do the following:

- In the Database Files Location, specify the Sparse disk group and the redo log file size.

- In the Recovery Files location, specify the location where you want the recovery files, such as archived redo logs, RMAN backups, and other related files to be created. You can choose to use the fast area recovery by selecting Use Fast Recovery Area. If you do, specify the fast recovery area size. The fast recovery area size is defaulted to that of source.

- In the Listener Configuration section, select the listener targets running under the new Oracle Home, to register the clone database.

- In the Database Credentials section, specify passwords for the SYS, SYSTEM, and DBSNMP administrative users in the clone database. You can choose to have the same password for all the three users or a different password for each.
Click Next.

6. On the Create Exadata Snapshot Clone Database: Initialization Parameters page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select the parameter and click Edit to modify the value of the parameter.
Click Next.

7. On the Create Exadata Snapshot Clone Database: Post Processing page, specify the following:

- Masking Definition: Data masking is the process of masking sensitive data in test or non-production databases. The masking definition defines the columns to be masked in the format of the masked data. Specify the masking definition to be applied after the database is cloned.

Note:
The masking definition can be used only when you have a Subset-Masking license pack.

- Custom Scripts: Specify the custom scripts that need to be executed before and after the database is created.

Click Next.

8. On the Create Exadata Snapshot Database: Schedule page, specify a unique deployment procedure instance name. You can choose to start the deployment procedure immediately or at a later time.
In the Notification Details section, you can choose to set the following notifications:

- Scheduled

- Running

- Action Required

- Suspended

- Succeeded

- Problems

Click Next.

9. On the Create Exadata Snapshot Database: Review page, verify the details of the source database, the data source of the clone, and the destination database.
Click Submit.

20.3.4 Enabling a Test Master Database

To convert a database to a test master database, follow these steps:

1. From the Targets menu, select Databases.

2. On the Databases page, right click on the database target that you want to enable as a test master database. From the menu that appears, select Oracle Database, select Cloning, and then select Enable Test Master.

3. On the Enable as a Test Master Database page, specify or search and select the SYSDBA database and database host credentials.

4. Specify or search and select the parent database from which the database has been cloned. This provides better lineage tracking.

5. Specify or select a data masking definition if you want to mask data in the cloned database before enabling it as a test master.

6. In the Custom Scripts section, you can select Software Library components that contain post cloning scripts. The clone database can also be customized by executing the post cloning SQL script.

7. In the Access Controls and Permissions section, specify the owner and group that should be given read-only permissions on the datafiles.

8. Click Submit.

20.3.5 Disabling a Test Master Database

To disable a test master database, follow these steps:

1. From the Targets menu, select Databases.

2. On the Databases page, right click on the database target that you want to disable as a test master database. From the menu that appears, select Oracle Database, select Cloning, and then select Disable Test Master.

3. On the Disable Test Master page, specify or search and select the SYSDBA database and database host credentials.

4. The Exadata Snapshot Clone Databases sections lists the database snapshot clones that will be deleted as part of the process of disabling the test master.

5. Click Submit. This action resets the datafiles to read-write mode and restarts the database in open mode. You can later make further changes to the database and then enable it as test master again, if you choose to.

20.3.6 Creating a CloneDB Database

You can create CloneDB databases only when you have RMAN Image backups.

To create a CloneDB database, follow these steps:

1. On the Databases page, you can access the CloneDB wizard by following any one method:

- Select the database that you want to clone from the list of the databases displayed. On the Database home page, click the Database menu, select Cloning, and then select Create CloneDB.

- Right click on the database target name, select Database, select Cloning, and then select Create CloneDB.

- Right click on the database target name, select Database, select Cloning, and then select Clone Management. On the Clone Management page, in the CloneDB Databases box, click Create.

2. On the Create CloneDB Database: Source and Destination page, do the following:

- In the Source section, launch the credentials selector by selecting the search icons for SYSDBA Database and Database Host credentials. Click OK.

- In the Source Data Time Series, Prior Point in Time is selected automatically.
Select the appropriate RMAN Image backup by clicking Select on the image.

You can create full clones by selecting a backup and optionally modify the time and SCN to do a point in time restore.The Select Time option has the minimum limit set to the current backups time and maximum time limit set to the next backup time. You can modify this in case you have to create a new clone between these two time periods. Similarly, you can do the same for SCN by selecting the Select SCN option.

3. In the Destination Database Definition section, do the following:

- Specify a display name.

- Specify a global database name and SID.
A database is uniquely identified by a Global Database Name. The typical form of a name is name.domain. A database is referenced by at least one Oracle instance which is uniquely identified by SID.

- The Single Instance database type is selected by default.
In the Hosts section, specify the Oracle Home location, the host, and the database host credentials.

In the Backups Location, specify the shared location.

Note:
Oracle supports inline patching as part of clones. When the destination home selected has patches applied such as the latest CPU or PSU, then the cloned database is automatically brought up with that level.

Click Next.

4. On the Create CloneDB Database: Configuration page, do the following:

- In the Database Files Location, specify the location where you want the data files, temp files, redo log files, and control files to be created. The File System option is selected by default.

- In the Recovery Files location, specify the location where you want the recovery files, such as archived redo logs, RMAN backups, and other related files to be created. You can choose to use the fast area recovery by selecting Use Fast Recovery Area. If you do, specify the fast recovery area size. The fast recovery area size is defaulted to that of source.

- In the Listener Configuration section, select the listener targets running under the new Oracle Home, to register the clone database.

- In the Database Credentials section, specify passwords for the SYS, SYSTEM, and DBSNMP administrative users in the clone database. You can choose to have the same password for all the three users or a different password for each.
Click Next.

5. On the Create CloneDB Database: Initialization Parameters page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select the parameter and click Edit to modify the value of the parameter.
Click Next.

6. On the Create CloneDB Database: Post Processing page, specify the following:

- Masking Definition: Data masking is the process of masking sensitive data in test or non-production databases. The masking definition defines the columns to be masked in the format of the masked data. Specify the masking definition to be applied after the database is cloned.

Note:
The masking definition can be used only when you have a Subset-Masking license pack.

- Custom Scripts: Specify the custom scripts that need to be executed before and after the database is created.

- Create Data Profile: This option enables you to automatically take a backup of the new cloned instance once it is created. When the clone or the Test Master is refreshed, this section displays the existing profiles created for the database. You can select the profile that has to be refreshed along with the database.

- Create as Test Master: This option if you want to create the cloned database as a Test Master database.

Click Next.

7. On the Create CloneDB Database: Schedule page, specify a unique deployment procedure instance name. You can choose to start the deployment procedure immediately or at a later time.
In the Notification Details section, you can choose to set the following notifications:

- Scheduled

- Running

- Action Required

- Suspended

- Succeeded

- Problems

Click Next.

8. On the Create CloneDB Database: Review page, verify the details of the source database, the data source of the clone, and the destination database.
Click Submit.

20.3.7 Managing Clone Databases

The Clone Management page enables you to manage clone databases by adding clone databases, removing clone database, and promoting the clone databases as Test Master.

To access the Clone Management page, navigate to an Oracle database target home page. On the home page, click Oracle Database, select Cloning, and then select Clone Management.

Adding Clone Databases

The Add button can be used to add the clones of the current databases which have already been created.To add a database clone instance, click on Add. In the Select Targets dialog box that opens, select a database target, and click Select. The database instance gets added to the Clones section in the Database Cloning page.

Removing Clone Databases

Only the databases that are added using the Add button can be removed using the Remove button.To remove a database clone instance, select the database clone instance that you want to remove, from the Clones section. Click Remove.

Promoting Clone Databases as Test Master

To promote a database clone database instance as Test Master, select the clone instance that you want to recreate from the Clone section. Click Promote as Test Master.

You can also remove the clone database instance from Test Masters, by selecting the clone database instance from the Clones section, and clicking Remove from Test Masters.

Refresh Clone Databases

To refresh a clone database, select the clone database instance from the Clone section, and then click Refresh. See Section 20.3.8, "Refreshing Clone Databases".

Creating Data Profiles

The Data Profiles tab on the Clone Management page displays the data profiles that you have created from the clone database. On the Data Profiles page, you can view the contents of existing data profiles. You can also Edit and Refresh these data profiles.

You can also create a new data profile by clicking Create. This takes you to the Create Provisioning Profile wizard. Refer to Enterprise Manager Cloud Control Administrator's Guide for information on how to create a provisioning profile using this wizard.

20.3.8 Refreshing Clone Databases

To refresh a clone database, navigate to the Clone Management page by following these steps:

1. From the Targets menu, select Databases.

2. On the databases home page, select the database clone instance that you want to refresh from the list of databases.

3. On the database target home page, click Oracle Database, select Cloning, and then select Clone Management.

4. On the Clone Management page, select the Refresh tab.

The Refresh page displays the following sections:

- Drift from Source Database
This section displays the name of the source database from which this database has been cloned. It shows the number of days since the clone database has been refreshed. Click Refresh to refresh the clone database.

- Database Volume Details
This section displays the storage details for the selected databases. Click Show files to view the layout of the database files in the volumes. A display box appears that shows the storage layout and file layout of the selected database.

- History
This section displays the past refreshes of the database. It shows the date and time of the refresh, where it has been refreshed from, the owner of the database, and the status of the refresh action.

- Storage Utilization
This section displays the storage volume of the database, the storage contents, the mount point, the amount of writable storage used, and the synchronization date.

20.4 Creating Snap Clones from an In-Sync Test Master

You can create snap clones using a standby database that is designated as the test master database. The test master database is always current and in sync with the production database. To create snap clones using this approach, follow these steps:

Table 20-1 Creating Snap Clone (Continuous Flow)

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 20.4.1, "Getting Started".

2

Register storage servers.

See Section 20.4.2, "Registering Storage Servers".

3

Create one or more resource providers.

See Section 20.4.3, "Creating Resource Providers".

4

Configure the request settings.

See Section 20.4.4, "Configuring Request Settings".

5

Define quotas for each self service user.

See Section 20.4.5, "Defining Quotas"

7

Add a standby database and designate it as the test master.

See Section 20.4.6, "Using a Physical Standby Database as a Test Master"

Note: This standby database must be present on a registered storage server (such as NetApp, Sun ZFS, or EMC) that allows creation of snap clones.

6

Enable the test master for snap clone.

See Section 20.4.7, "Enabling the Test Master for Snap Clone".

Create snapshot profiles from the test master.

Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots".

8

Create a service template.

See Section 20.4.9, "Creating Service Template Using Snap Clone Profile"

9

Configure the Chargeback Service. (this step is optional)

See Section 20.4.10, "Configuring Chargeback".

10

While deploying a database, select the service template you have created.

See Section 22.2, "Requesting a Database"

20.4.1 Getting Started

See Section 12.1, "Getting Started".

20.4.2 Registering Storage Servers

To register storage servers for:

- NetApp and Sun ZFS Storage Server: See Section 12.7.4.1, "Registering a NetApp or a Sun ZFS Storage Server".

- Solaris File System (ZFS): See Section 12.7.4.2, "Registering a Solaris File System (ZFS) Storage Server".

- EMC Storage Server: See Section 12.7.4.3, "Registering an EMC Storage Server".

20.4.3 Creating Resource Providers

You must create one or more resource providers which include:

- PaaS Infrastructure Zones: See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone".

- Database Pool: See Section 20.4.3.1, "Creating a Database Pool for Database as a Service"

20.4.3.1 Creating a Database Pool for Database as a Service

To create a database pool for database as a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Database service family, click the Database Pool link and click Create.

Figure 20-1 Create Database Pool

3. In the Credentials region, specify the following credentials:

- Host: Required for creating and starting the database.

- Root: Users with these credentials can perform privileged actions like executing root scripts. For snap clone databases, the snapshots must be mounted by a root user. To facilitate this, privileged credentials must be set up to perform typical root user actions with SUDO privileges.

- Grid Infrastructure: This is an optional field and is required only for creating snap clones on EMC storage to create ASM disks.

- Automatic Storage Management: This is an optional field. It is required if you plan to use this database pool for live cloning on any database running on ASM.

4. Enter a name and description for the database pool.

5. Specify the following details:

- PaaS Infrastructure Zone: Select the PaaS Infrastructure Zone into which the database instance is to be provisioned.

- Database Configuration: Specify the configuration of the database being provisioned. This can either be Single Instance or Cluster Database (RAC) but cannot be a combination of both.

- Platform and Version: Specify the platform and version of the database being deployed.

6. Click Add and select one or more Oracle Homes to be added to the database pool.

7. In the Maximum Number of Database Instances (per host), enter the maximum number of database instances that can be running on each host in the pool.

Note:
For RAC databases. the value specified in this field is used to ensure that the nodes on which the database is be created meets this criteria.

8. Click Submit to create a database pool. The newly created pool will appear in the Database Cloud Self Service Portal Setup: Database Pools page. The database pool can now be added to the Service Template.

20.4.4 Configuring Request Settings

You can configure the request settings by specifying when a request can be made, its duration, and so on. See Section 11.2.3, "Configuring Request Settings" for details.

20.4.5 Defining Quotas

After configuring the request settings, you must define quotas for each self service user. See Section 11.2.4, "Setting Up Quotas" for details.

20.4.6 Using a Physical Standby Database as a Test Master

A test master database is a sanitized version of the production database. A test master can be created from a live standby database by using the Oracle Data Guard feature. Profiles or snapshots can be created from the test master (see Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots") and these profiles can be used to create snap clones (see Section 22.2, "Requesting a Database"). Since the test master is a physical standby database with live data, you must schedule and create profiles and snapshots on a periodic basis to ensure that the latest data is captured in the profile (see Section 20.4.8.1, "Creating and Refreshing Snapshots of the Test Master"). Self service users can create multiple snap clones from each profile and refresh their snap clones (see Section 22.3, "Refreshing a Database") when a new profile or snapshot become available.

To create a test master, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select the Database Service family on the left panel. Click the Test Master Databases tab.

2. To create a test master from a live standby database, click Add and select a standby database that is to be designated as the test master. The newly added database appears in the Test Master Database page and can be used to create the snap clone database instances.

20.4.7 Enabling the Test Master for Snap Clone

After the test master database has been created, you must enable snap clone on the database.

Note:
You need SNAP_CLONE_TARGET or FULL_TARGET privilege on the database to enable snap clone.

To enable snap clone, follow these steps:

1. On the Storage Registration page, in the Details section, select the Databases tab, and then select the database from the table which you want to use for Snap Clone, and then click Enable Snap Clone.
The Supported column in the table shows if the databases listed support Snap Clone or not.

Note: If a database listed shows the Not Supported icon in the Supported column, you can view the Message column from the View menu. This column displays the reason. A possible reason is that the data files are missing on the storage server and may be located on either local disk or some other unregistered storage server. Another reason could be that the data files reside on another storage that is not synchronized.

2. Once snap clone has been successfully enabled, a confirmation message appears. Click OK.
To view all the files located on the storage server, click Show Files. To view all the projects (aggregates), volumes, and snapshots in the storage server, select the Contents tab.

20.4.8 Creating a Database Provisioning Profile Using Snapshots

Prerequisites for Creating a Database Provisioning Profile Using Snapshots

Before you create a database provisioning profile, follow these prerequisites:

- Ensure that the storage server you want to register for storage is available on the network.To register a storage server, refer to Section 12.7, "Registering and Managing Storage Servers".

Note:
NetApp ,Sun ZFS, Solaris ZFS, and EMC storage servers are supported in Enterprise Manager Cloud Control 12c.

- Ensure that the storage server is connected to a Management Agent installed and monitored in Enterprise Manager Cloud Control for communication.

- Ensure that the storage server is registered, and at least one database should be present which is enabled for Snap Clone.

- To create the profile, you must have the EM_STORAGE_OPERATOR or EM_STORAGE_ADMINISTRATOR privileges.

Creating a Database Provisioning Profile Using Snapshots

To create a database provisioning profile, follow these steps:

Note:
When a snapshot is used by a database, it cannot be deleted. When you remove a snapshot, it becomes obsolete.
This means that you cannot request any new databases using the obsolete snapshot. This is indicated by the red pushpin against the database, which means that the snapshot is pinned and cannot be used.

When the database using that snapshot is deleted, it gets automatically purged in the next run.

1. You can access the Database Provisioning page using any of the following ways:

- From the Enterprise menu, select Cloud, and then select Cloud Home. On the Cloud home page, click Oracle Cloud, select Setup, and then select Data Sources. On the Database: Data Sources page, in the Data Profiles tab, click Create.

- From the Enterprise menu, select Provisioning and Patching, and then select Database Provisioning. On the Database Provisioning page, in the Profiles section, click Create.

- From the database target home page, click Oracle Database, select Provisioning, and then select Create Provisioning Profile.

2. On the Reference Target page, click the search icon to select a target.

3. In the Search and Select:Targets display box, select the database you want to create a profile for, and then, click Select.

Note:
Ensure that the database you select is enabled for Snap Clone. For information refer to Enabling or Disabling Snap Clone.

4. On the Reference Target page, select the following:

- Data Content

- Structure and Data to include physical and structural files from the database

- Create

- Storage Snapshots

5. In the Credentials section, select the database. In the Credentials column, you can select Named Credentials and then select a credential name from the Credential Name column (or) select Preferred Credentials. Click Next.

6. On the Create Database Provisioning Profile: Page, in the Profile Information section, do the following:

- Specify or select a profile location in the software library where the database profile will be created.

- Specify a unique profile name.

For example:
Snap Clone Profile for HR database

- Add a description for the profile.

- Verify the profile version and the vendor.

- Add any additional notes such as host name, database, data content, data content mode, and the like.

7. In the Schedule section, you can choose to start the profile creation immediately, or you can schedule it for a later time. You can also choose to repeat the creation of the provisioning profile, and set a repeat time.

8. In the Purge Policy section, you have three options:

- None. Select this option you do not want to purge any data collected.

- Snapshots. This option enables you to specify the maximum number of snapshots that can be purged.

- Day(s). This option enables you to specify the number of days after which the data component should be purged.

9. Specify or select a working directory. Click Next.

10. On the Review page, ensure that the selections you have made in the previous pages are correctly displayed and click Submit. Otherwise, click Back repeatedly till you reach the page where you want to make changes. Click Cancel to abort the provisioning profile creation.

Once you have submitted the provisioning profile creation job, manually refresh the page if View Data has been set to Real Time: Manual Refresh. Else, set View Data to reload after a specific period of time, and then select an execution step from the Procedure Steps tree on the left pane to view the details.

To view the submitted jobs, select the Procedure Activity link in the Data Profiles tab.

20.4.8.1 Creating and Refreshing Snapshots of the Test Master

After the snapshot profile has been created, you can refresh the profile at scheduled intervals and create new versions of the profile.

To create a snapshot profile of the test master (or the physical standby database), follow the steps listed in Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots". To refresh a snapshot profile, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select the Database Service family on the left panel. Click the Data Profiles tab.

2. Select the snapshot profile that is to be refreshed.

Figure 20-2 Refresh Data Profile

Click Refresh. You will see a message indicating that a new snapshot (version) of the profile will be created. Click Yes to submit the refresh profile job and create a new snapshot.

20.4.8.1.1

Snapshot Purge Policy

Snapshots can be refreshed at regular intervals to ensure that the latest production data is available to the users. Every time a snapshot is refreshed, a new version of the snapshot is created. When the self service user refreshes his database to a newer version of the snapshot, the older versions can be deleted. You can delete them manually or define a purge policy while creating the snapshot.

Purge Policy Example:

In Figure 20-2, you can see that for the HRMS Application Test Master Snapshots, the Purge Policy has been defined is 6 Snapshots. This means that when the 7th version of the snapshot is being created, the 1st one will be purged. At any point in time, only 6 snapshot versions can exist for the HRMS Application test Master Snapshots profile.

In this figure, you can also see in the Contains column, that 7 snapshots are available and the Removal Overdue column shows 1. This indicates that 1 snapshot version has been marked for deletion but is still available.

In the Contents region, you can see that in the Used By column, this snapshot cannot be deleted as it is being used by 1 database. You can drill down to the database page to identify the self service user who is using the snapshot version. You can then inform the self service user that he must refresh his database to the latest version. Once the database has been refreshed, the snapshot will be purged.

20.4.9 Creating Service Template Using Snap Clone Profile

To create a snap clone based service template, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role. The EM_SSA_ADMINISTRATOR role you select must also have the EM_STORAGE_OPERATOR privileges.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 20-3 Create Service Template: General (Snap Clone)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Source Identification section, select the Using Profile radio button, click the Search icon and select the test master database based on the snap clone profile you created.

8. In the Profile Version field, you can select either of the following:

- Latest: This ensures that the latest profile is always used by the self service user.

- Selected by user at request time: If this option is selected, the self service user can select the profile to be used when creating a service request.

9. In the Database Definition region, specify the following:

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, specify the number of nodes.

- Database SID: This is an optional field. You can select Specify Prefix or Specified by User at Request Time.

- Specify Prefix: If you choose this option, enter a prefix that is to be used to generate a unique System Identifier (SID) at the time of database creation. The prefix helps to identify databases created using this service template. The prefix can be a maximum of 6 characters.
The new database name generated will be based on the SID Prefix specified here. For example, if the prefix is specified as MYDB, the SID for the new database is generated as MYDB0000, MYDB0001, MYDB0002, and so on.

For existing databases (running databases and in progress requests), a unique SID name is generated for single instance databases, or a unique name is generated for real application cluster databases. For example, if the existing SIDs running on a host are MYDB0000, MYDB0001, MYDB0002 And In progress are MYDB0003, MYDB0004, the new SID or database name generated for the new request is MYDB0005.

- Specified by User at Request Time: If you choose this option, you can leave this field blank and specify the SID when you are making a database request.

- Domain Name: This is an optional field. Enter a Domain Name to be used for the new database being created. You must ensure that the domain name does not contain a preceding "." (dot).

10. In the Zones region, click Add to select a PaaS Infrastructure Zone into which the database instance is to be provisioned. Click Assign Pool. Select a pool from the list and assign this pool to the PaaS Infrastructure Zone. The database will be provisioned into this pool.

11. After you have selected the zone and the pool, the host target is populated in the Reference Host field.

12. Click Next. The Database Cloud Self Service Portal Setup: Database page appears.

Figure 20-4 Create Service Template: Database (Snap Clone)

13. In the Reference Host region, the name of the PaaS Infrastructure zone, the database pool, and the reference host you have selected in the Database Cloud Self Service Portal Setup: General page are displayed.
The database values such as the location of the file system and the listener port you select must be available on the reference host.

14. Specify the following details:

- Storage: You can configure the volumes that will be used by the database:

- Mount Point Prefix: The mount point prefix can be the Same for All Volumes or Different for Each Volume.
Specify the prefix for the new mount point for the database being provisioned. This value would be prefixed to an auto-generated mount point where a clone of this volume will be mounted. The volume will be mounted on /<mount-prefix>_<unique-suffix-generated-by-EM>/<source-path>. If the Mount Point Prefix is different for each volume, specify a different value for each volume,

- Writable Space: The Writable Space can be the Same for All Volumes or Different for Each Volume.
Specify the amount of space required for block changes. The value specified here cannot exceed the Storage Ceiling specified for the server. For example, for minimal data changes, you specify the value as 1% of the original volume size.

- Enable Archiving: If this check box is selected, the database will not be shut down during a refresh. This allows self service users to schedule backups and restore operations without shutting down the database.

- Snapshot Policy: Snapshots are sets of historical data for specific time periods. By default, Oracle Database automatically generates snapshots of the performance data once every hour and retains the statistics in the workload repository for 8 days. Select the Allow the user to take snapshots for the new database checkbox and specify the Maximum Number of Snapshots that can be taken.
Snapshots can be created for a specific point in time. The number of snapshots is determined by the value specified by the self service administrator in the Maximum Number of Snapshots field. Once the snapshot has been taken, the database can be restored to a specific snapshot taken a particular point in time. For example, if there are several snapshots such as snap1, snap2, and snap3, if the database is restored to snap2, snap3 will be deleted.

- In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number.

- Administrator Credentials: Specify passwords for the system schemas of the new database. These schemas will not be available to the EM_SSA_USERS. You can choose to use the same password for all the schemas or different passwords for each schema. If these values are not specified, default values will be used and the EM_ADMINISTRATOR can change them.

- Non Administrator Credentials: Apart from the system schemas, if you want to restrict access to other schemas, you can select them in the Non-Administrator Credentials region and specify the password.

- Master Account Privileges: Enter the name of the Master Account. You can specify the privileges that are to be provided to the master account user by specifying them in the Privileges field.

15. Click Next. The Create Service Template: Initialization Parameters page appears.

Figure 20-5 Create Service Template: Initialization Parameters (Snap Clone)

16. In this page, you can specify the following:

- Database Sizes: Select the database sizes that are to be supported by this service template.
Note: The database size definitions must have already been defined using the emcli create_database_size command. See Section 47.5, "Database Size EM CLI Verbs" for details.

You can select sizes such as small, medium, and large. Each database size has a specific memory, storage, CPU cores, and units. Select a size and select Include in Template to associate it with the service template. Click Default to designate it as the default database size.

- Initialization Parameters: You can configure the values of various initialization parameters that affect the operation of the database instance. Select a parameter and click the Set icon to modify the value of the parameter.

17. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.
You can also specify a custom Post SQL Script and select the user who can run the script. For more details, see Section 24.1.1, "Post SQL Script".

18. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. These properties will be applied to the database clones that are created. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

19. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

20. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

20.4.10 Configuring Chargeback

Optionally, you can configure the chargeback service. See Chapter 43, "Chargeback Administration".

20.4.11 Requesting a Database

The self service user can now select the service template based on the database template profile and create a database. See Section 22.2, "Requesting a Database".

20.4.12 Example: Creating Snap Clones from an In-Sync Test Master

The following example shows how you can create a snap clones from a physical standby database.

1. First, you must make sure that all the prerequisites are met. See Section 12.1, "Getting Started".

2. The next step is to identify the production database and the physical standby database. The production database is prod1 and the standby database as prod1stb.

3. Next, you must register the storage server. This step validates the storage and discovers prod1stb on the storage server. See Section 20.4.2, "Registering Storage Servers".

4. You must then create one or more PaaS Infrastructure Zones and one or more database pools. See Section 20.4.3, "Creating Resource Providers"

5. Then, you must define the quota that you wish to allocate to the self service users. See Section 20.4.5, "Defining Quotas".

6. The next step is to designate the standby database, prod1stb as the test master.

7. Next, you must enable prod1stb for snap clone. This allows creation of snap clones using snapshot technology. See Section 20.4.7, "Enabling the Test Master for Snap Clone".

8. The next step is to create a snapshot profile from prod1stb. See Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots"
While creating the profile, specify the Start Date as 05/15/2015, the Repeat schedule as Every N Days and the Frequency as Every 1 day. Specify the End By date as 05/20/2015. A new version of the snapshot profile will be created every day from the Start date of 05/15/2015.

In the Purge Policy field, specify the Number of Snapshots as 5. This will ensure that after 5 versions of the snapshot are created, the first or oldest one will be purged.

9. To make this profile available to the self service user, you must create a service catalog entry or a service template. Create a template called Snap Clone Template. See Section 20.4.9, "Creating Service Template Using Snap Clone Profile". Set the Profile Version field to Selected by user at request time. The self service user can choose the profile version that is to be used to create the snap clone.

10. The self service user can then use the Snap Clone Template, select a version of the profile and use it to create the snap clone. See Section 22.2, "Requesting a Database". As and when a new version of the profile is available (see Section 20.4.8.1, "Creating and Refreshing Snapshots of the Test Master"), the self service user can choose to refresh the profile to the latest version. See Section 22.3, "Refreshing a Database".
Based on the Purge Policy which is set to 5 snapshots, the older versions of the snapshots will be deleted. But if the self service user has a database that is using that snapshot, the profile cannot be deleted until the self service user has refreshed the profile to the latest version.

20.4.13 Creating a Service Template for EMC Snap Clone

Note:
This option can be used only for snapshots created on EMC storage.

Prerequisites

Before you can create snap clones on EMC storage, you must ensure that the prerequisites described in Configuring EMC Storage Servers are met.

To create a service template using an existing database, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 20-6 Create Service Template: General: EMC Snap Clone

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Source Identification section, select the Using Existing Database radio button, click the Search icon and select the test master database that you had created earlier. See Section 20.4.6, "Using a Physical Standby Database as a Test Master" for more details.

8. Specify the host and database credentials.

9. In the Database Definition region, the Create Snap Clone Database option is selected. Enter the following details:

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, specify the Number of Nodes.

- Database SID: This is an optional field. You can select Specify Prefix or Specified by User at Request Time.

- Specify Prefix: If you choose this option, enter a prefix that is to be used to generate a unique System Identifier (SID) at the time of database creation. The prefix helps to identify databases created using this service template. The prefix can be a maximum of 6 characters.
The new database name generated will be based on the SID Prefix specified here. For example, if the prefix is specified as MYDB, the SID for the new database is generated as MYDB0000, MYDB0001, MYDB0002, and so on.

For existing databases (running databases and in progress requests), a unique SID name is generated for single instance databases, or a unique name is generated for real application cluster databases. For example, if the existing SIDs running on a host are MYDB0000, MYDB0001, MYDB0002 And In progress are MYDB0003, MYDB0004, the new SID or database name generated for the new request is MYDB0005.

- Specified by User at Request Time: If you choose this option, you can leave this field blank and specify the SID when you are making a database request.

- Domain Name: This is an optional field. Enter a Domain Name to be used for the new database being created. You must ensure that the domain name does not contain a preceding "." (dot).

10. In the Zones region, click Add to select a PaaS Infrastructure Zone into which the database instance is to be provisioned. Click Assign Pool. Select a pool from the list and assign this pool to the PaaS Infrastructure Zone. The database will be provisioned into this pool.

11. After you have selected the zone and the pool, the host target is populated in the Reference Host field.

12. In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number. Click Next. The Create Service Template: Database page appears.

13. In the Reference Host region, the name of the PaaS Infrastructure zone, the database pool, and the reference host you have selected in the Database Cloud Self Service Portal Setup: General page are displayed.
The database values such as a Automatic Storage Management (ASM) disk group, location of the file system, and listener port you select must be available on the reference host.

14. Specify the following:

- Storage Type: Select Automatic Storage Management (ASM). The Oracle Automatic Storage Management (ASM) is a volume manager and a file system for database files that supports single-instance and RAC configurations. ASM groups the disks in your storage system into one or more disk groups. If you select ASM, select the Disk Group here.

- Fast Recovery (Optional): To simplify the management of backup and recovery files, you can create a fast recovery area for your database. Select the Enable Fast Recovery Area checkbox to specify the location in which recovery related files must be stored. The fast recovery area can be a ASM disk group or a file system that provides a centralized disk location for backup and recovery file. Specify the location of the Fast Recovery Area and the Fast Recovery Size. The amount of disk space to allocate for the fast recovery area depends on the size and activity levels of your database.
If the Enable Archiving check box is selected, the database will not be shut down during a refresh. This allows self service users to schedule backups and restore operations without shutting down the database.

15. In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number.

16. Specify the Administrator Credentials. Specify passwords for the system schemas of the new database. These schemas will not be available to the EM_SSA_USERS. You can choose to use the same password for all the schemas or different passwords for each schema. If these values are not specified, default values will be used and the EM_ADMINISTRATOR can change them.

17. Apart from the system schemas, if you want to restrict access to other schemas, you can select them in the Non-Administrator Credentials region and specify the password. These schemas will be locked and the EM_SSA_USERS cannot access them. Click Next.

18. Click Next. The Create Service Template: Initialization Parameters page appears. In this page, you can specify the following:

- Database Sizes: Select the database sizes that are to be supported by this service template.
Note: The database size definitions must have already been defined using the emcli create_database_size command. See Section 47.5, "Database Size EM CLI Verbs" for details.

You can select sizes such as small, medium, and large. Each database size has a specific memory, storage, CPU cores, and units. Select a size and select Include in Template to associate it with the service template. Click Default to designate it as the default database size.

- Initialization Parameters: You can configure the values of various initialization parameters that affect the operation of the database instance. Select a parameter and click the Set icon to modify the value of the parameter.

19. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

20. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

21. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

22. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

20.5 Creating Snap Clones from a Discretely Synchronized Test Master

You can create snap clones from a discretely synchronized test master if the test master is present on a NAS storage device. This table lists the steps involved in creating a snap clone using a snapshot profile.

Table 20-2 Creating Snap Clone - Discrete Flow

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 20.5.1, "Getting Started"

2

Register storage servers.

See Section 20.5.2, "Registering Storage Servers"

3

Create one or more resource providers.

See Section 20.5.3, "Creating Resource Providers".

4

Configure the request settings.

See Section 20.5.4, "Configuring Request Settings".

4

Define quotas for each self service user.

See Section 20.5.5, "Defining Quotas"

5

Create a test master database from an RMAN Backup.

See Section 20.5.6, "Creating a Discretely Synchronized Test Master".

6

Enable the test master for snap clone

See Section 20.4.7, "Enabling the Test Master for Snap Clone"

6

Create a snap clone profile from the test master.

See Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots"

9

Create a service template based on the profile you have created.

See Section 20.5.7, "Creating a Service Template Using Snap Clone Profile".

10

Configure the Chargeback Service. (this step is optional)

See Section 20.5.8, "Configuring Chargeback".

11

Select the service template you have created and request a database.

See Section 20.5.9, "Requesting a Database"

12

Refresh the test master and the database instance:

- Refresh the test master.

- Refresh the snap shot profile.

- Refresh the snap clone database instance.

See:

- Section 20.5.10, "Refreshing the Test Master Database"

- Section 20.5.11, "Refreshing the Snap Shot Profile".

- Section 22.3, "Refreshing a Database"

20.5.1 Getting Started

See Section 12.1, "Getting Started".

20.5.2 Registering Storage Servers

See Section 12.7, "Registering and Managing Storage Servers".

20.5.3 Creating Resource Providers

See Section 20.4.3, "Creating Resource Providers".

20.5.4 Configuring Request Settings

See Section 11.2.3, "Configuring Request Settings".

20.5.5 Defining Quotas

See Section 20.4.5, "Defining Quotas".

20.5.6 Creating a Discretely Synchronized Test Master

A test master database is a sanitized version of the production database. Production data can be optionally masked before the test master is created. A test master can be created from a snapshot or an RMAN Backup profile taken at a prior point in time and refreshed at specific intervals. This option is useful if the source data has to be masked to hide sensitive data.

To create a test master, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select the Database Service family on the left panel. Select Data Sources and click on the Test Master Databases tab.

2. To create a new test master, click on the Create menu. Select a production database from which the test master is to be created and click Select. The Clone Database: Source and Destination page appears.

3. On the Create Test Master Database: Source and Destination page, do the following:

- In the Source section, launch the credentials selector by selecting the search icons for SYSDBA Database and Database Host credentials. Click OK.

- In the Data Time Series section, select Now or Prior Point in Time.
If you selected Now, specify or search and select the SYSASM ASM Credentials. Now refers to Live Clone.

If you selected Prior Point in Time, a carousel of RMAN Backup images appear. Select the appropriate RMAN backup by clicking Select on the image.

Select a specific time between the selected backup or snapshot and the next (or latest point of source). The backups or dumps are created at specific intervals and the test master that is based on these will reflect the production database at specific points in time. To reflect the latest data in the production database, the test master needs to be periodically refreshed.

4. In the Destination Database Definition section, do the following:

- Specify a display name.

- Specify a global database name and SID.
A database is uniquely identified by a Global Database Name. The typical form of a name is name.domain. A database is referenced by at least one Oracle instance which is uniquely identified by SID.

- Select one of the following types of databases:

- Single Instance Database.
In the Hosts section, specify the Oracle Home location. The host gets specified by default. Next, select the Database Home credentials and the SYSASM ASM credentials.

- RAC Database
In the Hosts section, specify or select the cluster target. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

- RAC One Node Database
In the Hosts section, specify or select the cluster target. The Oracle Home location gets specified by default. Next, specify the Database Host credentials, and the SYSASM ASM credentials.

In the Nodes section, select the cluster and Oracle Home to display one or more hosts on which the administrator managed Oracle RAC database will be created.

Note:
Oracle supports inline patching as part of clones. When the destination home selected has patches applied such as the latest CPU or PSU, then the cloned database is automatically brought up with that level.

Click Next.

5. On the Create Test Master Database: Configuration page, do the following.

- Database Files Location: Specify the location in which the data files, temporary files, redo log files, and control files will be created. You must specify a mount point which must be present on a registered storage volume so that the self service administrator can enable this test master for snap clone.
You can select:

- File System: The Oracle Database File System creates a standard file system interface on top of files and directories that are stored in database tables. If you select this option, you must specify or select the Location of the File System. You can specify a common location for all the files or you can select the Use Oracle Optimal Flexible Architecture-compliant directory structure (OFA) checkbox and specify different locations for data files, redo log files, and so on.

- Automatic Storage Management: The Oracle Automatic Storage Management (ASM) is a volume manager and a file system for database files that supports single-instance and RAC configurations. ASM groups the disks in your storage system into one or more disk groups. If you select ASM, select a common location for the database files.

- Recovery Files Location: To simplify the management of backup and recovery files, a fast recovery area can be created for your database. The fast recovery area can be a ASM disk group or a file system that provides a centralized disk location for backup and recovery file.To allow self service users to schedule backups and perform restore operations, you can select the Use Fast Recovery Area checkbox and specify the location of the Fast Recovery Area and the Fast Recovery Size. The amount of disk space to allocate for the fast recovery area depends on the size and activity levels of your database.

- Listener Configuration: Click Add to add one or more listener targets that are to be associated with the new database.

- Database Credentials: Specify the passwords for the administrative users (SYS, SYSTEM and DBSNMP) of the new database being cloned. You can choose to use the same password for all the schemas or different passwords for each schema.

6. Click Next. Some values such as db_block_size cannot be modified.

7. Click Next. The Create Test Master Database: Post Processing page appears.

Figure 20-7 Test Master Setup: Post Processing

In the Post Processing page, specify the following:

- Masking Definition: Data masking is the process of masking sensitive data in test or non-production databases. The masking definition defines the columns to be masked in the format of the masked data. Specify the masking definition to be applied after the database is cloned. After selecting the masking definition, select the In-Place Masking option to generate a script to replace the sensitive data in-place with masked data on the cloned database. For more details on creating a masking definition, see the Enterprise Manager Database Testing Guide.

Note:
The masking definition can be used only when you have the Oracle Data Masking and Subsetting license pack.

- Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

- Specify the path for the SQL script which allows you to run the script against the newly cloned database as a user such as SYS, SYSTEM, or any other specified user. The SQL script allows you to customize the cloned database. For more details, see Section 24.1.1, "Post SQL Script".

- Select the Create Data Profile check box if you wish to create a database provisioning profile that is based on the test master. These profiles can be refreshed automatically or at specified intervals. Different versions of the profile are saved and are available to the self service user until they are purged. This ensures that the test master is periodically updated and the latest data can be used by the self service user. You can create a database provisioning profile if:

- This version of the test master must be available for cloning in future, even after the test master has be refreshed.

Enter the following details for the profile:

- Profile Type: Select RMAN Backup or RMAN Image.

- Backup Mode: If you select the RMAN Backup profile type, you can select one of the following: Select Online Backup to make a backup while the database is up and running. Select Offline Backup to shutdown the database for the duration of backup and bring it back once the backup is complete.

- Backup Location: Enter the directory path that already contains a backup location.

- Backup File Tag: Backup files will be tagged with the tag specified here.

- Location: Select the directory for the backup location.

- Enter the name, description, version number, vendor, and additional notes.

- Purge Policy Type: This can be None, Snapshots, or Days. If you select None, the profiles will need to be manually deleted as required. If you select Snapshots, specify the maximum number of snapshots that can be retained. If you select Day(s), specify the number of days the profile can be retained.

- Schedule: Specify whether the profile needs to be created immediately or at a later date.

8. Click Next. Specify the schedule for the creation of the test master. It can be created immediately (if physical standby used, it is created immediately and automatically refreshed) or can be created at a later date / time and refreshed at specified intervals.

9. Click Next. Review the information entered so far and click Submit to create the test master. After the test master has been created, you can refresh the test master as required to create a new version of the profile on which the test master is based.

Note:
You can also use the emcli create_clone command to create the test master. See Section 47.9, "Creating a Database Clone Using EM CLI Verbs" for more details.

20.5.7 Creating a Service Template Using Snap Clone Profile

See Section 20.4.9, "Creating Service Template Using Snap Clone Profile".

20.5.8 Configuring Chargeback

Optionally, you can configure the chargeback service. See Chapter 43, "Chargeback Administration".

20.5.9 Requesting a Database

The self service user can now select the service template based on the database template profile and create a database. See Section 22.2, "Requesting a Database".

20.5.10 Refreshing the Test Master Database

The test master database is created from an RMAN Backup profile of the production database taken at a particular point in time. Since the production database is constantly updated, to ensure that the latest production data is available in the test master, it has to be refreshed at periodic intervals.

To refresh the test master database, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select the Database Service family on the left panel. Click the Test Master Databases tab.

2. Select the test master that is to be refreshed and click Refresh. The Refresh Database: Source and Destination page appears.

3. Select the Prior Point in Time option and select the backup to which the test master is to be refreshed. You can modify the source and destination credentials.

4. If you select the Now option, you will see the following screen.

Figure 20-8 Test Master Refresh: Source and Destination (Now)

Click Next. The Configuration page appears.

Figure 20-9 Test Master Refresh: Configuration

5. Specify the Mount Point Prefix for the storage volume that will be used by the clone database and the database credentials. Click Next.

6. In the Initialization Parameters page, edit the values of various initialization parameters that affect the operation of the database instance. Click Next.

7. In the Post Processing page, specify the following:

- Masking Definition: Data masking is the process of masking sensitive data in test or non-production databases. The masking definition defines the columns to be masked in the format of the masked data. Specify the masking definition to be applied after the database is cloned. After selecting the masking definition, select the In-Place Masking option to generate a script to replace the sensitive data in-place with masked data on the cloned database. For more details on creating a masking definition, see the Enterprise Manager Database Testing Guide

Note:
The masking definition can be used only when you have the Oracle Data Masking and Subsetting license pack.

- Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

- Specify the path for the SQL script which allows you to run the script against the newly cloned database as a user such as SYS, SYSTEM, or any other specified user. The SQL script allows you to customize the cloned database. For more details, see Section 24.1.1, "Post SQL Script".

8. Click Next. Specify the schedule for the creation of the test master. It can be created immediately (if physical standby used, it is created immediately and automatically refreshed) or can be created at a later date / time and refreshed at specified intervals.

9. Click Next. Review the information entered so far and click Submit to refresh the test master.

Note:
You can use the emcli refresh_database command to refresh the database. See Section 47.6, "Database Profile EM CLI Verbs" for details.

When the test master is refreshed, you can create a new profile based on the updated test master. The self service user can choose to refresh the database instances to the latest profile. The storage space that was used by the older version of the test master will be reclaimed by the updated (refreshed) test master.

20.5.11 Refreshing the Snap Shot Profile

After the test master has been refreshed, you must create a new revision of the snap shot profile. To do so, you must refresh the snap shot profile by following these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Setup, then select the Database Service family on the left panel. Click Data Sources.

2. In the Data Sources page, click the Data Profiles tab. The list of the profiles is displayed.

Figure 20-10 Refresh Snap Shot Profile

3. Select the profile to be refreshed and click Refresh Profile. A confirmation message is displayed. Click Yes to submit the refresh profile job.

20.5.12 Example: Creating Snap Clones from Discretely Synchronized Test Master

The following example shows how you can create snap clones from a test master database that is refreshed at discrete intervals.

1. First, you must make sure that all the prerequisites are met. See Section 12.1, "Getting Started".

2. Next, you must register the storage server. See Section 20.4.2, "Registering Storage Servers".

3. You must then create one or more PaaS Infrastructure Zones and one or more database pools. See Section 20.4.3, "Creating Resource Providers".

4. Then, you must define the quota that you wish to allocate to the self service users. See Section 20.4.5, "Defining Quotas".

5. The next step is to identify the production database (prod1) and create an RMAN backup prod1_backup.

6. Create a test master (testmaster1) based on prod1_backup. See Section 20.5.6, "Creating a Discretely Synchronized Test Master".

7. Next, you must enable testmaster1 for snap clone. This allows creation of snap clones using snapshot technology. See Section 20.4.7, "Enabling the Test Master for Snap Clone".

8. Next, you must create a profile (snap_profile) that is based on testmaster1. See Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots"

9. To make this profile available to the self service user, you must create a service catalog entry or a service template. Create a template called Snap Clone Template1. See Section 20.5.7, "Creating a Service Template Using Snap Clone Profile". In the Service Template, the Profile Version field is set to Latest. This will ensure that the self service user will always use the latest version of the profile to create database instances.

10. The self service user can then use the Snap Clone Template1 to create the snap clone. See Section 22.2, "Requesting a Database".

11. To get the latest production data, the self service administrator refreshes TestMaster1. See Section 20.5.10, "Refreshing the Test Master Database".

12. Since the test master now contains updated data, a new revision of the profile must be created. See Section 20.5.11, "Refreshing the Snap Shot Profile".

13. Now that a new revision of the profile (snap_profile) is available, the self service user can refresh his database instance to get the latest production data. See Section 22.3, "Refreshing a Database". The storage space that was used by the older version of the test master will be reclaimed by the refreshed test master.

20.6 Creating a CloneDB Database

The CloneDB feature allows you to clone a database multiple times without copying the data into different locations. Instead Oracle Database creates the files in the Clone DB database using copy-on-write technology, so that only the blocks that are modified in the Clone DB database require additional storage on disk. Clone DB reduces the amount of storage required for testing purposes and enables rapid creation of multiple database clones. Clone DB is supported for database 11.2.0.3 or later versions.

You can create CloneDB databases by using a discretely synchronized test master by following these steps:

Table 20-3 Creating Snap Clone - Discrete Flow

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 20.5.1, "Getting Started"

3

Create one or more resource providers.

See Section 20.5.3, "Creating Resource Providers".

4

Configure the request settings.

See Section 20.5.4, "Configuring Request Settings".

5

Define quotas for each self service user.

See Section 20.5.5, "Defining Quotas"

6

Create a database provisioning profile using snapshots from an RMAN Image Backup.

See Section 20.6.1, "Creating a Database Provisioning Profile Using RMAN Database Image"

9

Create a service template based on the profile you have created.

See Section 20.6.2, "Creating a Service Template Using RMAN Image Profile".

10

Configure the Chargeback Service. (this step is optional)

See Section 20.5.8, "Configuring Chargeback".

11

Select the service template you have created and request a database.

See Section 20.5.9, "Requesting a Database"

20.6.1 Creating a Database Provisioning Profile Using RMAN Database Image

To create a database provisioning profile, follow these steps:

1. You can access the Database Provisioning page using either of the following ways:

- From the Enterprise menu, select Cloud, and then select Cloud Home. On the Cloud home page, click Oracle Cloud, select Setup, and then select Data Sources. On the Database: Data Sources page, in the Data Profiles tab, click Create.

- From the Enterprise menu, select Provisioning and Patching, and then select Database Provisioning. On the Database Provisioning page, in the Profiles section, click Create.

- From the database target home page, click Oracle Database, select Provisioning, and then select Create Provisioning Profile.

2. On the Reference Target page, click the search icon to select a target.

3. In the Search and Select: Targets display box, select the database you want to create a profile for, and then, click Select.

4. On the Reference Target page, select the following:

- Data Content

- Structure and Data to include physical and structural files from the database or Structure Only to include only the structural files in the template.

- Create

- RMAN Database Image

5. In the Credentials section, select the database. In the Credentials column, you can select Named Credentials and then select a credential name from the Credential Name column (or) select Preferred Credentials. Click Next.

6. On the Content Options page, specify the backup location for the RMAN image mode. By default, the backup location selected is Offline Backup. You can choose Online Backup only if it is enabled.
Then, select Directory for the backup location and enter the directory path, or select Fast Recovery Area, which already contains a backup location.

Note:

- Ensure that the specified location is accessible to all the nodes in the database pool.

- Depending on the database version, the profile (image) may need to be manually staged on an NFS shared location.

Click Next.

7. On the Create Database Provisioning Profile: Page, in the Profile Information section, do the following:

- Specify or select a profile location in the software library where the database profile will be created.

- Specify a unique profile name.

For example:
RMAN Database Image for HR database

- Add a description for the profile.

- Verify the profile version and the vendor.

- Add any additional notes such as host name, database, data content, data content mode, and the like.

8. In the Schedule section, you can choose to start the profile creation immediately, or you can schedule it for a later time. You can also choose to repeat the creation of the provisioning profile, and set a repeat time.

9. In the Purge Policy section, you have three options:

- None. Select this option you do not want to purge any data collected.

- Snapshots. This option enables you to specify the maximum number of snapshots that can be purged.

- Day(s). This option enables you to specify the number of days after which the data component should be purged.

10. Specify or select a working directory. Click Next.

11. On the Review page, ensure that the selections you have made in the previous pages are correctly displayed and click Submit. Otherwise, click Back repeatedly till you reach the page where you want to make changes. Click Cancel to abort the provisioning profile creation.

Once you have submitted the provisioning profile creation job, manually refresh the page if View Data has been set to Real Time: Manual Refresh. Else, set View Data to reload after a specific period of time, and then select an execution step from the Procedure Steps tree on the left pane to view the details.

To view the submitted jobs, select the Procedure Activity link in the Data Profiles tab.

20.6.2 Creating a Service Template Using RMAN Image Profile

To create a service template using RMAN Image Profile, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

3. Click the Setup link next to the Databases option in the left panel. Select Database from the drop down menu.

4. Click the Service Templates link. The Service Templates page appears. Click Create. The Create Service Template: General page appears.

5. Figure 20-11 Create Service Template: General (CloneDB)

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. Click the Search icon next to the Profile field and select the test master database based on the RMAN Image profile.

8. In the Profile Version field, you can select either of the following:

- Latest: This ensures that the latest profile is always used by the self service user.

- Selected by user at request time: If this option is selected, the self service user can select the profile to be used when creating a service request.

9. In the Database Definition region, select the following:

- Create: Select CloneDB Database option. Each file is copied as an image copy which is a bit-for-bit copy of a database file created on disk. Image copies are identical to copies created with operating system commands such as cp on Linux or COPY on Windows, but are recorded in the RMAN repository and so are usable by RMAN. This option allows you reduce the amount of storage and enables rapid creation of multiple databases.
If you are doing an online backup, you must ensure that your Test Master database is in ARCHIVELOG mode and that all of the necessary archived redo log files are saved and accessible to the CloneDB database environment. If you are doing an offline backup, you must ensure that the backup copies are accessible to the CloneDB database environment.

- Type: This can be Single Instance or Real Application Cluster (RAC). If you select RAC, specify the Number of Nodes.

- Database SID: This is an optional field. You can select Specify Prefix or Specified by User at Request Time.

- Specify Prefix: If you choose this option, enter a prefix that is to be used to generate a unique System Identifier (SID) at the time of database creation. The prefix helps to identify databases created using this service template. The prefix can be a maximum of 6 characters.
The new database name generated will be based on the SID Prefix specified here. For example, if the prefix is specified as MYDB, the SID for the new database is generated as MYDB0000, MYDB0001, MYDB0002, and so on.

For existing databases (running databases and in progress requests), a unique SID name is generated for single instance databases, or a unique name is generated for real application cluster databases. For example, if the existing SIDs running on a host are MYDB0000, MYDB0001, MYDB0002 And In progress are MYDB0003, MYDB0004, the new SID or database name generated for the new request is MYDB0005.

- Specified by User at Request Time: If you choose this option, you can leave this field blank and specify the SID when you are making a database request.

- Domain Name: This is an optional field. Enter a Domain Name to be used for the new database being created. You must ensure that the domain name does not contain a preceding "." (dot).

10. In the Pools and Zones region, click Add to select a PaaS Infrastructure Zone into which the database instance is to be provisioned. Click Assign Pool. Select a pool from the list and assign this pool to the PaaS Infrastructure Zone. The database will be provisioned into this pool.

11. After you have selected the zone and the pool, the host target is populated in the Reference Host field.

12. In the Reference Host region, the name of the PaaS Infrastructure zone, the database pool, and the reference host you have selected in the Database Cloud Self Service Portal Setup: General page are displayed.

13. In the Location field, specify the location for the database files. This must be an NFS location.

14. To simplify the management of backup and recovery files, you can optionally create a fast recovery area for your database. Select the Enable Fast Recovery Area checkbox to specify the location in which recovery related files must be stored. The fast recovery area can be a file system that provides a centralized disk location for backup and recovery file. Specify the location of the Fast Recovery Area and the Fast Recovery Size. The amount of disk space to allocate for the fast recovery area depends on the size and activity levels of your database.
If the Enable Archiving check box is selected, the database will not be shut down during a refresh. This allows self service users to schedule backups and restore operations without shutting down the database.

15. If you have chosen to create a CloneDB database, you can optionally allow the user to take a backup copy of the database. Select the Allow the user to take backup copy for the new database checkbox. Specify the maximum number of backups allowed and the backup location.

16. In the Listener Port field, specify listener port number that is to be associated with the new database. If you have selected a 11.2 or later RAC database, you must specify the scan port number.

17. Specify the Administrator Credentials. Specify passwords for the system schemas of the new database. These schemas will not be available to the EM_SSA_USERS. You can choose to use the same password for all the schemas or different passwords for each schema. If these values are not specified, default values will be used and the EM_ADMINISTRATOR can change them.

18. Apart from the system schemas, if you want to restrict access to other schemas, you can select them in the Non-Administrator Credentials region and specify the password. These schemas will be locked and the EM_SSA_USERS cannot access them. Click Next.

19. Click Next. The Create Service Template: Initialization Parameters page appears. In this page, you can configure the values of various initialization parameters that affect the operation of the database instance. Select the parameter and click the Set icon to modify the value of the parameter.

20. Click Next. The Create Service Template: Customization page appears. Specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.

21. In the Target Properties region, you can specify global target properties such as Location, Department, Line of Business, and so on. You can do the following:

- Mark a property as mandatory by selecting the Required check box. If a property is marked as mandatory, the self service user must specify a value for this property while requesting a database.

- Lock a property. When a property is locked, the self service user cannot modify the value of this property while requesting a database.

22. Click Next. The Create Service Template: Roles page appears. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

23. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

21 Creating Snap Clones for Pluggable Databases

This chapter provides the following different solutions of creating a test master pluggable database and snapshot clones of pluggable databases. It contains the following sections:

- Creating Test Master Pluggable Databases

- Creating Snapshot Clones of Test Master Pluggable Databases

- Enabling a Test Master Pluggable Database

- Disabling a Test Master Pluggable Database

21.1 Creating Test Master Pluggable Databases

This section provides the different solutions of creating a test master pluggable database using the Pluggable Database Cloning wizard. It contains the following subsections:

- Creating a Test Master Pluggable Database

- Creating an Exadata Test Master Pluggable Database

- Creating an ACFS Test Master Pluggable Database

Note:
To create a test master pluggable database using EM CLI, see Section 47.15, "Creating a Test Master Pluggable Database."

21.1.1 Creating a Test Master Pluggable Database

If you have the 12.1.0.8 Enterprise Manager for Oracle Database plug-in deployed in your system, you can create a test master PDB from a source PDB, using the new Clone PDB Wizard.

To create a test master PDB from a source PDB, follow these steps:

1. From the Targets menu, select Databases.

2. For View, select Search List. From the View menu, select Expand All.

3. Look for the source CDB (the CDB that the source PDB is a part of) in the list, then click the name of the PDB from which you want to create a test master PDB.

4. From the Oracle Database menu, select Cloning, then select Create Test Master.
Alternatively, in Step 3, you can right click the name of the PDB from which you want to create a test master PDB, select Oracle Database, select Cloning, then select Create Test Master.

5. On the Create Test Master Pluggable Database: Source and Destination page, do the following:

- Specify the SYSDBA credentials for the source CDB. You can choose to use the preferred credentials, use a saved set of named credentials, or specify a new set of credentials.

- In the Pluggable Database Definition section, specify a name, and a display name for the test master PDB. Enterprise Manager uses the display name to identify the test master PDB target.

- In the PDB Administrator Credentials section, specify the credentials of the admin user account that you want to use to administer the test master PDB.

- In the Container Database section, specify the destination CDB (the CDB that the test master PDB must be a part of).

- In the Credentials section, specify the SYSDBA credentials for the destination CDB, and the host credentials for the destination CDB. Also, if the destination CDB is using Automatic Storage Management (ASM) to manage disk storage, you must specify the ASM credentials.
Click Next.

6. On the Create Test Master Pluggable Database: Configuration page, do the following:
In the Database Files Location section, specify the storage location where the datafiles of the test master PDB must be stored. If the destination CDB is using ASM to manage disk storage, specify the disk group where the datafiles of the test master PDB must be stored.

To ensure that only the source PDB data model definition is cloned (and the source PDB data is not cloned), select Exclude User Data.

In the PDB Administrator Credentials section, specify the credentials of the admin user account that you want to use to administer the test master PDB.

In the Advanced Configuration section, specify the storage limits for the maximum size of the test master PDB, and the maximum size of a shared tablespace within the test master PDB. By default, no limits are placed on the values for these attributes. In the Miscellaneous section, select the logging option that you want to use for the tablespaces created within the test master PDB.

Note that if the destination CDB is part of an Exadata machine, the Access Controls and Permissions section is displayed in place of the Advanced Configuration section. In this case, you must specify the owner and the group that must be granted read only permissions on the datafiles.

Click Next.

7. On the Create Test Master Pluggable Database: Post Processing page, in the Data Masking section, specify the data masking definition that you want to apply after creating the test master PDB. Data masking masks sensitive data in a database.
For information on how to create a data masking definition, see Oracle Data Masking and Subsetting Guide. Note that you can apply a data masking definition only if you have the Subset-Masking license pack.

In the Custom Scripts section, for Pre Script and Post Script, specify the Oracle Software Library components that contain the scripts that you want to run before, and after creating the test master PDB respectively. Also, for SQL Script, specify the SQL scripts that you want to run after creating the test master PDB. For Run As User, select the user account that you want to use to run the SQL scripts.

Click Next.

8. Specify an instance name for the deployment procedure. Also, specify the point in time when you want the deployment procedure to begin.
In the Notification section, select the deployment procedure states for which you want to receive e-mail notifications. For example, if you select Scheduled and Succeeded for Status for Notification, you will receive e-mail notifications when the deployment procedure is scheduled, and when it succeeds.

Click Next.

9. Review all the details you provided. If you want to edit certain details, click Back to navigate to the required page.
Click Clone to submit the deployment procedure to create a test master PDB from the source PDB.

21.1.2 Creating an Exadata Test Master Pluggable Database

If you have the 12.1.0.8 Enterprise Manager for Oracle Database plug-in deployed in your system, you can create a test master PDB from a source PDB, using the new Clone PDB Wizard.

To create a test master PDB from a source PDB, follow these steps:

1. From the Targets menu, select Databases.

2. For View, select Search List. From the View menu, select Expand All.

3. Look for the source CDB (the CDB that the source PDB is a part of) in the list, then click the name of the PDB from which you want to create a test master PDB.

4. From the Oracle Database menu, select Cloning, then select Create Test Master.
Alternatively, in Step 3, you can right click the name of the PDB from which you want to create a test master PDB, select Oracle Database, select Cloning, then select Create Test Master.

5. On the Create Test Master Pluggable Database: Source and Destination page, do the following:

- Specify the SYSDBA credentials for the source CDB. You can choose to use the preferred credentials, use a saved set of named credentials, or specify a new set of credentials.

- In the Pluggable Database Definition section, specify a name, and a display name for the test master PDB. Enterprise Manager uses the display name to identify the test master PDB target.

- In the PDB Administrator Credentials section, specify the credentials of the admin user account that you want to use to administer the test master PDB.

- In the Container Database section, specify the destination CDB (the CDB that the test master PDB must be a part of).

- In the Credentials section, specify the SYSDBA credentials for the destination CDB, and the host credentials for the destination CDB. Also, if the destination CDB is using Automatic Storage Management (ASM) to manage disk storage, you must specify the ASM credentials.
Click Next.

6. On the Create Test Master Pluggable Database: Configuration page, do the following:
In the Database Files Location section, specify the disk group where the data files of the test master PDB will be created.

To ensure that only the source PDB data model definition is cloned (and the source PDB data is not cloned), select Exclude User Data.

In the Access Controls and Permissions section, specify the owner and the group that must be granted read-only permissions on the data files.

Click Next.

7. On the Create Test Master Pluggable Database: Post Processing page, in the Data Masking section, specify the data masking definition that you want to apply after creating the test master PDB. Data masking masks sensitive data in a database.
For information on how to create a data masking definition, see Oracle Data Masking and Subsetting Guide. Note that you can apply a data masking definition only if you have the Subset-Masking license pack.

In the Custom Scripts section, for Pre Script and Post Script, specify the Oracle Software Library components that contain the scripts that you want to run before, and after creating the test master PDB respectively. Also, for SQL Script, specify the SQL scripts that you want to run after creating the test master PDB. For Run As User, select the user account that you want to use to run the SQL scripts.

Click Next.

8. Specify an instance name for the deployment procedure. Also, specify the point in time when you want the deployment procedure to begin.
In the Notification section, select the deployment procedure states for which you want to receive e-mail notifications. For example, if you select Scheduled and Succeeded for Status for Notification, you will receive e-mail notifications when the deployment procedure is scheduled, and when it succeeds.

Click Next.

9. Review all the details you provided. If you want to edit certain details, click Back to navigate to the required page.
Click Clone to submit the deployment procedure to create a test master PDB from the source PDB.

21.1.3 Creating an ACFS Test Master Pluggable Database

If you have the 12.1.0.8 Enterprise Manager for Oracle Database plug-in deployed in your system, you can create a test master PDB from a source PDB, using the new Clone PDB Wizard.

To create a test master PDB from a source PDB, follow these steps:

1. From the Targets menu, select Databases.

2. For View, select Search List. From the View menu, select Expand All.

3. Look for the source CDB (the CDB that the source PDB is a part of) in the list, then click the name of the PDB from which you want to create a test master PDB.

4. From the Oracle Database menu, select Cloning, then select Create Test Master.
Alternatively, in Step 3, you can right click the name of the PDB from which you want to create a test master PDB, select Oracle Database, select Cloning, then select Create Test Master.

5. On the Create Test Master Pluggable Database: Source and Destination page, do the following:

- Specify the SYSDBA credentials for the source CDB. You can choose to use the preferred credentials, use a saved set of named credentials, or specify a new set of credentials.

- In the Pluggable Database Definition section, specify a name, and a display name for the test master PDB. Enterprise Manager uses the display name to identify the test master PDB target.

- In the PDB Administrator Credentials section, specify the credentials of the admin user account that you want to use to administer the test master PDB.

- In the Container Database section, specify the destination CDB (the CDB that the test master PDB must be a part of).

- In the Credentials section, specify the SYSDBA credentials for the destination CDB, and the host credentials for the destination CDB. Also, if the destination CDB is using Automatic Storage Management (ASM) to manage disk storage, you must specify the ASM credentials.
Click Next.

6. On the Create Test Master Pluggable Database: Configuration page, in the Database Files Location section, specify the ACFS mount point storage location where the data files of the test master PDB will be created.
To ensure that only the source PDB data model definition is cloned (and the source PDB data is not cloned), select Exclude User Data.

Click Next.

7. On the Create Test Master Pluggable Database: Post Processing page, in the Data Masking section, specify the data masking definition that you want to apply after creating the test master PDB. Data masking masks sensitive data in a database.
For information on how to create a data masking definition, see Oracle Data Masking and Subsetting Guide. Note that you can apply a data masking definition only if you have the Subset-Masking license pack.

In the Custom Scripts section, for Pre Script and Post Script, specify the Oracle Software Library components that contain the scripts that you want to run before, and after creating the test master PDB respectively. Also, for SQL Script, specify the SQL scripts that you want to run after creating the test master PDB. For Run As User, select the user account that you want to use to run the SQL scripts.

Click Next.

8. Specify an instance name for the deployment procedure. Also, specify the point in time when you want the deployment procedure to begin.
In the Notification section, select the deployment procedure states for which you want to receive e-mail notifications. For example, if you select Scheduled and Succeeded for Status for Notification, you will receive e-mail notifications when the deployment procedure is scheduled, and when it succeeds.

Click Next.

9. Review all the details you provided. If you want to edit certain details, click Back to navigate to the required page.
Click Clone to submit the deployment procedure to create a test master PDB from the source PDB.

21.2 Creating Snapshot Clones of Test Master Pluggable Databases

This section provides the different solutions of creating snapshot clones of test master pluggable databases using the Pluggable Database Cloning wizard. It contains the following subsections:

- Creating a Snapshot Clone of an Exadata Test Master PDB

- Creating a Snapshot Clone of an ACFS Test Master PDB

Note:
To create a snapshot clone of a pluggable database using EM CLI, see Section 47.14.2, "Pluggable Database Snapshot Clone Types."

21.2.1 Creating a Snapshot Clone of an Exadata Test Master PDB

Important:
You can create snapshot clones of only those test master PDBs that are of version 12.1.0.2.0 or higher.

If you have the 12.1.0.8 Enterprise Manager for Oracle Database plug-in deployed in your system, you can create a snapshot clone of a test master PDB using the new Clone PDB Wizard.

To create a snapshot clone of an exadata test master PDB, follow these steps:

1. From the Targets menu, select Databases.

2. For View, select Search List. From the View menu, select Expand All.

3. Look for the source CDB (the CDB that the source test master PDB is a part of) in the list, then click the name of the test master PDB that you want to clone.

4. From the Oracle Database menu, select Cloning, then select Create Snapshot Clone.
Alternatively, in Step 3, you can right click the name of the test master PDB that you want to clone, select Oracle Database, select Cloning, then select Create Snapshot Clone.

5. On the Source and Destination: Create Snapshot Clone Pluggable Database, do the following:

- Specify the SYSDBA credentials for the source CDB. You can choose to use the preferred credentials, use a saved set of named credentials, or specify a new set of credentials.

- In the Credentials section, specify the SYSDBA credentials of the CDB.

- In the Pluggable Database Definition section, specify the name of the PDB, and a display name of the PDB snapshot clone. Enterprise Manager uses the display name to identify the PDB snapshot clone target.

- In the PDB Administrator Credentials section, specify the credentials of the Admin user account that you want to use to administer the PDB snapshot clone.
To clone the test master PDB to a CDB different from the source CDB, select Clone the Pluggable Database into a different Container Database, then specify the destination CDB.

- In the Credentials section, specify the CDB host credentials. Also, specify the ASM credentials of the ASM that will be used to manage disk storage.

6. If you do not need to specify anymore details, click Clone. This submits the deployment procedure to clone a PDB to a CDB that is deployed in a public cloud setup.
To specify other configuration details, mask data, as well as schedule the cloning process, click Advanced.

Follow the rest of the steps, if you have selected the Advanced option. The option to Clone is available on each page.

7. On the Create Snapshot Clone Pluggable Database: Source and Destination page, verify the details specified, and then click Next.

8. On the Create Snapshot Clone Pluggable Database: Configuration page, do the following:

- In the Database Files Location section, specify the name of the Sparse disk group where the data files of the PDB snapshot clone will be created.

- In the Advanced Configuration section, specify the storage limits for the maximum size of the PDB snapshot clone, and the maximum size of a shared tablespace within the PDB snapshot clone. By default, no limits are placed on the values for these attributes.

- In the Miscellaneous section, select the default logging option for the tablespaces created within the PDB snapshot clone.

- Click Next.

9. On the Create Snapshot Clone Pluggable Database: Post Processing section, in the Data Masking section, specify the data masking definition that you want to apply after cloning the PDB. Data masking masks sensitive data in a database.
For information on how to create a data masking definition, see Oracle Data Masking and Subsetting Guide. Note that you can apply a data masking definition only if you have the Subset-Masking license pack.

In the Custom Scripts section, for Pre Script and Post Script, specify the Oracle Software Library components that contain the scripts that you want to run before cloning, and after cloning the PDB respectively. Also, for SQL Script, specify the SQL scripts that you want to run after cloning the PDB. For Run As User, select the user account that you want to use to run the SQL scripts.

Click Next.

10. On the Create Snapshot Clone Pluggable Database: Schedule page, specify an instance name for the cloning deployment procedure. Also, specify the point in time when you want the cloning procedure to begin.
In the Notification section, select the deployment procedure states for which you want to receive e-mail notifications. For example, if you select Scheduled and Succeeded for Status for Notification, you will receive e-mail notifications when the cloning deployment procedure is scheduled, and when it succeeds.

Click Next.

11. On the Create Snapshot Clone Pluggable Database: Review page, review all the details you provided. If you want to edit certain details, click Back to navigate to the required page.
Click Clone to submit the deployment procedure to create a snapshot clone of the exadata test master PDB.

21.2.2 Creating a Snapshot Clone of an ACFS Test Master PDB

Important:
You can create snapshot clones of only those test master PDBs that are of version 12.1.0.2.0 or higher.

If you have the 12.1.0.8 Enterprise Manager for Oracle Database plug-in deployed in your system, you can create a snapshot clone of a test master PDB using the new Clone PDB Wizard.

To create a snapshot clone of an exadata test master PDB, follow these steps:

1. From the Targets menu, select Databases.

2. For View, select Search List. From the View menu, select Expand All.

3. Look for the source CDB (the CDB that the source test master PDB is a part of) in the list, then click the name of the test master PDB that you want to clone.

4. From the Oracle Database menu, select Cloning, then select Create Snapshot Clone.
Alternatively, in Step 3, you can right click the name of the test master PDB that you want to clone, select Oracle Database, select Cloning, then select Create Snapshot Clone.

5. On the Source and Destination: Create Snapshot Clone Pluggable Database, do the following:

- Specify the SYSDBA credentials for the source CDB. You can choose to use the preferred credentials, use a saved set of named credentials, or specify a new set of credentials.

- In the Credentials section, specify the SYSDBA credentials of the CDB.

- In the Pluggable Database Definition section, specify the name of the PDB, and a display name of the PDB snapshot clone. Enterprise Manager uses the display name to identify the PDB snapshot clone target.

- In the PDB Administrator Credentials section, specify the credentials of the Admin user account that you want to use to administer the PDB snapshot clone.
To clone the test master PDB to a CDB different from the source CDB, select Clone the Pluggable Database into a different Container Database, then specify the destination CDB.

- In the Credentials section, specify the CDB host credentials. Also, specify the ASM credentials of the ASM that will be used to manage disk storage.

6. If you do not need to specify anymore details, click Clone. This submits the deployment procedure to clone a PDB to a CDB that is deployed in a public cloud setup.
To specify other configuration details, mask data, as well as schedule the cloning process, click Advanced.

Follow the rest of the steps, if you have selected the Advanced option. The option to Clone is available on each page.

7. On the Create Snapshot Clone Pluggable Database: Source and Destination page, verify the details specified, and then click Next.

8. On the Create Snapshot Clone Pluggable Database: Configuration page, do the following:

- In the Database Files Location section, specify the name of the Sparse disk group where the data files of the PDB snapshot clone will be created.

- In the Advanced Configuration section, specify the storage limits for the maximum size of the PDB snapshot clone, and the maximum size of a shared tablespace within the PDB snapshot clone. By default, no limits are placed on the values for these attributes.

- In the Miscellaneous section, select the default logging option for the tablespaces created within the PDB snapshot clone.

- Click Next.

9. On the Create Snapshot Clone Pluggable Database: Post Processing section, in the Data Masking section, specify the data masking definition that you want to apply after cloning the PDB. Data masking masks sensitive data in a database.
For information on how to create a data masking definition, see Oracle Data Masking and Subsetting Guide. Note that you can apply a data masking definition only if you have the Subset-Masking license pack.

In the Custom Scripts section, for Pre Script and Post Script, specify the Oracle Software Library components that contain the scripts that you want to run before cloning, and after cloning the PDB respectively. Also, for SQL Script, specify the SQL scripts that you want to run after cloning the PDB. For Run As User, select the user account that you want to use to run the SQL scripts.

Click Next.

10. On the Create Snapshot Clone Pluggable Database: Schedule page, specify an instance name for the cloning deployment procedure. Also, specify the point in time when you want the cloning procedure to begin.
In the Notification section, select the deployment procedure states for which you want to receive e-mail notifications. For example, if you select Scheduled and Succeeded for Status for Notification, you will receive e-mail notifications when the cloning deployment procedure is scheduled, and when it succeeds.

Click Next.

11. On the Create Snapshot Clone Pluggable Database: Review page, review all the details you provided. If you want to edit certain details, click Back to navigate to the required page.
Click Clone to submit the deployment procedure to create a snapshot clone of the exadata test master PDB.

21.3 Enabling a Test Master Pluggable Database

To convert a pluggable database into a test master, follow these steps:

1. Right click on the pluggable database target name that you want to enable as a test master, select Oracle Database, select Cloning, and then select Enable as a Test Master.

2. On the Enable as a Test Master page, in the Credentials section, specify the credentials for the container database of the pluggable database, and the credentials of the Oracle Home.

3. In the Source section, specify or search for the parent database from which the database has been created. This provides better lineage tracking.

4. In the Data Masking section, you can choose to desensitize the data by applying masking templates or by running additional scripts of your choice.

5. In the Custom Scripts section, you can select the Software Library components which contain post cloning scripts. The clone database can also be customized by executing the post cloning SQL script.

6. Click Submit.

21.4 Disabling a Test Master Pluggable Database

Disabling a test master pluggable database, resets the data files to read-write mode and restarts the pluggable database in open mode. You can make further changes to the database and then enable it as a test master again.

To disable a test master pluggable database, follow these steps:

1. Right click on the test master pluggable database, select Oracle Database, select Cloning, and then select Disable as a Test Master.

2. On the Disable Test Master page, specify the credentials of the container database of the test master pluggable database. Also, specify the credentials of the Oracle Home.

3. Click Submit.

22 Using the DBaaS Self Service Portal

This chapter provides self service users with instructions on using the Database Cloud Self Service Portal to request, monitor, and manage database services. It contains the following sections:

- Using the Database Cloud Self Service Portal

- Requesting a Database

- Viewing the Database Service Home Page

- Viewing the Database Instance Home Page

- Viewing the Cluster Database Home Page

- Viewing the Pluggable Database Home Page

22.1 Using the Database Cloud Self Service Portal

The Database Self Service Portal allows self service users to view, monitor and deploy databases on selected zones, as well as create schemas on running databases. To view the Database Cloud Self Service Portal, log in to Enterprise Manager as a user with EM_SSA_USER role or an user with the EM_SSA_USER_BASE role. Users with these roles must be part of the DBAAS Cloud Service Family and must have privileges for the DB, Schema, or PDB service types. The Self Service Portal appears. Select Databases from the Manage drop down list.

Figure 22-1 Database Cloud Self Service Portal

The Database Self Service Portal allows SSA users to view, monitor, deploy databases on selected zones, and create schemas on running databases.

The following details are displayed:

- Home: This is the Home page for the Database Self Service Portal. It contains the following sections:

- Notifications: This section shows the number of databases that are expiring in the next 7 days.

- Usage: This region displays the quota that you currently have and how much has been used for the following:

- Databases: The number of databases requested so far and the maximum number of databases that can be requested.

- Schema Services: The number of schemas requested so far and the maximum number of schemas that can be requested.

- Pluggable Databases: The number of PDBs requested so far and the maximum number of PDBs that can be requested.

- Memory: The total amount of memory allocated to the user and the memory used by all databases and schemas requested so far.

- Storage: The total storage volumes allocated to the user and the storage used by all databases requested so far.

- Services: This table lists the services that you currently own. You can request more databases, schemas, or PDBs by selecting the appropriate option from the Request New Service menu. You can also delete any databases you own to release it prior to expiration. Click on the service instance name to drill down to the database details page. This page provides basic monitoring capabilities and provides life cycle operations for the service.
From the Actions menu, you can do the following:

- Start / Stop a Service Instance: You can start a service instance that has been stopped or stop a service instance that is running.

- View History: Select a service instance and click View History to view the history of operations performed on the service instance.

- Grant: You can grant view or full privileges over the service instance to other users or roles. See Section 29.4.1, "Granting, Revoking, and Reassigning Privileges to Service Instances".

- Revoke: You can revoke privileges that you have granted to other users or roles. See Section 29.4.1, "Granting, Revoking, and Reassigning Privileges to Service Instances".

- Requests: This table tracks the requests that you have created, deleted, or refreshed. For each request, the status, request type, service type, and submission date of the request is displayed.You can select a scheduled such as a Create or Delete request and click Reschedule to reschedule the request. To delete a scheduled request, select the request and click Cancel. If a request that is scheduled such as Create gets canceled, all other associated requests are also canceled.

- Chargeback: This page displays all the chargeback break-up data for the databases and pricing for different zones. The charge incurred will be calculated from the database requested date to current date. This page contains the following sections:

- Charge Trend: This graph show the usage and charge trends over time.

- Aggregate By: You can aggregate the charge back data for the database by resources or metrics. You can export this data to an external application such as a spreadsheet.

- Charge Plans: The charge plans that have been assigned to each are displayed. Select a zone to view the pricing. The rate for each metric in the database zone for a specific time period is displayed.

- Preferences: Click this link to set up your preferences such as your default service portal, default PaaS Infrastructure Zone, default email address for notifications, and so on.

22.2 Requesting a Database

To request a new database, follow these steps:

1. Click the Request New Service link on the Database Cloud Self Service Portal. The service offerings window is displayed.

2. In the Service Type drop down, select All to view all the service offerings available for the Database Service Family. You can select Database, Pluggable Database, or Schema to view service offerings only for the selected service type.

Figure 22-2 Request New Service

3. Select a service template from the list and click Select. The service template you select can be based on RMAN backup profile, physical standby database, or snapshot based profile. Select the appropriate template according to your requirement.

4. The New Database Service Request page appears.

Figure 22-3 Create Database

Enter the following details:

- Request Name: Enter the name of the request.

- Zone: Select a PaaS Zone on which the database is to be deployed.

- Database SID: This field is displayed if the service template you have selected allows you to specify the database SID at request time. Enter a unique Database SID.

- Database Service Name: Enter a unique database service name. The name you specify must be unique across all database, pluggable database, and schema service requests.
You cannot use the same database service name that has been used for future scheduled requests. If a Delete operation failed, you cannot use the name specified in the failed request.

Note:

- You can create a standby database only if the service template you select contains a database pool with standby databases.

- If the service template supports standby databases, depending on the preferences set up the self service administrator, you can choose to create a standby database if required. You can also select from one or more standbys (a subset of what is defined in the service template). If you do not wish to create a standby database and you select only a subset of the topology supported by the service template, you can request one or more of the remaining standbys at a later point in time after the current request has been completed.

- Deployment Input: Specify the user name and password for the database. If you have selected an RMAN or snap clone based service template, and you are allowed to choose from the active data points, you can select an RMAN backup or snap shot here.

- Schedule Request: Specify the schedule for the request.

- Service Instance Properties: Any mandatory and optional target properties are displayed here. If a property is marked mandatory, you must enter a value for that property.

5. If the service template you selected is based on a RMAN Backup, Snapshot or RMAN Image profile, the list of available backups, snapshots, or images are listed in the Snapshot region. These snapshots reflect the state of the test master database at any point in time.

Figure 22-4 Create Database (Snapshots)

Select a snapshot from the list and click Submit to deploy the database to the selected zone. The new database that is created will be based on the selected snapshot.

22.2.1 Requesting a Schema

You can create a database service with one or more schemas and populate the schema with the required data.

Requesting an Export Profile Based Schema

You can create a schema based on a service template with a schema export profile or an empty service template. To create a schema based on a schema export profile, follow these steps:

1. Log in to Enterprise Manager as a user with EM_SSA_USER role or any role that includes EM_SSA_USER role.

2. The Database Cloud Self Service Portal page appears. Select Databases from the Manage drop down list to navigate to the Database Cloud Self Service Portal.

3. Click Request New Service in the Services region.

4. Choose a Schema Service Template with an schema export profile from the list and click Select. The Create Schema page appears. The name and description of the service template you have selected is displayed. Enter the following details:

- Request Name: Enter a name for the schema service request.

- Zone: Select the zone in which the schema is to be created.

- Database Service Name: Enter a unique name for the database service.

- Workload Size: Specify the workload size for the service request.

- Schema Prefix: Enter a prefix for the schema. For clustered databases, the service is registered with Grid Infrastructure credentials.

5. Click Rename Schema to enter a new name for the schema. If you wish to retain the source schema name, ensure that the Schema Prefix field is blank.

6. Specify the password for the schema. Select the Same Password for all Schemas checkbox to use the same password for all the schemas.

7. The Master Account for the schema is displayed. The schema with Master Account privileges will have access to all other schemas created as part of the service request.

8. In the Tablespace Details region, the names of all the tablespaces in the schema are displayed. You can modify the tablespace name and specify a new name in the New Tablespace Name box.

9. Specify the schedule for the request and click Submit to create the schema.

Requesting an Empty Schema

To create a schema with an empty schema template, follow these steps:

1. Follow steps 1 to 3 listed above and in the Select Service Template window, select an empty schema template from the list.

2. Specify the details of the schema as listed in steps 4 to 7.

3. In the Tablespace Details region, you can specify a separate tablespace for each schema or use the same tablepsace for all the schemas.

4. Specify the schedule for the schema request and click Submit to create the schema.

22.2.2 Requesting a Pluggable Database

You can request a pluggable database based on a selected service template. To request a pluggable database, follow these steps:

1. Login to Enterprise Manager as a user with EM_SSA_USER role or any role that includes EM_SSA_USER role.

2. The Infrastructure Cloud Self Service Portal page appears. Select Databases from the Manage drop down list.

3. Click Request New Service in the Services region. In the Request New Service window that appears, select Pluggable Database from the Service Type drop down.

4. Choose a service template from the list and click Select. The Create Pluggable Database page appears.

Figure 22-5 New Pluggable Database Service Request

5. Specify the following details:

- Request Name: Enter the name of the request.

- Zone: Select a PaaS Infrastructure Zone with the container databases into which the pluggable database is to be deployed.

- PDB Name: Enter a unique pluggable database name.

Note:

- The database service name you specify must be unique across all database, pluggable database, and schema service requests.

- You cannot use the same database service name that has been used for future scheduled request.

- If a Delete operation failed, you cannot use the name specified in the failed request.

- Database Service Name: Enter a unique database service name.

- Workload Size: Workload represents the total CPU, memory, and storage requirements for each service. Select the Workload Size from the drop down list.

- Deployment Input: Specify the pluggable database administrator user name and password.

- Schedule Request: Specify the schedule for the request.

- Service Instance Properties: Any mandatory and optional target properties are displayed here. If a property is marked mandatory, you must enter a value for that property.

6. Click Submit to deploy the database to the selected zone.

22.3 Refreshing a Database

After you have created a database, you can keep the data current and consistent with the production database by refreshing it on a regular basis. To refresh a database, follow these steps:

1. In the Database Self Service Portal Home page, click on the Name link in the Services region to drill down to the Database Home page.

Figure 22-6 Refresh Database

2. Click Refresh. The list of available snapshots or RMAN backups are displayed.

Figure 22-7 Snapshots

Select a snapshot profile from the list and click Refresh. You will see a message that the database will be refreshed to the selected snapshot version and older snapshots will be deleted. Click Yes to submit the Refresh Database Request job. On successful completion of the request, the database is refreshed and will be consistent with the selected snapshot profile.

22.4 Viewing the History of a Request

To view the history for a database instance, select the row in the Services column and select History from the Actions menu. All the requests that have been submitted for the database instance and the status of each request is displayed.

22.5 Viewing the Database Service Home Page

Database services are logical abstractions for managing workloads in Oracle Database. Services divide workloads into mutually disjointed groupings. Each service represents a workload with common attributes, service-level thresholds, and priorities. The Database Service Home page provides a detailed view of the database service.

Figure 22-8 Database Service Home

It contains the following regions:

- Summary: Displays the status of the database service and the database version.

- Connection Details: Shows the database connection details including the Connect String and the Master Account Name.

- Export: You can do the following:

- Export: Click Export to take export dumps of all the schemas that are part of the service. In the Export window, enter the name, description, and specify when the export dump should be scheduled and click Schedule.

- Import: Click Restore to restore schemas from the selected export dump.

- Remove: Select an export dump and click Remove to delete it.

- Requests: This region shows the requests that you have created. For each request, the status, type, start date, and submission date of the request is displayed.You can select a scheduled request and click Reschedule to reschedule the request. To delete a scheduled request, select the request and click Cancel.

- Schemas: Displays the name of the schema and tablespace associated with the database service.

- Resource Usage: This region displays the workloads associated with the schema. This includes the CPU, Memory, and Storage allocated to the database service.

- Performance: This region displays a graph showing the Average Number of Active Sessions over the last 5 minutes.

22.6 Viewing the Database Instance Home Page

The Database Instance Home page provides a detailed view of the database instance.

This page contains the following regions:

- Summary: The region of the Database Instance Home page provides a quick overview of the database status and provides basic information about the database. It shows the current status of the database and includes details such as the time stamp of instance start time, database version, date of the last backup, and so on.

- Connection Details: Shows the database connection details including the Connect String and the name of the user accessing the database.

- Backup and Restore: If the fast recovery area is configured for the database, you can schedule a daily backup for this database. Click Schedule Backup to perform this task. Once backups are available, you can click Restore to restore the database to a specific point in time. If the fast recovery area is not configured, your Database Administrator can configure the fast recovery area or publish a new service template that allows you to request databases with fast recovery area configured at the time of request fulfillment.

Note:
If the database instance has been created using a snap clone based profile, instead of the Backup and Restore region, you will see the Snapshot and Restore region with a list of snapshots. You can click Restore to restore data from a snapshot. See

Figure 22-9 Database Instance Home Page (Snap Clone)

- Performance: Shows the performance monitoring information for the database. Click on the Active Class tab to view a bar chart showing the amount of time spent either waiting for a resource or consuming CPU.

- Resources: Shows graphs indicating the resource consumption and include Host CPU, Active Sessions, Memory, and Data Storage.

- SQL Monitoring: Shows the SQL Response Time chart that shows the current response of the tracked set of SQL versus the reference collection response.

- Requests: This region shows the requests that you have created. For each request, the status, type, start date, and submission date of the request is displayed.You can select a scheduled request and click Reschedule to reschedule the request. To delete a scheduled request, select the request and click Cancel.

Starting and Stopping the Database

Depending on the state of the database, you can click Shutdown to shut down the database if the database is open, the Startup button if the database is shut down, or the Shutdown button if the state of the database is unknown or in a Status Pending state.

22.7 Viewing the Standby Database Home Page

The home page for a standby database instance contains the following regions:

- Summary: The region provides a quick overview of the database status and provides basic information about the database. It shows the current status of the database and includes details such as the time stamp of instance start time, database version, date of the last backup, and so on.

- Connection Details: Shows the database connection details for the primary database, and one or more standby databases. It includes the Connect String and the name of the user accessing the database.

- Data Guard Summary: This region shows the Protection Mode for all the databases (primary and standby) and the details of each database such as the type of database, role, redo transport mode, and so on. For more details, see Section 15.2.2, "Creating a Service Template".

- Performance: Shows the performance monitoring information for the database. Click on the Active Class tab to view a bar chart showing the amount of time spent either waiting for a resource or consuming CPU.

- Resources: Shows graphs indicating the resource consumption and include Host CPU, Active Sessions, Memory, and Data Storage.

- SQL Monitoring: Shows the SQL Response Time chart that shows the current response of the tracked set of SQL versus the reference collection response.

- Requests: This region shows the requests that you have created. For each request, the status, type, start date, and submission date of the request is displayed.You can select a scheduled request and click Reschedule to reschedule the request. To delete a scheduled request, select the request and click Cancel.

22.8 Viewing the Cluster Database Home Page

Use the Cluster Database Home Page to:

- Determine the current status of the Oracle Real Application Clusters database by viewing a series of metrics.

- Start or stop the cluster database.

- Schedule daily backups and perform a point-in-time-restore of the database.

Note:
The Home Page presents a high level view of the cluster database. Click the arrow key on the left margin to expand the master panel and view the Target Navigation pane. You can select a Database Instance from the left panel to view details for that instance. You can then perform operations such as Startup and Shutdown for the Database Instance.

Figure 22-10 Cluster Database Home Page

Home Page Sections

The Cluster Database Home page displays information for the following sections:

- Summary

- Performance

- Configuration Changes

- Resources

- Jobs Running

- SQL Monitor

- Issues

Summary

The Summary section displays the status and diagnostics information about the cluster database.

Status

This section provides a quick view of the status of the cluster database and provides basic information about the cluster database. The status can be Up, Down, Under Blackout, Unmonitored, or Unknown, and the status is mirrored in the arrow icon that appears to the left.

The number of database instances in the cluster, the Up Time, Version, Load, Total Sessions, Available Space and other details are displayed. Following are the fields displayed in this section:

- Instances: Displays the number of cluster database instances that are up.

- Up Time: Displays the total elapsed time since the cluster database was started.

- Availability: Displays the percentage of time that the cluster database was available.

- Version: Displays this version of the Oracle Database.

- Load: Displays the number of average active sessions since this cluster database was started.

- Total Sessions: Displays the total cluster database sessions running.

- Latest Backup: Displays when the last backup of the database was performed.

- Available Space: Displays space available on the cluster database.

- Total SGA: Displays total system global area.

- Problem Services: Displays the services that have problems

Note: QoS Status on Cluster Database Home page shows if the database is enabled for QoS Management. The possible states are:

- Enabled: Indicates that this database is enabled for QoS monitoring.

- Disabled: Indicates that this database is disabled for QoS monitoring.

- Active: Indicates that this database is enabled and monitored by QoS.

The QoS Status shown on the Cluster Database Home page is different from status shown on Quality of Service Dashboard. QoS Dashboard shows overall status of QoS itself in the Cluster.

Jobs Running

This table displays a report of the job executions that shows the scheduled, running, suspended, and problem (stopped/failed) executions for all Enterprise Manager jobs on the cluster database, ordered by submission of the job to the cluster database or to any member instance. If a value other than 0 appears in a field, you can click the number to go to the Job Activity page where you can view information about all scheduled, currently running, and past jobs.

Note: The four job status categories displayed group together job executions of similar status. For a complete list of job status values, refer to About Job Status. Use the Jobs tab to view all jobs or search for jobs of a certain status.

Performance

The Performance section shows active sessions during a one-hour window for activity classes and top services.

Activity Class

The Active Sessions chart shows potential problems inside the database. Categories, called wait classes, show how much of the database is waiting for a resource, such as CPU or disk I/O. The chart displays the load on the instance and identifies bottlenecks in performance.

To quickly identify problem areas, the chart displays a larger block of color to indicate more severe problems. Click the largest wait class on the highest peak, or alternatively click the corresponding wait class (indicated in yellow highlighting). Either action takes you to the Active Sessions Waiting page for the wait class selected, which shows top SQL, sessions, files, and objects for the wait class and also shows the associated wait events.

Services

The Active Sessions chart shows the top services waiting for the corresponding wait event during the time period shown. Only active services are shown. Click on one of the service legends to the right of the chart to go to the Service Activity page, where you can view real-time data showing the sessions load for all wait classes associated with the service.

Resources

The Resources section displays a bar chart showing relative CPU utilization of the Oracle host. This instantaneous value is refreshed every minute from the host by the Agent. The 100% represents the total CPU that the host system provides. The Instances tab is a break down of instance-wise measure of the resources, and the Database tab presents the overall measure.

Host CPU

This section displays a bar chart showing the relative CPU utilization across all hosts in the cluster. This instantaneous value is refreshed every minute by the Agent. The 100% represents the total CPU across all hosts in the cluster. Two values appear in the bar chart. The bottom, darker color corresponds to the Database legend and represents how much of the CPU is consumed by all the instances of this database. Click the Database link to go to the Top Activity page to display all wait classes and related statistics. The upper, lighter color corresponds to the Other legend and represents all other processes. Click the Other link to go to the Host Performance page for a quick glimpse of the utilization statistics (CPU, Memory, Disk I/O, and Program Resource Utilization) for this host.

The Load number is unrelated to the Host CPU chart. The Load number relates to the sum of the current CPU load for all cluster hosts. Click the Load link to go to the Host Performance page for a quick glimpse of the utilization statistics (CPU, Memory, Disk I/O, and Program Resource Utilization) for this host.

Note: The Host CPU section does not appear for pre-10g databases.

Active Sessions

The bar chart shows the amount of time all instances consumed using I/O and CPU, and the amount of time it consumed in bottlenecks. The number shown beside the bar chart is a literal number representing the number of active sessions, rather than the total number of sessions. The chart shows the latest value instead of a historical value. The three session categories are always CPU, User I/O, and Wait.

The Wait category represents the value for all wait classes combined, excluding User I/O. All of the links go to the Cluster Database Performance page.

User I/O displays the average active sessions spent on waiting for user I/O. User I/O means that the workload originating from the user causes the database to read data from the disk or write data to the disk. Click the User I/O link to go to the Performance page to view potential problems inside and outside of the current database.

CPU displays the average active sessions spent on using CPU. Click the CPU link to go to the Top Activity page to display all wait classes and related statistics.

The Maximum CPU number is the total CPU count across all the cluster database hosts.

Note: The Active Sessions section does not appear for pre-10g databases.

Memory

The chart shows the memory used by the database in GB.

Shared Pool displays various constructs that can be shared among users. For example:

- SQL statements that users implement are cached so that they can be reused if the same statement is used again.

- Information from the data dictionary is cached for quick access and reusability.

- Stored procedures, which are executable code that is stored in the database, can be cached for faster access.

Buffer Cache caches blocks of data retrieved from the database. If a piece of data can be found in the buffer cache, then there is no need to read it from disk. There are subcaches for multiple block sizes, if used.

Large Pool displays optional area used for buffering large I/O requests for various server processes.

Java Pool used for all session-specific Java code and data within the Java Virtual Machine (JVM).

Other SGA displays shared memory area that contains data and control information for the instance. Multiple users can share data within this memory area (controlled by Oracle), and information stored in the SGA can avoid repeated access from physical disk, a time consuming operation.

Data Storage

The chart shows data storage details for tablespaces UNDOTBS, SYSAUX, and SYSTEM.

SQL Monitor - Last Hour

This section lists the SQL monitoring details for the last hour. The real-time SQL monitoring feature of Oracle Database enables you monitor the performance of SQL statements while they are executing. By default, SQL monitoring automatically starts when a SQL statement runs parallel, or when it has consumed at least 5 seconds of CPU or I/O time in a single execution. It lists the status, duration, SQL ID, Session ID, Parallel, and Database Time.

Instances

The Instances table lists the instances for the cluster database, their availability, incidents, compliance score, ASM instance information, and ADDM findings. Click an instance name on the left hand panel to go to the home page for that instance. Click the links in the table to get more information about that particular incident.

22.9 Viewing the Pluggable Database Home Page

To view the Pluggable Database Home page, click on the PDB name link in the Databases region of the Database Cloud Self Service Portal.

This page contains the following regions:

- Summary: The region of the Database Instance Home page provides a quick overview of the database status and provides basic information about the database. It shows the current status of the database and includes details such as the time stamp of instance start time, database version, date of the last backup, and so on.

- Connection Details: Displays the connect string used to connect to the database.

- Resource Usage: Shows the usage details such as Expected Workload and Actual Workload.

- Backup and Restore: If the fast recovery area is configured for the database, you can schedule a daily backup for this database. Click Schedule Backup to perform this task. Once backups are available, you can click Restore to restore the database to a specific point in time. If the fast recovery area is not configured, your Database Administrator can configure the fast recovery area or publish a new service template that allows you to request databases with fast recovery area configured at the time of request fulfillment.

- Performance: Shows the performance monitoring information for the database. Click on the Active Class tab to view a bar chart showing the amount of time spent either waiting for a resource or consuming CPU.

- SQL Monitoring: Shows the SQL Response Time chart that shows the current response of the tracked set of SQL versus the reference collection response.

- Requests: This table tracks the requests that you have created. For each request, the status, type, start date, and submission date of the request is displayed.You can select a scheduled request and click Reschedule to reschedule the request. To delete a scheduled request, select the request and click Cancel.

Starting and Stopping the Database

Depending on the state of the database, you can use the Shutdown button to shut down the database if the database is open, the Startup button if the database is shut down, or the Shutdown button if the state of the database is unknown or in a Status Pending state.

Part VIII

Maintaining and Customizing Databases

This section contains chapters on how to maintain a database pool and how to customize a database. It contains the following chapters:

- Chapter 23, "Maintaining the Database Pool"

- Chapter 24, "Customizing Database as a Service"

23 Maintaining the Database Pool

This chapter covers the database pool maintenance feature. It contains the following sections:

- About Database Pool Maintenance

- Creating a Database Gold Image

- Subscribing to an Image

- Deploying the Image

- Updating the Database

- Performing Ongoing Image Updates

23.1 About Database Pool Maintenance

Enterprise Manager offers a subscription based software maintenance feature that allows self service administrators to maintain the cloud by applying database updates which include:

- Minor Updates: Interim one-off patches including quarterly security patch updates (SPUs/CPUs) and Patchset Updates (PSUs).

- Major Updates: Patchsets such as (11.2.0.2 to 11.2.0.4) and major version upgrades 11.2.0.x to 12.1.0.x.

Any new database patches, patchsets, or updates are made available in the form of images. An image (also referred to as gold image) represents the software binary that is patched to the required level. Each newly created image from a new patch or patchset for a specific database version is a new version. For example, an image for Oracle Database version 11.2.0.4 contains gold images (such as Ver. 1, Ver. 2, and so on) at different patch or patchset levels.

A standalone database pool contains databases along with its Oracle Home infrastructure. A RAC database pool contains RAC databases along with Grid Infrastructure Instances and its associated Oracle Homes. Maintaining a database pool involves the following:

- Subscribe the database pool to an image that has been patched to the required level. This task has to be performed by a user with the EM_SSA_ADMINISTRATOR role.

- Deploy the image and switch the database from the old Oracle Home to a new Oracle Home. This task has to be performed by a user with the EM_SSA_ADMINISTRATOR role.

- Update the database. This task can be performed by a user with either the EM_SSA_ADMINISTRATOR role or EM_SSA_USER role.

This maintenance activity can be performed as and when a new patch or patchset update is available. A database pool is considered to be fully compliant if the targets in the pool are associated with the latest version of an image. If the targets are still associated with an older version of the image, the database pool is considered to be non compliant. The goal of the self service administrator is to ensure all targets in the database pool are 100% compliant.

Note:

- For database upgrades, such as 11.2.0.x to 12.1.0.x, follow the steps in the Enterprise Manager Lifecycle Management Guide to perform maintenance activities.

- Database pool maintenance can also be performed for Grid Infrastructure targets.

The database pool maintenance feature is useful in:

- Reducing the number of different database software versions and patches in the pool.

- Standardizing the database software versions and patches across the enterprise.

- Streamlining and automating software upgrades and patches.

- Enabling the self service users to move to the new software version and update the database on their own terms.

Note:
You can use EMCLI commands to perform pool maintenance activities. For details, see Section 47.12, "Database Fleet Maintenance EM CLI Verbs".

Figure 23-1 Database Pool Maintenance Workflow

The following table shows the list of tasks involved in updating and maintaining a database pool.

Table 23-1 Database Pool Maintenance Tasks

Step

Task

Role

1

Creating a Database Gold Image

EM_SSA_ADMINISTRATOR

2

Subscribing to an Image

EM_SSA_ADMINISTRATOR

3

Deploying the Image

EM_SSA_ADMINISTRATOR

4

Updating the Database

EM_SSA_ADMINISTRATOR

EM_SSA_USER

5

Performing Ongoing Image Updates

EM_SSA_ADMINISTRATOR

23.2 Creating a Database Gold Image

An image is the software binary for the target (say Oracle database) on a given platform and release containing the required patch levels. For example, Image DB_11203_Linux represents Database software for 11.2.0.3 release applicable to Linux x86_64 platform containing patches like PSUs and other one-off patches at the needed level. Whenever there is a new patch, you must create a new version of the image from a reference target that contains a zipped up Oracle Home that has been brought to a certain certified or tested patch level.

To maintain the database pool, you must subscribe to an image which contains the latest patches or patchset. If no images exist, you must first create an image and then subscribe the database pool to the image.

To create an image, follow these steps:

1. Log in as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Resource Providers, and click on a Database Pool in the list to navigate to the Database Pool Home page. From the Database Pool menu, select Members, and then click Maintenance. The Maintenance page appears. Click Manage Subscriptions.

3. The Manage Subscriptions page appears.

4. Click Create a New Database Home Image. The following dialog box appears:

Figure 23-2 Creating a New Image

5. In the Create a New Image dialog box, in the Reference Target section, specify the following details:

- Name of the reference target. You can select the Search icon to select a target from the list provided. Once you select a target, the Oracle Home and Host Name details get automatically added.

- Oracle Home credentials. You can click on the search icon to select existing Oracle Home credentials. Click OK. Next, you can click the Test button to check if the credentials are valid.

- Working Directory. Specify the working directory or click the Search icon to select one.

6. In the Software Library Upload Location, specify the location, type, and upload file location. These details are already specified by default. You can verify them or change them.

7. In the Image Information section, specify the following details:

- Image Name. Specify a new and unique name for the image. For example, DB11203_Linux_SALES_XYZ.

- Description of the image. For example:

DB Image for 11.2.0.3 Database software on Linux x86_64 starting with Oct PSU 2014 patch level

- Version: The display name used to refer to the version. For example, based on the description of the image, the version name can be specified as OCT PSU 2014.

- Platform:

- Version Name. Specify a new and unique version name.

- Notes: Specify additional description for the image. For example, you can specify a description as:

Database Patchset Update (PSU) October 2014 with additional 5 one-off patches for the Database Software.

8. Click Create. The newly created image will appear in the Oracle Database Home Images table and you will be subscribed to the newly created image. At this point, the database pool compliance is 0%. To make the database pool 100% compliant, you must do the following:

- Deploy the image. See Section 23.4, "Deploying the Image"

- Update the image. See Section 23.4.3, "Updating the Database"

23.3 Subscribing to an Image

When a new image is created, the database pool is automatically subscribed to the image. To begin maintenance. start by deploying the image. Follow steps listed in Section 23.4.1, "Deploying the Oracle Home".

If you want to maintain the database pool with another image, you must subscribe to the image. To subscribe to an existing image, follow these steps:

1. Login as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. Click on the Resource Providers link on the page. A list of database pools and PaaS Infrastructure zones are displayed.

3. Click on a Database Pool to view the Database Pool page.

4. From the Database Pool menu, select Members, then select Maintenance.

5. Click Manage Subscriptions. You will see a list of available and applicable images for Oracle Database. Select the Update Subscriptions for Oracle Database checkbox, select an image from the list and click Subscribe.

Figure 23-3 Manage Subscriptions Page

A message is indicating that pool is successfully subscribed to the image appears. The newly subscribed image is now available to the database pool and the database pool is 0% compliant. In the Updates to Image Version region of the Image Subscriptions page, the actions that need to be performed are listed. To make the database pool 100% compliant, you must deploy the image and update the database.

6. Figure 23-4 Image Subscriptions Page

The pie chart shows the ratio of distribution of the targets in the database pool with respect to the image and the different versions of the image. Each version is represented as follows:

- System Version Number (Version Display Name) (Number of targets in the version). For example V1 (DEC PSU 2014) (2)

- Each version can have one of the following states:

- Draft: This is a test version.

- Restricted: This represents a Beta version that is released to a restricted set of targets.

- Current: This represents the latest version of the image.

The maintenance goal of the administrator is to move all targets in the pool to the Current version of the image to keep the pool is up-to-date and compliant.

23.4 Deploying the Image

After the self service administrator has subscribed the database pool to a new image, the new image must be deployed. To deploy the image, follow these steps:

1. Navigate to the Image Maintenance page. Click the Select button in the Updates to Image Version region of the page. The following page appears:

Figure 23-5 Deploying the Image

To complete the maintenance process and update the database, 3 steps are required:

- Deploy: See Section 23.4.1, "Deploying the Oracle Home".

- Activate: See Section 23.4.2, "Activating the New Oracle Home"

- Update: See Section 23.4.3, "Updating the Database"

2. Specify the schedule for the deployment and click Submit to submit the job.

23.4.1 Deploying the Oracle Home

This option copies the image binaries to each of the hosts in the database pool and create new Oracle Homes on all them. When you navigate to this page, the Deploy step is highlighted and the status is Pending. The list of targets on which the image is to be deployed, the target owner, and the image version is displayed. To deploy the image, follow these steps:

1. Click Deploy. The following dialog box appears:

Figure 23-6 Maintenance Activity

2. Specify the name, description, the new Oracle Home location, Working Directory, and Dispatcher Location.

3. Click Submit to deploy the image and create new Oracle Homes.

23.4.2 Activating the New Oracle Home

This step sends notifications to the self service users that a new update is available. Activating the newly deployed Oracle Homes also updates the self service template associated with the database pool and redirects any new database service requests to be created from the new Oracle Home. Click Activate to activate the Oracle Homes that have been successfully deployed.

23.4.3 Updating the Database

This step switches the database from the old Oracle Home to the new Oracle Home and completes the post install steps for all the patches related to the image. This step can either be performed by the self service administrator or the self service user.

After deploying the latest version of the image, the self service administrator can do either of the following:

- Apply the latest version and update the database. To update the database targets associated with the pool, select the Update option shown in Figure 23-5 and click Update. The latest patch will be applied on all the database targets in the pool. The database pool will now be 100% compliant.

- Notify the self service user about the updates by clicking Yes in the Delegate the Responsibility to the Self Service User field. The self service user can then choose to apply the updates by following these steps:

1. Log in as a user with the EM_SSA_USER role.

2. In the Self Portal Page, select Databases from the Manage drop down list. Click on a database for which updates are available to drill down to the Home page.

Figure 23-7 Updating the Database

3. Click Update to switch the database to the new Oracle Home.

Note:

- When all the tasks (deploy, activate, and update) have been performed, the pool is successfully subscribed to the new image.

- When the database pool is subscribed to a newer version of an image, the compliance status of the pool changes will be at 0%. After the new version is deployed and all databases associated with the database pool are updated, the compliance will be at 100%.

23.5 Performing Ongoing Image Updates

When a new patch or patchset is available, to deploy the new patch on the database pool, you must ensure that the following tasks are performed:

- Creating a New Version of the Image

- Deploying the Image

- Updating the Database

23.5.1 Creating a New Version of the Image

To create a new version of an image, follow these steps:

1. Login as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. Click on the Resource Providers link on the page. A list of database pools and PaaS Infrastructure zones are displayed.

3. Click on a Database Pool to view the Database Pool page.

4. From the Database Pool menu, select Members, then select Maintenance. The Image Subscriptions page appears.

5. Click the Manage Image link on the page. The Manage Images page appears.

Figure 23-8 Manage Images

This page contains the following details:

- Database Images: This region displays the name of the image, number of subscribed targets, compliance score, product version, database type, and platform.

- Deployments: This region shows a piechart that consists of the percentage of deployments for each version in the image.

- Active Versions: This region lists the number of active versions, the name of the versions, the version number, the status of the version (Current or Active), the number of deployments for each version, the creation date of each version, and the SSA owner of the version.

- General: The General tab lists the database type, product version, platform, state, description, creation date, and owner of the image. The Software tab lists the location of the Oracle Home, the product name, and the host name. If you have saved a snapshot of the image, you can view it by clicking View.

6. Click Manage Versions to manage the image versions.

Figure 23-9 Manage Database Image Versions

This page consists of a table that lists the name of each version, the version number, the status of the version, the number of deployments of each version, the creation date of the version, and the owner of the version.

When you select a version, the General and Software tabs automatically displays the general and software details of the version.

7. From the Actions menu, select Create to create a new version of the image. The Create New Image dialog box appears.

8. Follow the steps listed in Section 23.2, "Creating a Database Gold Image" to create the new image version. The database pool will now be subscribed to the new version.
After the new version has been created, you can click Set Current Version to set this version as the current version of the image. You can restrict the users who can use this version by clicking Set Restricted Version. If you set the version status as Restricted, no other user can access the version.

Editing an Image

To edit an image version, select the image and click Edit from the Actions menu. This option allows you to change the name of the image version.

Deleting an Image

To delete a database image, in the Images section, select the image that you want to delete, and then click Delete. Click Yes to confirm and delete the image.

24 Customizing Database as a Service

This chapter describes how to customize Database as a Service. It contains the following sections:

- Pre and Post Request Creation / Deletion Scripts

24.1 Pre and Post Request Creation / Deletion Scripts

You can run custom scripts before and after a service instance has been created. These requests can range from some additional host commands on the machine on which the database was created or commands to perform additional book activities and other operations on the newly provisioned database.

Similarly, you can run scripts after a service instance has been deleted if you need to undo the changes made during service cleanup.

The custom script must follow certain guidelines and consists of four parts:

- Response File: The response file contains the service template and request specific information. Before the custom script is executed, the request procedure, the request procedure generates a response file (file with name-value pairs) containing the data from the service template as well as the request-specific data such as the SID that is auto computed, the hosts on which the database will be deployed, and so on.

- Driver Script: This is the key driver script that will be invoked by the request procedure. The driver script accepts only one argument which specifies the location of the response file.

- Other Scripts: Apart from the driver script, you can specify other perl or sql scripts. These scripts must be invoked from the driver script.

- Additional Variables: You can include a file containing additional variables that can used by the custom script as applicable.

After the scripts have been created, they must be uploaded as a directive into the Software Library. The directive details are shown below:

Figure 24-1 Pre or Post Database Script: Describe

In the Describe page, the name of the directive and the description is displayed. Click the Configure tab.

Figure 24-2 Pre or Post Database Script: Configure

The driver script accepts one command line argument which must be in the INPUT_FILE format. This variable will be used at run-time to specify the location of the generated response file. Click the Select Files tab.

Figure 24-3 Pre or Post Database Script: Select Files

Specify any additional files that are required by the custom script. You can run the script from the same host on which the database instance or the database service was created or deleted.

Note:
if you need to change the content of the script, you must upload a newer version of the script to the Software Library. To use the latest version of the script, you must launch the Edit Service Template wizard and select the updated version of the script and save the template. This ensures that the latest version of the script will be used.

24.1.1 Post SQL Script

A post SQL script can be created and uploaded to the Software Library. The self service administrator can select the script during service template creation. To specify the script, follow these steps:

1. Log in as a user with EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud. From the Cloud Home menu, select Service Template and then Create.

3. Select the Service Template type as Database and click Create.

4. Navigate to the Configuration page. Click the Search icon next to the Post SQL Script field and select the script from the Software Library.

5. In the Run As User drop down, the SYS user is selected by default.
If this user is selected, the SYS password provided on Database page in the wizard is used to run the post database creation SQL script.

If any other user is selected including Master Account, the password provided by the self service user for the Master Account while creating a service request will be used.

Note:
If the user account is locked, an error message is displayed. The user account must be open in the source database.

24.1.2 Sample Scripts

Sample scripts are available in the Software Library. To view the sample scripts, from the Enterprise menu, select Provisioning and Patching, then select Software Library. Select the DBaaS folder, then select Directives, and click the Samples folder to see the custom scripts.

Figure 24-4 Sample Scripts

24.1.3 Input Parameters for Pre and Post Database Scripts

This section lists the following:

- Input Parameters for DBaaS Pre and Post Request Creation Scripts

- Input Parameters for DBaaS Pre and Post Request Deletion Scripts

- Input Parameters for SchaaS Pre and Post Request Creation Scripts

- Input Parameters for SchaaS Pre and Post Request Deletion Scripts

- Input Parameters for PDBaaS Pre and Post Request Creation Scripts

- Input Parameters for PDBaaS Pre and Post Request Deletion Scripts

- Sample Input Files

- Sample PDBaaS Post Scripts

24.1.3.1 Input Parameters for DBaaS Pre and Post Request Creation Scripts

This table lists the input parameters for the DBaaS pre and post request creation scripts.

Table 24-1 DBaaS: Input Parameters for Pre and Post Request Creation Scripts

Variable Name

Description

Example

ssaRequestId

The Request ID of the SSA user request.

3

ssaUser

The SSA user name.

Ssa_user1

ssaTargetName

The zone target name.

Myzone1

ssaTargetType

The zone target type.

Self_service_zone

zoneTargetName

The zone target name.

Myzone1

zoneTargetType

The zone target type.

Self_service_zone

DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN

The URN of the directive in the software library which will be executed before the creation of the PDB target.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN

The URN of the directive in the software library which will be executed after the creation of the PDB target.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

SEL_HOST

The host selected as part of placement where the new database will be created.

Myhost.oracle.com

MEM_SIZE

The memory size of the requested database. This shall be the sum of sga and pga aggregate size or the total memory size.

2324

STORAGE_SIZE

The total storage size of the requested database

2324

HOST_CREDS

The credentials of the host where the database will be created.

Mycred1:dbaas_admin

PROFILE_COMPONENT_URN

The profile component URN.

oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:E9C8A650EFA5291DE04354B2F00AFF3E:0.1

WORK_DIR

The temporary working directory used for staging provisioning related files

/tmp

DB_ADMIN_PASSWORD_SAME

Indicates if the password provided for the sys, system and dbsnmp are same or different

true

DB_ORACLE_HOME_LOC

The oracle home in the selected host, from where the new Database will be created.

/scratch/aime/oraclehomes/dbbase/112030/dbhome1

DB_ORACLE_BASE_LOC

The oracle base of the selected oracle home.

/scratch/aime/oraclehomes/dbbase

TOTAL_MEMORY

The total memory for the chosen database if the memory management type is AMM.

0

SGA_MEMORY

The SGA memory value set for the database.

1744

PGA_MEMORY

The PGA target value set for the database.

580

INIT_PARAMS

The list of initialization parameter values that are set in the service template. The values are stored as paramName=paramValue[,paramName=paramValue]

processes=150,cluster_database=FALSE,db_name=,open_cursors=300,sga_target=1828716544,db_block_size=8192,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,diagnostic_dest={ORACLE_BASE},*.cpu_count=0,db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area,log_archive_format=%t_%s_%r.dbf,compatible=11.2.0.0.0,audit_trail=DB,remote_login_passwordfile=EXCLUSIVE,undo_tablespace=UNDOTBS1,db_recovery_file_dest_size=4322230272,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),pga_aggregate_target=608174080

DATABASE_TYPE

Type of database that will be provisioned as part of the request.

oracle_database or rac_database

USER_NAME

User Name (cannot be any of Oracle default accounts) which will be treated as the master account and will be used to login to the requested database.

Useracct1

INSTANCE_COUNT

Number of database instances that will be created in case if the request is for a RAC Database.

1

COMMON_DB_SID

The SID Prefix that has been provided in the Service Template with which a unique database name will be generated.

db000000

COMMON_DOMAIN_NAME

The Database Domain name provided in the Service Template which will be used to create the Database Target in Enterprise Manager.

Mycompany.com

LISTENER_PORT

The port number of the listener in the host to which the database will be attached.

1521

REF_ZONE

The reference zone used for the validations.

Myzone1

REF_POOL

The pool selected on the reference zone.

Mypool1

REF_HOST

The reference host chosen from the pool.

Myhost1.oracle.com

REF_TGT

The reference host chosen from the pool

Myhost1.oracle.com

COMMON_GLOBAL_DB_NAME

The global database domain name.

db000000.myhost.oracle.com

24.1.3.2 Input Parameters for DBaaS Pre and Post Request Deletion Scripts

This table lists the input parameters for DBaaS pre and post request deletion scripts.

Table 24-2 DBaaS: Input Parameters for Pre and Post Request Deletion Scripts

Variable Name

Description

ExampleDB

DB_SID

The database SID of the database which is chosen for deletion. This can be used to connect to the database.

db000000

HOST_NAME

The host name where the DB chosen for deletion, resides.

Myhost.oracle.com

DATABASE_TGT_GUID

The guid of the database which is chosen for deletion

E9C5A1149C266846E04354B2F00A9D7B

HOST_CREDS

The credentials to login to the database host to access the oracle home.

MYCREDS:DBAAS_ADMIN

ROOT_CREDS

The root credentials to login to the host as super user as specified in the pool.

MYROOTCREDS:DBAAS_ADMIN

TARGET_GUID

The guid of the database which is chosen for deletion.

E9C5A1149C266846E04354B2F00A9D7B

BACKUP_ENABLED

If the backup has been enabled for snap clone database target.

True

WORK_DIR

Temporary working directory used for deletion.

/tmp/workdir1

CUSTOM_DEL_PRE_SCRIPTS_URN

The URN of the directive in the software library which will be executed before the deletion of the Schema.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

CUSTOM_DEL_POST_SCRIPTS_URN

The URN of the directive in the software library which will be executed after the deletion of the Schema.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

24.1.3.3 Input Parameters for SchaaS Pre and Post Request Creation Scripts

This table lists the input parameters for schema as a service pre and post request creation scripts.

Table 24-3 SchaaS: Input Parameters for Pre and Post Request Creation Scripts

Variable Name

Description

ExampleDB

ssaRequestID

The Request ID of the SSA User request.

3

ssaUser

The SSA user name.

Ssa_user1

ssaTargetName

The zone target name.

Myzone1

ssaTargetType

The zone target type.

Self_service_zone

zoneTargetName

The zone target name.

Myzone1

zoneTargetType

The zone target type.

Self_service_zone

SCHAAS_CUSTOM_PRE_SCRIPTS_URN

The URN of the directive in the software library which will be executed before the creation of the schema target.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

REQUEST_NAME

The name of the request

SYSMAN - Tue Oct 29 02:04:21 PDT 2013_CREATE_4_41

SERV_TEMPLATE_GUID

The service template guid.

E9C5A1149C266846E04354B2F00A9D7B

CREATE_SCHEMA_OPTION

Option to differentiate between creating empty schemas or schemas from profile. Possible values, EMPTY_SCHEMAS/SCHEMAS_FROM_PROFILE

EMPTY_SCHEMAS

MAX_NUMBER_OF_SCHEMAS

Maximum number of schemas permissible if the user does not select a profile. Applicable only when the Create Empty Schemas option is selected.

4

MASTER_ACCOUNT

The master account from the list of schemas selected.

MySchema

ROLE_NAME

Name of the database role which will assigned to all the schemas.

Mynewrole1

SCHEMA_PRIVILEGES

List of schema privileges that will be applied on the user accounts.

CREATE VIEW, CREATE DIR

ENFORCE_STORAGE_CONSTRAINT

Enforces the storage constraint on the service request. Possible values true/false

True

INITIAL_BLOCK_SIZE

The initial size of the tablespace.

2048M

AUTO_EXTEND_BLOCK_SIZE

The auto extend block size.

100M

TABLESPACE_ENCRYPTION_ALGORITHM

The algorithm used for tablespace encryption

AES128

SHARED_STORAGE_LOCATION

Shared staging location where the dump files are location across the hosts in the selected pool. Will be specified only if the create schema option is from an existing profile.

/oradbnfs/dumpfiles/

DBSERVICE_NAME

Database service name that will be provided during the request.

Service_88A370FC0FC1

DB_ORACLE_HOME_LOC

The Oracle Home for the Database where the new schema is created.

/scratch/aime/app/aime/11.2.0/dbhome_1

COMMON_DB_SID

The service name with which the Database can be connected in the host.

Mydb1

REMAP_SCHEMA_LIST

The list of schemas will that will be created on the target.

MySchema

24.1.3.4 Input Parameters for SchaaS Pre and Post Request Deletion Scripts

This table lists the input parameters for schema as a service pre and post request deletion scripts.

Table 24-4 SchaaS: Input Parameters for Pre and Post Request Deletion Scripts

Variable Name

Description

Example

DB_CONNECT_STRING

The connection string to establish a connection to the database.

DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.oracle.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SID= Myservice1)))

SCHEMA_NAME

Schema name selected for deletion.

Myservice1

PERM_TABLESPACE_NAME

The primary table space.

Myschema1

HOST_NAME

The host name where the DB chosen for deletion, resides.

Myhost.oracle.com

DATABASE_CREDS

The named credentials used for connecting to the database.

MYDBCREDS:DBAAS_ADMIN

GI_CREDS

The named credentials used for connecting to the Grid Infrastructure in case of RAC.

MYHOSTCREDS:DBAAS_ADMIN

WORK_DIR

Temporary working directory

/tmp/myworkdir1

CUSTOM_DEL_PRE_SCRIPTS_URN

The URN of the directive in the software library which will be executed before the deletion of the Schema

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

CUSTOM_DEL_POST_SCRIPTS_URN

The URN of the directive in the software library which will be executed after the deletion of the Schema

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

24.1.3.5 Input Parameters for PDBaaS Pre and Post Request Creation Scripts

This table lists the input parameters for PDB as a service pre and post request creation scripts.

Table 24-5 PDBaaS: Input Parameters for Pre and Post Request Creation Scripts

Variable Name

Description

Example

ssaRequestId

The Request ID of the SSA User request.

3

ssaUser

The SSA user name.

Ssa_user1

ssaTargetName

The zone target name.

Myzone1

ssaTargetType

The zone target type.

Self_service_zone

PDBAAS_CUSTOM_PRE_SCRIPTS_URN

The URN of the directive in the software library which will be executed before the creation of the PDB target.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

PDBAAS_CUSTOM_POST_SCRIPTS_URN

The URN of the directive in the software library which will be executed after the creation of the PDB target.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

CREATE_PDB_OPTION

Option for creating Pluggable Database that includes empty PDB or PDB from profile. Possible values, EMPTY_PDB/PDB_FROM_PROFILE

EMPTY_PDB

PDB_CONNECT_STRING

The connection string to establish a connection to the pluggable database.

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.mycompany.com)(PORT=1531)))(CONNECT_DATA=(SERVICE_NAME=svc_mypdb)(INSTANCE_NAME=CDB01)(UR=A)(SERVER=DEDICATED)))

PDB_NAME

Name of the PDB target being created.

mypdb

CDB_CONNECT_STRING

The connection string to establish a connection to the container database.

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.mycompany.com)(PORT=1531)))(CONNECT_DATA=(SID=CDB01)))

MAX_TABLESPACE_ALLOWED

Maximum number of tablespaces allowed for pluggable database as a service.

10

ENFORCE_STORAGE_CONSTRAINT

Enforces the storage constraint on the service request. Possible values true/false.

True

TABLESPACE_ENCRYPTION_ALGORITHM

The algorithm used for tablespace encryption.

AES128

TABLESPACE_SIZE

The SID Prefix that has been provided in the Service Template with which a unique database name will be generated.

mydb

PDB_SID_PREFIX

SID Prefix for the new pluggable database.

Mypdb1

SHARED_STAGE_LOCATION

Shared staging location where the dump file are location across the hosts in the selected pool.

/oradbnfs/dumpfiles/

PDB_ADMIN_USER_NAME

Administrator user name for the new pluggable database.

Myadmin

PDB_SERVICE_NAME_PREFIX

The service name prefix for the pluggable database.

Service

PDBSERVICE_NAME

Pluggable database service name.

Service_000

DB_ORACLE_HOME_LOC

The Oracle Home for the Database where the new schema is created.

/scratch/aime/app/aime/11.2.0/dbhome_1

COMMON_DB_SID

The service name with which the Database can be connected in the host.

Mydb1

ROLE_OPTION

Role Option Custom New Role/ Existing Roles which will assigned to Pluggable database administrator.

CUSTOM_NEW_ROLE

INIT_PARAMS

The list of initialization parameter values that are set in the service template. The values are stored as paramName=paramValue[,paramName=paramValue].

*.open_cursors 300,*.cursor_sharing EXACT

CUSTOM_ROLE_NAME

The name of the database role which will assigned to Pluggable database administrator.

PDBAAS_OCT_29_2013_02_27_AM

CUSTOM_ROLE_DESC

The description for the new role to be created.

New db role to be assigned to pluggable database administrator.

PRIVILEGES

List of privileges of custom new role that will be applied on pluggable database administrator.

CREATE SESSION, ALTER SESSION, CREATE DIMENSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY

ROLES

Name of the database role which will assigned to all the schemas.

Mynewrole1

DB_ORACLE_HOME_LOC

The oracle home of the chosen Container database.

/scratch/aime/oraclehomes/dbbase/121010/dbhome1

COMMON_DB_SID

The Database sid for the selected Container Database where the new PDB will be created.

cdb

24.1.3.6 Input Parameters for PDBaaS Pre and Post Request Deletion Scripts

This table lists the input parameters for PDB as a service for pre and post request deletion scripts.

Table 24-6 SchaaS: Input Parameters for Pre and Post Request Deletion Scripts

Variable Name

Description

Example

DB_CONNECT_STRING

The connection string to establish a connection to the database.

DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.oracle.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SID= mypdb0001)))

PDB_NAME

PDB target name selected for deletion.

Mypdb001

HOST_NAME

The host name where the PDB chosen for deletion, resides.

Myhost.oracle.com

DATABASE_CREDS

The named credentials used for connecting to the database.

MYDBCREDS:DBAAS_ADMIN

GI_CREDS

The named credentials used for connecting to the Grid Infrastructure in case of RAC.

MYHOSTCREDS:DBAAS_ADMIN

WORK_DIR

Temporary working directory

/tmp/myworkdir1

CUSTOM_DEL_PRE_SCRIPTS_URN

The URN of the directive in the software library which will be executed before the deletion of the PDB target.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

CUSTOM_DEL_POST_SCRIPTS_URN

The URN of the directive in the software library which will be executed after the deletion of the PDB target.

oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1

24.1.3.7 Sample Input Files

This section contains a few sample input files for DBaaS, Schema as Service, and PDB as a Service.

Example 24-1 Sample Input File for DBaaS

ssaRequestId=2
ssaUser=ssa_user1
ssaTargetName=My Zone
ssaTargetType=self_service_zone
zoneTargetName=My Zone
zoneTargetType=self_service_zone
SEL_HOST=myhost.oracle.com
MEM_SIZE=2324
STORAGE_SIZE=2324
HOST_CREDS=AIME:SYSMAN
INIT_PARAMS=processes=150,cluster_database=FALSE,db_name=,open_cursors=300,
sga_target=1828716544,db_block_size=8192,audit_file_dest={ORACLE_BASE}/admin/
{DB_UNIQUE_NAME}/adump,diagnostic_dest={ORACLE_BASE},*.cpu_count=0,db_recovery
_file_dest={ORACLE_BASE}/fast_recovery_area,log_archive_format=%t_%s
_%r.dbf,compatible=11.2.0.0.0,audit_trail=DB,remote_login
_passwordfile=EXCLUSIVE,undo_tablespace=UNDOTBS1,db_recovery_file_dest
_size=4322230272,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE
_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE
_NAME}/control02.ctl"),pga_aggregate_target=608174080
PROFILE_COMPONENT_URN=oracle:defaultService:em:provisioning:1:cmp:COMP
_Component:SUB_DbProfile:E9C8A650EFA5291DE04354B2F00AFF3E:0.1
DATABASE_TYPE=oracle_database
WORK_DIR=/tmp
DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP
_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1
USER_NAME=rv
INSTANCE_COUNT=2
DB_ADMIN_PASSWORD_SAME=true
COMMON_DB_SID=db000000
COMMON_DOMAIN_NAME=mycompany.com
LISTENER_PORT=1527
COMMON_GLOBAL_DB_NAME=db000000.myhost.oracle.com
DB_ORACLE_HOME_LOC=/scratch/aime/oraclehomes/dbbase/112030/dbhome1
DB_ORACLE_BASE_LOC=/scratch/aime/oraclehomes/dbbase
TOTAL_MEMORY=0
SGA_MEMORY=1744
PGA_MEMORY=580
MEM_SIZE=2324
STORAGE_SIZE=2324
REF_ZONE=My Zone
REF_POOL=dbpool1
REF_HOST=myhost.oracle.com
REF_TGT= myhost.oracle.com

Example 24-2 Sample SQL Script

REM --- your custom sql script ---
REM --- sample: select * from v$database ---
REM --- If there are more that one sql file all files can be uploaded to the same component, and be called from the main script using
@/<staging location>/sqlfile1.sql ----

Example 24-3 Sample Input File for Schema as a Service

ssaRequestId=1
ssaUser=SYSMAN
ssaTargetName=My Zone
ssaTargetType=self_service_zone
zoneTargetName=My Zone
zoneTargetType=self_service_zone
REQUEST_NAME=SYSMAN - Tue Oct 29 02:04:21 PDT 2013_CREATE_4_41
SERV_TEMPLATE_GUID=E9C5A1149C266846E04354B2F00A9D7B
CREATE_SCHEMA_OPTION=EMPTY_SCHEMAS
MAX_NUMBER_OF_SCHEMAS=4
REMAP_SCHEMA_LIST=MySchema
MASTER_ACCOUNT=MySchema
ROLE_NAME=schtemplate1_Oct_29_2013_02
SCHEMA_PRIVILEGES=CREATE SESSION,CREATE DIMENSION,CREATE INDEXTYPE,CREATE
OPERATOR,CREATE PROCEDURE,CREATE SEQUENCE,CREATE TABLE,CREATE TRIGGER,CREATE
TYPE,CREATE VIEW,CREATE SYNONYM
ENFORCE_STORAGE_CONSTRAINT=false
SCHAAS_CUSTOM_PRE_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP
_Directives:none:E9DE463D356E7433E04354B2F00A56C6:0.1
DBSERVICE_NAME=Service_88A370FC0FC1
DB_ORACLE_HOME_LOC=/scratch/aime/oraclehomes/dbbase/112030/dbhome1
COMMON_DB_SID=refdb

Example 24-4 Sample Input File for PDB as a Service

ssaRequestId=3
ssaUser=SYSMAN
ssaTargetName=My Zone
ssaTargetType=self_service_zone
zoneTargetName=My Zone
zoneTargetType=self_service_zone
CREATE_PDB_OPTION=EMPTY_PDB
MAX_TABLESPACE_ALLOWED=2
ENFORCE_STORAGE_CONSTRAINT=true
TABLESPACE_ENCRYPTION_ALGORITHM=None
PDBAAS_CUSTOM_POST_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:0008270085383BBDE0535C56F20AB27E:0.5
PDB_SID_PREFIX=PDB
PDB_ADMIN_USER_NAME=oracle
PDB_SERVICE_NAME_PREFIX=svc_pdbps1
PDBSERVICE_NAME=svc_pdbps1
ROLE_OPTION=CUSTOM_NEW_ROLE
INIT_PARAMS=*.open_cursors=300,*.cursor_sharing=EXACT
CUSTOM_ROLE_NAME=PDBAAS_JUN_12_2014_23_16_PM
CUSTOM_ROLE_DESC=New db role to be assigned to pluggable database administrator.
PRIVILEGES=CREATE SESSION,ALTER SESSION,CREATE DIMENSION,CREATE INDEXTYPE,CREATE ANY OPERATOR,CREATE ANY PROCEDURE,CREATE ANY SEQUENCE,CREATE ANY INDEX,CREATE JOB,CREATE ANY MATERIALIZED VIEW,CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY
DB_ORACLE_HOME_LOC=/scratch/12c_rdbms/product/12.1.0/dbhome_1
COMMON_DB_SID=CDB06
PDB_NAME=pdbps1
PDB_CONNECT_STRING=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.example.com)(PORT=1531)))(CONNECT_DATA=(SERVICE_NAME=svc_pdbps1)(INSTANCE_NAME=CDB06)(UR=A)(SERVER=DEDICATED)))
CDB_CONNECT_STRING=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.example.com)(PORT=1531)))(CONNECT_DATA=(SID=CDB06)))

24.1.3.8 Sample PDBaaS Post Scripts

This section includes sample perl and sql scripts for PDBaaS.

Example 24-5 Sample PDBaaS Perl Script

use Getopt::Long;
use File::Path;
use File::Spec;

#Store the passed input file path in a variable
my $fileName = $ARGV[0];

#Print the input file content as it is...
print "Printing the variable values received from cloud request ...\n";
open IN,"<",$fileName or die "Can't open file due to :$!";
while(<>){
print $_;
}
close IN;

#Reads a text file with var=values pairs line delimited
#Setting the values in the environment
sub readDat {
#Grab the passed parameter
my $filename = $_[0];
my @Data;

#The ubiquitous $i counter
my $i = 0;

#Register a filehandle
local (*DATFILE);

#Open the file for read
open (DATFILE, $filename) or print ( "Can't open $filename: $1");

#Read through the file one line at a time
FORA:while (<DATFILE>) {

#Skip over any comments
if ( /#.*/ ) {
next FORA;
}

#Clean up any extraneous garbage
chomp;
# no newline
s/^\s+//;
# no leading white
s/\s+$//;
# no trailing white

#                If clean up eliminated any data worth reading

#l       ets skip to the next line
next unless length;

#                        We can't load the lines with $VARS as we will
#loose any values so we'll make sure to escape them
#(the $'s that is)
s/\$/\\\$/g;

#localizing $var and $value to make sure
# they are clean out on every read.
my ($var, $value) = split(/=/,$_);

#                                        Load variable into enviroment
$ENV{$var}="$value";

$i++;
}

}
print "Loading custom variables into ENV..\n";
readDat("custom_sample_variables.txt");
print "Print custom variables...\n";
print "VAR1=" . $ENV{'VAR1'} . "\n" ;
print "VAR2=" . $ENV{'VAR2'}  . "\n";
print "VAR3=" . $ENV{'VAR3'}  . "\n";

print "Loading cloud variables into ENV..\n";
readDat($fileName);

my $service_name="$ENV{'COMMON_DB_SID'}";
$ENV{"ORACLE_HOME"}="$ENV{'DB_ORACLE_HOME_LOC'}";

#find sid by parsing pmon process.
my $pmon_ora = ".*pmon_".$service_name.".*";
my $process = `ps -eaf |grep $pmon_ora |grep -v grep`;
chomp($process);
my $sid = ( split "pmon_", $process )[ -1 ];

$ENV{"ORACLE_SID"}= $sid;

print "Executing attached SQL ...\n";
my $CMD = $ENV{"ORACLE_HOME"} . "/bin/sqlplus / as sysdba \@sample.sql $ENV{\"PDB_NAME\"}";

print "Firing SQL ...\n";
print "$CMD\n";
system($CMD);
my $ERROR_CODE = $?;
print "Error code is $ERROR_CODE \n";
if ( $ERROR_CODE == 0 )
{
print "Script Completed\n";
}
else
{
print "Error occured while executing \n";
}

Example 24-6 Sample PDBaaS SQL Script

alter session set container=&1;
REM --- you custom sql goes here ---
select name, con_id from v$pdbs;
exit;

Example 24-7 Sample PDBaaS RAC Script

alter session set container=&1;
REM --- you custom sql goes here ---
select name, con_id from gv$pdbs;
exit;

Part IX

Setting Up Middleware as a Service

This section describes how to set up and use WebLogic as a Service (WLaaS), SOA as a Service (SOAaas) and OSB as a Service (OSBaaS) service types. It contains the following chapters:

- Chapter 25, "Setting Up the WebLogic Self Service Portal"

- Chapter 26, "Setting Up the SOAaaS or the OSBaaS Self Service Portal"

- Chapter 28, "Using the MWaaS Self Service Portal"

25 Setting Up the WebLogic Self Service Portal

This chapter describes the procedure to set up the Middleware Self Service Portal for WebLogic as a Service. It contains the following sections:

- Setting Up the WebLogic Self Service Portal

- Creating a Middleware Pool

- Configuring Request Settings

- Creating a Load Balancer Configuration

- Setting Up Quotas

- Creating a WebLogic Service Template

- Configuring Chargeback

25.1 Setting Up the WebLogic Self Service Portal

The EM_SSA_ADMINISTRATOR can configure and set up the WebLogic Cloud Self Service Portal by creating middleware pools, setting up quotas, defining request settings, configuring the load balancer, creating service templates, and configuring chargeback.

Figure 25-1 diagram shows the initial setup and the relationship between the various entities involved in setting up the WebLogic Middleware Self Service Portal.

Figure 25-1 Setting Up WebLogic as a Service

Prerequisites

- One or more PaaS Infrastructure zones must have been created. See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone" for details.

To set up the WebLogic as a Service, follow these steps:

1. Set up one or more PaaS Infrastructure zones. See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone" for details.

2. Create a Middleware Pool. See Section 25.2, "Creating a Middleware Pool".

3. Optionally, you can configure an external load balancer. See Section 25.3, "Creating a Load Balancer Configuration".

4. Configure request settings. See Section 25.4, "Configuring Request Settings".

5. Define quotas for each self service user role. See Section 25.5, "Setting Up Quotas".

6. Create service templates. You can create service templates that can be used to provision an instance of a service in a set of selected zones. See Section 25.6, "Creating a WebLogic Service Template".

7. Optionally, you can configure the Chargeback Service. See Section 25.7, "Configuring Chargeback".

25.2 Creating a Middleware Pool

A Middleware Pool contains a set of resources that can be used to provision a service instance within a PaaS Infrastructure Zone.

Note:
A middleware pool must be configured only if you setting up MWaaS for the physical flow scenario. See Section 25.1, "Setting Up the WebLogic Self Service Portal".

To create a Middleware Pool, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Setup, then select Getting Started. The common tasks that need to be performed before setting up a specific service family is displayed. Click the Setup link next to Middleware service family in the left panel.

4. Select WebLogic from the service type drop down list.

5. Click Middleware Pools. The existing middleware pools are listed on the Middleware Pools page.

6. Click Create. The Create Middleware Pool: General page appears. Enter a name and description for the Middleware Pool. Select the PaaS Infrastructure Zone in which the middleware pool is to be created.
Note: You can also navigate to this page by selecting Resource Providers from the Cloud Home menu. The Resource Provides Home page appears. Click Create and select Middleware Pool as the type of the resource provider to be created to launch the Create Middleware Pool wizard.

Figure 25-2 Create Middleware Pool: General

7. Click Next. In the Members page, specify the following:

- Exalogic: Select Yes if all the member host targets are on Exalogic.

- Exalogic with Multiple Racks: If the hosts are on Exalogic, select Yes if the host targets are from multiple Exalogic racks thereby providing high availability across the racks.

- Operating System and Platform: Specify the operating system and platform.

8. Click Add to add one or more hosts to the middleware pool. Click Next.

9. The Create Middleware Pool: Placement Constraints page appears. The placement constraints are used to set maximum limits on resource utilization for each host. In the Maximum Number of Java Servers (per host) field, enter the maximum number of Java Server instances that can be running on each host in the pool. Click Next.

Note:
If you are using a Shared Oracle Home, you must ensure that Write permissions are available on the $WL_HOME/common/lib directory. This is applicable for WebLogic Server versions 12.1.1 or earlier.

10. In the Characteristics region, specify the following:

- Domain Home Base Directory: This is a mandatory field. Specify the base directory in which the domain or the instances provisioned with this middleware pool are to be placed.

- Middleware Home Base Directory: This is a mandatory field. Specify the directory under which the Oracle Homes are to be created. Oracle Homes will be shared across services of the same type and version.

- Shared Oracle Home: If this field is set to Yes, all hosts in this middleware pool will use this Shared Oracle Home even if other Oracle Homes are present on these hosts.

11. In the Target Properties region, specify the characteristics that will be used to tag and identify the target properties. Click Next.

12. Review the information and click Submit to create the middleware pool. The newly created pool middleware pool can now be used to create Middleware Service Templates.

25.3 Creating a Load Balancer Configuration

You can configure external pre-configured load balancers such as Oracle HTTP Server (versions 11x are supported but it is recommended that you use 11g PS6), Oracle Traffic Director (versions 11x are supported but it is recommended that you use OTD 11x PS6) or a third party load balancer.

Note: If you are using a 11g PS6 managed or collocated OHS load balancer, you must ensure that no change is done through the Admin / MBean interfaces. The as-a-service solution modifies the OHS files directly on the file system, so any changes made on a collocated OHS may not be replicated to the Administration Server. Additionally, any changes made through the Admin interfaces (such as MBean, WLST, and so on), may override the changes made directly to the *.conf files.

If you want to configure a third party load balancer, you must use a custom script to update the load balancer configuration. For more details on this script, see Section 25.3.1, "Creating a Custom Script". A Middleware Pool or a Deployment Plan can be associated with only one of the load balancer configurations.

Note:
Setting up the Load Balancer Configuration is an optional step.

Prerequisites

- OTD and OHS load balancers being configured must be installed on an Enterprise Manager monitored host and is used to route Web traffic to one or more MWaaS service instances. When a MWaaS service instance is created, updated (scaled up or scaled down), or deleted, the load balancer configuration is automatically updated.

- To route HTTPS Web traffic, you must do the following:

- Create an OTD configuration (This is required only if you are configuring an Oracle Traffic Director type of load balancer).

- Create or install a certificate.

For more details configuring SSL authentication, refer to the Oracle Traffic Director Administrator's Guide and the Oracle HTTP Server Administrator's Guide.

To configure a load balancer, follow the steps below:

1. Log into Enterprise Manager as an user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Setup, then select Getting Started. The common tasks that need to be performed before setting up a specific service family is displayed. Click the Setup link next to Middleware service family in the left panel.

Note:
You can use a different navigation path to reach this page. From the Cloud Home menu, select Setup, Service Settings, then click Middleware.

4. Select WebLogic from the service type drop down list and click the Load Balancer Configuration link.

5. Click Create to create a new load balancer configuration.

Figure 25-3 Load Balancer Configuration: General

6. Enter the following details:

- Name of the load balancer configuration.

- Select the type of load balancer being configured. This can be Oracle HTTP Server (OHS), Oracle Traffic Director (OTD), or a Third Party Load Balancer.

- If you are using OHS and OTD, select the host on which the load balancer is installed. This must be an Enterprise Manager monitored host. If you are using the OTD load balancer, you must enter OTD 11g Admin Server here.
Note: If you are using another third party load balancer, select a host on which the load balancer can be configured either locally or remotely.

- Specify the Routing Protocol (HTTP, HTTPS, or both) and the Free Routing Port Range.

- Select the Monitoring Agent (Management Agent) and specify the Named Credentials.

Note:

- For OTD and OHS, the Monitoring Agent must be present on the same host on which the OTD/OHS load balancer instance is running. For third party load balancers, the Monitoring Agent must be present on the host on which the load balancer is being configured.

- For third party load balancers, the Monitoring Agent may not be present on the same host on which the load balancer is running. In this case, you can select any other monitoring agent (which is available on other host) from which the third party load balancer can be accessed or configured by executing the custom script.

7. Click Next. The Create Load Balancer Configuration: Properties page appears.

Figure 25-4 Create Load Balancer Configuration: Properties

If you have selected the Load Balancer Type as:

- Oracle HTTP Server: Enter the following details:

- Instance Home: The directory in which the configuration data and binary files pertaining to Oracle HTTP Server instance is stored.

- Component Name: The component in the specific instance that is to be configured.

- Oracle Traffic Director: Enter the following details:

- Oracle Home: The directory in which the Oracle Traffic Director binaries are installed.

- Admin Protocol: Specify the protocol (HTTP or HTTPS) to be used by the Oracle Traffic Director Administration Server to forward requests. By default, this is HTTPS.

- Admin Listen Port: Specify the Administration Server listen port number.

- SNMP Port: The SNMP port configured for Oracle Traffic Director. The default port number is 11161.

- Instance Node: Specify the Oracle Traffic Director Instance node name.

- Configuration Name: This field is optional and is required only if you have selected HTTPS or HTTP_HTTPS as the Routing Protocol in the Load Balancer Configuration: General section. If you select the HTTP Admin Protocol, and do not specify a value in this field, the OTD Configuration Name is created as config1 by default. If the OTD Configuration has already been created, it must be a managed target in Enterprise Manager.
Note: If you select the HTTP protocol, it is recommended that an OTD Configuration is created manually and discovered as a managed target in Enterprise Manager.

- Certificate Name: This field is optional. If you selected HTTPS or HTTPS or HTTP_HTTPS as the Routing Protocol in the Load Balancer Configuration: General section, enter the name of the self signed certificate.

- Virtual Server Name: The name of the virtual server. If the virtual server does not exist, a virtual server with the name specified here will be created. In this release, host patterns are not defined for each virtual server in the configuration.

- Privileged Named Credentials: Specify the Named Credentials for the Administration Server.

- Third Party Load Balancer: Select a script to configure the load balancer. This script must have been uploaded to the Software Library and the Software Library Directive URN must be specified as the input for the script.

8. Click Next. The Create Load Balancer Configuration: Targets page appears.

9. Click Add to add one or more middleware pools (See Section 25.2, "Creating a Middleware Pool") with which the load balancer will be associated.

Note:
A Middleware Pool can be associated with only one load balancer configuration.

10. Click Next. Review the configuration and click Submit to create the Load Balancer Configuration. The newly created load balancer configuration appears in the Load Balancer Configurations table. Click the Load Balancer Name link in the table to view the load balancer configuration details. This shows the targets associated with the load balancer configuration and middleware service instances that are using the configuration.

25.3.1 Creating a Custom Script

You can use a custom script to configure the load balancer. This script must be present in the Software Library as a directive. The directive must follow these guidelines:

- LBR_WORK_DIRECTORY: Specifies the directory in which the lbr.properties file will be staged. The name-value pairs present in the lbr.properties file are extracted by the custom script and these values are used to configure the load balancer.

- The following properties must be present in the lbr.properties file:

- THIRDPARTY_ROUTING_PROTOCOL: This can be HTTP, HTTPS, or HTTP_HTTPS.

- HTTP_PORT_RANGE: The range of ports (separated by hyphen '-') that can be used to configure for HTTP protocol. For example, 5000-6000.

- HTTPS_PORT_RANGE: The range of ports (separated by hyphen '-') that can be used to configure for HTTPS protocol. For example, 7000-8000.

- LBR_HOST: The host on which the load balancer is installed.

- UNIQUE_URI_REFERENCE: This is the Service Instance Id (which is an unique value). This maps to the service instance (WebLogic Domain). If required, it can be used to uniquely identify an entity, such as the virtual server, route, and so on.

- CONFIGURATION_ACTION: The actions that can be performed are:

- CREATE: To create a service instance.

- ADD_SERVERS: To scale up or add one or more servers.

- DELETE_SERVERS: To scale down or delete one or more servers.

- REMOVE: To delete a service instance.

- HTTP_WLS_MANAGED_SERVER_PORT_LIST: A comma separated host:port (Managed Servers) list where port is a http port. For example, abc:123, xyz:456.

- HTTPS_WLS_MANAGED_SERVER_PORT_LIST: A comma separated host:port (Managed Servers) list where port is an SSL port. For example, abc:123, xyz:456.

25.3.1.1 Sample Script (Oracle Cloud Application 12.1.0.8 or Earlier)

This sample script is applicable if are using 12.1.0.8 or earlier versions of the Oracle Cloud Application plugin.

Example 25-1 Sample Script I

#!/usr/bin/perl
use File::Path;
#use File::Spec();
use File::Spec;
use Cwd;

my $dir = getcwd();
my $WORK_DIR = $ARGV[0];

print "The Input Parameters to the Third Party Script are as follows : "."\n";
print "lbrWorkDirectory = ".$WORK_DIR."\n";
print "======================================================================"."\n";
print "The lbr.property file contents accessible to this script are as follows "."\n";
my $textfile = "lbr.properties";

my @prop;
chdir($WORK_DIR) or die "Can't chdir to $WORK_DIR $!";
#Create Hash from properties
open FILE, "<$textfile" or die("Could not open text file '" . $textfile . "': $!");
my %hash;
while ($line4 = <FILE>)
{
chomp($line4);
my ($key, $val) = split(/=/,$line4);
print $key."= ".$val."\n";
$hash{$key}=$val;
}
close FILE;
print "======================================================================"."\n";
my $ACTION          = $hash{'CONFIGURATION_ACTION'};
if ( $ACTION eq "CREATE" ) {
print " The Configuration Action is Create \n";
} elsif ( $ACTION eq "ADD_SERVERS" ) {
print " The Configuration Action is Scale Up \n";
} elsif ( $ACTION eq "DELETE_SERVERS" ) {
print " The Configuration Action is Scale Down \n";
} elsif ( $ACTION eq "REMOVE" ) {
print " The Configuration Action is Remove \n";
} else {
print " Unsuppported Configuration Action".$ACTION."\n";
}
print "======================================================================"."\n";
#
# logic to configure the LBR goes here
#

25.3.1.2 Sample Script (Oracle Fusion Middleware 12.1.0.7 or Later)

This sample script is applicable if you are using 12.1.0.7 or later versions of the Oracle Fusion Middleware plugin.

Example 25-2 Sample Script II

#!/usr/bin/perl
use File::Path;
#use File::Spec();
use File::Spec;
use Cwd;

my $dir = getcwd();
my $WORK_DIR = $ARGV[0];

print "The Input Parameters to the Third Party Script are as follows : "."\n";
print "lbrWorkDirectory = ".$WORK_DIR."\n";
print "======================================================================"."\n";
print "The lbr.property file contents accessible to this script are as follows "."\n";
my $textfile = "lbr.properties";

my @prop;
chdir($WORK_DIR) or die "Can't chdir to $WORK_DIR $!";
#Create Hash from properties
open FILE, "<$textfile" or die("Could not open text file '" . $textfile . "': $!");
my %hash;
while ($line4 = <FILE>)
{
chomp($line4);
my ($key, $val) = split(/=/,$line4);
print $key."= ".$val."\n";
$hash{$key}=$val;
}
close FILE;

print "TP OUTPUT:FRONT_END_HOST_VALUE=example.host.com#FRONT_END_HTTP_PORT_VALUE=9000#FRONT_END_HTTPS_PORT_VALUE=9090#URI_PREFIX=app1#"."\n";
#
# logic to configure the LBR goes here
#

print "======================================================================"."\n";

Note:
If you are using Oracle Fusion Middleware 12.1.0.7 or later, the script must meet the following guidelines:

- After successfully completing the configuration, you must exit the program with command status '0'.

- If the configuration fails, you must exit the program with a 'non-zero' command status.

- Print the following information in the exact format as given below:
print "TP OUTPUT:FRONT_END_HOST_VALUE=<host-name>#FRONT_END_HTTP_PORT_VALUE=<http_port>#FRONT_END_HTTPS_PORT_VALUE=<https_port>#URI_PREFIX=<uri-prefix-if-applicable>#"."\n";

25.3.2 Adding the Third Party LBR Configuration to the Software Library

To add the third party LBR configuration script as a directive in the Software Library, follow these steps:

1. From the Enterprise menu, select Provisioning and Patching, then select Software Library.

2. From the Actions menu, select Create Entity and click Directive to launch the Create Entity: Directives wizard.

3. On the Describe page, enter the Name and Description. Click Next.

4. On the Configure page, click Add and specify the command line arguments that will be used configure the directive. The Add Command Line Arguments dialog box appears.

5. In the Add Command Line Arguments dialog box, enter LBR_WORK_DIRECTORY in the Property Name field and leave the other two fields (Argument Prefix and Argument Suffix fields) blank.

Figure 25-5 Software Library: Configure Page

6. In the Configuration Properties section, select either Bash or Perl as defined in the script. Click Next.

7. On the Select Files page, you can select one or more files to be associated with the entity. Select the Upload Files option and select the Upload Location.

8. In the Specify Source section, select Local Machine, and click Add. In the Add File dialog box, click Browse to select the third party LBR configuration script file from the source location, and give a unique name, and click OK.

Figure 25-6 Software Library: Select Files Page

9. On the Review page, review all the details, and click Save and Upload to create the directive and upload it on the Software Library.
The third party LBR configuration script is now present as a directive in the Software Library. This directive can be selected as the third party Directive URN parameter in the Load Balancer Configuration Create page. For more details on creating a Software Library directive, see the Enterprise Manager Cloud Control Administrator's Guide.

Note:
If the third party load balancer is used for more than one service (WLaaS, SBaaS, or SOAaaS), you must set the following properties to ensure that a unique identity is maintained for each service type:

- SVC_INST_ID: Unique service instance ID.

- SVC_Name: Name of the service.

25.4 Configuring Request Settings

You can configure the request settings by specifying when a request can be made, its duration, and so on. To configure the request settings, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Setup, then select Getting Started. The common tasks that need to be performed before setting up a specific service family is displayed. Click the Setup link next to Middleware service family in the left panel.

Note:
You can use a different navigation path to reach this page. From the Cloud Home menu, select Setup, Request Settings, then select Middleware, and click WebLogic.

4. Select WebLogic from the service type drop down list and click Request Settings.

5. You can specify the following parameters to set the global settings or settings for a specific role.

- Future Reservation: How far in advance can a request be made.

- Request Duration: Maximum duration for which a service can exist.

- Archive Policy: Maximum duration after which archived requests are automatically deleted.

- Service Instance Approval: Select this checkbox if all requests need to be approved by the self service administrator.

- Service Instance Share Settings: A service instance can be shared with another user or a role. You can select either or both the checkboxes:

- Enable SSA User to share service instances with other Users.

- Enable SSA User to share service instances with Roles.

See Section 11.2.3, "Configuring Request Settings" for details on how to set these parameters.

6. Click Apply.

25.5 Setting Up Quotas

Quota is the aggregate amount of resources that can be granted to each self service user belonging to a certain role. This quota applies only to the service instances provisioned through the Middleware Self Service Portal. Each service instance that is provisioned including new service requests and scale up of existing service instances is subject to the quota allocated to the self service user. When the self service user has used up his allocated quota, he cannot make new service requests until a higher quota is allocated or his existing service instances have been reclaimed.

To define a quota, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

Note:
You can use a different navigation path to reach this page. From the Cloud Home menu, select Setup, Quotas, then click Middleware.

3. Click on the Setup link next to the Middleware Service family and select the WebLogic service type from the drop down list.

4. Click the Quotas link and then click Create.

Note:
Quota validation ensures that a request is executed only if the user's current usage is within the limits specified for the roles to which the user belongs. Only the direct roles are considered for the quota determination, and not nested ones.

5. In the Create Quota window, select the Role Name for which the quota is to be granted. Specify the quota limits for the role as follows:

- Memory: The maximum memory that can assigned to the instances owned by a specific user.

- Java Servers: The number of Java Servers that can be owned by a user at any point in time.

- Number of Non Oracle JVMs: Specify the number of Non Oracle JVMs.

Note:
Only users that have the Cloud Self Service Portal privileges (users belonging to the EM_SSA_USER_BASE role) are displayed in the Select Roles dialog box.

25.6 Creating a WebLogic Service Template

A service template can be used to provision an instance of a service into a set of selected PaaS Infrastructure zones.

Prerequisites

- Set up and enable MWaaS as described in Section 13.3, "Getting Started with Middleware as a Service".

- A PaaS Infrastructure Zone must have been created.

- A WebLogic domain provisioning profile (see Section 13.3.1.1, "Creating a WebLogic Domain Provisioning Profile") with appropriate values must be present in the Software Library.

- A middleware pool must have been created.

- Named Credentials must be created and the user creating the service template must be the owner of the Named Credentials.

Note:
You can edit a service template that has active instances and modify the configuration parameters. When a service template is modified:

- New instances created after the changes have been made will use the new parameters.

- Old instances or instances created before the template was modified will use the earlier values.

- Changes made to zones and roles will be applicable to both old and new instances.

To create a WebLogic Service Template, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears. From the Oracle Cloud menu, select Setup, then select Getting Started.

Note:
You can use a different navigation path to reach this page. Select Service Templates from the Oracle Home menu, click Create and select WebLogic service type.

3. Click on the Setup link next to the Middleware Service family and select the WebLogic service type from the drop down list.

4. Click the Service Templates link. You can create service templates that can be used to provision an instance of a service in a set of selected zones. Click Create.

5. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

6. In the Provisioning Profile field, click the Search icon and select a WebLogic Domain Provisioning profile. The WebLogic Domain Provisioning Profile you select can contain either of the following:

- One cluster with one or more WebLogic Servers. You can scale up or scale down by adding or deleting WebLogic servers to this cluster.

- One WebLogic Server. In this case, the Scale Up and Scale Down options are not available.

7. Click Next.

Figure 25-7 Create WebLogic Service Template: Characteristics

In the Service Characteristics region, specify the following:

- Distribute WebLogic Servers of a service instance on hosts from different Exalogic Racks: Select Yes if the WebLogic Servers in a service instance are to be uniformly distributed on available Exalogic racks. Select No if the hosts are to be placed on the first available rack.

- Distribute Load on Available Hosts: Select Yes if the WebLogic Servers are to be uniformly distributed on available hosts. If you select No, the maximum number of servers possible will be provisioned on the first available host before provisioning on other hosts.

- Enable Load Balancer: Select Yes to enable the load balancer configuration for all the service instances that are created with this service template.

Note:
Based on your selections in the Service Characteristics region, the relevant middleware pools will be displayed.

- Expose Advanced Settings for the SSA User: When set to Yes, the self service user will have access to advanced options such as Operating System, Enable sharing Service Instances with other SSA Users, Setting Target Properties for Monitoring Templates, and so on.

- Expose WebLogic Admin Console and Fusion Middleware Control to SSA User: If you select Yes, the users with the EM_SSA_USER role will have access to the WebLogic Admin Console and Fusion Middleware Control for each service instance created using this service template.

Note:
This field must be set to Yes only if the EM_SSA_USER needs to have complete control over the WebLogic Server and Fusion Middleware Control consoles. The EM_SSA_USER will then be able to perform all configuration changes and life cycle management operations from each console.

- JRF Enabled Profile: Indicates if the selected profile is JRF enabled. If set to Yes for WebLogic Server 12.1.2 and 12.1.3 instances, the self service user will be prompted for the database connection string and schema password while requesting a service. The database whose connection string you specify must be a clone of the source profile.
The self service user can either use a database that has been cloned using DBaaS RMAN Backup option, or a database which is cloned outside DBaaS but discovered in Enterprise Manager. In the case of the latter option, after discovering the database, you must grant view privileges on the Database target to the self service user.

Note: A JRF enabled profile cannot be used to create a non-JRF WebLogic domain. If the value for this field has been set to Yes, it is recommended that you do not change it.

8. In the Target Properties region, specify the characteristics that will be used to tag and identify the target properties. Service instances created from the template will have the characteristics.

9. Click Next. In the Create Middleware Service Template: Resource Providers page, click Add to select the Middleware Pool into which that the service instances are to be provisioned. The PaaS Infrastructure Zone with which the middleware pool is associated is displayed.

10. Click Next. The Configuration page appears.

Figure 25-8 Create WebLogic Template: Configuration

Enter the following details:

- WebLogic Administration Credentials:

- WebLogic Username: Enter a value of minimum 8 characters as the name of the user logging into the WebLogic server. This is a mandatory field.

- WebLogic Password: Enter a value of minimum 8 characters as the password for the WebLogic server user. This is a mandatory field.

- Java Home Location: Specify the absolute path to the Java Home. This field must be specified if the WebLogic Domain Provisioning Profile selected earlier contains Middleware Home binaries.

- Pre and Post Scripts

- Prescript for Service Instance: Select the script that should be executed before creating, deleting, scaling up, or scaling down a service instance.

- Postscript for Service Instance: Select the script should be executed after creating, deleting, scaling up, or scaling down a service instance.

- External Hosts for Executing Scripts: Specify the external hosts on which these scripts should be executed.

- Named Credential for execution of scripts on external hosts: Specify the credentials to be used to run the scripts on external hosts.

- Execute Scripts on Admin Server Host: Select Yes if the scripts are to be executed on the Administration Server Host.

- Execute Scripts on Managed Server Hosts: Select Yes if the scripts are to be executed on the Managed Server Hosts.

Note:
Zone level credentials are used to run these scripts on the Administration Server Host and the Managed Server Host.

The scripts must meet the following guidelines:

- Directive that is created should be a PERL directive.

- An input parameter named INPUT_FILE_LOCATION must be defined.

- The path to the location of a property file must be specified in the INPUT_FILE_LOCATION parameter.

- The property file contains information about the service instance and the domain.

See Section 25.6.1, "Sample Postscript" for a sample script file, properties file, and the generated output.

- Service Settings:

- Topology: This field is automatically set based on the profile you have selected in the Create Middleware Service Template for Physical: General page.

- Port Range (Start - End): Enter the port range for the WebLogic Server. The default start range is 1024 and the end range is 65000.

- Placement Parameters:

- Memory Usage Per Instance: Specify the memory required for each additional WebLogic Server instance. This parameter must be specified (cannot be left blank) and the value must match the -Xmx value specified in the profile. For example, if the profile specifies -Xmx512m, the memory required value must be set to 0.5. Similarly, a profile value of -Xmx1024m would need a memory required value of 1, and so on.

- CPU Usage Per Instance: Specify the CPU required for each additional WebLogic Server instance.

- Server Startup Arguments

- Managed Server Startup Arguments: Specify the memory and Java arguments required to start the managed server. These arguments are used to control the memory size of the JVM server and create multiple templates with the same profile. For example, you can specify -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.security.SSL.ignoreHostnameVerification=true.
Note: If the Expose Advanced Settings for the SSA User flag is set to True, the self service user can modify these arguments while requesting a service.

- Resource Management Script Parameters

- Resource Management Script: Specify the script for dynamic management of resources which allows you to increase or decrease the size of the middleware pool. This script must be present in the Software Library as a directive.

11. Click Next. In the Create Middleware Service Template for Physical: Roles page, click Add to select the self service user roles to which this service template will be available. All users belonging to the selected role can use this service template.

12. Click Next. The Create Middleware Service Template for Physical: Review page appears. Review the information entered so far and click Submit. The newly created service template will appear in the Middleware Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

To edit an existing MWaaS service template, follow these steps:

1. Click Edit in the Service templates page to launch to the Edit Service Template wizard.

2. In this mode, you can modify the description, user name, password, and port range of the WebLogic Server instance being provisioned, add or remove PaaS Infrastructure Zones, Software Pools into which the template is being deployed, and add or remove users who can use this template.

25.6.1 Sample Postscript

This sample postscript prints the contents of the properties file and also prints details regarding the managed server, administration server, and so on.

25.6.1.1 Sample Properties File

The properties file contains the following:

OPERATION= CREATE
SERVICE_INSTANCE= inst_01
DOMAIN_NAME= inst_01_SSA_USER1
DOMAIN_HOME= /middleware/inst_01_SSA_USER1
MW_HOME= /middleware
WLS_HOME= /middleware/wlserver_10.3
ADMIN_SERVER= example.com,27877,8142
MANAGED_SERVERS= example.com,13614,1488,4166;
EXTERNAL_HOSTS= example.com
EXECUTE_SCRIPTS_ON_ADMIN_SERVER_HOST=  Yes
EXECUTE_SCRIPTS_ON_MANAGED_SERVER_HOSTS=  Yes

25.6.1.2 Sample Script

A sample script is given below:

#!/usr/bin/perl
use File::Path;
#use File::Spec();
use File::Spec;
use Cwd;

my $dir = getcwd();
my $inputFile = $ARGV[0];

print "Imput File Location = ".$inputFile."\n";
print "===================================================================="."\n";
print "The properties file contents accessible to this script are as follows "."\n";

my @prop;
#Create Hash from properties
open FILE, "<$inputFile" or die("Could not open text file '" . $inputFile . "': $!");
my %hash;
while ($line4 = <FILE>)
{
chomp($line4);
my ($key, $val) = split(/=/,$line4);
print $key."= ".$val."\n";
$hash{$key}=$val;
}
close FILE;
print "===================================================================="."\n";
my $ACTION = $hash{'OPERATION'};
if ( $ACTION eq "CREATE" ) {
print " This is Service Instance Creation Operation \n";
} elsif ( $ACTION eq "SCALEUP" ) {
print " This is Scale Up Operation \n";
} elsif ( $ACTION eq "SCALEDOWN" ) {
print " This is Scale Down Operation \n";
} elsif ( $ACTION eq "DELETE" ) {
print " This is Delete Service Instance Operation \n";
} else {
print " Unsuppported Configuration Action".$ACTION."\n";
}
print "===================================================================="."\n";

my $ADMIN_SERVER = $hash{'ADMIN_SERVER'};

print "======================Admin Server Details Begins==================="."\n";
my @fields = split (/,/, $ADMIN_SERVER);
my $arraySize = @fields;
if ($arraySize == 4) {
print "Admin Server Name is ".$fields[0]."\n";
print "Admin Server Host Name is ".$fields[1]."\n";
print "Admin Server NON SSL Port is ".$fields[2]."\n";
print "Admin Server SSL Port is ".$fields[3]."\n";
} else {
print "Admin Server Host Name is ".$fields[0]."\n";
print "Admin Server NON SSL Port is ".$fields[1]."\n";
print "Admin Server SSL Port is ".$fields[2]."\n";
}
print "======================Admin Server Details Ends===================="."\n";

print "\n";

print "======================Managed Server's Details Begins==============="."\n";
my $MANAGED_SERVERS = $hash{'MANAGED_SERVERS'};
my $managedServer;
my @noOfManagedServers = split (/;/, $MANAGED_SERVERS);
for ($count = 0; $count < @noOfManagedServers; $count++) {
$managedServer = $noOfManagedServers[count];
@fields = split (/,/, $managedServer);
$arraySize = @fields;
if ( $ACTION eq "SCALEDOWN" || $ACTION eq "DELETE" ) {
print "Managed Server Name is ".$fields[0]."\n";
print "Managed Server Host Name is ".$fields[1]."\n";
print "Managed Server NON SSL Port is ".$fields[2]."\n";
print "Managed Server SSL Port is ".$fields[3]."\n";
} else {
print "Managed Server Host Name is ".$fields[0]."\n";
print "Managed Server NON SSL Port is ".$fields[1]."\n";
print "Managed Server SSL Port is ".$fields[2]."\n";
}
print "\n"
}
print "===================Managed Server's Details Ends===================="."\n";

print "\n";

print "===================External Host's Details Begins==================="."\n";
my $EXTERNAL_HOSTS = $hash{'EXTERNAL_HOSTS'};
my @hosts = split (/,/, $EXTERNAL_HOSTS);
for ($count = 0; $count < @hosts; $count++) {
print "External Host is ".$hosts[count]."\n";
}

print "=====================External Host's Details Ends==================="."\n";

25.6.1.3 Sample Script Output

The output of the directive is given below:

Imput File Location = /jan1215/work/agentStateDir/1422547083465.properties
======================================================================
The properties file contents accessible to this script are as follows
OPERATION= CREATE
SERVICE_INSTANCE= inst_01
DOMAIN_NAME= inst_01_SSA_USER1
DOMAIN_HOME= /middleware/inst_01_SSA_USER1
MW_HOME= /middleware
WLS_HOME= /middleware/wlserver_10.3
ADMIN_SERVER= example.com,27877,8142
MANAGED_SERVERS= example.com,13614,1488,4166;
EXTERNAL_HOSTS= example.com
EXECUTE_SCRIPTS_ON_ADMIN_SERVER_HOST=  Yes
EXECUTE_SCRIPTS_ON_MANAGED_SERVER_HOSTS=  Yes
======================================================================
This is Service Instance Creation Operation
======================================================================
=======================Admin Server Details Begins===================
Admin Server Host Name is example.com
Admin Server NON SSL Port is 27877
Admin Server SSL Port is 8142
=======================Admin Server Details Ends====================

=======================Managed Server's Details Begins===============
Managed Server Host Name is example.com
Managed Server NON SSL Port is 13614
Managed Server SSL Port is 1488

=======================Managed Server's Details Ends====================

=======================External Host's Details Begins===================
External Host is example.com
=======================External Host's Details Ends===================

25.6.2 Resource Management Script

The Resource Management Script specifies the location of the property file which contains a list of name value pairs. The content of the file varies based on the Create, ScaleUp, ScaleDown, and Delete operations.

25.6.2.1 Create Operation

The content of the file for the Create operation are:

ACTION=CREATE

ZONE_NAME=<value>

POOL_NAME=<value>

NUMBER OF SERVERS BEFORE THIS REQUEST=<value>

NUMBER OF SERVERS REQUESTED=<value>

NUMBER OF SERVERS POSSIBLE WITH AVAILABLE RESOURCES=<value>

NUMBER OF SERVERS NEEDED=<value>

MAXIMUM SERVERS ALLOWED PER HOST=<value>

MIDDLEWARE_HOME=<value>

EXPECTED CPU UTILIZATION IN PERCENTAGE=<value>

EXPECTED MEMORY CONSUMPTION IN GB==<value>

25.6.2.2 Scaleup Operation

The content of the file for the Scaleup operation are:

ACTION=SCALEUP

ZONE_NAME=<value>

POOL_NAME=<value>

NUMBER OF SERVERS BEFORE THIS REQUEST=<value>

NUMBER OF SERVERS REQUESTED=<value>

NUMBER OF SERVERS POSSIBLE WITH AVAILABLE RESOURCES=<value>

NUMBER OF SERVERS NEEDED=<value>

MAXIMUM SERVERS ALLOWED PER HOST=<value>

MIDDLEWARE_HOME=<value>

DOMAIN_NAME=<value>

EXPECTED CPU UTILIZATION IN PERCENTAGE=<value>

EXPECTED MEMORY CONSUMPTION IN GB==<value>

25.6.2.3 Scaledown Operation

The content of the file for the scaledown operation are:

ACTION=SCALEDOWN

ZONE_NAME=<value>

POOL_NAME=<value>

NUMBER OF SERVERS BEFORE THIS REQUEST=<value>

NUMBER OF SERVERS BEING REMOVED=<value>

HOSTS FROM WHERE SERVERS BEING REMOVED=<value>

MIDDLEWARE_HOME=<value>

DOMAIN_NAME=<value>

25.6.2.4 Delete Operation

The content of the file for the Delete operation are:

ACTION=DELETE

ZONE_NAME=<value>

POOL_NAME=<value>

NUMBER OF SERVERS BEFORE THIS REQUEST=<value>

NUMBER OF SERVERS BEING REMOVED=<value>

HOSTS FROM WHERE SERVERS BEING REMOVED=<value>

MIDDLEWARE_HOME=<value>

DOMAIN_NAME=<value>

25.7 Configuring Chargeback

Click the Chargeback tab to add the middleware pools to the Chargeback Application. On this page, you can determine chargeback zones, services, items, and prices. After Chargeback is set up, you can view charges and plan details.

You can configure chargeback and metering data based on the configuration and monitoring metrics collected from associated targets such as the host, managed server, and the PaaS Infrastructure Zone. The charge plans are based on the host, WebLogic (domain, cluster, and server), PaaS Infrastructure Zone, and configuration such as the WebLogic Domain version, OS version, vendor, and so on.

For details on setting up the Chargeback Service, see Chapter 43, "Chargeback Administration".

26 Setting Up the SOAaaS or the OSBaaS Self Service Portal

This chapter describes the procedure to set up and enable the SOA Self Service Portal or the OSB Self Service Portal. It contains the following sections:

- Getting Started with SOAaaS and OSBaaS

- Setting Up DBaaS used to Clone a SOA Repository

- Prerequisites for Creating a SOA or an OSB Provisioning Profile

- Setting Up the SOA and OSB Cloud Self Service Portal

26.1 Getting Started with SOAaaS and OSBaaS

This section helps you get started by providing an overview of the steps involved in setting up SOA as a Service (SOAaaS) and OSB as a Service (OSBaaS) to provision a service instance on one or more physical hosts.

Table 26-1 Getting Started with Middleware as a Service

Step

Task

1

Clone the database used by the Source SOA domain or OSB domain. Oracle recommends using the DBaaS feature available in Enterprise Manager. See Section 26.2.

2

Meet the Prerequisites for creating the SOA/OSB provisioning profiles: See Section 26.3

3

Setting Up SOA and OSB Self Service Portal. See Section 26.4

26.2 Setting Up DBaaS used to Clone a SOA Repository

Following are the high-level steps to setup the Database Self Service Portal and request for a database instance that can be used for setting up the SOA Self Service Portal. Cloning method followed for setting up database instance for SOA is using RMAN backup. Following are the high-level steps:

Table 26-2 Provisioning Databases Using RMAN Backup Profile

Step

Task

Role

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

2

Set up one or more PaaS Infrastructure Zones.

Note: Oracle recommends using the same Infrastructure zone for Database and SOA/OSB.

See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone"

3

Create a database provisioning profiles using the RMAN Backup option.

Note: Select the SOA/OSB dehydration store database used by the source SOA/OSB domain to create the profile.

See Section 19.1.2.1, "Creating a Database Provisioning Profile Using RMAN Backup"

4

Create a database pool.

See Section 19.1.1.1, "Creating a Database Pool for Database as a Service"

5

Create a database service template for SOA.

Create a database service template for OSB.

See "Creating a Database Service Template for SOA Profile"

See "Creating a Database Service Template for OSB Profile"

6

While deploying a database for SOA/OSB, select the service template you have created.

See Section 22.2, "Requesting a Database"

- Note:
The same user credentials that are used to create the Database Service instance should be used for creating the SOA/OSB Service instance. If you instead use other credentials, you must ensure that the SOA Service user has been granted the required accesses on the database.

26.2.1 Creating a Database Service Template for SOA Profile
Prerequisite:
To truncate the business data present inside the SOA dehydration store (source environment), use the truncate script provided as a part of the SOA product. For this, you must first create a Generic Component and upload truncate_soa_oracle.sql script to Software Library. For more information on this, see Oracle Enterprise Manager Cloud Control Administrator's Guide.

Note that the truncate script (truncate_soa_oracle.sql) is located in the following directory path: /MW_HOME/SOA_ORACLE_HOME/rcu/integration/soainfra/sql/truncate

To create the service template for a SOA Profile, follow these steps:

1. Follow the steps listed in Section 19.1.2.1 to create the database profile.

2. Click Next.

3. On the Create Service Template: Customization page, specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.
In the Post SQL Script field, select the component truncate_soa_oracle.sql that you uploaded to Software Library.

From the Run as a User drop down menu, select the database schema. Note that you must run the script as {prefix}_SOAINFRA database user. For example, DEV_SOAINFRA.

4. Click Next. The Create Service Template: Roles page appears.

5. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

6. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

26.2.2 Creating a Database Service Template for OSB Profile

Prerequisite (Applicable only for OSB 11g targets)

OSB uses Logging Last Resource (LLR) transaction optimization feature which creates LLR tables in the OSB schema for each managed server in the OSB domain, including the Administration Server.

As part of cloning the OSB database, you need to drop these tables. Otherwise, startup of the cloned OSB domain will fail. To drop these tables, you can create a a Generic Component and upload llr_table.sql script to the Software Library.

To create the script for each for each LLR table present in source OSB environment, add the following statement to the SQL script:

DROP table WL_LLR_<SERVER_NAME>

For example, if the OSB domain has administrator server and two managed servers with name OSB_SERVER1 and OSB_SERVER2, then the content of the sql script would look like:

DROP table WL_LLR_ADMINSERVER

DROP table WL_LLR_OSB_SERVER1

DROP table WL_LLR_OSB_SERVER2

To create the service template for OSB profile, follow these steps:

1. Follow the steps listed in Section 19.1.2.1 to create the database profile.

2. Click Next.

3. On the Create Service Template: Customization page, specify the custom scripts that need to be executed before and after the database is created. See Section 24.1, "Pre and Post Request Creation / Deletion Scripts" for details.
In the Post SQL Script field, from the Software Library, select the component that you created to truncate the LLR tables (llr_table.sql) present in the database. Note that if you do not perform this step, request for an OSB service will fail.

From the Run as a User drop down menu, select the database schema. Note that you must run the script as {prefix}_SOAINFRA database user. For example, OSB_SOAINFRA.

4. Click Next. The Create Service Template: Roles page appears.

5. Click Add to select the SSA user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

6. The Create Service Template: Review page appears. Click Create. The newly created service template will appear in the Database Cloud Self Service Portal Setup: Service Templates page.

26.3 Prerequisites for Creating a SOA or an OSB Provisioning Profile

Meet all the prerequisites mentioned in the Oracle Enterprise Manager Lifecycle Management Administrator's Guide before creating a SOA or an OSB provisioning profile.

26.4 Setting Up the SOA and OSB Cloud Self Service Portal

The EM_SSA_ADMINISTRATOR can configure and set up the SOA/OSB Cloud Self Service Portal by creating middleware pools, setting up quotas, defining request settings, configuring the load balancer, creating service templates, and configuring chargeback.

Note:
To create a database profile for SOA or OSB domain, you must use a Single Instance database or a RAC database. For a RAC database, use GridLink data source. Multi datasource is not supported.

The following table lists the tasks that must be performed, and the user roles that can perform the task.

Step

Task

User Role

1

Set up one or more PaaS Infrastructure Zones. See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone"

EM_CLOUD_ADMINISTRATOR

2

Creating SOA Provisioning Profiles.
Meet the prerequisites mentioned in Section 26.3.

For steps on how to create the SOA profile, see Oracle Enterprise Manager Lifecycle Management Administrator's Guide.

Note: Ensure that you grant privileges on the profile to the SSA_USER role. A basic requirement is that the SSA_USER role has view privileges on the SOA profile. To grant privileges, follow these steps:

1. In Cloud Control, from Enterprise menu, select Provisioning and Patching, then click Software Library.

2. On the Software Library home page, expand Fusion Middleware Provision option and the Profiles menu, to view all the SOA/OSB profiles.

3. Select one of the profiles, and from Actions menu, select Grant/Revoke Privileges.

4. On the Grant/Revoke Privileges page, click Add to select the SSA_USER role, then grant view privilege.

EM_SSA_ADMINISTRATOR

3

Section 26.4.1, "Creating a SOAaaS and OSBaaS Pool"

EM_SSA_ADMINISTRATOR

4

Section 25.3, "Creating a Load Balancer Configuration"

EM_SSA_ADMINISTRATOR

5

Section 25.4, "Configuring Request Settings"

EM_SSA_ADMINISTRATOR

6

Section 25.5, "Setting Up Quotas"

EM_SSA_ADMINISTRATOR

7

Section 26.4.2, "Creating SOA and OSB Service Templates"

EM_SSA_ADMINISTRATOR

8

Section 25.7, "Configuring Chargeback"

EM_SSA_ADMINISTRATOR

26.4.1 Creating a SOAaaS and OSBaaS Pool

A Middleware Pool contains a set of resources that can be used to provision a service instance within a PaaS Infrastructure Zone. You must create separate Middleware pools in the PaaS Infrastructure Zone for each WebLogic version of Middleware Home.

To create a SOA Pool or an OSB Pool, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Setup, then select Getting Started. The common tasks that need to be performed before setting a specific service family is displayed. Click the Setup link next to Middleware service family in the left panel.

4. Select SOA Infrastructure or Oracle Service Bus from the drop down list, and then click Middleware Pool. The Middleware Pool page appears.

5. On the Middleware Pool page, click Create.

6. Enter the Target Name, a name, and description for the middleware pool.

7. Select the PaaS Infrastructure Zone in which the middleware pool is to be created. Click Next.

8. Click Add to add one or more hosts to the middleware pool. Click Next.

9. On the Placement Constraints page, in the Maximum Number of WebLogic Servers (per host) field;, enter the maximum number of server instances that can be running on each host in the pool.

10. On the Characteristics page, specify the characteristics that will be used to tag and identify the target properties. The following options are possible:

- To use a shared location, select Yes from the Shared Oracle Home menu, and provide an NFS path for the Middleware Home Base Directory. In this case, the SSA Administrator should make sure that the NFS path is mounted on all the hosts in the Middleware Resource Provider (used for SOA and OSB).

- To use a local path, select No from Shared Oracle Home menu, and provide a location that is consistent across hosts in the Middleware Resource Provider.

11. On the Review page, click Submit to create a SOA or an OSB pool. The newly created pool can now be used to create the corresponding SOA and OSB Service Templates.

26.4.2 Creating SOA and OSB Service Templates

A Service Template is a service definition that can be used to provision a service instance on a middleware pool.

Prerequisites

- A PaaS Infrastructure Zone must have been created.

- A Middleware Pool must have been created.

- A Middleware Provisioning Profile with appropriate values must be present in the Software Library. The owner of the profile must grant View privileges on the profile to the SSA user.

- The database service template for a SOA profile and OSB profile are different. For information on how it can be created, see Section 26.2.1 and Section 26.2.2.

Note:
You can edit a service template that has active instances and modify the configuration parameters. When a service template is modified:

- New instances created after the changes have been made will use the new parameters.

- Old instances or instances created before the template was modified will use the earlier values.

- Changes made to zones and roles will be applicable to both old and new instances.

To create a Middleware Service Template, follow these steps:

1. Log into Enterprise Manager as an user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Setup, then select Getting Started. The common tasks that need to be performed before setting a specific service family is displayed. Click the Setup link next to Middleware service family in the left panel.

4. Select SOA Infrastructure or Oracle Service Bus from the drop down list and click Service Templates.

5. On the Service Templates page, click Create.

6. On the General page, enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. In the Profile SOA field, click the Search icon and select a Provisioning profile. For information on how to create these profiles, see Oracle Enterprise Manager Lifecycle Management Administrator's Guide. Click Next.

8. On the Characteristics page, specify the characteristics that will be used to tag and identify the target properties. Service instances created from the template will have the characteristics. Click Next.

9. On the Resource Providers page, click Add to select the Middleware Pool into which that the service instances can be provisioned. The PaaS Infrastructure Zone with which the middleware pool is associated is displayed. Click Next.

10. On the Configuration page, enter the following details:

Table 26-3 SOA Configuration Details

Name

Description

Middleware Home Base Path and Java Home

Middleware Home Base Path: If you have set the NFS path while creating resource provider, then that path is populated here by default, and you are recommended to retain the same path. However, if the path was not set while creating resource provider, the Middleware Home base path from the profile is displayed, which can be updated if required.

Domain Home Base Path: Enter the absolute path to the base directory where this domain should be created, or provide the relative path to the Middleware Home Base Path as follows: '$MIDDLEWARE_HOME/' prefix. For example, $MIDDLEWARE_HOME/domains.

Alternatively, you can set this from the Resource Provider Characteristics page. If you have set the values already, they will appear pre-populated here.

Note: For a shared middleware home, this domain home base path should be an absolute value.

Java Home: The Java home path used by source domain (from where the profile is created) is displayed here. You can change this path, if required. Ensure that same java version is used by destination domain as well.

Note: If you are using a Windows operating system, ensure that the Java home path does not have any spaces.

Work Directory: The files are staged in this directory during provisioning. Specify an absolute path or a path relative to middleware home base path. For example, $MIDDLEWARE_HOME/work

Placement Parameters

Expected Memory Consumption: Approximate CPU used by each additional instance in percentage. The memory consumption should be greater than or equal to the sum of Xms and MaxPermSize.

For example, -Xms1280m, MaxPermSize=256m. Sum = 1280 MB+256 MB= 1536 MB (1.536 GB). Make sure that the value entered for memory consumption is greater than or equal to 1.5 GB.

Expected CPU Utilization: Approximate Memory required by each additional instance in GB

Note: These properties will be used to assign hosts with sufficient resources available for instance creation.

Server Startup Arguments

Managed Server Startup Arguments: Enter memory and java arguments to start the server. Example: -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.security.SSL.ignoreHostnameVerification=true”

Note: Coherence configuration is done automatically; there is no need to specify the coherence parameters here.

Weblogic Administration User Credentials

Username: This is the WebLogic username used to create a profile. The user name will be populated by default, and should not be updated.

Password: This will be set as passowrd for created weblogic account.

Pre and Post Scripts

Prescript for Service Instance: Select the script that should be executed before creating, deleting, or scaling up service instance.

Postscript for Service Instance: Select the script that should be executed after creating, deleting, or scaling up service instance.

Note: If you have upgraded from FMW plug-in 12.1.0.7 to FMW plug-in 12.1.0.8, then you will need to create a consolidated Prescript and a Postscript for your service. This script must include operations like create, delete, and scale-up. Save the file as a directive in the Software Library.

Following this, you must edit the existing service template Configuration page, to include the newly created scripts.

Hosts for Executing Scripts: Hosts discovered in Enterprise Manager, on which the scripts should run. Use ',' to separate multiple target hosts.

Named Credentials for execution of scripts: Enter the Named Credentials for the hosts on which the scripts should run. Note that SSA Administrator should have View privileges on these Named Credentials. For example, CredName:CredOwner.

Execute Scripts on Admin Server Hosts: Enter 1 (YES) to execute scripts on Managed Server Host, and 0 (NO) to Skip Adminstrator Server Host.

Execute Scripts on Managed Server Hosts: Enter 1 (YES) to execute scripts on the Adminstrator Server Host, and 0 (NO) to Skip Managed Server Hosts.

Note: After an upgrade the value of this flag gets reset. Make sure that you edit the existing service template, and set the flag value appropriately.

The scripts must meet the following guidelines:

- Directive that is created should be a PERL directive.

- An input parameter named INPUT_FILE_LOCATION must be defined.

- The path to the location of a property file must be specified in the INPUT_FILE_LOCATION parameter.

- The property file contains information about the service instance and the domain.

See Section 26.4.3 for a sample script file, properties file, and the generated output.

Port Range

Port Range Start: Lower bound for choosing Free Ports

Port Range End: Upper Bound for choosing Free Ports.

Note: The port range will be used to assign ports for servers and nodemangers. It should be between 1024-65535.

Enable Load Balancer: Enter Yes to enable and No to disable the Load Balancer. Note that if you select YES', there should be a load balancer configured with the selected resource providers.

Load Balancer

Select Yes only if the source domain used in the service template has already been configured with a load balancer. If the source domain is not configured with a load balancer, you must select No.

Click Next.

11. On the Roles page, click Add to select the self service user roles to which this service template will be available. All users belonging to the selected role can use this service template. Click Next.

12. On the Review page, review the information entered so far and click Submit. The newly created service template will appear in the Middleware Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

26.4.3 Sample Postscript

This sample postscript prints the contents of the properties file and also prints details regarding the managed server, administration server, and so on.

26.4.3.1 Sample Properties File

The properties file contains the following:

OPERATION= CREATE
SERVICE_INSTANCE= inst_01_14b3668772c
DOMAIN_NAME= inst_01_14b3668772c_SSA_USER1
DOMAIN_HOME= /scratch/middleware_ps4/inst_01_14b3668772c_SSA_USER1
MW_HOME= /scratch/middleware_ps4
WLS_HOME= /scratch/middleware_ps4/wlserver_10.3
ADMIN_SERVER= example.com,27877,8142
MANAGED_SERVERS= example.com,13614,1488,4166;
EXTERNAL_HOSTS= example.com
EXECUTE_SCRIPTS_ON_ADMIN_SERVER_HOST=  Yes
EXECUTE_SCRIPTS_ON_MANAGED_SERVER_HOSTS=  Yes

Note:
Similar to Create operation, you can perform a Delete or a Scale Up operation.

26.4.3.2 Sample Script

A sample script is given below:

#!/usr/bin/perl
use File::Path;
#use File::Spec();
use File::Spec;
use Cwd;

my $dir = getcwd();
my $inputFile = $ARGV[0];

print "Input File Location = ".$inputFile."\n";
print "===================================================================="."\n";
print "The properties file contents accessible to this script are as follows "."\n";

my @prop;
#Create Hash from properties
open FILE, "<$inputFile" or die("Could not open text file '" . $inputFile . "': $!");
my %hash;
while ($line4 = <FILE>)
{
chomp($line4);
my ($key, $val) = split(/=/,$line4);
print $key."= ".$val."\n";
$hash{$key}=$val;
}
close FILE;
print "===================================================================="."\n";
my $ACTION = $hash{'OPERATION'};
if ( $ACTION eq "CREATE" ) {
print " This is Service Instance Creation Operation \n";
} elsif ( $ACTION eq "SCALEUP" ) {
print " This is Scale Up Operation \n";
} elsif ( $ACTION eq "DELETE" ) {
print " This is Delete Service Instance Operation \n";
} else {
print " Unsuppported Configuration Action".$ACTION."\n";
}
print "===================================================================="."\n";

my $ADMIN_SERVER = $hash{'ADMIN_SERVER'};

print "======================Admin Server Details Begins==================="."\n";
my @fields = split (/,/, $ADMIN_SERVER);
my $arraySize = @fields;
if ($arraySize == 4) {
print "Admin Server Name is ".$fields[0]."\n";
print "Admin Server Host Name is ".$fields[1]."\n";
print "Admin Server NON SSL Port is ".$fields[2]."\n";
print "Admin Server SSL Port is ".$fields[3]."\n";
} else {
print "Admin Server Host Name is ".$fields[0]."\n";
print "Admin Server NON SSL Port is ".$fields[1]."\n";
print "Admin Server SSL Port is ".$fields[2]."\n";
}
print "======================Admin Server Details Ends===================="."\n";

print "\n";

print "======================Managed Server's Details Begins==============="."\n";
my $MANAGED_SERVERS = $hash{'MANAGED_SERVERS'};
my $managedServer;
my @noOfManagedServers = split (/;/, $MANAGED_SERVERS);
for ($count = 0; $count < @noOfManagedServers; $count++) {
$managedServer = $noOfManagedServers[count];
@fields = split (/,/, $managedServer);
$arraySize = @fields;
if ( $ACTION eq "DELETE" ) {
print "Managed Server Name is ".$fields[0]."\n";
print "Managed Server Host Name is ".$fields[1]."\n";
print "Managed Server NON SSL Port is ".$fields[2]."\n";
print "Managed Server SSL Port is ".$fields[3]."\n";
} else {
print "Managed Server Host Name is ".$fields[0]."\n";
print "Managed Server NON SSL Port is ".$fields[1]."\n";
print "Managed Server SSL Port is ".$fields[2]."\n";
}
print "\n"
}
print "===================Managed Server's Details Ends===================="."\n";

print "\n";

print "===================External Host's Details Begins==================="."\n";
my $EXTERNAL_HOSTS = $hash{'EXTERNAL_HOSTS'};
my @hosts = split (/,/, $EXTERNAL_HOSTS);
for ($count = 0; $count < @hosts; $count++) {
print "External Host is ".$hosts[count]."\n";
}

print "=====================External Host's Details Ends==================="."\n";

26.4.3.3 Sample Script Output

The output of the directive is given below:

Input File Location = /ade/jan1215/oracle/work/agentStateDir/1422547083465.properties
======================================================================
The properties file contents accessible to this script are as follows
OPERATION= CREATE
SERVICE_INSTANCE= inst_01_14b3668772c
DOMAIN_NAME= inst_01_14b3668772c_SSA_USER1
DOMAIN_HOME= /scratch/middleware_ps4/inst_01_14b3668772c_SSA_USER1
MW_HOME= /scratch/middleware_ps4
WLS_HOME= /scratch/middleware_ps4/wlserver_10.3
ADMIN_SERVER= example.com,27877,8142
MANAGED_SERVERS= example.com,13614,1488,4166;
EXTERNAL_HOSTS= example.com
EXECUTE_SCRIPTS_ON_ADMIN_SERVER_HOST=  Yes
EXECUTE_SCRIPTS_ON_MANAGED_SERVER_HOSTS=  Yes
======================================================================
This is Service Instance Creation Operation
======================================================================
=======================Admin Server Details Begins===================
Admin Server Host Name is example.com
Admin Server NON SSL Port is 27877
Admin Server SSL Port is 8142
=======================Admin Server Details Ends====================

=======================Managed Server's Details Begins===============
Managed Server Host Name is example.com
Managed Server NON SSL Port is 13614
Managed Server SSL Port is 1488

=======================Managed Server's Details Ends====================

=======================External Host's Details Begins===================
External Host is example.com
=======================External Host's Details Ends===================

26.4.4 Resource Management Script

The Resource Management Script specifies the location of the property file which contains a list of name value pairs. The content of the file varies based on the Create, ScaleUp, and Delete operations.

26.4.4.1 Create Operation

The content of the file for the Create operation are:

ACTION=CREATE

ZONE_NAME=<value>

POOL_NAME=<value>

NUMBER OF SERVERS BEFORE THIS REQUEST=<value>

NUMBER OF SERVERS REQUESTED=<value>

NUMBER OF SERVERS POSSIBLE WITH AVAILABLE RESOURCES=<value>

NUMBER OF SERVERS NEEDED=<value>

MAXIMUM SERVERS ALLOWED PER HOST=<value>

MIDDLEWARE_HOME=<value>

EXPECTED CPU UTILIZATION IN PERCENTAGE=<value>

EXPECTED MEMORY CONSUMPTION IN GB==<value>

26.4.4.2 Scaleup Operation

The content of the file for the Scaleup operation are:

ACTION=SCALEUP

ZONE_NAME=<value>

POOL_NAME=<value>

NUMBER OF SERVERS BEFORE THIS REQUEST=<value>

NUMBER OF SERVERS REQUESTED=<value>

NUMBER OF SERVERS POSSIBLE WITH AVAILABLE RESOURCES=<value>

NUMBER OF SERVERS NEEDED=<value>

MAXIMUM SERVERS ALLOWED PER HOST=<value>

MIDDLEWARE_HOME=<value>

DOMAIN_NAME=<value>

EXPECTED CPU UTILIZATION IN PERCENTAGE=<value>

EXPECTED MEMORY CONSUMPTION IN GB==<value>

26.4.4.3 Delete Operation

The content of the file for the Delete operation are:

ACTION=DELETE

ZONE_NAME=<value>

POOL_NAME=<value>

NUMBER OF SERVERS BEFORE THIS REQUEST=<value>

NUMBER OF SERVERS BEING REMOVED=<value>

HOSTS FROM WHERE SERVERS BEING REMOVED=<value>

MIDDLEWARE_HOME=<value>

DOMAIN_NAME=<value>

27 Setting Up the JVMaaS Self Service Portal

This chapter describes the procedure to set up the Middleware Self Service Portal for JVM as a Service. It contains the following sections:

- Setting Up the Java Application Service Self Service Portal

- Creating a Customized Middleware Profile

- Uploading the Middleware Profile to Software Library

- Creating a Service Template Based on Java Applications Profile

27.1 Setting Up the Java Application Service Self Service Portal

The EM_SSA_ADMINISTRATOR can configure and set up the JVM Cloud Self Service Portal by creating middleware pools, setting up quotas, defining request settings, creating service templates, and configuring chargeback.

To set up the Java Application Service, follow these steps:

1. Set up one or more PaaS Infrastructure zones. See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone" for details.

2. Create a Middleware Pool. See Section 25.2, "Creating a Middleware Pool".

3. Configure request settings. See Section 25.4, "Configuring Request Settings".

4. Define quotas for each self service user role. See Section 25.5, "Setting Up Quotas".

5. Create service templates. See Section 27.4, "Creating a Service Template Based on Java Applications Profile".

6. Optionally, you can configure the Chargeback Service. See Section 25.7, "Configuring Chargeback".

27.2 Creating a Customized Middleware Profile

For creating your own custom profile, you must create an XML file with all the mandatory and the optional parameters. This is explained using the following example which describes how to create a profile for the tomcatService.

1. Enter all the mandatory details required to define the profile like Internal Name, Owner. You can additionally provide a display name and a short description about your profile. Next, you must provide the platform information, the product list, a display name for the product, and so on:

<?xml version="1.0"?>
<mw:profile xmlns:mw="http://xmlns.oracle.com/mw/profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/mw/profile ../../../../../../../../FmwProvisioningPojo/src/oracle/sysman/fmw/provisioning/pojo/profile/genericProfile.xsd"
name="TomcatProfile4" vendor="Oracle" version="1.0"
content="softwareOnly">
<mw:displayName>
Tomcat As A Service with Free Ports
</mw:displayName>
<mw:description>
Profile for Provisioning single Node Tomcat Server with Bundled Application.
</mw:description>

<mw:platformInfo os="Linux" platform="x86-64" platformId="226"/>
<mw:products>
<mw:product name="Tomcat" version="10.3.6.0">
<mw:displayName>
Tomcat Bundled With Application
</mw:displayName>
</mw:product>
</mw:products>

2. Each services instance that is provisioned using this profile will be provided with free ports. These can be used as desired by the profile. You must provide values for: -PORT_RANGE_START, PORT_RANGE_END, and PORTS_COUNT.
PORT_RANGE_START and PORT_RANGE_END defines the range of the port values to be specified. If you do not specify anything, by default, 2000 and 3000 is considered respectively.

PORTS_COUNT defines the number of ports required by the service. If not defined, no ports will be allotted to the service.

<mw:properties>
<mw:stringProperty name="PORT_RANGE_START" value="2000"/>
<mw:stringProperty name="PORT_RANGE_END" value="3000"/>
<mw:stringProperty name="PORTS_COUNT" value="3"/>
</mw:properties>

3. Actions defined in the profile XML file like Provision, Start, Stop, and Delete will be performed at different phases of the service instance life cycle.

- The Provision action determines how the service instance is created the first time. The software setup and configuration is performed as a part of this step. Importantly, you must define the following parameters here:

- Payload: The actual application that is part of the profile.

- Procedure: The variables that are dynamically replaced at runtime.

- The Start action defines how the software that is provisioned is started.

- The Stop action defines how the software that is provisioned is stopped.

- The Delete action deletes the service instances. The cleanup actions are performed as part of this step.

Provision: This action provisions your application in Enterprise Manager.

<!-- [Mandatory] Action list -->
<mw:actions default="provision">
<mw:action name="provision" retryFrom="first">
<!-- [Optional] Display name and description -->
<mw:displayName>
Provision Tomcat Server
</mw:displayName>
<mw:description>
This action provisions only the Oracle Home from the profile.
</mw:description>
<!-- [Mandatory] Define the complete command including the executable and parameters -->
<!-- EL is supported, variables can be taken from 3 sources: env, procedure and profile -->
<mw:command name="createDirectory" executable="mkdir"  errorMode="continue">
<mw:param value="-p"/>
<mw:param value="#{procedure.STAGING_DIRECTORY}" required="true"/>
</mw:command>
<mw:command name="unpack" executable="#{procedure.JAVA_HOME}/bin/jar" directory="#{procedure.STAGING_DIRECTORY}">
<mw:param value="-xvf"/>
<mw:param value="#{payload:tomcat_app.jar}" required="true"/>
</mw:command>
<mw:command name="configure" executable="/bin/sh" directory="#{procedure.STAGING_DIRECTORY}">
<mw:param value="#{payload:fixpath_tc.sh}" required="true"/>
<mw:param value="#{procedure.FREE_PORTS}"/>
<mw:env name="SERVICE_HOME" value="#{procedure.STAGING_DIRECTORY}" />
</mw:command>
</mw:action>

As a part of the Provision step, you must create the service.out file at the staging directory, and the file must define the variables jvm_jmx_port and jvm_service_console_url.

For example, in the above XML file, there is a shell script called fixpath_tc.sh which prints the jvm_jmx port and the jvm service URL. The contents of the script are as follows:

echo "jvm_jmx_port=${PORT_LIST[1]}" >> $SERVICE_HOME/service.out
echo "jvm_service_console_url=http://$HOSTNAME:${PORT_LIST[0]}/tc_hello/HelloWorld" >> $SERVICE_HOME/service.out

Note that the service.out file must located in the staging directory. This file contains the values of the variables defined. For example:

jvm_jmx_port=2610
jvm_service_console_url=http://blr2201958.idc.oracle.com:2482/tc_hello/HelloWorld

Note: This step is mandatory if you want to discover the Java Application Service target in Enterprise Manager Cloud Console.

Start: This action starts the provisioned application.

<mw:action name="start">
<!-- [Optional] Display name and description -->
<mw:displayName>
Start Tomcat Server
</mw:displayName>
<mw:description>
This action Starts the provisioned Tomcat Server
</mw:description>

<!-- [Mandatory] Define the complete command including the executable and parameters -->
<!-- EL is supported, variables can be taken from 3 sources: env, procedure and profile -->

<mw:command name="StartTomcat" executable="/bin/sh"  errorMode="continue" background="true" directory="#{procedure.STAGING_DIRECTORY}">
<mw:param value="#{procedure.STAGING_DIRECTORY}/apache-tomcat-7.0.54/bin/startup.sh" required="true"/>
</mw:command>

</mw:action>

Stop: This action stops the provisioned application.

<mw:action name="stop">
<!-- [Optional] Display name and description -->
<mw:displayName>
Start Tomcat Server
</mw:displayName>
<mw:description>
This action stops the provisioned Tomcat Server
</mw:description>
<!-- [Mandatory] Define the complete command including the executable and parameters -->
<!-- EL is supported, variables can be taken from 3 sources: env, procedure and profile -->

<mw:command name="stopTomcat" executable="/bin/sh"  errorMode="continue"  directory="#{procedure.STAGING_DIRECTORY}" >
<mw:param value="apache-tomcat-7.0.54/bin/shutdown.sh" required="true"/>
</mw:command>

</mw:action>

<mw:action name="delete">
<!-- [Optional] Display name and description -->
<mw:displayName>
Remove Tomcat Server
</mw:displayName>
<mw:description>

Delete: This action stops and removes the provisioned application.

</mw:description>
<!-- [Mandatory] Define the complete command including the executable and parameters -->
<!-- EL is supported, variables can be taken from 3 sources: env, procedure and profile -->

<mw:command name="stopTomcat" executable="/bin/sh"  errorMode="continue"  directory="#{procedure.STAGING_DIRECTORY}" >
<mw:param value="apache-tomcat-7.0.54/bin/shutdown.sh" required="true"/>
</mw:command>

<mw:command name="removeTomcat" executable="rm"  errorMode="continue"  directory="#{procedure.STAGING_DIRECTORY}" >
<mw:param value="-rf"/>
<mw:param value="#{procedure.STAGING_DIRECTORY}" required="true"/>
</mw:command>

</mw:action>

</mw:actions>

4. Discovery of JVM targets in Enterprise Manager is supported by default. To do so, run the oracle.sysman.emas.mwc.jvmaas.discovery.JVMTargetDiscovery script as follows:

<mw:discovery className="oracle.sysman.emas.mwc.jvmaas.discovery.JVMTargetDiscovery" dpName="JVMDiscovery"/>
</mw:profile>

27.3 Uploading the Middleware Profile to Software Library

To create a profile using the custom XML script that you have created, run the following command:

emcli create_mw_profile -input_file=propertiesXml:"/scratch/profile/genericProfiles/profile/tomcatService.xml"
-host=blr2201958.idc.oracle.com
-files="/scratch/profile/genericProfiles/profile/tomcat_app.jar,/scratch/profile/genericProfiles/profile/fixpath_tc.sh"

Where,
tomcatService.xml is the input file that describes the characteristics of the profile.
blr2201958.idc.oracle.com is the host target where the stored during provisioning.
tomcat_app.jar and fixpath_tc.sh are the files that have to be uploaded to Software Library.

Once the profile is created, to access the profile, you must log in to Enterprise Manager Cloud Console, and navigate to the Software Library home page. To do so, from Enterprise menu, select Patching and Provisioning, then click Software Library. On the Software Library home page, you will see your new profile under the Middleware Provisioning Generic profile folder. Alternatively, you can run the emcli list_mw_profile command to view the details of your profile.

Note: To list all the parameters used in a particular action of a profile, use the emcli command list_prov_parameters. For example, all the parameters used in the action provision in the tomcatService profile, run the following command:

emcli list_prov_parameters -profile="Middleware Provisioning/Generic Profile/tomcatService"
-action="provision"

27.4 Creating a Service Template Based on Java Applications Profile

Prerequisites

- Create a customized middleware provisioning profile using XML file. See Section 27.2 for details.
For creating a generic provisioning profile, see Creating Middleware Provisioning Profiles.

- Upload the profile to Software Library. See Section 27.3 for details.

A Middleware Service Template is a service definition that can be used to provision a service instance on a middleware pool.

Note:
You can edit a service template that has active instances and modify the configuration parameters. When a service template is modified:

- New instances created after the changes have been made will use the new parameters.

- Old instances or instances created before the template was modified will use the earlier values.

- Changes made to zones and roles will be applicable to both old and new instances.

To create a Java Applications Profile, follow these steps:

1. Log into Enterprise Manager as an user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Setup, then select Getting Started. The common tasks that need to be performed before setting a specific service family are displayed. Click the Setup link next to Middleware service family in the left panel.

4. Select Java Application Service from the drop down menu, and then click Service Template.

5. On the Java Application Service: Service Templates page, click Create.

6. Enter a name and description for the service template. The description must be unique and provide information on the type of service template being created.

7. Select the Java Application Profile that you want to use to create the template. Click the search icon, from the Select Software Library Component dialog box, select the template and click Select.

8. Click Next. On the Characteristics page, specify the characteristics that will be used to tag and identify the target properties. Service instances created from the template will have the characteristics.

9. Click Next. In the Create Middleware Service Template: Resource Providers page, click Add to select the Middleware Pool into which that the service instances can be provisioned. The PaaS Infrastructure Zone with which the middleware pool is associated is displayed.

10. Click Next. On the Configuration page, you can see all the parameters (the name-value pair) defined in the custom XML file with the procedure variable, or as a part of the input.properties file. You can enter a new value or update an existing value for a property using this page. Additionally, features like lock and hide are supported that allow you to lock or hide the value of a parameter, by selecting the corresponding check box on the page for the parameter.
For example, if you have locked the value of Oracle_INVENTORY in your service template, then at the time of requesting for a service using this template, you will notice that the parameter is read-only and cannot be edited.

11. Click Next. On the Roles page, click Add to select the self service user roles to which this service template will be available. All users belonging to the selected role can use this service template.

12. Click Next. Review all the information entered, and click Submit. The newly created service template will appear in the Middleware Cloud Self Service Portal Setup: Service Templates page. You can click on the Service Template Name link to view additional details.

28 Using the MWaaS Self Service Portal

This chapter provides Self Service Application users with instructions on using the MWaaS Self Service Portal to request and monitor middleware services. It contains the following sections:

- Using the MWaaS Self Service Portal

- Requesting a Middleware Service

- Viewing the Middleware Service Home Page

- Viewing SOA/OSB Service Home Page

- Viewing the Java Application Service Instance Home Page

- Uploading a Java EE Component to the Software Library

- Viewing the Application Home Page

28.1 Using the MWaaS Self Service Portal

The Middleware Self Service Portal allows self service users to view, monitor, and request middleware services. Users can request middleware services using any of the predefined service templates. They can deploy, undeploy applications, create data sources, scale up, and scale down services with minimal or zero intervention by the self service administrator.

Prerequisites

To view the Middleware Cloud Self Service Portal, log in to Enterprise Manager as a user with EM_SSA_USER role or an user with the EM_SSA_USER_BASE role. Users with these roles must be part of the Middleware Cloud Service Family and must have privileges for the Service Bus, SOA Infrastructure, and WebLogic service types.

To view the MWaaS Self Service Portal, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_USER role.

2. Select Middleware from the Manage drop down list. The Middleware Cloud Self Service Portal appears.

3. This page contains the following tabs:

- Home: The Home tab contains the following regions:

- Notifications: This region shows the number of services that are due to expire in the next 7 days and the number of the services templates published within the last 7 days.

- Usage: Click the Usage icon to view the total quota (servers and memory) used so far by the SSA user, including all the services that the user has created. This table shows the amount of quota being used by each of your service instances. Your quota includes both the total maximum heap memory and the total number of WebLogic servers you are allowed to use across all of your middleware service instances. This table shows the amount of quota being used by each of your service instances.

Note:
Any non Oracle JVMs that have been added will not be included in the Usage region.

- Services: This region shows the list of middleware services owned by the self service user. For each service, the name, status, service type (Weblogic, SOA Infrastructure, Service Bus, or Java Application Service), resource provider with which the service is associated, policies, date on which the service was created, the expiry date for the service, and non Oracle JVMs (if any) are displayed. You can also view services for which you have been granted privileges.
To request a service, click Request New Service. See Section 28.2, "Requesting a Middleware Service" for details.

You can view the service details by clicking on the Name link to drill down to the Middleware Service Home page.

You can delete a service by selecting a service from the table and clicking Delete.

You can select a service from the table and from the Actions menu, select Start. A request to start the service is submitted.

You can select a service from the table and from the Actions menu, select Stop. A request to stop the service is submitted.

You can grant view, manage, or full privileges over the service instance to other users and roles. You can also revoke privileges that you have granted to other users and roles. See Section 29.4.1, "Granting, Revoking, and Reassigning Privileges to Service Instances".

- Requests: This region shows a list of all the requests. All requests owned by and shared with the current user are displayed. For each request, the status, type, start date, and submission date of the request is displayed. Click on the request name or the status icon to view the execution details of the request. These details are helpful in troubleshooting a failed request.
Select columns from the View menu to view more details about the request. You can select a scheduled request and click Reschedule to reschedule the request. You can select a scheduled request and click Delete to delete the request. If a request that is scheduled such as Create gets canceled, all other associated requests are also canceled.

- Chargeback: This tab displays all the chargeback break-up data for the service. The charge incurred will be calculated from the service requested date to current date. This page contains the following regions:

- Charge Trend: This graph show the usage and charge trends over time.

- Details: You can aggregate the chargeback data for the service by resources of metrics. You can export this data to an external application such as a spreadsheet.

- Charge Plans: The charge plans that have been assigned to each PaaS Infrastructure Zone are displayed. Select a zone to view the pricing. The rate for each metric in the zone for a specific time period is displayed.

For details on setting up the Chargeback Service, see Chapter 43, "Chargeback Administration".

- Library: This tab displays a list of Java EE application components that are available to the SSA user. You can do the following:

- Upload: You can upload a new Java EE application component to the Software Library. See Section 28.6, "Uploading a Java EE Component to the Software Library" for details.

- Delete: Select a Java EE component from the list and click Delete to remove it from the library.

- Share / Stop Sharing: You can share a component with one or more users and roles. Select the component and click Share. The Select and Share: Users and Roles window appears. From the Type drop list, select User or Role and click Search. The users or roles with which the component can be shared. Select one or more users or roles and click Share. The selected component is shared with the specified users and roles. To stop sharing the component, select the component and click Stop Sharing.

- Policies: Click the Policies tab to view the list of policies that you have defined. You can create a new Performance or Schedule Based Policy or a Policy Group for one or more middleware services and define Scale Up or Scale Down on these policies. See Section 28.1.2, "Defining Dynamic Elasticity Policies for Middleware Services".

28.1.1 Setting the Preferences

Click the Preferences link in the top right hand corner of the page to set up your preferences such as the Default Service Type, Default Email Address for Notifications, Default Locale, Default PaaS Infrastructure Zone, and so on. To set the Middleware Cloud Self Service Portal as the default page that appears when you log in to the Self Service Portal, select Middleware in the Default Service Type drop down list and click Apply. For more details on setting the preferences, see Section 8.9, "Viewing Preferences".

28.1.2 Defining Dynamic Elasticity Policies for Middleware Services

Note:
These policies are applicable only for the WebLogic Service type.

To define a policy, follow these steps:

1. Log into Enterprise Manager as a user the EM_SSA_USER role.

2. Click the Policies tab.

3. To create a policy, from the Create menu, you can select either of the following:

- Schedule Based Policy

- Performance Based Policy

28.1.2.1 Creating a MWaaS Schedule Policy

For instance, if you want to create a schedule based policy that states that a middleware service must be scaled up every Monday, follow these steps:

1. From the Create menu, select Schedule Policy. The following page appears:

Figure 28-1 Create Schedule Policy

2. Enter a name and description for the policy.

3. In the Policy Action field, select Scale Up and enter 2 as the Value in the Action Parameters field.

4. In the Start field, specify the date from which this policy must be effective.

5. In the Repeat field, select Specify Days of the Week and in the Days of the Week field, select Monday. Thus the service will be scaled up by 2 every Monday.

6. Click OK to create the policy. You will return to the Policies page where the policy you have defined will appear in the Policies table. To apply these policy for a target, click Add in the Associations region and select a target with which this policy must be associated.

28.1.2.2 Defining a MWaaS Performance Policy

Performance policies are formed based on the performance metrics of a specific target type and its associated targets. You can create conditions and rules for the policy based on the metrics. To define a performance policy, follow these steps:

1. Click the Policies tab in the Middleware Self Service Portal. The Policy page appears.

2. Click Create and select the Performance Policy type.

3. In the General Information page, enter the name and description of the policy.

4. In the Rules and Relationships page, select a metric from the right panel and click Add to Definition. Specify the condition, value, and number of occurences.When these conditions are met, the policy is executed.

5. Click Next. The Create Performance Policy: Rules page appears. The policy rule is displayed.

6. Select Scale Up or Scale Down from the Action drop down list.

7. In the Action Parameters field, enter a value next to the Number of WebLogic Servers. The value specified here is used to either increment or decrement the Number of WebLogic Servers depending on the Action selected.

8. Click Next. The Create Performance Policy: Review page appears. Review the policy details and click Save the policy and return to the Middleware Service Portal: Policies page.

9. In the Associations region, click Add and select one or more targets to be associated with this policy. The associated targets are listed in the Associations region.
Click on the target link to view a list of policies associated with the target. Once the targets have been associated, the policy is activated. Click View History to view the policy action history.

28.2 Requesting a Middleware Service

You can use the Request New Service option to request a new middleware service. You can request the following types of middleware services:

- WebLogic Service, see Section 28.2.1

- SOA/OSB Service, see Section 28.2.2

28.2.1 Requesting a WebLogic Service

You can request a new WebLogic service on this page.

To request a service, follow these steps:

1. Click Request New Service in the Home page of the Middleware Cloud Self Service Portal.

2. The Request New Service window appears. A list of service templates available to the self service user is displayed. Choose a WebLogic service template and click Select to launch the New Service Request page.

Figure 28-2 New Middleware Service Instance Request

3. Enter a name for the service and select the PaaS Infrastructure Zone in which the new service is to be deployed.

4. If the service template you have selected in based on a profile that contains a cluster with one or more WebLogic servers, in the Number of WebLogic servers field, specify the initial number of servers that can be present in the new service instance.

Note:
The Number of WebLogic servers you specify here cannot be less than the number of servers specified in the profile.

5. In the Minimum Number of WebLogic Servers field, specify the minimum number of WebLogic servers that must be present in the middleware service instance. The value specified here must be less than or equal to the value specified in the Number of WebLogic Servers field.

6. In the Database region, select the database that was cloned from the same WebLogic domain as the one in the Middleware profile of the selected template.

Note:
The Database region is displayed only if the selected template is based on a JRF enabled profile (12.x or later versions).

You can:

- Select Database Service Instance: Select this option and choose a Database Service Instance from the drop down list.

- Specify Database URL: Enter the URL for the database.

- Schema Password: Enter the schema passwor.d

7. Specify the schedule for the service request.

- Start Date: You can choose Immediately (request is executed immediately) or Later. If you select the Later option, specify the date from which the service is to be available.

- End Date: Select Indefinitely to make the service available for a indefinite period of time. If you select Until, specify the date on which it will be deleted and no longer available.

8. In the Create WebLogic User Account (optional) region, you can optionally specify a WebLogic user account to be created on your service after it is provisioned. Enter the WebLogic User Name and WebLogic Password. You will be able to access the WebLogic Server Administration Console using the user name and password specified here.

Note:
The Create WebLogic User Account will appear only if the Expose WebLogic Admin Console and Fusion Middleware Control to SSA User field was set to Yes when the template was created.

9. If the self service administrator has granted access to the Advanced Settings in the service template, you will see the Advanced region here. You can specify the following:

- Share Middleware Service Instance: Select this checkbox to share the service instance with other users and roles. The Add region appears. Click Add and in the Grant Privilege window, select the user or role to which the privilege is to be granted. From the Privilege to Grant drop down list, select the privilege you want to grant which can be View, Manage, or Full and click Grant.

Note:
Privileges must be explicitly granted by the self service administrator through the Request Settings option. See Section 29.4.1, "Granting, Revoking, and Reassigning Privileges to Service Instances" for details.

- Managed Server Startup Arguments: Specify the memory and Java system property arguments that are to be used when starting all the managed servers in the middleware service instance. For example, you can specify:
-Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.security.SSL.ignoreHostnameVerification=true

These parameters will override the value specified in the service template.

- Operating System Details: Select this checkbox to specify custom operating system credentials. You need to specify the following:

- Domain Home Base Directory: Specify the base directory in which the instance is to be created. The path specified here will override the path specified in the middleware pool.

- User Name: The operating system user name with privileges to write to the specified base directory.

- Password: The password for the operating system user.

Note:
Default values for the user name and password can be set using the Preferences option on the Middleware Self Service Portal page. If these values are set, they will be displayed here.

10. Specify the target properties for the service instance.

11. Click Submit to create the service request. This request will now appear in the Requests table in the Home page of the Middleware Self Service Portal. You can monitor the status of this request in this table. When the request has been completed, you can refresh the page to view the new service in the Services table.

28.2.2 Requesting an Oracle Service Bus or SOA Infrastructure Service

Log in with SSA_USER role to view, monitor, and request for SOA/OSB services using the Middleware Self Service portal.

Prerequisite

Oracle recommends that the database is cloned using DBaaS. If database is cloned using another SSA User account (for example, user1), then user1 needs to grant access on the database service instance to user2, assuming user2 is requesting for SOA / OSB instance.To request for a service, follow these steps:

1. On the Middleware Cloud Self Service Portal, click Request New Service.

2. The Request New Service dialog box appears. A list of service templates available in the zones that the SSA user can access, is displayed. Choose a service template and click Select to launch the Service Request page.

3. On the General page, enter a name for the service, and select the PaaS Infrastructure Zone in which the new service is to be deployed.

4. Specify the schedule for the service request.

- Start Date: Choose Immediately (request is executed immediately) or Later. If you select Later, specify the date from which the service is to be available.

- End Date: Select Indefinitely to make the service available for a indefinite period of time. If you select Until, specify the date on which the service will be deleted, and no longer available.

5. On the Configuration page, provide the following details:

- For a SOA Service Template

- In the SOA Dehydration Store section, select a database that you want to use as SOA Dehydration Store, and provide the schema password.
The following options are possible: You can select a database which is cloned using DBaaS RMAN Backup option, or a database which is cloned outside DBaaS but discovered in Cloud Control. If you use the latter option, then after discovering the database, you must grant view privileges on the Database target to the SSA User.

- In the SOA Token Configuration section, click the Value field to customize the SOA token values.

- In the Managed Server Startup Arguments, enter the memory and java arguments to start the managed server.

- For an Oracle Service Bus Template:

- Select the database instance and provide the OSB schema password.

6. In the Create WebLogic User Account region, specify a WebLogic user account to be created for your service after it is provisioned. Enter a WebLogic User Name and WebLogic Password. These credentials will be used to access the WebLogic Administration Server console and the Fusion Middleware Console.
In addition to this, for an OSB service instance, the credentials you have provided in this section, can you used to access the OSB Console.

Click Next.

7. On the Review page, review all the configuration details.

8. Click Submit to create the service request. This request will now appear in the Requests table in the Home page of the Middleware Self Service Portal. You can monitor the status of this request in this table.When the request has been completed, you can refresh the page to view the new service in the Services table.

28.3 Viewing the Middleware Service Home Page

The Middleware Service Home page provides detailed information about the services you have requested using the Request Service option. To view the Middleware Service Home page, click the Name link in the Middleware Services region in the Middleware Cloud Self Service Portal: Home tab. This page contains the following regions:

- Performance Summary: Shows the availability status of the service, status summary of the WebLogic Servers, and the performance metrics for the underlying WebLogic cluster associated with this service. The following charts are displayed.

- Availability: The availability status of the service.

- Resource Usage: Shows the CPU and Heap Usage charts for all the servers in the cluster.

- Response and Load: Shows the request processing time and number of requests per minute for the current service.

- General: Shows charts for various performance metrics for the service.

- Deployments: This region is displayed only for WebLogic services. It contains the following:

- Applications: Lists all the applications deployed to this service. For each application, the name, status, and the key metrics such as Active Sessions, Request Processing Time, and Request per Minute are displayed. Click the Name link to drill down to the Application Home page. You can do the following:

- Deploy: Click Deploy to deploy the application to the service. See Section 28.3.1, "Deploying and Redeploying an Application" for details.

- Delete: Select an application and click Delete to undeploy an application.

- Redeploy: If you have an updated Java EE application component, you can select the application and click Redeploy to redeploy the application. See Section 28.3.1, "Deploying and Redeploying an Application" for details.

- Start / Stop: Select an application and click Start or Stop to start or stop the application.

- Test: Select an application and click the Test icon. A list of URLs is displayed in the Application URLs dialog box. Click the URL to navigate to the associated page.

- Libraries: If any applications have been deployed as libraries, they are listed here.You can do the following:

- Deploy: Click Deploy to deploy the application to the service. See Deploying an Application for details.

- Delete: Select an application and click Delete to undeploy an application.

- Redeploy: If you have an updated Java EE application component, you can select the application and click Redeploy to redeploy the application.

Note:
If you select a library that is being referenced by an application, the Redeploy and Delete buttons are disabled and this library cannot be deleted or redeployed.

When deploying using the Self Service Portal you can create the deployment as a normal application or a library. Libraries are deployments that can be shared with other deployments. The Middleware Service home page shows normal applications in the Applications table and libraries in the Libraries table. Libraries may be deleted and redeployed, but only if they are not being referenced by any applications.

- Data Sources: This region is displayed only for WebLogic services. It shows all the data sources that are available for this service. For each data source, the Name, Database Service Name, JNDI name and the URL for the database is displayed. If the data source has been created using a database service, the name is displayed in the Database Service column. Click on the name to drill down to the Database Service Home page. You can create new data sources, edit or delete existing data sources, and test the connection of any specified data source.

- Requests: This table shows all the requests that have submitted for this service. These include requests such as Deploy, Undeploy, Redeploy, Scale Up, Scale Down, Start, Stop, Create, Edit, and Delete Data Source.
The following options are available from the Middleware Service Instance menu:

- Set End Date: Select this option to specify an end date for the middleware service. You can set the end date for a service. Select a service from the table and click Set End Date. In the popup window that appears, you can specify a new End Date for the middleware service instance. If you do not want the service to expire, select Indefinitely and click OK.

- Start and Stop: You can start or stop the service by selecting the appropriate option from the Middleware Service menu.

- Scale Up and Scale Down: See Section 28.3.2, "Scaling Up and Scaling Down a Service".

- Service Instance Settings: This shows the current value of the Minimum Number of WebLogic Servers and allows you to modify this value.

- Select Metrics: Click Select Metrics to add new charts, remove existing ones, and drag and drop metrics to charts. In the Metric Palette window that appears, select a metric or drag and drop a metric into an existing chart or create a new chart. By default, all new charts are displayed in the General section but you can drag and drop them to a different section. You can remove a metric/chart by unchecking a box in the Metric Palette or by clicking the x on the drag bar on the right side of the chart. You can move charts within their section by dragging them by that bar.

- Restore Default Charts: Click Restore Default Charts to restore the charts to the default settings. All chart additions, modifications and deletions are applicable to a specific service. An SSA user can have different charts for each service.

- Log Messages: Click Log Messages to view a list of messages sorted by message type, date, and so on. Select the date range, message type, and specify other filters in the Message field. Click Add Fields, select other fields to be included in the message, and click Search. The first 1000 messages that meet the search criteria are displayed. Click Export Messages to File to export the messages to a log file in .txt, .xml, or .csv format.

- WebLogic Server Administration Console: Click this option to launch the WebLogic Administration Console.

- Fusion Middleware Control: Click this option to launch the Fusion Middleware Control console.

Note:
The WebLogic Server Administration Console and the Fusion Middleware Control interfaces allow you to manage and monitor the Oracle Fusion Middleware components. The WebLogic Server Administration Console and Fusion Middleware Control options are available in the Middleware Service menu only if the Expose WebLogic and FMW Console URLs to SSA User field has been set to Yes in the Middleware Service Template. See Section 25.6, "Creating a WebLogic Service Template" for details.

28.3.1 Deploying and Redeploying an Application

You can deploy a preconfigured Java EE application to a Service Instance. To deploy an application, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_USER role and navigate to the Middleware Cloud Self Service Portal page.

2. Click on a Name link in the Middleware Services region. The Middleware Service Home page appears.

3. Click Deploy in the Applications table. The Deploy Application page appears.

Figure 28-3 Deploy Application

4. Enter the following details:

- Application Name: Enter a name for the application that is to be deployed.

- Application Component: You can choose to:

- Select an application component from the Software Library: Click the Search icon and select a Java EE application component from the Software Library.

- Select an application archive from your desktop. Click Browse and select an application archive from your desktop.

- Deploy as an application: The deployment can be created as a normal application or as a library. If you select this option, click Browse in the Deployment Plan field and select a .xml file that contains the deployment options. This file overrides the deployment plan (if any) specified with the application component.

- Deploy as a library: You can deploy the application as a library. Libraries are deployments that can be shared by other deployments. Libraries should be available on all of the targets running their referencing applications.

5. Specify when the deploy operation should occur and click Deploy. After the request to deploy the application has been created, you will return to the Middleware Service Home page where a confirmation message is displayed.

28.3.1.1 Redeploying an Application

You can redeploy an application that has been deployed to a Service Instance. To redeploy an application, select a deployed application from the Applications table and click Redeploy. In the Redeploy Application page, select the Application Component that is to be redeployed, the deployment plan if any, and click Redeploy. You will see a confirmation message indicating that the application has been redeployed.

28.3.1.2 Deleting an Application

You can delete (undeploy) an application that has been deployed. Select the application to be deleted from the Applications table and click Delete. A confirmation message is displayed. Click Yes to undeploy the application.

28.3.2 Scaling Up and Scaling Down a Service

You can scale up or scale down a service.

Note:
The Scale Up and Scale Down options are available only if the service is based on a middleware service template that contains a middleware provisioning profile with one cluster. If the profile does not contain a cluster, these menu options will not be available.

On the Middleware Service Home page, select the following options from the Middleware Service menu:

- Scale Up: You can scale up a service by adding one more servers. The number of servers you can add is limited by your quota. Click Scale Up and enter the number of servers by which the service is to be scaled up. Click Submit to submit the scale up request and add more servers.

- Scale Down: Click Scale Down and enter the number of servers by which the service is to be scaled down. Click Submit to submit the scale down request and reduce the number of servers.

28.3.3 Creating a Data Source

In a WebLogic Server, you configure database connectivity by adding data sources to your WebLogic domain. WebLogic JDBC data sources provide database access and database connection management. Before an application can access a database, it must be configured to use the JDBC data source.

To create a data source for a service, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_USER role and navigate to the Middleware Cloud Self Service Portal page.

2. Click Create in the Data Sources table in the Middleware Service Home page. The Create Data Source page appears.

Figure 28-4 Create Data Source

3. Enter the Data Source Name and the JNDI Name.

4. Select the Database Driver Class.

5. If you have a database service instance configured, you can select the Database Service and the corresponding URL is displayed. If not configured, you must manually enter the Database URL.

6. Specify the Database User Name and Password.

7. Click Create to create the data source.

28.3.3.1 Editing a Data Source

You can edit the properties of a data source. Click the Name link in the Data Sources table in the Middleware Service Home page. The Edit Data Source page appears. You can edit the properties of the data source. If some of the properties are changed, the data source needs to be redeployed and applications using this data source need to be restarted.

28.4 Viewing SOA/OSB Service Home Page

The SOA Home page provides detailed information about the services you have requested using the Requests option. To view the Middleware Service Home page, click the Name link in the Middleware Services region in the Middleware Cloud Self Service Portal: Home tab.

This page contains the following regions:

- Performance Summary: Shows the availability status of the service, status summary of the WebLogic Servers, and the performance metrics for the underlying WebLogic cluster associated with this service. The following charts are displayed.

- Availability: The availability status of the service.

- Resource Usage: Shows the CPU and Heap Usage charts for all the servers in the cluster.

- Response and Load: Shows the request processing time and number of requests per minute for the current service.

- General: Shows charts for various performance metrics for the service.

- Requests: This table shows all the requests that have submitted for this service.
The following options are available from the Middleware Service Instance menu:

- Set End Date: Select this option to specify an end date for the middleware service.

- Start and Stop: You can start or stop the service by selecting the appropriate option from the Middleware Service menu.

- Scale Up and Scale Down: See Section 28.3.2, "Scaling Up and Scaling Down a Service".

- Select Metrics: Click Select Metrics to add new charts, remove existing ones, and drag and drop metrics to charts. In the Metric Palette window that appears, select a metric or drag and drop a metric into an existing chart or create a new chart. By default, all new charts are displayed in the General section but you can drag and drop them to a different section. You can remove a metric/chart by unchecking a box in the Metric Palette or by clicking the x on the drag bar on the right side of the chart. You can move charts within their section by dragging them by that bar.

- Restore Default Charts: Click Restore Default Charts to restore the charts to the default settings. All chart additions, modifications and deletions are applicable to a specific service. An SSA user can have different charts for each service.

- Log Messages: Click Log Messages to view a list of messages sorted by message type, date, and so on. Select the date range, message type, and specify other filters in the Message field. Click Add Fields, select other fields to be included in the message, and click Search. The first 1000 messages that meet the search criteria are displayed. Click Export Messages to File to export the messages to a log file in .txt, .xml, or .csv format.

- WebLogic Server Administration Console: Click this option to launch the WebLogic Administration Console.

- Fusion Middleware Control: Click this option to launch the Fusion Middleware Control console.

Note:
The WebLogic Server Administration Console and the Fusion Middleware Control interfaces allow you to manage and monitor the Oracle Fusion Middleware components. The WebLogic Server Administration Console and Fusion Middleware Control options are available in the Middleware Service menu only if the Expose WebLogic and FMW Console URLs to SSA User field has been set to 1 in the Middleware Service Template. .

28.5 Viewing the Java Application Service Instance Home Page

The General section displays a URL that can be used to access your service. Click Download JVMD Agent to download the JVM Diagnostics Agent war file. Ensure that you deploy the war file on the WebApps folder of the Application Server that is to be monitored. This enables the JVM Diagnostics Agent to start monitoring the Java Application target in Cloud Control.

The Java Application Service History section provides a quick view of the event log for your application, along with the time stamp. Basically details like when a particular application starts or when it was created, is captured and logged in this section.

Parameters that are printed to the service.out file is displayed in the Service Details section. This is particularly useful, when you want to view the port numbers assigned to the JVM JMX port.

In addition to this, memory usage and performance summary details are also available on this page.

28.6 Uploading a Java EE Component to the Software Library

You can upload pre-configured ear, war, jar, or rar files to the Software Library. These files are uploaded to the Software Library as Java EE Application components, which are then deployed to your service. To upload a file to the Software Library, click the Library tab. The Upload to Software Library field appears.

Figure 28-5 Upload to Software Library

Enter the name and description of the file being uploaded. You can then choose to upload files as follows:

- Individual Files: If you choose the Upload Files Individually option, you need to specify the following:

- Archive: Select the archive file to be uploaded to the Software Library. This can be an ear, war, jar, or rar file. You can also optionally specify the following:

- Deployment Plan: This is an xml file containing the deployment options for the Java EE Application component.

- Pre Deploy Script: This is a script containing WLST commands. The Management Agent runs this script on the Administration Server associated with each instance before the application is deployed. You can use this script to create data sources, JMS end points, and any other resources that might be needed by the application that is being deployed.

- Post Deploy Script: This is a WLST script that is executed by Management Agent on the Administration Server after the application is deployed. You can use this script to perform any post deployment configuration. For example, if you need to roll back and undo the changes made by the pre deploy script, you can select this option.

- Zip File: If you select the Upload Zip File option, you must upload a zip file that contains the JavaEEAppComp.manifest file that describes the contents of the zip file.

Click Upload to upload the file to the Software Library.

28.7 Viewing the Application Home Page

To view the Application Home page, select an application, and click the Name link in the Applications table on the Middleware Service Home page.

Figure 28-6 MWaaS Application Home

This page displays performance and availability for the application, along with a chart that shows response and load. You can redeploy, delete (undeploy), start, or stop the application using options from the Application menu.

Part X

Monitoring the PaaS Cloud

This section describes how to administer and monitor Database as a Service (DBaaS) and Middleware as a Service (MWaaS). It contains the following chapter:

- Chapter 29, "Administering and Monitoring a PaaS Cloud"

29 Administering and Monitoring a PaaS Cloud

This chapter describes the different options that are available to monitor the DBaaS and MWaaS services. It contains the following sections:

- Viewing the Cloud Home Page

- Viewing the List of Resource Providers

- Viewing the List of Service Templates

- Viewing the List of Service Instances

- Viewing the Cloud Request Dashboard

- Viewing All Cloud Requests

- Viewing the PaaS Infrastructure Zone Home Page

- Viewing the Database Pool Home Page

- Viewing the Schema Pool Home Page

- Viewing the Pluggable Database Pool Home Page

- Viewing the Middleware Pool Home Page

29.1 Viewing the Cloud Home Page

After the cloud services have been set up, and one or more self service users have submitted requests, you can view a unified view of the different service types on the Cloud Home page. You can use the rolled up data to identify problem areas and drill down for more details. From the Enterprise menu, select Cloud, then select Cloud Home to navigate to this page.

Figure 29-1 Cloud Home Page

Note:

- To view this page, you must have View privilege on the Cloud target. Out-of-the-box user roles have this privilege by default.

- You can use the Personalize option to customize the Cloud Home page. This option allows you to add or delete regions, change the page layout, and so on.

- General: This region shows the following:

- Resource Providers: The total number of PaaS Infrastructure zones and software pools that have been created is displayed. Click on the link to drill down to the Resource Providers page.

- Service Templates: The total number of service templates that have been defined.

- Total Requests: The total number of requests for configured cloud services. Click on the link to drill down to the All Requests page.

- Service Instances: The total number of members that are up or down. Click on the link to drill down to the Service Instances page.

- Request Status: The status of service requests during a specific period. By default, the request status over the last 24 hours is displayed but you can select another duration such as 7 days, 30 days, and so on. You can view the request status for all requests or for a specific service type. To view the status for a specific service type, select type from the View drop down list.

- Issues: The availability, performance, security, and other incidents across all the configured service providers.

- Top Resource Provider Utilization: This region shows the Top level resource utilization for the configured resource providers. For example, the CPU and Memory Utilization for a PaaS Infrastructure Zone. To view more details, click the View Map link at the top of the region. This displays the Heat Map page with detailed information on the resource provider utilization. The number of resource providers and the threshold value to calculate color can be configured by using the Personalization feature.

- Daily Charge for the Last 30 Days: Shows rolled up chargeback data across all service types.

- Top Requested Services: This region lists the most requested service templates. You can see service utilization trend by user or service template for a selected period which can be 24 hours, 7 days, or 30 days.

The following options are available from the Cloud Home menu.

Note:
The following pages can be accessed only by users with the EM_SSA_ADMINISTRATOR role. To modify these pages, the users must have Manage privilege on the corresponding services and families. Out-of-the-box administrators have this privilege by default.

- Resource Providers: You can see the list of resource providers for which you have at least View Target Privilege. You can create a new resource provider, edit, or delete an existing resource provider. See Resource Providers Page.
Note: To create a new service provider, you must have Create Target Privilege on that resource provider target type.

- Service Templates: Use this option to the Service Templates page from where you can create, edit, and delete service templates across different service families. See Service Templates Page for details.

- Services Instances: Shows a list of service instances. See Service Instances Page for details.

- Requests: Use this option to view all the requests, or view a summary in the Request Dashboard page.

- Setup: The Setup menu allows you to define global settings across the different service types. The following options are available:

- Getting Started: The Getting Started page lists the minimum tasks that are required to configure a service type and the order in which these tasks must be completed. This page is useful to self service administrators who are not familiar with the product.

- Service Settings: Allows you to specify service specific settings such as Load Balancer Settings for MWaaS.

- Request Settings: Allow you to specify request settings at many different levels (from all services to a specific service type). See Configuring Request Settings.

- Quotas: Allows you to define quota for each service family. See Setting Up Quotas.

- Data Sources: Used to launch the Create Profile and Create Test Master wizards if required by the service type.

29.1.1 Viewing the Resource Provider Utilization Heat Map

From the Enterprise menu, select Cloud, then select Cloud Home. On the Cloud Home page, click the View Map link in the Top Resource Provider Utilization % region to view the Resource Provider Utilization Heat Map.

Figure 29-2 Resource Provider Utilization Heat Map

This page shows the utilization metrics for all resource providers such as PaaS Infrastructure Zones, Database Pools, and Middleware Pools. The heat map provides a graphical representation of the resource provider utilization. On the Heat Map view, metrics are represented as boxes and the size and color of each box depicts potential problem areas. Select a box and click on a metric value to navigate to the Metric History page.

29.2 Viewing the List of Resource Providers

A resource provider is an entity that contains the actual resources required to provision the cloud services of a specific service type. From the Enterprise menu, select Cloud, then select Cloud Home to navigate to the Cloud Home page. From the Cloud Home menu, select Resource Providers to see a list of resource providers.

Figure 29-3 Resource Providers Page

- Name: The name of the resource provider.

- Type: The type of resource provider. This can be:

- PaaS Infrastructure Zone

- Middleware Pool

- Database Pool

- Schema Pool

- Pluggable Database Pool

- Owner: The user who created the resource provider.

- Parent: If the resource provider has a parent, it is listed here. For example, a PaaS Infrastructure Zone is the parent for a middleware or database pool.

- Members: The members associated with the resource provider (this includes member type and number of members).

- Service Instances: The service instance associated with the resource provider. Click on the link to drill down to the Home page.

- Description: A description of the resource provider specified by the administrator while creating the resource provider.

You can create a resource provider, edit an existing one, or delete a resource provider.

29.3 Viewing the List of Service Templates

From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Service Templates to view this page.

Figure 29-4 Service Templates Page

This page shows a list of all the service templates that are available to the self service administrator across the different service families. For each service template, the following details are displayed:

- Name of the service template

- The service family to which belongs (for example, Database, Middleware, and so on).

- The type of service.

- The owner of the service.

- The resource providers associated with the service template.

- The number of service instances associated with the service template.

- A description of the service template.

You can perform the following actions:

- Create: Select this option to launch the Create Service Template wizard.

- Create Like: Select this option to create a copy of an existing service template.

- Edit: Select a service template and click Edit to modify an existing template. Click Submit after modifying the template to update the template.

- Delete: Select a service template and click Delete to delete the template.

- Grant and Revoke Privileges: The EM_SSA_ADMINISTRATOR can grant or revoke service template privileges to other users with the EM_SSA_ADMINISTRATOR role.

29.3.1 Granting, Revoking, and Reassigning Service Template Privileges

The owner (the self service administrator who has created the template, or the SUPER_USER can grant or revoke privileges over a service template to one or more users or roles. Only the SUPER_USER can grant or revoke privileges over all service templates to other users and roles.

- Grant Privileges: Select the service template for which privileges are to be granted and select Grant from the Actions menu.
To grant privileges to other users, select User in the Type drop down list and click Search. A list of users to whom the privileges can be granted is displayed. Select one or more users from the list and click Grant to grant the privilege.

In the Select Privilege to Grant drop down list, select Manage or Full to grant the privilege to the user. To allow users to edit, and modify the configuration in the service template, select Manage access. To allow users to edit, delete, and modify the service template, select Full access.

To grant privileges to one or more user roles, select Role in the Type drop down list and click Search. A list of roles to whom the privileges can be granted is displayed. Select one or more roles from the list and click Grant to grant the privilege.

- Revoke: Select a service template for which privileges have been granted and click Revoke. In the Search drop down list, you can select one of the following:

- Name: The name of the user to whom the privilege has been granted.

- Type: Select the type which can either be User or Role to whom the privilege has been granted.

- Privilege: The type of privilege that has been granted which can be View, Manage, or Full.

Based on the search criteria, the list of users or roles to whom the privileges have been granted is displayed. Select the users or roles for whom the privileges are to be revoked and click Revoke.

- Reassigning a Service Template: Login as a Super Administrator user, select the template and click Reassign to reassign the ownership of the service template to another user. Select the user and click Reassign to reassign the service template.

29.4 Viewing the List of Service Instances

The Service Instance page shows the list of all service instances. From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Service Instances to view this page.

Figure 29-5 Service Instances Page

The following details are displayed:

- Service Instance Name: The name associated with the service instance. Click on the link to drill down to the target home page.

- Status: The status of the service instance.

- Service Instance Type: The type of request (Middleware or Database).

- Resource Provider: The Resource Provider with which the instance is associated.

- Service Template: The service template that was used to create the service instance.

- Policies: The number of policies associated with the service instance. Click on the link to drill down to the Policies page.

- Created By: The user who created this service instance.

- Creation Date: The date on which the service was created.

- Expiry Date: The date on which the service will expire and no longer be available.

You can perform the following actions:

Note:
You must have Manage privilege on the service types on which these operations are to be performed. This privilege is assigned to the out-of-the-box self service administrators roles by default.

- Start: Select a service instance that has been stopped and click Start to start the service.

- Stop: Select a service that is running and click Stop to stop the service.

- Delete: Select a service and click Delete. You are prompted to specify the schedule and indicate whether the service instance is to be deleted immediately or at a later date. Select the schedule and click OK to delete the request.

- History: Select a service and click History to view a list of all actions that have been performed on the service instance.

- Grant, Revoke, and Reassign Privileges: See Granting, Revoking and Reassigning Privileges to Service Instances.

29.4.1 Granting, Revoking, and Reassigning Privileges to Service Instances

The self service administrator can grant or revoke privileges over a service instance to one or more users or roles. Self service users can also grant or revoke privileges over service instances they own. The user who created the service instance (owner) or the SUPER_USER can reassign the ownership of a service instance to another user.

To grant or revoke access to a service instance, the self service administrator must select Enterprise > Cloud Home > Setup > Request Settings and enable the following flags:

- Enable self service user to share service instances with other Users.

- Enable self service user to share service instance Roles.

These settings can be defined either at global level, service family level, or at other User or Role level. See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone" for details.

- Grant Privileges: Select the service instance for which privileges are to be granted and select Grant from the Actions menu.
To grant privileges to other users, select User in the Type drop down list and click Search. A list of users to whom the privileges can be granted is displayed. Select one or more users from the list and click Grant to grant the privilege.

In the Select Privilege to Grant drop down list, select View, Manage, or Full to grant the privilege to the user. To allow users to edit, and modify the configuration in the service instance, select Manage access. To allow users to edit, delete, and modify the service instance, select Full access. To provide users with read only access, select View access.

To grant privileges to one or more user roles, select Role in the Type drop down list and click Search. A list of roles to whom the privileges can be granted is displayed. Select one or more roles from the list and click Grant to grant the privilege.

- Revoke: Select a service instance for which privileges have been granted and click Revoke. In the Search drop down list, you can select one of the following:

- Name: The name of the user to whom the privilege has been granted.

- Type: Select the type which can either be User or Role to whom the privilege has been granted.

- Privilege: The type of privilege that has been granted which can be View, Manage, or Full.

Based on the search criteria, the list of users or roles to whom the privileges have been granted is displayed. Select the users or roles for whom the privileges are to be revoked and click Revoke.

- Reassigning a Service Instance: Login as a Super Administrator user, select the instance and click Reassign to reassign the ownership of the service instance to another user. Select the user and click Reassign to reassign the service instance.

29.5 Viewing the Cloud Request Dashboard

The self service administrator can use the Cloud Request Dashboard to track the status of all database and middleware requests. The self service administrator can view the requests across all resource providers for all users. The requests the self service administrator can view depends on the instance level privileges. All trends and graphs on this page apply to the current filter and time period specified. By default, the status across all services over the last 7 days is displayed.

From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Requests, then select Dashboard to view the cloud request dashboard.

Figure 29-6 Cloud Request Dashboard

The following charts are displayed:

- Request Trends: You can view recent trends for Failed, Successful, Average Wait Time, Average Processing Time and Scheduled requests. Trends are shown across two time periods (for example, previous week, current week). Click the drop down list in the Completed Requests chart to filter and view failed, successful, partially successful, or completed requests.

- Average Request Wait Time: The elapsed time from which a request is scheduled to start and its actual start time.

- Average Request Processing Time (Zone): The average time taken to process the request for the selected criteria. For example, if a specific service template is selected as the filter criteria, then the average time taken to create the service instance from the selected service template in the specified time period (last 24 hours, last 7 days, or last 30 days) is displayed.

You can choose to filter the requests listed on the page by selecting a value in the View By drop down list and specifying the Filter value and the Type. For example, if you select Resource Provider in the View By drop down list, and All in the Filter column, and Create in the Type column, you will see the Create requests for all resource providers.

You can click the Edit (wrench icon) option to edit the layout of the Request Dashboard page. The following service settings can be modified:

- Summary Columns: The number of columns that can be displayed in the Summary region.

- Long Running Threshold: The percentage of average processing time used to determine if the time taken to complete a request is longer than normal.

- Maximum Chart Items: The maximum number of resource providers, service types or service families that can be shown in each chart. The remaining items are listed in the All Others category.

- Include Archived Requests: Select this check box to include deleted but not yet purged requests in the charts. This option is useful in providing a more accurate picture of the total number of requests processed during the time periods

- Chart Time Period: The default view period (7 days) for the chart.

Modify the values as required and click OK. To restore the earlier settings, click Restore Defaults.

29.6 Viewing All Cloud Requests

From the Enterprise menu, select Cloud, then select Cloud Home. From the Oracle Cloud menu, select Requests, then select Show All to view a list of all cloud service requests.

Figure 29-7 All Cloud Requests

For each request, the name of the request or job, status of the request, the request type (Create, Delete, and so on), the user who submitted the request, service type (database, schema, WebLogic, and so on), date on which the request was submitted, and so on is displayed. Click on the Name link to drill down to the Job Activity page. The Status link shows the Request Details popup window.

You can do the following:

- Reschedule: Select a request that is scheduled to run at a future date and click Reschedule to change the date on which the request should be initiated.

- Delete: Select a request and click Delete to delete the request. Deleted requests are still present in the repository and will be purged according the purge policy defined in the Request Settings page. See Section 11.2.3, "Configuring Request Settings" for details.

- Clean Up: Use this option to clean up failed requests. This may include shutting down any partially configured services and deleting any partially configured storage used for the failed service.
Note: Failed provisioning requests cannot be deleted unless they have been cleaned up.

29.7 Viewing the PaaS Infrastructure Zone Home Page

A zone is a logical entity that allows homogenous resources to be grouped together. The resources consist of components (servers, storage, networks, operating systems, applications) that are required to create new services. From the Enterprise menu, select Cloud, then select Cloud Home. Click on a resource provider link on the Cloud Home page to navigate to the Resource Providers page and click on the PaaS Infrastructure Zone link to drill down to the PaaS Infrastructure Zone Home page.

Figure 29-8 PaaS Infrastructure Home

The PaaS Infrastructure Zone Home page contains the following regions:

- General: This region lists the total number of Hosts, Dependent Providers (Software Pool), Requests, and Service Instances in the zone. It also shows the Placement Policy Constraints that have been defined for the zone.

- Request Summary: Shows the percentage of requests that are in progress, failed, successful, partially successful, or scheduled.

- CPU and Memory: The average CPU and memory utilizations by Hosts in the zone is displayed in these charts.

Note:
You can set the thresholds for these metrics on the All Metrics page. To navigate to this page, from the PaaS Infrastructure Zone menu, select Monitoring, then select All Metrics. Select the metric for which the threshold is to be set, click Modify and change the settings.

- Issues: Shows the outstanding incidents and problems for the target.

- Members: Shows the members of the zones and the member type (Oracle VM Zone or Host).

- Hosts: Lists the hosts in the PaaS Infrastructure Zone. Click on the Utilization link to view details on the CPU and memory has been utilized for all the hosts, and the number of service instances created on the host. Click on the Name link to drill down to the Host Home page.

- Service Template Summary: Shows the service templates associated with the zone. The software pool associated with each service template and number of service instances in each resource pool is also displayed.

29.8 Viewing the Database Pool Home Page

A database pool contains a set of resources that can be used to provision a database instance within a PaaS Infrastructure Zone.

Figure 29-9 Database Pool Home

This page contains the following regions:

- General: This region displays the following:

- Summary: Displays a description of the database pool and PaaS Infrastructure Zone to which it belongs.

- Members and Databases: Shows the list of Members (Oracle Homes and Hosts) and Databases in the pool. The Databases region lists the total number of databases and the number of single instance or RAC databases in the pool.

- Placement Policy Constraints: The placement policy constraints that specify maximum ceilings for each host member of the pool are displayed.

- Standby Pools: If one or more standby pools are present, they are listed here.

- Top Utilized Hosts: This region shows the list of top utilized hosts over the last 7 days. Click on the link to drill down to the Host Home page. You can sort by:

- Memory: The average memory utilized over the last 7 days as a percentage of the total memory on the host.

- CPU: The average CPU utilized over the last 7 days as a percentage of the CPU available on the host.

- Storage: The average storage utilized over the last 7 days as a percentage of the total storage available on the host.

- Instances: The number of database instances on the host.

- Members: Lists all the members in the database pool. Click on the links in the Members table to drill down to the Database or Host Home page.

- Overview of Incidents and Problems: This region lists any incidents or problems that have occurred.

- Memory Utilization: The chart shows the memory utilization by different hosts present in the database pool. The color coded chart shows the different memory utilization range across the different hosts.

- CPU Utilization: The chart shows the CPU utilization by different hosts present in the database pool. The color coded chart shows the different CPU utilization range across the different hosts.

- Storage Utilization: The chart shows the storage utilization by different hosts present in the database pool. The color coded chart shows the different storage utilization range across the different hosts.

- Service Template and Instances: Shows the service templates and service instances associated with the database pool.

29.9 Viewing the Schema Pool Home Page

You can define one or more schemas that can be deployed on a database.

Figure 29-10 Schema Pool Home

- General: This region displays the following:

- Summary: Displays a description of the schema pool and PaaS Infrastructure Zone to which it belongs. I

- Members and Services: Shows the list of Members (Databases and Hosts) and Services in the pool.

- Placement Policy Constraints: The placement policy constraints that specify maximum ceilings for each database member in the pool are displayed.

- Top Allocated Databases: This region shows the list of top utilized databases in the schema pool. Click on the link to drill down to the Database Instance page.

- Memory: The total memory allocated for each service based on the workload as a percentage of the total SGA size of the database.

- CPU: The total CPU allocated for each service based on the workload as a percentage of the CPU count.

- Storage: The total storage utilized on all the tablespaces of the database as a percentage of the total size of the database.

Note:
Total here includes requests budgeted for services that have been requested and are active.

- Services: The number of database services.

- Members: Lists all the members in the schema pool. Click on the links in the Members table to drill down to the Database Instance Home page.

- Overview of Incidents and Problems: This region lists any incidents or problems that have occurred.

- Memory Allocation: The chart shows the memory allocation across different databases present in the schema pool. The color coded chart shows the memory allocation range across all the databases.

- CPU Allocation: The chart shows the CPU allocation across different databases present in the schema pool. The color coded chart shows the CPU allocation range across all the databases.

- Storage Allocation: The chart shows the storage allocation across different databases present in the schema pool. The color coded chart shows the storage allocation range across all the databases.

- Service Template and Instances: Shows the service templates and service instances associated with the schema pool.

29.10 Viewing the Pluggable Database Pool Home Page

A PDB pool contains one or more container databases that can be used to create PDBs within a PaaS Infrastructure Zone.

Figure 29-11 PDB Pool Home Page

This page contains the following regions:

- General: This region contains the following:

- Summary: This region displays a description of the database pool and PaaS Infrastructure Zone to which it belongs. Click on the Parent PaaS Infrastructure Zone link to drill to the Home page.

- Members and Databases: This region displays a list of Members (Oracle Homes and Hosts) and Databases in the pool. The Databases region lists the total number of databases and the number of single instance or RAC databases in the pool.

- Placement Policy Constraints: The placement policy constraints that specify maximum ceilings for the pool are displayed.

- Top Allocated Databases: This region shows 5 to 15 pluggable databases (depending on your selection), sorted by Memory, CPU, Storage, or Services.

- Memory: The total memory allocated for each service based on the workload as a percentage of the total SGA size of the Container database.

- CPU: The total CPU allocated for each service based on the workload as a percentage of the total CPU count.

- Services: The number of database services.

- Members: This region shows the list of members in the PDB pool. Click on the links in the Members table to drill down to the database or host home page.

- Overview of Incidents and Problems: This region shows a list of any incidents and problems that have occurred for any of the targets in the PDB pool.

- Memory Allocation: This chart shows the memory allocation by different container databases in the database pool. The color coded chart shows the memory allocation range across all the container databases.

Note:
Total here includes requests budgeted for services that have been requested and are active.

- CPU Allocation: This chart shows the CPU allocation by different container databases in the pool. The color coded chart shows the CPU allocation range across all the container databases.

- Service Templates and Instances: This region shows the list of service templates associated with the PDB pool. Click on the Service Template link to drill down to the Service Template Details page.

29.11 Viewing the Middleware Pool Home Page

The Middleware Pool Home page provides detailed information of the Middleware Pool. To view this page, from the Enterprise menu, select Cloud, then select Cloud Home. Click on the Resource Providers link on the Cloud Home page to navigate to the Resource Providers page. Click on a Middleware Pool name to drill down to the Middleware Pool Home page. The Middleware Pool Home page contains the following regions:

Figure 29-12 Middleware Pool Home

- Summary: This region shows the following information:

- Parent PaaS Infrastructure Zone: The zone with which the Middleware Pool is associated. Click on the link to drill down to the PaaS Infrastructure Zone Home page.

- Oracle Homes: The total number of Oracle Homes in the Middleware Pool.

- Oracle Home Version: The version of the Oracle homes.

- Placement Policy Constraints:

- Total Java Servers (per host): The maximum number of WebLogic servers that can be running on each host.

- Java Servers: The total number of WebLogic servers in the Middleware Pool.

- Load Balancer: This region shows the following details:

- Load Balancer Configuration: The name of the load balancer configuration associated with the Middleware Pool. Click on the link to view the load balancer details.

- Load Balancer Type: The type of load balancer. This can be Oracle HTTP Server, Oracle Traffic Director, or Third Party Load Balancer.

- Service Templates: The number of service templates with which the Middleware Pool is associated. For each service template, the name, a column indicating if the load balancer configuration has been enabled, and the description of the template is displayed. You can drill down to detailed page to see which MWaaS instances are associated with each service template.

- Service Instances: The service instances running on the Middleware Pool are displayed. For each service instance, the name, the status, date on which it is scheduled to expire, the service template with which is associated, and the location of the Oracle Home is displayed.

- Members: This region shows a list of members in the Middleware Pool. The name of the target, the target type, the host on which it is running, and the location of the Oracle Home is displayed.

29.12 Viewing the Cloud Services Reports

Oracle BI Publisher is an Oracle's enterprise reporting solution and provides a single reporting environment to author, manage, and deliver all of your reports and business documents. Utilizing a set of familiar desktop tools, such as Microsoft Word, Microsoft Excel, or Adobe Acrobat, you can create and maintain report layouts based on data from diverse sources. The Cloud Services BI reports consist of the following:

- Most Requested Service Types

- Service Request Status

- Service Request Types

- Cloud Requested Duration Thread

You can view these reports online and export them PDF, RTF, PowerPoint, and Excel formats. To view the reports, log into Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role and from the Enterprise menu, select Reports, then select BI Publisher Reports. Click on a report under the Cloud Services menu to launch the BI Publisher application and directly view the report.

29.12.1 Most Requested Service Types

This report shows the most requested reports sorted by service type. You can filter the data displayed by selecting any of the following parameters:

- Service Family

- Service Type

- User Name

- Start Date

- End Date

Figure 29-13 Most Requested Cloud Service Type

29.12.2 Service Request Status

This report shows the service request trends sorted by status. You can filter the data displayed by selecting any of the following parameters:

- Service Family

- Service Type

- Request Type

- Request Status

- User Name

- Start Date

- End Date

Figure 29-14 Cloud Request Status

29.12.3 Service Request Type

This report shows the cloud request trends sorted by request type. You can filter the data displayed by selecting any of the following parameters:

- Service Family

- Service Type

- Request Type

- Request Status

- User Name

- Start Date

- End Date

Figure 29-15 Cloud Request Type

29.12.4 Cloud Service Instance Duration Trend

This report shows the cloud service instance duration. You can filter the data displayed by selecting any of the following parameters:

- Submission Time

- Resource Provider

- Service Type

- Service Template

Figure 29-16 Cloud Service Instance Duration

Part XI

Oracle Compute

This section describes the procedure to setup and use Oracle Infrastructure Compute. It contains the following chapters:

- Chapter 30, "Getting Started With Oracle Compute"

- Chapter 31, "Setting Up the Oracle Compute Self Service Portal"

- Chapter 32, "Using Oracle Compute"

- Chapter 33, "Managing the Oracle Compute Site and Associated Targets"

30 Getting Started With Oracle Compute

This chapter provides an introduction to Infrastructure Oracle Compute (referred to as Oracle Compute in this document) and the procedure to discover an Oracle Compute site. It contains the following sections:

- About Oracle Compute

- Oracle Compute Terminology

- Getting Started

- Discovering the Oracle Compute Site

30.1 About Oracle Compute

Enterprise Manager allows end users to provision infrastructure cloud resources on demand thereby reducing the capital and operational costs. With Oracle Compute, Enterprise Manager provides enhanced monitoring features which allow users to provision cloud resources from various resource providers, support different types of storage and network infrastructure settings.

In this release, Oracle Compute is integrated with the Exalogic Engineered System allowing users to deploy, manage, and monitor the complete cloud service software stack (DBaas, WSaaS, TaaS, and IaaS) on Oracle Compute based Exalogic systems. By integrating Oracle Compute with Enterprise Manager, users can access a common cloud management system and a self service flow across all the cloud services.

30.2 Oracle Compute Terminology

The following table lists some important terms and definitions.

Table 30-1 Oracle Compute Terminology

Term

Definition

Node

A node is a physical server (Hypervisor) in an Oracle Compute cluster.

Cluster

The Oracle Compute infrastructure is modeled around server pools or cluster. A cluster can contain three or more nodes.

Site

A site is a location running one or more Oracle Compute clusters.

Instance

An instance is a guest virtual machine.

Tenant

Every client organization or customer that participates in Multi-Tenancy enabled server or service as consumer is called as Tenant. A tenant is the context within which system objects such as users and machine images are created.

A customer can be an organization, a department within an organization, or even a single person. At least one customer needs to be created per site.

User

A user is an entity that can make requests. Each user is associated with one customer. User names are unique within a specific customer, and customer names are unique within the system as a whole.

Shape

A virtual machine's shape refers to a definition of the number of CPUs assigned to the virtual machine, the amount of RAM made available to it, and the relative amount of I/O it processes. Shapes are used to characterize combinations of these resources so that end-users can specify resource requirements for placement of their instances.

Image List

An image list is a list of machine images. Machine images can be added to an image list to create a versioned selection of related machine images recording the versions of the image over its lifetime.

Infiniband

InfiniBand offers point-to-point bidirectional serial links intended for the connection of processors with high-speed peripherals such as disks. On top of the point to point capabilities, InfiniBand also offers multicast operations. In Exalogic system, all the components are inter-connected by Infiniband network.

Oracle Compute Template

An Oracle Compute template is a copy of a virtual hard disk with an installed operating system used to launch a virtual machine instance. It is a whole disk image (including a partition table and a kernel) stored in a tar archive, compressed with gzip.

Orchestration

Orchestration is the automated management of your system components for high availability, monitoring, and persistence. An orchestration ties together the components you create into a single, manageable collection.

Launch Plan

A launch plan defines the configuration settings for one or more VM instances.

30.3 Getting Started

This section lists the tasks that must be performed before you can discover an Oracle Compute site and set it up for self service users.

Table 30-2 Setting Up the Service Family

Step

Task

Role

1

Deploy the necessary plug-ins. See Section 3.2, "Deploying the Required Plug-ins"

Cloud Administrator

2

Define roles for administrators and self service users. See Section 3.3, "Defining Roles and Assigning Users".

Super Administrator

30.4 Discovering the Oracle Compute Site

Prerequisites

- The Enterprise Manager for Oracle Virtual Infrastructure plugin must be deployed on the Oracle Management Service and the Management Agent.

Additional Configuration

- Run the following commands on the Management Agent monitoring the Oracle Compute targets:
<AGENT_INST_HOME>/bin/emctl setproperty agent -allow_new -name _disableLoadDPFromCache -value true

<AGENT_INST_HOME>/bin/emctl setproperty agent -allow_new -name agentJavaDefines -value "-Xmx512M -XX:MaxPermSize=96M"

- If the Oracle Compute site discovery has been disabled, you must enable it with the following command:
<OMS_HOME>/bin/emctl register oms metadata -sysman_pwd <sysman_pwd> -pluginId oracle.sysman.vi -service discovery -file <VI_OMS_PLUGIN_HOME>/metadata/discovery/vi_discovery.xml.nimbula

- Optionally, if you need to access the VNC console of the virtual machine, you must download the VncViewer.jar and copy it to the following location on all OMSes.
<OMS_HOME>/sysman/archives/emgc/deployments/EMGC_DOMAIN/emgc.ear/em.war

Before you copy the jar file, ensure that the host machine has access to the Hypervisor on which the Oracle Virtual Server is running.

30.4.1 Discovering the Oracle Compute Site and Its Associated Targets

The top level target in Oracle Compute hierarchy is the Oracle Compute Site. A site is a location running Oracle Compute Clusters where one or more clusters make up an Oracle Compute site. To discover and register the Oracle Compute site, follow these steps:

1. Log in to Enterprise Manager as a user with the CLOUD_ADMIN role.

2. From the Setup menu, select Add Targets, then select Add Targets Manually.

3. In the Add Targets Manually page, select Add Targets Using Guided Process, then select Oracle Compute Site from the drop down list and click Add Using Guided Process..... The Register Oracle Compute Site appears:

Figure 30-1 Register Oracle Compute Site

4. Enter the registration details in the following regions:

- Site Details

- Target Name: The name to be used for the Oracle Compute site being created.

- Associated Exalogic Target: Select the Exalogic target that is to be associated with the Oracle Compute Site. You will see the Exalogic target only if has been discovered. For details on discovering the Exalogic target, see, <to provide the link>.

- Monitoring Agent: The default Management Agent that is to be used to monitor the Oracle Compute site and the associated targets.

- Failover Monitoring Agent: If the Monitoring Agent is down, the agent specified here will be used.

- Service Manager Endpoint URL:

- Oracle Compute Credentials

- Endpoint URL: The API Endpoint URL of the existing Oracle Compute installation. This is the URL to which you submit HTTP requests or commands. To discover the Oracle Compute target, you must ensure that the Oracle Compute Site security certificate has been added to the Monitoring Agent keystore.

- User Name: The user name required to access the Endpoint URL. This field is used information only.

- Password: The password required to access the Endpoint URL. Click Test Connection to test the site credentials.

- Other Credentials

- SNMP V3 Credentials: Specify the SNMP credentials to facilitate faster status updates for the Oracle Compute targets. Enter the user name, authorization password, and the privacy password.

5. Click Continue. The Oracle Compute site is discovered along with the targets in the following hierarchy:

- Oracle Compute Cluster

- Oracle Server

- Oracle Virtual Platform

- Oracle Virtual Server

After the Oracle Compute site has been discovered, to view the Oracle Compute Site Home page, from the Targets menu, select All Targets, then click on the Oracle Compute Site target under Groups, Systems, and Services. The newly added Oracle Compute Site will now be one of the resource providers for the Oracle Compute service family.

30.4.2 Importing the Site Certificate

When using Enterprise Manager and a Secure Socket Layer (SSL) protocol to discover and monitor the Oracle Compute Site, the Secure Certificate must be imported before a secure communication link can be established. The Management Agent maintains a Java Keystore (JKS) truststore containing certificates of Certification Authorities (CAs) that it can trust or self signed certificates when establishing a secure connection.

The JKS Agent truststore is available at the following location:

$ORACLE_HOME/sysman/config/montrust/AgentTrust.jks

where ORACLE_HOME is the Management Agent's instance home.

To download the certificate (CA Certificate or Root Certificate), follow these steps:

1. Open a browser window and enter the site URL in the address window.

2. Expand by clicking on I Understand the Risk and click Add Exception.

3. Under Certificate Status click the View button on the right hand side.

4. Click the Details tab. In the left hand side bottom column, click Export.

5. Save the certificate at your desired location with desired filename.

After downloading the certificate, you must update the Agent truststore (AgentTrust.jks). If a signed certificate from a self signed CA is being used on the Oracle Compute site, then the Root CA certificate for this must be added to JKS Agent truststore so that Management Agent can discover and monitor these Oracle Compute sites. To update the AgentTrust.jks, enter the following command:

emctl secure add_trust_cert_to_jks -password <password> -trust_certs_loc <loc> -alias <alias>

where:

- password is the password for the AgentTrust.jks (if not specified, you will be prompted for the password at the command line)

- trust_certs_loc is the location of the certificate file to be imported.

- alias is the alias of the certificate to be imported.

For example: emctl secure add_trust_cert_to_jks -password welcome -trust_certs_loc /home/asaral/certs/emdev1_nimbula.crt -alias emdev1_nimbula

31 Setting Up the Oracle Compute Self Service Portal

This chapter describes how to set up and configure an Oracle Compute Site for self service users. It contains the following sections:

- Setting Up the Oracle Compute Site

- Creating a Tenant

- Creating a Shape

- Defining Quotas

- Managing Oracle Compute Templates

- Creating an Orchestration Service Template

- Mapping Enterprise Manager Roles to Oracle Compute Roles

31.1 Setting Up the Oracle Compute Site

After you have discovered the Oracle Compute site, you must configure it for self service users by defining tenants, configuring shapes, quota, templates, and so on.

To set up the Oracle Compute site, follow these steps:

1. Create tenant administrators and users. See Section 31.2, "Creating a Tenant" for details.

2. Configure shapes. See Section 31.3, "Creating a Shape" for details.

3. Define quotas. See Section 31.4, "Defining Quotas" for details.

4. Upload Oracle Compute templates. See Section 31.5, "Managing Oracle Compute Templates" for details.

5. Set up an orchestration template. See Section 31.6, "Creating an Orchestration Service Template"

6. Associate Enterprise Manager roles with Oracle Compute roles. See Section 31.7, "Mapping Enterprise Manager Roles to Oracle Compute Roles"

7. Configure request settings. See Section 11.2.3, "Configuring Request Settings"

8. Set up the charge plan. See Section 43.2, "Setting Up Chargeback".

31.2 Creating a Tenant

A tenant (or a customer) is the context or framework within which system objects such as users and templates are created. In an enterprise, a tenant can be an organization, a department within an organization, or even a single person. Each Oracle Compute site must contain at least one tenant.

Before you create a tenant, you must do the following:

- Estimate the resource quotas to be allocated for the tenant

- Identify the tenant users and tenant administrators

The quota for the vCPUs, memory, and storage resources can be defined during the tenant creation process. If the tenant does not have the required resources, then the Tenant Users cannot create and run instances in the tenant.

The cloud administrator can create one or more tenants in a selected Oracle Compute site. Each tenant can be associated with one or more tenant administrators and tenant users.

To create a tenant, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. From the Oracle Cloud menu, select Getting Started, then click on the Setup link next to the Infrastructure - Oracle Compute service family in the left panel.

4. Click Tenancy Management and select an Oracle Compute Site from the drop down list. Tenants that have already been created for the selected site are listed.

Figure 31-1 Tenancy Management

5. Click Create. The Create Tenant window appears.

Figure 31-2 Create Tenant

6. Enter the name, password, description, and email address of the tenant administrator.

7. In the Enable Access to Service Networks region, select one or all of the following:

- OMS Service Name: Select this option to enable VM instances created by the tenant to be monitored by Enterprise Manager.

- Instance Storage Service Network: Select this option to enable VM instances created by the tenant to access the ZFS storage pool.

- Service Manager Network: Select this option to enable access to the Platform Service Manager network.

8. In the Quota region, you can select:

- Default: If you select this option, the default quota will be assigned to this tenancy.

- Custom: If you select this option, you can define a custom quota that will be available to the tenancy. You can specify the following criteria:

- Templates: Specify the number of images and the size.

- Oracle Compute: Specify the number of VM instances, number of vCPUs, and total memory that will be available to all users in this tenancy. You can also set quotas on the number of instances allowed by specifying restrictions which can be comma separated key value pairs. For example, if you specify os_license=20, the number of VM instances launched off machine images with os_license as attribute key cannot be greater than 20.

- Storage: Specify the storage volume size that will be available to all users in this tenancy.

- Network: Specify the number of IP addresses that can be reserved from the VNET that is available to the tenancy.

9. Click Create. The newly created tenant will appear on the Tenancy Management page and the quota created for the tenant will appear on the User Management: Quotas page. See Defining the Quota for details. After the tenant has been created, the cloud administrator or the self service administrator can create tenant administrators and tenant users under each tenancy. See <Creating Users>

31.2.1 Editing a Tenant

Select a tenancy from the list displayed on the Tenancy Management page and click Edit. The Edit Tenant window appears. You can modify all the details of the tenancy except for the name of the tenant. After modifying the tenancy details, click Edit to confirm the changes and return to the Tenancy Management page.

31.3 Creating a Shape

A shape refers to the characteristics of a virtual machine that include the number of CPUs assigned to the virtual machine, the amount of RAM available, and the relative number of I/O processes. Each shape is combination of these characteristics and can be used by tenant users while requesting virtual machines. While defining a shape, you need to consider the capacity of your machines and the anticipated workload of the instances.

To create a shape, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. From the Oracle Cloud menu, select Getting Started, then click on the Setup link next to the Infrastructure - Oracle Compute service family in the left panel.

4. Click Shape Management and select an Oracle Compute Site from the drop down list. Shapes that have already been created for the selected site are listed.

Figure 31-3 Shape Management

5. Click Create. The Create Compute Machine window appears. Enter the name, description, number of CPUs, memory, and the relative number of IO processes that can be allocated to the virtual machine.

6. Click Create. The newly created shape will appear on the Shape Management page.

31.4 Defining Quotas

The administrator (cloud administrator or self service administrator) can define quota on system resources such as templates, instances, storage and networks. Quotas on system resources are enforced only when the administrator explicitly sets them. When a tenant is created, if a custom quota setting is not defined, the default quota setting is assigned to the tenant. Any quota settings defined while creating the tenant can be modified on the User Management: Quotas page.

To edit a quota setting, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home and navigate to the Oracle Compute Site Home page.

3. From the Oracle Compute Site menu, select User Management, then select Quota. The User Management: Quotas page appears. The quota settings assigned to each tenant are displayed. You can choose to view the quota by Usage or by Allowance by selecting the appropriate option from the View drop down list.

Figure 31-4 Quota Management

4. Select a quota that you wish to modify and click Edit. The Edit Quota window appears.

5. You can modify the description of the quota and the following criteria:

- Templates: Specify the number of images and the size.

- Oracle Compute: Specify the number of VM instances, number of vCPUs, and total memory that will be available to all users in this tenancy. You can also set quotas on the number of instances allowed by specifying restrictions which can be comma separated key value pairs. For example, if you specify os_license=20, the number of VM instances launched off machine images with os_license as attribute key cannot be greater than 20.

- Storage: Specify the storage volume size that will be available to all users in this tenancy.

- Network: Specify the number of IP addresses that can be reserved from the VNET that is available to the tenancy.

6. Click Edit to modify the quota and return to the User Management: Quotas page.

31.5 Managing Oracle Compute Templates

An Oracle Compute template is a copy of a virtual hard disk with an installed operating system used to launch a virtual machine instance. It is a whole disk image (including a partition table and a kernel) stored in a tar archive, compressed with gzip. Templates can be versions of Linux (such as Red Hat or Ubuntu), Microsoft Windows, or other operating systems.

To upload a template, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home and navigate to the Oracle Compute Site Home page.

3. From the Oracle Compute Site menu, select Image Management. You will see a list of templates that have been uploaded either from the Software Library or from a local disk.

Figure 31-5 Image Management

4. Click Upload. The Template Management: Upload Template window appears. While uploading the image, the Template Scope can be:

- Public: The image will be available to all the users. If you select this option, enter the name of the image in the Name field.

- Tenant: The image will be available only to users belonging to the selected tenancy. If you select this option, select the Tenant in the Name drop down field and specify the name of the template. The image will be available to all users in the selected tenancy.

5. Specify any additional attributes that will be used when the service instance is provisioned.

6. In the Select Template field, select the image that is to be uploaded. The image you upload can either be present in your local disk or from the Software Library.

7. Click Upload to upload the template. The newly uploaded image will appear on the Image Management: Compute Templates page with the following details:

- Name: The name of the image. If the image is available to all users, the format of the name is /oracle/public/<image_name>. If the image is available only to users belonging a selected tenancy, the format is <tenant_name>/public/<image_name>.

- Attributes: Any user defined attributes that were specified when the image was uploaded.

- Quota: The quota specified for the image.

- Uploaded Size: The size of the image that has been uploaded.

- Total Size: The total size of the image.

- Decompressed Size: the size of the image in its decompressed state.

- Agent Configured: Indicates if the Management Agent has been configured for this image. See Configuring the Management Agent.

31.5.1 Configuring the Management Agent

You can specify the details of the Management Agent that is to be associated with an image list. To configure the agent, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMIN role.

2. From the Enterprise menu, select Cloud, then select Compute Home. The Compute Cloud page appears.

3. From the Oracle Compute Cloud menu, select Resource Providers and click on an Oracle Compute Site from the list.The Oracle Compute Cloud page appears.

4. From the Oracle Compute Cloud menu, select Image Management. The Image Management page with a list of templates is displayed.

5. Select a template from the list and click Configure Agent. Specify the following details:

- Agent Configuration Type: Select Fresh or Shared.

- Installation Base Directory: If you selected Fresh, specify the base directory on the host machine on which the Management Agent is to be installed.

- Shared Agent: If you selected Shared as the Agent Configuration Type, enter the name of the shared agent.

- Oracle Home: If you have selected Shared as the Agent Configuration Type, specify the location of the shared Oracle Home of the existing Management Agent.

- Platform: Select the platform on which it is be installed.

- Instance Directory: Specify the Instance Directory for the Oracle Home.

- Username & Password: Specify the credentials required to access the agent.

- SSH Timeout: The SSH timeout period for Guest Virtual Machine communication during deployment.

- Privilege Delegation Settings: Specify any privilege delegation settings.

6. Click OK to configure the agent and return to the previous page.

31.6 Creating an Orchestration Service Template

Prerequisites

- One or more Oracle Compute sites must have been discovered.

- One or more Oracle Compute templates must be available.

Orchestration is the automated management of your system components for high availability, monitoring, and persistence. An orchestration ties together the components you create into a single, manageable collection. For example, with orchestration you can associate networks, network security, and storage with the instantiation of a virtual machine. The administrator can create orchestration service templates that can be used to create Oracle Compute service instances. To create a service template, follow these steps:

1. Log in as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. From the Oracle Cloud menu, select Getting Started, then click on the Setup link next to the Infrastructure - Oracle Compute service family in the left panel.

4. Click Service Templates, then click Create. The Create Service Template window appears.

5. Select the Orchestration service type, then select Orchestration Custom Service Template and click Create to launch the Create Orchestration Custom Service Template wizard.

6. Enter the name and description for the template and click Next.

7. In the Characteristics page, enter the target properties such as contact, cost center, lifecycle status, and so on. These properties or characteristics will be applied to the instance as target properties when the service instance is created. Click Next.

8. In the Resource Providers page, click Add and select an Oracle Compute Site into which the service instances are to be provisioned.

9. Click Next. The Configuration page appears.

Figure 31-6 Create Orchestration Service Template: Configuration

An Orchestration Template can be associated with one or more launch plans. Click Add Launch Plan to create a new launch plan. See Section 31.6.1, "Creating a Launch Plan" for details.

10. After defining one or more launch plans, you can configure the relationship between the launch plans by selecting the order in which the launch plans are to be executed. Select the Orchestration Template link on the left panel. In the Orchestration Configuration page, click Add in the Startup Order region and select the order for the launch plans. Click Next.

11. In the Roles page, click Add and select the roles to which the service template is to be available. Click Next.

12. In the Review page, review the template details and click Submit to create the Orchestration template.

31.6.1 Creating a Launch Plan

A launch plan defines the configuration settings for one or more VM instances. In the Launch Plan window, enter a name for the launch plan and click Add. The launch plan name you entered appears under the Orchestration Template header in the launch panel. Click on the launch plan name to specify the configuration details.

Figure 31-7 Launch Plan Configuration

- Launch Plan Configuration: Specify the following details.

- High Availability: You can specify a high availability policy for an orchestration, which affects how the orchestration is managed by the system. This can be:

- No High Availability: If you choose this option, the orchestration components are neither restarted nor monitored.

- Active: The components defined by the orchestration are restarted if they stop unexpectedly due to causes such as power failure and node disconnection.
Note: A component will not be restarted if it is stopped due to an operator error such as an instance relaunch or an invalid image list or shape. In this case, the status of an orchestration will reflect the error, but the components will not be recreated. The reported operator error must be fixed and the orchestration restarted.

- Monitor: The components are not restarted, they are only monitored.

- Deploy on Different Nodes: Select this check box to deploy the launch plan on different nodes.

- Common Settings: Click this tab to define the default settings that will be used for all VM instances in this launch plan. The default setting can be overridden at the VM instance level.

Figure 31-8 Common Settings

Specify the following details:

- Oracle Compute Template: A template is a copy of virtual hard disk with an installed operating system used to launch an instance. The template must be a whole disk image (including a partition table and kernel) stored in a tar archive, compressed with gzip. Click the Search icon and select a template from the list. If you click the Lock icon to lock the template, the tenant administrator or tenant user cannot change the template while provisioning the service instance.

- Shape: A shape is a combination of CPU, memory, and IO which define the characteristics of a virtual machine. Select a shape from the drop down list. If you click the Lock icon to lock the shape, the shape cannot be changed by the tenant administrator or tenant user while provisioning the service instance.

- Configure EM Agent: Select this checkbox to add EoIB and IPoIB storage networks to the network table.

- Credentials: You can set the SSH key credentials for password-less access to VM instances and host credentials for deploying the Management Agent. You can use:

- Oracle SSH Key: If SSH key credentials have been set, and can be used as preferred credentials, select Use Preferences and choose the credential set from the drop down box. If you select Enter Key, you must specify the SSH public and private key pair required to access the VM instances. If you select Key is in a file, click Browse and select the public / private key from a file.

- Root SSH Key: If SSH key credentials have been set for the host, and can be used as preferred credentials, select Use Preferences and choose the credential set from the drop down box. If you select Enter Key, you must specify the SSH public and private key pair required to access the VM instances. If you select Key is in a file, click Browse and select the public / private key from a file.

- Oracle User: If you select Use Preferences, choose the preferred credentials from the drop down box. If you select Enter Password, you must enter the password for the Oracle user.

- Root User: If you select Use Preferences, choose the preferred credentials from the drop down box. If you select Enter Password, you must enter the password for the root user.

- Network Configuration: Click Add to select one or more network interfaces that will be associated with the VM instances. A network can be an IPoIB or EoIB network. In the Select Network window, you can choose:

- Tenant Networks: These are networks configured for each tenant to communicate with other servers within Exalogic or outside Exalogic.

- Service Networks: These are networks configured to communicate with other service providers such as ZFSSA or Exadata systems.

For external network interfaces, you can select one or all of the following:

- Default Gateway: The selected network will be configured as the default gateway network.

- Symmetric Routing: If this option is selected, the reply packets are routed through the same network interface on which the vNet IP packets were received.

- Provider Role: *** need info ***

After adding the network, you can select the network and click the Lock icon to lock the network configuration.

- Domain Name System (DNS) Configuration: Specify the DNS configuration for the network.

- Servers: Enter a comma separated list of DNS servers for the selected network.

- Search Domains: Enter a comma separated list of DNS Search Domains for the selected network.

- Network Information Service (NIS) Configuration

- NIS Domain Name: Enter the NIS Domain Name for the selected VM instance.

- Network Information Services (NIS) Server: Click Add to add an NIS server. Enter the name and IP address of the NIS server and click Add to add the NIS server.

- Storage Configuration: You can associate one or more storage volumes to the VM instances that are to be created. Click Create. In the Create Storage Volumes window, enter the name of the storage volume, size, the number of volumes to be created and click Add. You can then click the Lock icon and lock of the storage volume.

- Advanced Configuration: You can optionally specify additional attributes for the VM instances. Click Add to add a key and value for the attribute.

- After you have created the launch plan, you can add one or more VM instances that can use the launch plan. Select the launch plan you have created and click Add VM Instance. In the Add VM Instance window, specify the name and number of VM instances to be created. If you are adding more than one instance, the name you specify will be used as a prefix to generate a unique name for each VM instance.
You can define configuration settings at the instance level and override the settings defined at the launch plan level. To define instance level specific configuration settings, select the VM instance from the left panel. The Oracle VM Instance Configuration page appears. To define instance level settings, select the Override Common Settings checkbox to override the default launch plan level settings. Select the Oracle Compute Template, Shape, and specify the Network, and Storage Configuration.

In the Advanced Configuration region, you can optionally specify additional attributes. Click Add. In the Add Attributes window, specify the key and value for the attribute. In the Tags field, you can enter tags to identify the instance deployment request.

In the Optional Network Configuration region, you can specify additional configuration parameters for the network defined in the Network Configuration region. You can specify a list of DNS servers, configure the network as the default gateway network, and configure the VM instance as a provider on the underlying selected service network.

31.7 Mapping Enterprise Manager Roles to Oracle Compute Roles

You can associate an Enterprise Manager role with an Oracle Compute role. To define a role mapping, follow these steps:

1. Log in as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. From the Oracle Cloud menu, select Getting Started, then click on the Setup link next to the Infrastructure - Oracle Compute service family in the left panel.

4. Click Role Mappings. In the Role Mappings page, from the drop down list, select the Oracle Compute Site in which the role mappings are to be defined.

5. Click Create. In the Create Role Mapping window, select the Enterprise Manager role and the Oracle Compute role with which it should be associated and click Add to create the role mapping.

32 Using Oracle Compute

This chapter provides self service users with instructions on using the Oracle Compute Self Service Portal to request, monitor, and manage Oracle Compute instances. It contains the following sections:

- Using the Oracle Compute Self Service Portal

- Creating a New Orchestration

- Viewing the Orchestration Details

- Creating Networks

- Creating Storage Volumes

- Managing the Library

- Discovering an Orchestration

32.1 Using the Oracle Compute Self Service Portal

To navigate to the Oracle Compute Self Service Portal page, login as a user with the EM_SSA_USER role. The Self Service Portal page is displayed. Select Infrastructure - Oracle Compute from the drop down list. The following page appears:

Figure 32-1 Oracle Compute Self Service Portal

It contains the following tabs:

- Home: The Home page contains the following regions:

- Services: This region shows the list of instances that have been created and the status indicating whether they are Up or Down.

- Notifications: In this region, you will see notifications such as orchestrations that have not been discovered, number of service offerings published in the last 7 days, and so on.

- Usage: Click the Usage icon to view the total quota (servers and memory) used so far by the self service user, including all the services that the user has created. Your quota includes both the number of Oracle VM instances, CPUs, memory, and storage across all your instances.

- Services: This region shows the list of Oracle VM instances owned by the self service user. For each service, the name of the service, the status, service type, resource provider, and date on which it was created, and the date on which it is scheduled to expire is displayed. You can also see the services for which you have granted privileges. You can do the following:

- Request New Service: To create an orchestration, click Request New Service. See Creating a New Orchestration.

- View a Service: Click on the Name link to drill down to the VM Instance Home page.

- Delete a Service: Select a service from the table and click Delete. A confirmation message is displayed. Click Yes to delete the instance.

- Start a Service: Select a service instance from the table and click Start. A request is submitted to start the service.

- Stop a Service: Select a service instance from the table and click Stop. A confirmation message is displayed. Click Yes to submit a request to stop the service.

- History: Select a service instance and click History to view the history of operations performed on the service instance.

- Discover: Select this option to discover any orchestrations and promote them as service instances.

- Grant: You can grant view or full privileges over the service instance to other users or roles. See Granting and Revoking Privileges.

- Revoke Privileges: You can revoke privileges you have granted to other users or roles.

- Requests: This region shows a list of Start Orchestration, Discover Orchestration, and Service Deletion requests. For each request, the status, type, start date, and submission date of the request is displayed. Select columns from the View menu to view more details about the request. You can select a scheduled request and click Reschedule to reschedule the request. To delete a scheduled request, select the request and click Cancel. If a request that is scheduled such as Create gets canceled, all other associated requests are also canceled.

- Networks: See Section 32.4, "Creating Networks".

- Storage: See Section 32.5, "Creating Storage Volumes".

- Chargeback: See Section 43, "Chargeback Administration".

- Library: See Section 32.6, "Managing the Library".

32.2 Creating a New Orchestration

To create a set of Oracle VM instances with a customized configuration, you must create a new orchestration by following these steps:

1. Click Request New Service in the Infrastructure Oracle Compute Self Service Portal page.
Note: When you log in for the first time, you must set the Oracle Compute Credentials. Click the Preferences link the top right corner of the page. The Preferences window appears. Click on the Infrastructure: Oracle Compute link in the left panel. Click Set in the Oracle Compute Site Credential region and enter the username and password required to access the Oracle Compute Site. Optionally, you can specify the host credentials for deploying the Management Agent.

2. Select the Orchestration Service Template from the Service Catalog. The Request Orchestration wizard appears.

Figure 32-2 Request Orchestration: General

3. Select the Oracle Compute Site in which the VM instances are to be created.

4. Enter a name for the orchestration and specify a description.

5. If any orchestration has been saved either as a deployment plan or as a JSON file, you select it here. If no saved orchestrations are available, click Next to continue. The Deployment Configuration page appears.

6. On this page, you can specify the configuration for the different components of your orchestration using one or more launch plans. A launch plan defines the configuration settings for one or more VM instances. In the Launch Plan window, enter a name for the launch plan and click Add. The launch plan name you entered appears under the Orchestration Template header in the launch panel.

7. Click on the Launch Plan Configuration tab. Enter the following details:

- High Availability: You can specify a high availability policy for an orchestration, which affects how the orchestration is managed by the system. This can be:

- No High Availability: If you choose this option, the orchestration components are neither restarted nor monitored.

- Active: The components defined by the orchestration are restarted if they stop unexpectedly due to causes such as power failure and node disconnection.
Note: A component will not be restarted if it is stopped due to an operator error such as an instance relaunch or an invalid template list or shape. In this case, the status of an orchestration will reflect the error, but the components will not be recreated. The reported operator error must be fixed and the orchestration restarted.

- Monitor: The components are not restarted, they are only monitored.

- Deploy on Different Nodes: Select this check box to deploy the launch plan on different nodes.

8. Click on the Common Settings tab to define the default settings that will be used for all VM instances in this launch plan. The default setting can be overridden at the VM instance level.

Figure 32-3 Request Orchestration: Deployment Configuration

Specify the following details:

- Oracle Compute Template: A template is a copy of virtual hard disk with an installed operating system used to launch an instance. The template must be a whole disk template (including a partition table and kernel) stored in a tar archive, compressed with gzip. Click the Search icon and select a template from the list.

- Shape: A shape is a combination of CPU, memory, and IO which define the characteristics of a virtual machine. Select a shape from the drop down list.

- Configure EM Agent: This checkbox will be disabled if the self service user does not have access to the EoIB OMS and IPoIB instance storage networks that are required to deploy the management agent on virtual machines.

- Credentials: You can set the SSH key credentials for password-less access to VM instances and host credentials for deploying the Management Agent. You can use:

- Oracle SSH Key: If SSH key credentials have been set, and can be used as preferred credentials, select Use Preferences and choose the credential set from the drop down box. If you select Enter Key, you must specify the SSH public and private key pair required to access the VM instances. If you select Key is in a file, click Browse and select the public / private key from a file.

- Root SSH Key: If SSH key credentials have been set for the host, and can be used as preferred credentials, select Use Preferences and choose the credential set from the drop down box. If you select Enter Key, you must specify the SSH public and private key pair required to access the VM instances. If you select Key is in a file, click Browse and select the public / private key from a file.

- Oracle User: If you select Use Preferences, choose the preferred credentials from the drop down box. If you select Enter Password, you must enter the password for the Oracle user.

- Root User: If you select Use Preferences, choose the preferred credentials from the drop down box. If you select Enter Password, you must enter the password for the root user.

- Network Configuration: Click Add to select one or more network interfaces that will be associated with the VM instances. A network can be an IPoIB or EoIB network. In the Select Network window, you can choose:

- Tenant Networks: These are networks configured for each tenant to communicate with other servers within Exalogic or outside Exalogic.

- Service Networks: These are networks configured to communicate with other service providers such as ZFSSA or Exadata systems.

- Storage Configuration: You can associate one or more storage volumes to the VM instances that are to be created. Click Create. In the Create Storage Volumes window, enter the name of the storage volume, size, select the storage properties, and the number of volumes to be created and click Add.

- Advanced Configuration: You can optionally specify additional attributes for the VM instances. Click Add to add a key and value for the attribute.

9. After you have created the launch plan, you can add one or more VM instances that can use the launch plan. Select the launch plan you have created and click Add VM Instance. In the Add VM Instance window, specify the name and number of VM instances to be created. If you are adding more than one instance, the name you specify will be used as a prefix to generate a unique name for each VM instance. You can define configuration settings at the instance level and override the settings defined at the launch plan level.
To define instance level specific configuration settings, select the VM instance from the left panel. The Oracle VM Instance Configuration page appears. To define instance level settings, select the Override Common Settings checkbox to override the default launch plan level settings. Select the Oracle Compute Template, Shape, Network, and Storage Configuration.

10. In the Advanced Configuration region, you can optionally specify additional attributes. Click Add. In the Add Attributes window, specify the key and value for the attribute. In the Tags field, you can enter tags to identify the instance deployment request.In the Optional Network Configuration region, you can specify additional configuration parameters for the network defined in the Network Configuration region. You can specify a list of DNS servers, configure the network as the default gateway network, and configure the VM instance as a provider on the underlying selected service network. Click Next.

11. The Review page appears. Review the information entered so far and click Submit to submit the orchestration request or click Save as Deployment Plan to save the orchestration as a deployment plan that can be used for other orchestrations.

32.3 Viewing the Orchestration Details

To view the orchestration details, click on the Name link in the Services region of the Infrastructure - Oracle Compute Self Service Portal page.

Figure 32-4 Oracle Compute Orchestration Page

This page contains the following regions:

- General: This region shows the name of the Oracle Compute Site, the target name, the number of launch plans, CPU, and allocated memory.

- VM Instances: Lists the VM instances in the launch plan and the configuration for each VM instance which includes the status, shape, template, VNC URL, and IP address. Click on the VM Instance link to drill down to the VM Instance Home page. If the VM instance is up and running, select the VM Instance and click Shutdown to shut down the instance. If the VM instance is down, click Restart to restart the instance.

You can perform the following operations on this page:

- Start

- Stop

- Update

- Shutdown

32.3.1 Viewing the Oracle VM Instance Home Page

To view this page, click on the Name link in the VM Instances region in the Oracle Compute Orchestration Details page.

Figure 32-5 Oracle VM Instance Home Page

This page shows the detailed information for the VM instance. The name of the Oracle Compute Site with which this instance is associated, the number of CPUs, allocated memory, storage, networks, relative CPU utilization, and so on are displayed. You can do the following:

- Attach Storage: Use this option to attach storage to the VM instance. Select one or more storage volumes and specify an index for each volume. The index value must be between 1 and 10. Click Attach to attach the storage volume to the VM instance.

- Detach Storage: Select one or more storage volumes from the list and click Detach to detach storage from the VM instance.

- Edit VM Instance: Select this option to modify the shape and network configuration for the VM instance.

- Launch VNC Console: Select this option to launch a VNC Console.

32.4 Creating Networks

You can create network subnets that contain a range of VNet that can be reserved for VM instances. Click on the Network icon to navigate to the Networks page. You can create and edit tenant networks, view service networks, and reserve IP addresses in each network.

Figure 32-6 Oracle Compute Self Service Portal: Networks

Click Create to create an IPoIB subnet for a tenant network. See

32.4.1 Creating IPoIB Subnets for Tenant Networks

IPoIB networks are deployed on the private security domain. Multiple IPoIB virtual networks can be deployed on a security domain of the tenant. These IPoIB networks are not isolated from each other and can be created for each tenant.

To create an IPoIB subnet, follow these steps:

1. Select the Tenant Networks box and click Create. Enter the following details:

- Name: Enter the name of the tenant administrator user.

- vEthernet Name: Click the Search icon and select the VEthernet from the list.

- Creation Mode: This can be CIDR / IP Range or Global IP.

- CIDR: Enter the IP address for the subnet in the CIDR (Classless Inter-Domain Routing) format. A CIDR address includes the standard 32-bit IP address and it indicates how many bits are used for the prefix.
For example, an address of 206.13.1.48/25 indicates that the first 25 bits are used to identify the unique network. The remaining bits are available to identify the specific host. The network you specify must not be used by another EoIB network.

- Global IP: An IP Pool is a pool of public IP ranges made up of one or more IP Pool entries. If global IP pool is enabled in the site configuration, specify the global IP pool address number. If this number is specified, the IP address is allocated from a global pool of IP addresses.

- Ethernet Interface Index: Select this checkbox and specify the ethernet interface index number.

- Description: Enter a description of the EoIB network.

- IP Ranges: Click Add to add an IP address range in the format IP-IP. For example, 10.242.2.211-10.242.2.215.

2. Click Create to create the IPoIB subnet and return to the Networks page.

32.4.2 Viewing the Service Networks

The service networks that are available are listed here. The subnet, type, description, CIDR, and IP address range is displayed.

32.5 Creating Storage Volumes

Click on the Storage icon to view the Storage Volumes page. A storage volume object is a single volume that can be attached to an instance. On this page, the name of the storage volume, status, size, and its properties are displayed.

Figure 32-7 Oracle Compute Self Service Portal: Storage

Click Create. In the Create Storage Volume window, the name of the storage volume is displayed. Enter the size, description, and select a template for the volume. Click OK to create the storage volume.

You can take a snapshot or a copy of a storage volume and make the copy available to users belonging to another tenancy. Select a storage volume from the list and click Snapshot. In the Snapshot Storage Volume window, select a target tenant name in the Target Volume drop down field, and enter the name of the snapshot, specify the size, and a description for the snapshot. Click OK to create the snapshot and return to the Storage page.

32.6 Managing the Library

This page lists the templates and saved deployment plans that are available to the tenant user. Click the Library icon to access this page.

Figure 32-8 Oracle Compute Self Service Portal: Library

For each template, the name, attributes, quota assigned, and the size of the template is displayed. You can choose to view all the templates, templates available to public, or templates available for the selected tenancy.

32.6.1 Uploading a Template

A template is a copy of virtual hard disk with an installed operating system used to launch an instance. The template must be a whole disk image (including a partition table and kernel) stored in a tar archive, compressed with gzip. To upload an template, follow these steps:

1. Click Upload. The Template Management: Upload Template window appears. While uploading the template, the Template Scope can be:

- Public: The template will be available to all the users. If you select this option, enter the name of the template in the Name field.

- Tenant: The template will be available only to users belonging to the selected tenancy. If you select this option, select the Tenant in the Name drop down field and specify the name of the template. The template will be available to all users in the selected tenancy.

2. Specify any additional attributes that will be used when the service instance is provisioned.

3. In the Select Template field, select the template that is to be uploaded. The template you upload can either be present in your local disk or from the Software Library.

4. Click Upload to upload the template. The newly uploaded template will appear with the following details:

- Name: The name of the template. If the template is available to all users, the format of the name is /oracle/public/<template_name>. If the template is available only to users belonging a selected tenancy, the format is <tenant_name>/public/<template_name>.

- Attributes: Any user defined attributes that were specified when the template was uploaded.

- Quota: The quota specified for the template.

- Uploaded Size: The size of the template that has been uploaded.

- Total Size: The total size of the template.

- Decompressed Size: The size of the template in its decompressed state.

- Agent Configured: Indicates if the Management Agent has been configured for this template.

32.6.2 Deleting a Template or a Deployment Plan

To delete a template, select the template from the list in the Library region and click Delete. A confirmation message is displayed. Click Delete to confirm.

Deployment plans that have been saved for later deployment are displayed in the Saved Deployment Plans region. Select a plan and click Delete and click OK to confirm the deletion.

32.7 Discovering an Orchestration

You can use this option to discover any orchestrations that have been created externally without using Enterprise Manager.

To discover an orchestration, follow these steps:

1. From the Actions menu, select Discover, then select Orchestration.

2. A confirmation message is displayed. Click Submit to submit the request and discover the orchestration.

33 Managing the Oracle Compute Site and Associated Targets

This chapter describes how to view and manage an Oracle Compute Site and its associated targets such as Oracle Compute Cluster, Oracle Virtual Platform, and Oracle VM Instance. It contains the following sections:

- Viewing the Oracle Compute Site

- Managing Networks

- Creating a Storage Volume

- Creating a User

- Viewing the Oracle VM Instance Home Page

- Viewing the Oracle Compute Cluster Home Page

- Viewing the Oracle Virtual Platform Home Page

- Viewing the Oracle Server Home Page

33.1 Viewing the Oracle Compute Site

An Oracle Compute Site is a location running Oracle Compute Director with one or more clusters. To view the Oracle Compute Site Home Page, select All Targets from the Targets menu. In the Search panel on the left hand side, click Oracle Compute Site under Groups, Systems, and Services. The list of Oracle Compute Sites that have been discovered are displayed. Click on the Target Name link to drill down to the Home page.

Figure 33-1 Oracle Compute Site Home Page

This page contains the following regions:

Note:
This page displays metrics from Domain-0 (Control Domain) only.

- General: This region shows the following details:

- Number of targets being monitored

- Aggregated status of all the targets

- Number of clusters, virtual platforms, VM instances, and total number of CPU cores in the site

- Total server memory

- Total Dom0 memory available

- Oracle Compute Endpoint URL

- Graphite URL to monitor the Oracle Compute targets.

- Exalogic Elastic Cloud target if it has been discovered.

- Aggregated Dom0 CPU and Memory Utilization: This region shows the aggregated CPU, and memory utilization of all the targets in the site.

- Top Tenants: This region shows the top tenants in the site. From the View By drop down list, you can select:

- Usage: Shows the top usage by tenants in the site across vCPUs, memory, and storage. Click on the Tenant Name link to drill down to the Tenant Home page.

- Allowance: Shows the number of vCPUs, memory, and storage allocated to the top tenants in the site. Click on the Tenant Name to drill down to the Tenant Home page.

Note: This region will appear only if you the preferred credentials you specify are for a user with the EM_CLOUD_ADMINISTRATOR role.

- Resource Usage: This region shows how the physical resources are allocated to the tenants in terms of quota and the actual usage. Click on the quota allocation link to drill down to the Quota Home page.

- Member Instances: Lists all the member instances in the Oracle Compute site. For each member instance, the name of the Oracle VM Instance, the Oracle Virtual Platform, status, allocated memory, and number of vCPUs is displayed. You can use the query by example feature to filter the list of members displayed. Click on the Oracle VM Instance or the Oracle Virtual Platform link to drill down to the respective home pages.

- Aggregated Dom0 CPU and Memory Utilization: This chart shows the aggregate CPU and memory utilization by all targets in this site over the last 24 hours.

- CPU Utilization: This region shows the relative CPU utilization by each cluster. You can choose to view all the clusters or view the top 1 or 5 clusters.

- Memory Utilization: This region shows the memory utilization by each cluster. You can choose to view all the clusters or view the top 1 or 5 clusters.

- Incidents and Problems: This region shows any incidents or problems that have occurred over the last 7 days.

- Jobs: This region shows a summary of jobs whose start date is within the last 7 days.

From the Oracle Compute Site menu, the following options are available:

- Networking: See Section 33.2, "Managing Networks".

- Storage: See Section 33.3, "Creating a Storage Volume".

- User Management

- Tenants: See Section 31.2, "Creating a Tenant".

- Users: See Section 33.4, "Creating a User".

- Quota: See Section 31.4, "Defining Quotas".

- Image Management: See Section 31.5, "Managing Oracle Compute Templates".

- Shape Management: See Section 31.3, "Creating a Shape".

33.2 Managing Networks

An Exalogic machine includes compute nodes, storage appliance, switches, and other equipment to connect the compute nodes to your network. The network connections allow the servers to be administered remotely, enable clients to connect to the compute nodes, and enable client access to the storage appliance. For more information about Exalogic network configuration, refer to Oracle Exalogic Elastic Machine Owner's Guide.

In this release, Oracle Compute Service is extended to support InfiniBand networking. The network isolation is brought in by the following ways in the cloud infrastructure:

- Network isolation within the tenants. When you create tenants, private and public security domains are created. The private security domain is used for isolated communication within the tenant of the Exalogic rack. The public security domain is used for isolated communication between the tenant and the Ethernet infrastructure outside the Exalogic rack through NM2 Gateway. In both the public and private security domain, the communication is isolated only within that particular tenant and the security domain of that tenant.

- The service network created for instances to access the service provider ensures that the communication is allowed only between the service provider and the service consumer or between the service providers. The service network connectivity is not allowed for communication between the service consumers.

The networking formats that are supported are virtual Ethernets (vEthernets), flat networks, Network Address Translation (NAT), and network services cluster. A vEthernet is a virtual OSI Layer 2 network with VLAN support. vEthernets can facilitate isolation for networks for instances run by specific departments or business units. vEthernets in Oracle Compute have a one-to-one mapping with VLANs on the switching infrastructure and are typically associated with business units or departments.A flat network is a single IP routed domain, where any IP address is routable to any other. Protection of instances comes from security lists – software firewall on the Hypervisor. For isolation between virtual machines on such a network, Oracle Compute enforces security policy on the hypervisors themselves using security lists.

You can create the following types of networks:

- Tenant networks

- Service networks

- Infrastructure networks

33.2.1 Creating a Tenant Network

A tenant network provides an isolated or protected environment for deployment of virtual networks and VMs that interact with these virtual networks. In Exalogic, a tenant is a base construct that defines two isolated domains – public and private. Each domain has an InfiniBand partition key assigned to it. The public domain is used for deploying vlan-tagged virtual networks for enabling communication between the compute nodes and entities external to Exalogic that run on Ethernet. The private domain is used for deploying IB private networks for inter-compute node communications. You can create an:

- EoIB network: Public tenant network

- IPoIB network: Private tenant network

33.2.1.1 Creating an EoIB Network

An EoIB ((Ethernet over Infiniband) network is deployed on the public security domain and are associated with a VLAN. They are used to associate a tenant's VMs with a specific VLAN. EoIB is used for components inside the Exalogic machine rack to communicate with components external to the Exalogic machine rack. You can deploy multiple EoIB virtual networks on the public security domain of the tenant. These networks are not isolated from each other. Only the cloud administrator can create and manage EoIB networks as these networks subnets are defined outside the Exalogic machine.

To create an EoIB network, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Networking, then select Tenant Networks.

5. Select the tenant in which you want to create the EoIB network. From the Actions menu, select Create EoIB vEthernet.

6. Figure 33-2 Create EoIB vEthernet

Enter the following details:

- Name: Enter the name of the tenant administrator user.

- vLAN: Specify the VLAN ID (range 2 to 4095) for this network.

- Description: Enter a description of the EoIB network.

- Switch Ports: Select the switch port from the drop down list.

7. Click Create to create the EoIB network. The newly created network will appear on the Networks page.

33.2.1.2 Creating an EoIB Subnet

To create an EoIB subnet, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Networking, then select Tenant Networks.

5. Select the tenant in which you want to create the EoIB network. From the Actions menu, select Create EoIB Subnet.

Figure 33-3 Create EoIB Subnet

Enter the following details:

- Name: Enter the name of the tenant administrator user.

- vEthernet Name: Enter the vEthernet name.

- CIDR: Enter the IP address for the subnet in the CIDR (Classless Inter-Domain Routing) format. A CIDR address includes the standard 32-bit IP address and it indicates how many bits are used for the prefix.
For example, an address of 206.13.1.48/25 indicates that the first 25 bits are used to identify the unique network. The remaining bits are available to identify the specific host. The network you specify must not be used by another EoIB network.

- Gateway: Enter the IP address of the gateway.

- Ethernet Interface Index: Select this checkbox if you want to provide index numbers for vNets created.

- Description: Enter a description of the EoIB network.

- IP Ranges: Click Add to add an IP address range in the format IP-IP. For example, 10.242.2.211-10.242.2.215.

6. Click Create to create the EoIB subnet and return to the Networks page.

33.2.1.3 Creating an IPoIB Subnet

IPoIB networks are deployed on the private security domain and are used to associate VMs within a tenant. Multiple IPoIB virtual networks can be deployed on a security domain of the tenant. These IPoIB networks are not isolated from each other and can be created for each tenant. To create an IPoIB subnet, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Networking, then select Tenant Networks.

5. Select the tenant in which you want to create the EoIB network. From the Actions menu, select Create IPoIB Subnet.

Figure 33-4 Create IPoIB Subnet

- Name: Enter the name of the tenant administrator user.

- Creation Mode: This can be CIDR / IP Range or Global IP.

- CIDR: Enter the IP address for the subnet in the CIDR (Classless Inter-Domain Routing) format. A CIDR address includes the standard 32-bit IP address and it indicates how many bits are used for the prefix.
For example, an address of 206.13.1.48/25 indicates that the first 25 bits are used to identify the unique network. The remaining bits are available to identify the specific host. The network you specify must not be used by another EoIB network.

- Global IP: An IP Pool is a pool of public IP ranges made up of one or more IP Pool entries. If global IP pool is enabled in the site configuration, specify the global IP pool address number. If this number is specified, the IP address is allocated from a global pool of IP addresses.

- Gateway: Enter the IP address of the gateway.

- Ethernet Interface Index: Select this checkbox if you want to provide index numbers for the vNets created.

- Description: Enter a description of the EoIB network.

- IP Ranges: Click Add to add an IP address range in the format IP-IP. For example, 10.242.2.211-10.242.2.215.

6. Click Create to create the IPoIB subnet and return to the Networks page.

33.2.1.3.1 Editing the IPoIB Subnet

To edit the IPoIB subnet, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Networking, then select the IPoIB subnet that you wish to edit. The following details are displayed:

- Name

- CIDR

- Number of IP Addresses

- IP Ranges

- Total: The total number of usable IP addresses.

- Reserved: The number of allocated IP addresses.

- Used: The number of IP addresses that have been used by the instance.

- Failed Allocations: The number of IP address allocations that have failed since the VNet was created or updated.

5. Click Add in the IP Reservation region to add one or more IP reservations. In the Create IP Reservation window, enter the name and IP address for the reservation and click OK.

6. Select Edit from the Actions menu. In the Update IPoIB Subnet page, you can edit the Number of IP Addresses, Ethernet Interface Index, and Description. Click Edit to update the details and return to the previous menu.

33.2.2 Managing Service Networks

Service networks are created in Exalogic to provide shared services across multiple tenants. The shared services include access to storage, network, and other engineered systems. An example of external service provider is a ZFS storage appliance that provides storage shared across tenants.

An InfiniBand partition is allocated for a service network. The compute nodes of the cluster can be defined as Providers or Consumers. The providers are given full membership to the InfiniBand partition. Whereas, the consumers are given limited membership to the InfiniBand partition. Through this service network, the consumers can communicate with the providers but cannot communicate with each other. Providers are usually common services such as storage whose services must be available to more than one tenant.

Each service network is automatically allocated with an InfiniBand partition and no two service networks share the partition. Service networks are created by cloud administrators.

There are two types of service networks:

- IPoIB Service Networks: The IPoIB service network is used for communication with a service provider within the Exalogic system or connected directly to the InfiniBand fabric such as Exadata. For example, shared storage from the Oracle ZFS Storage Appliance.

- EoIB Service Networks: The EoIB service network is used for communication with a service provider located outside the Exalogic system.

33.2.2.1 Creating a Service Network

A service network provides a certain service to the user. Service networks are required for a common service that needs to be available to more than one tenant. For example, ZFS appliance providing an access to shared storage.

To create a service network, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Networking, then select Service Networks. From the Actions menu, select Create Service and enter the following details:

- Name: Enter the name of the tenant administrator user.

- Provider Nodes: Select the checkbox to add all existing nodes to the list of provider nodes for the service network.

- Description: Enter a description of the service network.

5. Click Create to create the service network and return to the Networks page.

33.2.2.2 Connecting to an Engineered System

You can connect the Exalogic machine to an Exadata server using the Infiniband fabric. To connect to an engineered system, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Networking, then select Service Networks. From the Actions menu, select Connect Engineered System and enter the following details:

- Name: The name of the tenancy.

- Partition Key: An InfiniBand partition defines a group of InfiniBand nodes that are allowed to communicate with one another. You can use InfiniBand partitions to increase security by implementing network isolation on Exalogic machine's InfiniBand fabric. In addition, you can associate InfiniBand nodes with specific VLANs. A partition key is a unique ID assigned to an InfiniBand partition. Specify an external partition key that is to be associated with the service network. The partition key you specify must not be used by a different service network.

- Foreign Partition: If this checkbox is selected, a service network that is associated with an externally defined partition key is created.

- Provider Nodes: Select this checkbox to add provider nodes.

- Description: Enter a description of the service network.

5. Click Create to create the service network and return to the Networks page.

33.2.3 Managing Infrastructure Networks

Infrastructure service networks are service networks that are created by Exalogic Configuration Utility (ECU) while configuring the Exalogic machine. These networks are used to provide network access to leverage some of the basic services available on Exalogic platform. These are the control networks that are jointly used by the customer deployed instances and the Exalogic Control.

The following infrastructure networks are created on the switches and zfs storage (except for the EoIB networks):

- IPoIB Management: This network is used for Oracle Compute pxe services and flexboot is configured for this partition.

- IPoIB Storage: Used for all Oracle Compute related ZFS access from Dom0.

- IPoIB Instance Storage: Used for control VMs (read/write) and client VMs (read only) to access ZFS storage.

- EoIB Management Network: Used for Oracle Compute API service access and Control VMs.

- Default: IPoIB default partition (0x7FF).

33.3 Creating a Storage Volume

A storage pool represents a single logical storage space (an NFS export) on a storage server. The name of the storage pool, the total size (physical) of the storage pool, the amount of space used, the path and the properties of the storage pool are displayed.

A storage volume object is a single volume that can be attached to an instance. On this page, the name of the storage volume, status, size, Oracle Virtual Servers with which it is associated, and its properties are displayed. To create a storage volume, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Storage to view the Storage Pool Home page. In the Storage Pool region, the name of the storage pool, size, status, path, and properties or characteristics of the pool are displayed.

Figure 33-5 Storage Pool

5. The storage volumes in the Oracle Compute site are displayed. A storage volume object is a single volume that can be attached to an instance. Each volume has a size that is available to all users in the selected tenancy. The storage volume can be shared across multiple instances. Click Create to create a new storage volume.

Figure 33-6 Create Storage Volume

6. In the Create Storage Volume window, enter the name (in the format <tenant_name/public/<storage_vol_name>, size, description, and optionally select a template for the volume. Click OK to create the storage volume.

33.3.1 Creating a Storage Volume Snapshot

You can take a snapshot or a copy of a storage volume and make the copy available to users belonging to another tenancy. To create a storage volume snapshot, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home.

3. Click on the Oracle Compute Site link in the left panel. The list of Oracle Compute sites that have been registered are displayed. Click on an Oracle Compute Site to drill down to the Oracle Compute Site Home page.

4. From the Oracle Compute Site menu, select Storage to view the Storage Pool Home page. The name of the storage pool, size, status, path, and properties or characteristics of the pool are displayed.

5. The storage volumes in the Oracle Compute site are displayed. Select a storage volume from the list and click Snapshot.

6. In the Snapshot Storage Volume window, select a target tenant name in the Target Volume drop down field, and enter the name of the snapshot, specify the size, and a description for the snapshot. Click OK to create the snapshot and return to the Storage page.

33.4 Creating a User

A user is an entity within the Oracle Compute Site that is able to make requests. Each user is associated with one tenant.

To create a user, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_CLOUD_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home and navigate to the Oracle Compute Site Home page.

3. From the Oracle Compute Site menu, select User Management, then select Users.

4. The User Management page appears. Click Create. The Add User window appears.

Figure 33-7 Add User Page

5. Enter the Role Type which can be one of the following:

- Cloud Administrator: A user with this role can discover targets, create users and perform other setup operations. For more details, refer the Enterprise Manager Cloud Administration Guide.

- Tenant Administrator: A user with this role can request new instances, add one or more tenant users, and perform operations such as assign quotas to users.

- Tenant User: A user with this role can request new instances.

6. In the Username field, depending on the user role you are creating, the user name must be entered in the following format:

- Cloud Administrator: /cloud/<user_name>

- Tenant Administrator: /<tenant_name>/<tenant_admin_name>

- Tenant User: /<tenant_name>/<tenant_user_name>

7. Enter the full name of the user, the password, and email address.

8. In the Login Enabled field, select True. This field allows administrators to enable or disable a user's login.

9. Click Add. The newly created user will appear on the User Management page.

33.5 Viewing the Oracle VM Instance Home Page

An Oracle VM Instance is an instantiation of a machine image running as a virtual machine. Instances have attributes such as allocated RAM, number of CPUs available, and attached network interfaces. Instances are created via an orchestration that specifies the desired set of hosts, which image lists they are to be launched from and placement relationships that exist between them. To view the Oracle VM Instance Home page, click on the Oracle VM Instance link on the Oracle Compute Site Home page.

Figure 33-8 Oracle VM Instance Home Page

This page contains the following regions:

- General: This region shows the Oracle Compute Site, Oracle Compute Cluster, Oracle Server, Oracle Virtual Platform in which the instance is running, and the Oracle Compute Orchestration associated with this instance. You can click on the link to drill down to any of the home pages. It also shows the target name, number of CPUs, allocated memory, shape, quota (if set), VNC URL, IP address, and the DNS zone.

- Availability: Shows the availability of the instance over the last 24 hours.

- Relative CPU Utilization: Shows the relative CPU utilization by the virtual machine.

- Overview of Incidents and Problems: This region lists any incidents and problems that have occurred over the last 7 days.

- Network: Lists the name of the network interface and the MAC address.

- Storage: Lists any storage volumes that are present.

33.6 Viewing the Oracle Compute Cluster Home Page

An Oracle Compute cluster is a group of at least three physical nodes running Oracle Compute software on the same Ethernet domain. In a typical multi-cluster configuration, a router links two or more subnets and broadcast domains, one per cluster. One or more clusters make a site. To view the Oracle Compute Cluster Home page, click on an Oracle Compute Cluster link in the Oracle Compute Site Home page.

Figure 33-9 Compute Cluster Home Page

This page contains the following regions:

Note:
This page displays metrics from Domain-0 (Control Domain) only.

- General: This region shows the aggregated status of all the targets in the cluster, the Oracle Compute Site to which this cluster belongs, the number of virtual platforms and VM instances in the cluster, the total number of CPU cores, the total server memory, the total Dom0 memory available, and the target name.

- Aggregated Dom0 CPU and Memory Utilization: This region shows the aggregated CPU and memory utilization over the last 1 hour.

- Member Instances: Lists the Oracle VM instances in the cluster. Click on the Oracle VM Instance or Oracle Virtual Platform link to drill down to respective home pages.

- CPU Utilization: This region shows the CPU utilization by each virtual platform in the cluster. You can choose to view all or the top 5 virtual platforms. Click on the Oracle Virtual Platform link to drill down to the home page.

- Memory Utilization: This region shows the memory utilization by each virtual platform in the cluster. You can choose to view all or the top 5 virtual platforms. Click on the Oracle Virtual Platform link to drill down to the home page.

- Incidents and Problems: This region shows any incidents or problems that have occurred over the last 7 days.

33.7 Viewing the Oracle Virtual Platform Home Page

Click on an Oracle Virtual Platform link on the Oracle Compute Cluster Home page to drill down to this page.

Figure 33-10 Oracle Virtual Platform Page

This page contains the following regions:

- General: This region displays the name of the Oracle Compute Site and Oracle Compute Cluster to which the Oracle Virtual Platform belongs. You can click on any of these links to drill down to the respective home page. It also shows the Dom0 allocated memory, the target name, and the Oracle Compute name.

- CPU Utilization: This region shows the CPU utilization by the virtual platform over the last 24 hours.

- Members: This region lists all VM instances that are running on this virtual platform, their status, and the memory allocated to each virtual server. Click on the Oracle VM Instance or Oracle Virtual Platform links to drill down to the respective home pages.

- Memory Utilization: This region shows the memory utilization by the virtual platform over the last 24 hours.

- Network Activity: This region shows the network activity by the virtual paltform over the last 24 hours.

- Overview of Incidents and Problems: This region shows any incidents or problems associated with the Oracle Server target.

- Availability: The chart in this region shows the status of the target over the last 24 hours.

33.8 Viewing the Oracle Server Home Page

Click on an Oracle Server link in the Oracle Virtual Platform Home page to drill down to this page.

Figure 33-11 Oracle Server Home Page

This page contains the following regions:

- General: This region shows the Oracle Compute Site, Oracle Compute Cluster, and the Oracle Virtual Platform in which the server is present. It also shows the clock frequency, target name, number of CPU sockets, number of CPU cores per socket, number of CPU threads per core, total number of CPU cores, the total memory, and the local disk space.

- Availability: The chart in this region shows the status of the target over the last 24 hours.

- Overview of Incidents and Problems: This region shows any incidents or problems associated with the Oracle Server target.

Part XII

Dynamic Resource Provisioning

This section covers the dynamic resource provisioning feature.

It contains the following chapters:

- Chapter 34, "Dynamic Resource Provisioning with Oracle VM Server for SPARC"

- Chapter 35, "Getting Started with Dynamic Resource Provisioning"

- Chapter 36, "Provisioning Resources in a DBaaS Cloud"

- Chapter 37, "Dynamically Provisioning Resources in an MWaaS Cloud"

34 Dynamic Resource Provisioning with Oracle VM Server for SPARC

Oracle Enterprise Manager Cloud Control integrates with Enterprise Manager Ops Center to create and manage virtual datacenters (vDC). Within the vDC, a vServer appears to users as a complete system, which they can optimize on demand as a DBaaS or MWaaS private cloud.

34.1 Integration for a PaaS Solution

In Oracle Enterprise Manager Ops Center, the IaaS cloud platform service is a virtual datacenter (vDC), a virtual environment supported by pooled servers, storage, and network resources. A cloud administrator sets up the vDC to run Oracle VM Servers for SPARC (logical domains). Enterprise Manager Cloud Control users are creating vServers in the logical domains automatically, as needed. Each vServer draws its requirements from the resources of the vDC.

This section explains how to create the vDC in Enterprise Manager Ops Center and how to connect it to Enterprise Manager Cloud Control.

34.1.1 Prerequisites

- Enterprise Manager 12c Cloud Control Release 5 with Virtual Service Adaptor configured to connect to Ops Center's Enterprise Controller. See Getting Started with Dynamic Resource Provisioning.

- Enterprise Manager Ops Center Release 3 with managed storage and network assets. See Oracle Enterprise Manager Ops Center Installation for Oracle Solaris Operating System and Configure Reference for information about installing the product and discovering assets.

- Oracle Enterprise Manager Ops Center Client Kit, which includes modifications to enable communication between the two software products. This kit is available from My Oracle Support to https://support.oracle.com/epmos/faces/PatchDetail?patchId=21190506.

The minimum requirement for Ops Center is the co-located configuration: one system hosts the Enterprise Controller, one Proxy Controller, and an embedded Oracle database.

- Requirements for Enterprise Controller:

- A minimum of T4-1 Sun Server

- Same or higher version of Oracle Solaris 11 as the version to be provisioned on vServers running Oracle VM Server for SPARC. Supported versions are Oracle Solaris 11, 11.1, and 11.2 but, for optimal performance use the latest SRU of Oracle Solaris 11.2.

- Requirements for Proxy Controller:

- Co-located with Enterprise Controller or running in a system with the same minimum requirements for server, network, and operating system as for the Enterprise Controller.

- Requirements for Oracle VM Server for SPARC control domain:

- Oracle VM Server for SPARC 3.1 or later

- Oracle Solaris 11, 11.1, and 11.2. The version must be the same or later than the version to run in the vServer. To provide different versions of Oracle Solaris 11, create a control domain for each operating system.

- For optimal performance between storage elements and control domains, equip each server that hosts a control domain with a Fibre Channel HBA of at least 4 Gb and a 10 Gb Ethernet card. A 1 Gb Ethernet card is the minimum.

- The right size of networks and virtual assets is not uniform. This document makes recommendations but your purposes and site requirements affect them. For a discussion of sizing, see the Oracle blog for some good practices in tuning resources for virtual assets at https://blogs.oracle.com/jsavit/entry/best_practices_top_ten_tuning.

- Requirements for Oracle VMS Server for SPARC logical domain:

- Oracle VM Server for SPARC 3.1 or later

- The version of Oracle Solaris that is available in the Ops Center OS image repository.

- Requirements for storage resources:

- Dedicated LUNs exposed only to appropriate WWNs. The LUNs must be fully-provisioned, not thin-provisioned. You can use Fibre Channel LUNs or iSCSI LUNs or both.

- For Fibre Channel LUNs, create at least one SAN static storage library.

- For iSCSI LUNs, a SAN dynamic storage library is created when you discover the storage server; however, you cannot use this library for the vDC. Create at least one static SAN storage library. Use a 10 Gb Ethernet network connection and tune the number of iSCSI connections. For 8 threads/connection: iscsiadm modify initiator-node -c 8.

- For optimal performance between storage elements and control domains, equip each server that hosts a control domain with a Fibre Channel HBA of at least 4 Gb and a 10 Gb Ethernet card. A 1 Gb Ethernet card is the minimum.

- Requirements for networks:

- A fabric backed by an isolated Ethernet switch or a set of non-routable VLANs spanning multiple network switches to provide separate interfaces to each control domain using the dedicated VLAN IDs that provision virtual networks.

- A dedicated network domain. Do not use the Default network domain.

- At least one public network to provision OS and to access vServers. Public networks supply a block of IP addresses for provisioning the vServers. The number of IP addresses equals the number of vServers that can be supported. Consider the size of the network that can accommodate all your current and future requirements. Class C (for example, 10.0.0.1/24) networks enable you to create 256 vServers, Class 16C networks (for example, 10.0.0.2/20) enable you to create 4096 vServers.

- Private networks for Clusterware and internal host connectivity.

- Requirement for software libraries:

- Place the libraries on a storage server with high transfer rates.

- To provision an OS version, the Oracle Solaris 11 Software Update Library must contain the packages for that version. This repository is created during the product installation. In addition, you must download the Oracle Solaris 11 SRU library. Ensure that the master IPS repository (MSR) download is complete.

- Limit the Oracle Solaris 11 Software Library to versions of releases and SRUs that are in active use.

- Add packages from client kit to the Oracle Solaris 11 Software Library.

34.1.2 Overview of the Configuration of PaaS Solution

To set up the PaaS solution, you perform tasks on each component of the solution:

- Configure Enterprise Manager Cloud Control

- Obtain the Client Kit

- Configure Enterprise Manager Ops Center

34.1.2.1 Configure Enterprise Manager Cloud Control

The Enterprise Manager's Virtual Service Adapter is the interface between Enterprise Manager and Enterprise Manager Ops Center. To configure the integration, the main component of Enterprise Manager Ops Center, the Enterprise Controller, is added as a staging server, as described in Adding the Stage Server.

When the configuration of Oracle Enterprise Manager Ops Center is complete, use the following information to configure Enterprise Manager Cloud Control:

- IP address of the Enterprise Controller

- User name and password of the cloud user account

34.1.2.2 Obtain the Client Kit

Go to https://support.oracle.com/ to obtain the Ops Center Client Kit, p21190506_121050_Generic.zip. The kit is also available in the OC DVD bundle.

The kit contains packages that provision logical domains, modified to enable PaaS operations, and a script:

- ORCLsysman-iaas-cli.pkg

- ORCLsysman-paas-cli.pkg

- post-script-paas-$<post-script-paas.version>.p5p

Extract the files in the compressed file to a location of your choice. These packages and script will be uploaded to Ops Center's repository for Oracle Solaris 11 and used in an OS Update Profile.

34.1.2.3 Configure Enterprise Manager Ops Center

The following are the major tasks needed to configure Enterprise Manager Ops Center:

1. Configure Resources for vDC

2. Set Up and Configure a Virtual Data Center

3. Set Up and Configure a Server Template

4. Validate the Integration and PaaS

It might take 2-3 hours to complete all of the tasks. You can perform some of the tasks simultaneously, that is, you do not have to wait for one job to complete before starting another one.

34.2 Configure Resources for vDC

A vDC relies on pools of networks, storage, and control domains. It provisions its servers from images in a current OS repository according to profiles in the repository. Log in as a user with the Ops Center Admin, Storage Admin, Virtualization Admin, and Cloud Admin role or root to configure the resources.

- Add Client Kit Contents to the Software Library for Oracle Solaris 11

- Prepare Network Resources for the vDC

- Prepare Storage Resources

34.2.1 Add Client Kit Contents to the Software Library for Oracle Solaris 11

The package that enables the PaaS solution is post-script-paas-$<post-script-paas.version>.p5p. This file is in the compressed file you downloaded from My Oracle Support and resides in the directory on the Enterprise Controller where you extracted the contents of the compressed file. This procedure imports the file into Ops Center's Oracle Solaris 11 repository so that it can enable communication between the Enterprise Manager Cloud Control staging server and the Ops Center resources.

Use the Add Content action to add ISO image files to the Oracle Solaris 11 Software Update Library manually.

1. Locate the image in the new repository.

2. Expand Libraries in the Navigation pane.

3. Click Software Libraries, then click Oracle Solaris 11 Software Update Library.

4. Click Add Content in the Action pane.

5. In the Repository URL field, enter the location of the file on the Enterprise Controller using the syntax: file:///<fullpath>/post-script-paas-$<post-script-paas.version>.p5p. Complete the path and version based on your file.
If credentials are required in your environment, specify the system's credentials, SystemDefinedSupportCredential.

Figure 34-1 Specify Repository

6. When the job is completed, the file is listed in the Contents tab of the Oracle Solaris 11 Software library. To verify, open the Oracle Solaris 11 Software Library Contents tab and search for PaaS.

34.2.2 Prepare Network Resources for the vDC

Fabrics are the physical infrastructure, consisting of network interface cards and network switches. Network domains are the logical infrastructure, combining network resources from at least one fabric. The networks used by virtual assets are created from the VLAN IDs managed by a network domain. The physical fabrics support these virtual networks, through the network domain, in a manner that depends on their type. To supply network resources to a vDC, you create a network domain from an appropriate fabric.

You must have the role of Network Admin to create network domains.

34.2.2.1 Identify a Fabric

To see the available fabrics, expand Networks in the Assets pane. Select Fabrics. For each fabric, the Dashboard in the center pane includes a Management Capability field. You have these options for providing physical network resources to a new network domain:

- Use an existing host-managed fabric.

- Convert an unmanaged fabric to host-managed and then use it.

- Create a new host-managed fabric.

- Use an unmanaged fabric.

To convert an unmanaged fabric to a host-managed fabric, use the Assign VLAN ID Range action. Specify a range that matches VLANs on the isolated switch that supports the fabric. If the fabric is not supported by an isolated switch, you can use an arbitrary VLAN ID range representing configured, non-routed VLANS, for example, 1001-1200.

Perform the following steps to create a new host-managed fabric:

1. In the Navigation pane, navigate to Networks, then select Fabrics from the drop-down list.

2. In the Actions pane, click Define Ethernet Fabric.

3. In the wizard, enter a name in the Fabric Name field. Enter a description. Click Next

4. Enter the range of VLAN IDs. If the fabric is supported by an isolated switch, specify a range that matches the switch's VLANs. If the fabric is not supported by an isolated switch, use an arbitrary VLAN ID range, for example, 1001-1200.

5. Select the networks to be associated with the fabric, then click Next.

6. Review the Summary, then click Finish. The new fabric is host-managed

To use an unmanaged fabric, assign a set of its public networks as private networks or convert the fabric to an host-managed fabric.

34.2.2.2 Create a Network Domain

After Ops Center manages the physical fabric, its network resources are in the system-defined Default Network Domain, but you cannot use the Default network domain for a virtual datacenter. Instead, create a network domain specifically to support a server pool that contains a vDC.

A network domain is a container for networks and handles the relationship between the physical fabrics and the server pool. The fabrics provide network resources such as links and IP subnets. Within the network domain, networks that have been discovered or specified are available for assignment. These are called public networks. Their network resources have been defined. Another type of network is dynamic, that is, the network is created when it is needed, using an IP address space available to the network domain. Because they exist only for a specific purpose and only within a specific network domain, they are called private networks.

To use virtual datacenters, the network domain must provide private networks. To use existing public networks for a virtual datacenter, add each network to the network domain, making it a static private network, because existing public networks already have an IP subnet addresses and VLAN IDs.

Note:
Do not attempt to use the Default Network Domain to support a virtual datacenter. Although you are not prevented from specifying the Default Network Domain, its networks will not be available for selection.

Although the network domain is providing the networks to the server pools, this is only a logical association using VLAN IDs. To use the network resources, each physical server that supports the control domains in the server pool must have a physical connection to a fabric in the network domain.

1. Expand Networks in the Navigation pane.

2. The Standard views shows Networks. The Default Network Domain is selected.

Figure 34-2 Networks Navigation

3. Click Create Network Domain in the Actions pane.

4. In the Identify Network Domain pane, enter the name and description of the network domain. You can also add tags.

5. In the Add Fabrics step, choose at least one fabric.

6. Accept the default value for the Network Creation Limit. This value is the maximum number of dynamic private networks that can be in use simultaneously and is set by the number of VLAN IDs in the range of VLAN IDs you set.
A private network uses an IP address from the pool of available IP addresses in the network domain. To exclude IP addresses that your organization is using for other purposes, specify them in the Reserved IP Address Ranges table. These addresses will not be available to dynamic private networks.

7. In the Associate Networks step, add existing networks to the new network domain. Add the network you want to use as the public network. This network will be used to provision vServers.

8. Review and click Finish.
When the job is completed, the new network domain is listed in the Navigation pane.

34.2.2.3 Configure Public Network

Select the public network and then select Edit Managed IP Ranges. Specify a range or a series of IP addresses, as provided by your network administrator. These addresses will be used later to support vServers.

34.2.3 Prepare Storage Resources

When Ops Center discovers a storage device, it creates a dynamic storage library, but these libraries cannot be used to support a vDC. Instead, create static storage libraries:

- Create a NAS storage library to store the metadata of the control domains. This storage is exclusive for the vDC. Do not use this library for any other purpose.

- Create at least one SAN library to store the operational data.

The storage libraries are block storage, which use Logical Unit Numbers (LUNs). The LUNs are backed by Fibre Channel disks or iSCSI disks in the form of LUNs.

SAN LUNs are associated with Fibre Channel or iSCSI target groups. Fibre Channel targets use a dedicated optical network and iSCSI targets use the IP network, but in both protocols, the targets in a target group expose one or more LUNs as a storage resource for the target's initiators.

For both protocols, Oracle Enterprise Manager Ops Center acts as the initiator. To allow the target group and Oracle Enterprise Manager Ops Center to identify each other as eligible initiators and targets, each one's Fibre Channel World Wide Number (WWN) or iSCSI IQN must be registered with the other one. Oracle Enterprise Manager Ops Center recognizes the targets because the WWNs or IQNs of the storage server are recorded when the storage server is discovered. Any LUNs that have been assigned to that WWN or IQN are eligible to be used in a storage library.

34.2.4 Create a NAS Storage Library

These are the tasks for setting up a NAS storage library:

1. Identify the NAS Share

2. Create a NAS Storage Library

34.2.4.1 Identify the NAS Share

The NFS share is a file system on a NAS storage device. You can view the shares on managed storage servers from the Oracle Enterprise Manager Ops Center user interface.

1. Expand Assets in the Navigation pane and click

2. Click All Assets to expand the section.

3. Click on the NAS storage server in the Storage section.

4. In the center pane, click the Storage Shares tab.

Figure 34-3 Storage Shares Tab

5. View the shares and choose one with capacity to support a server pool. You will use this share in the following procedure.

34.2.4.2 Create a NAS Storage Library

1. Expand Libraries in the Navigation pane. The new library will be created in the Filesystem Storage section.

2. Click New NAS Software Library in the Actions pane.

3. Enter a name for the library and a description. For example, identify how the new library will be used.

4. Do not associate a server pool with the new storage library. The server pool will be created later. Click Next.

5. By default, the wizard displays the option for using an exported share of a storage device. Because this procedure has set up an NFS share, select Other.

6. Enter the URL or IP address for the NFS server in the URL field.

Figure 34-4 Identify Storage

7. (Optional) You can specify the version of NFS that this storage uses. By default, Oracle Enterprise Manager Ops Center uses the operating system's default NFS version. To specify a different version, allow the version to be changed.

1. Select Override NFS Version.

2. Click the drop-down list of NFS versions. Select a version.

Figure 34-5 Override NFS Version

8. Click the Next button to review a summary of the storage library.

9. Click the Finish button to submit the job.

When the job is completed, you can see the new storage library in the Libraries section of the Navigation pane.

34.2.5 Create SAN Storage Libraries using Fibre Channel LUNs

This section describes how to set up a static block storage library, backed by Fibre Channel LUNs. The number of LUNs in the storage library determines the number of virtual hosts that the library can support

34.2.5.1 What You Will Need

You will need the following to set up and use a block storage library:

- LUNs backed by a managed SAN server using the Fibre Channel protocol

- The role of Storage Admin

To create LUNs on the storage server, you must have the user account and password to log into the storage server and create the LUNs as targets.

34.2.5.2 Configure the Storage Server

If you need to create LUNs and make them available to Oracle Enterprise Manager Ops Center, see the storage server's documentation for instructions in how to perform the following:

- Configure the initiator and the targets. The initiator (Oracle Enterprise Manager Ops Center) must be able to recognize the targets (LUNs) and the targets must be able to recognize the initiator. Oracle Enterprise Manager Ops Center recognizes the targets because the WWNs of the storage server are recorded when the storage server is discovered. Any LUNs that have been assigned to that WWN are eligible to be used in a storage library. On the storage server, you must specify Oracle Enterprise Manager Ops Center's WWN as an initiator and assign LUNs to that initiator.

- Enable multipathing on the Fibre Channel ports. Multipathing is enabled by default on Oracle Solaris x86-based systems, but is disabled by default on Oracle Solaris SPARC-based systems. Use the stmsboot -e command to enable multipathing.

- Create new LUNs. It can take several hours for a new LUN to be displayed in Oracle Enterprise Manager Ops Center's user interface.
To verify iSCSI LUNs are available to the virtualization host, use the following command:

# iscsiadm list target -S

To verify Fibre Channel LUNs are available to the virtualization host, use the following command for Oracle Solaris 11:

# fcadm lu

34.2.5.3 Create a Static Block Storage SAN Library

To specify the LUNs in a storage library, you specify the server pool that will use the storage library and then select LUNs from among the LUNs available to the server pool.

1. Expand Libraries in the Navigation pane.

Figure 34-6 Storage Libraries Navigation

2. Click New SAN Storage Library in the Actions pane.

3. Enter the name and description of the library. Click Next.

4. Select Associate the new library with the selected items and LUNs sharing to LDOMs. To create RAC instances, the SAN library must support LDom sharing in order for each logical domain to get access to its storage through any of the domains in the server pool. Click Next.

Figure 34-7 Identify Library Associations

5. In the Identify LUNs step, select at least one LUN from the list of available LUNs. You can select one LUN and then add more LUNs later. Click Next.

6. Review the details of the storage library in the Summary pane. Click Finish to submit the job.

When the job is completed, the new storage library is displayed in the Libraries section of the Navigation pane in the Static Block Storage section. The center pane shows the library's Summary tab.

34.2.6 Deploy Control Domains

- Create a Provisioning Profile for Oracle VM Server for SPARC

- Create an OS Configuration Profile for Oracle VM Server for SPARC

- Create an Install Server Deployment Plan

- Apply the Install Server Deployment Plan

34.2.6.1 Create a Provisioning Profile for Oracle VM Server for SPARC

This profile provisions the Oracle VM Server for SPARC with Oracle Solaris 11 OS. Ensure that the MSR import job is finished before creating the provisioning profile.

1. Select Plan Management section and expand Profiles and Policies in the Navigation pane.

2. Select OS Provisioning profile and click Create Profile in the Actions pane.

3. Enter the following details in the Create OS Profile - OS Provisioning wizard:

- Name and description of the profile. In this case, the name of the profile is control_domain_osp.

- Select Oracle VM Server for SPARC as the Subtype and V class as the target type.

Figure 34-8 Identify Oracle VM Server Provisioning Profile

Click Next.

4. Select the Oracle Solaris and Oracle VM Server (LDom) version. Select the following parameters, then click Next:

- For the Oracle VM Server for SPARC version, select an Oracle Solaris 11 SRU that includes your Oracle VM Server for SPARC version. For example, Solaris 11.2 SRU 11.5.0 (LDom 3.2.0.1). If you do not see the Oracle Solaris 11 release you want, verify that the MSR import is complete or select a different Oracle Solaris 11 version that is supported by your MSR.

- For the Systems Software Group, select solaris-small-server. If you have a complicated environment, you can choose a large server.

Figure 34-9 Specify OSP Parameters

5. Keep the default values for the OS setup parameters or edit the language, time zone, and NFS4 Domain values for your environment.

6. Enter the root password and confirm the password.

7. Clear the Manual Net Boot option and the Save NVRAMRC option.
Click Next.

8. Specify the user account for logging into the control domain. Create a user account to SSH to the OS after provisioning. Provide a user name and password for the account, then click Next.

Figure 34-10 Specify the User Account

9. Do not use iSCSI disks for provisioning Oracle VM Server for SPARC. Deselect Use iSCSI Disk and click Next.

10. Edit the swap size, then click Next.
Use a minimum of 8192 MB for the swap size. The root (/) and a swap file system are defined by default but you must change the swap size, according to recommendations for sizing and performance. In general, each logical domain that this control domain supports will need 1 GB.

Figure 34-11 Specify the File System Layout

11. Select DNS as the naming service in place, and provide the details, including the server names. Naming service is not required. Click Next.

12. Review the parameters selected for the profile and click Finish to create the OS provisioning profile.

The profile appears in the center pane and in the Profiles and Policies section of Plan Management.

34.2.6.2 Create an OS Configuration Profile for Oracle VM Server for SPARC

The OS Configuration profile lets you define the network interface that you want to use on the operating system. The first interface you define is the boot interface and also the primary interface. You can add more than one network interface. When you apply the plan to a target, you can select which network interface is the primary interface and define the IP address.

- Control domain configuration such as CPU Threads or Whole-cores, memory, Crypto Units, Virtual Console Port Range and Virtual Disk Server name.

- Options such as enabling MPxIO and SR-IOV, detaching the unused buses, and saving NVRAMRC values.

- OS management option to install the Agent Controller.

- Networking options to use IPMP or Link Aggregation.

The recommended minimum configurations for the control domain are described in the following sections.

34.2.6.2.1 CPU Resource Allocation

The number of system CPUs determines the number of control domain CPU threads:

- For less than 16 system CPUs, set the control domain CPU Threads to 2.

- For between 16 and 64 system CPUs, set the control domain CPU Threads to 4.

- For more than 64 system CPUs, set the control domain CPU Threads to 8.

You can select to allocate CPU resources either as CPU Threads or Whole-core. Whole-core is the default value in Oracle Enterprise Manager Ops Center. When you allocate as Whole-core, all the CPU Threads in the core are allocated to the control domain. For example, when you allocate two cores in UltraSPARC T2 servers, the control domain is allocated with all the 16 CPU Threads in the core. You can also set the maximum cores constraint when you select Whole-core allocation type. The maximum number of cores constraint specifies the number of cores that must be assigned to the domain.

34.2.6.2.2 Crypto Units

Crypto units are the resources on the supported platforms that provide high-performance, dedicated cryptographic engines. These can be used for tasks such as encrypting and decrypting network traffic between a Secure Socket Layer (SSL) web server and an application server.

Each CPU core has one Crypto unit and four or eight CPU threads. Because the Crypto unit is part of a core, the Crypto unit is bound only to domains that contain at least one thread from the parent core. Crypto units cannot be split as CPU threads are split. For example, you have assigned the Crypto unit for the first CPU core to the control domain. When a new logical domain is assigned a thread from the first CPU core and the Crypto unit for that core is already assigned, the control domain cannot assign that Crypto unit to the new logical domain. Allocation of Crypto units might not succeed, especially when a core is split between domains. An Oracle VM Server might allocate fewer Crypto units or none at all.

You must assign at least one Crypto unit to the control domain because the Crypto unit enables domain migration.

The use of Crypto Units is not mandatory although it might speed the logical domain migration. Allocation of Crypto Units might not be available in all the hardware.

34.2.6.2.3 RAM

The amount of RAM for the control domain depends on the size of the system RAM and the load of the system.

- For system RAM less than 8 GB, set the control domain's RAM to 1 GB.

- For system RAM between 8 GB to 16 GB, set the control domain's RAM to 2 GB.

- For system RAM greater than 64 GB, set the control domain's RAM to 8 GB.

In Oracle Enterprise Manager Ops Center the default value is 4 GB as a recommended starting point for logical domains, and the minimum value is 1GB.

34.2.6.2.4 NVRAMRC Value

Automatic booting on a SPARC system uses the default boot device that is defined in the non-volatile RAM (NVRAM). User-defined commands that are executed during start-up are stored in the NVRAMRC file in the NVRAM. When you run an OS provisioning job on a SPARC machine, Oracle Enterprise Manager Ops Center resets the configuration to the factory default configuration and removes the information that is stored in the NVRAMRC file. The control domain OS configuration profile gives you the option to preserve the information in the NVRAMRC file before resetting the server to the factory defaults, and then restore the information after the reset.

To create an OS Configuration profile:

1. Select the Plan Management section and expand Profiles and Policies.

2. Select OS Configuration and click Create Profile in the Actions pane.

3. Enter a name and description in the Create Profile - OS Configuration wizard. In this case, the new profile has the name install_cdoms_osc, select Oracle VM Server for SPARC as the Subtype, then click Next.

Figure 34-12 Identify the OS Configuration Profile

4. Select the Oracle VM Server for SPARC version to be installed. The version must match the version selected in the OS Provisioning profile.

5. Specify the resources that you want to assign to the control domain, according to the recommended minimum configuration. The control domain will route the network and Fibre Channel LUNs. Be sure to use sufficient cores and memory for your environment and control domain to avoid performance issues.
The remaining resources are then available for the logical domains.

- CPU Model: Select Whole-core to allocate the CPU resource in cores.

- CPU Cores: Enter the number of CPU core to be allocated to the control domain.

- Max CPU Cores: Enter the number of CPU cores that must be assigned to control domain.

- Memory: Enter the amount of memory required for control domain.

- Do not provide any values for Requested Crypto Units.

- Virtual Console Port Range: Enter the range between 5000 to 6000.

- Keep the default name of the virtual disk server.

Clear the following options, then click Next:

- Enable Single Root I/O Virtualization (SR-IOV)

- Detach Unused Buses

Figure 34-13 Specify the Control Domain Parameters

6. Select the option Enable Multiplexed I/O so that you can associate block storage libraries such as SAN and iSCSI for storage with the control domain. Click Next.

7. In the Specify Networking page, select None as the networking option for Oracle VM Server for SPARC. Click Next.

8. Select the network interface to use for OS provisioning. Select the Controller that hosts the network interfaces and the corresponding network interface. The Address Allocation is Use Static IP by default and cannot be modified.
Select Auto to create a virtual switch automatically for the network connection to the control domain, then click Next. The virtual switch is created in the default format. For example, the network 192.0.2.0/24, the virtual switch is created as 192.0.2.0_24.

Figure 34-14 Specify the Network Interfaces

9. Review the parameters and click Finish to create the OS configuration profile.

The job is initiated and the new OS configuration profile appears under Profiles and Policies in the Plan Management section. You can select the OS Configuration profile to view its details in the center pane.

34.2.6.3 Create an Install Server Deployment Plan

Create an Install Server deployment plan that uses the OS provisioning and OS Configuration profiles that you just created.

1. Expand Plan Management in the Navigation pane.

2. Under Deployment Plans, select Install Server.

3. Click Create Plan from Template in the Actions pane.

4. Enter a plan name and description. For the Failure Policy, select the option to complete as much of the plan as possible.

5. Associate the profiles that you created earlier.

1. In the OS Provision step, place your cursor in the Associated Profile/Deployment Plan field for that row and select the OS Provisioning Profile you created.

2. In the OS Configuration step, place your cursor in the Associated Profile/Deployment Plan field for that row and select the OS Configuration Profile you created.

6. Click Save.

34.2.6.4 Apply the Install Server Deployment Plan

Apply the Install Server deployment plan to provision Oracle VM Server for SPARC.

When you apply a deployment plan to provision Oracle VM Server for SPARC, you must have the following information to complete the installation:

- In the server hardware, obtain the network interface that is physically connected to the network that is managed by Oracle Enterprise Manager Ops Center.

- Both tagged and untagged networks are listed for network configuration. When OpenBoot PROM (OBP) is used, only untagged networks can be used for OS provisioning as you cannot boot from a tagged network.

- The IP address for the boot interface.

- If you want to identify the network interface using the MAC address, you can select to enter the MAC address instead of the boot interface.

- The details of network connection that you want to use to configure the OS after booting. For multiple network configuration, the first interface is always overwritten by the boot interface that is defined during the OS provisioning step. For single network configuration, it is same as the boot interface network.

- Do not select the option to place the Oracle VM Server for SPARC in a server pool.

1. Select the Install Server plan in the Deployment Plans list.

2. Select Apply Deployment Plan in the Actions pane.

3. Select one or more assets and click Add to Target List.

4. Select Apply with minimal interaction. If you want to review and change the profile parameters, then select Allow me to override any profile values to verify the configuration for the OS Provisioning and OS Configuration profiles. Click Next.

5. If you selected Apply with minimal interaction, select not to review the steps that are not included in the plan and click Next.

6. The wizard collects information for provisioning Oracle VM Server for SPARC. Click Next.

7. In the Boot Interface Resource Assignments step, provide the following information:

- Network: The network for the boot interface.

- Controller: Select the controller that provides the network interface for OS provisioning. It is always default for the Oracle VM Server for SPARC provisioning.

- Interface: Select the net0 interface from the list. This network interface is physically connected to the selected network.

- IP Address: Enter the IP address for the boot interface of each target.

- (Optional) Primary Hostname: Enter the host name for Oracle VM Server for SPARC.

If you want to identify the network interface by its MAC address, then select the option Identify Network Interface by MAC Address and enter the MAC address instead of selecting the Controller and the Interface.

Click Next to view the OS provisioning summary.

8. Review the parameter of OS provisioning and click Next.

9. The following steps in the wizard collects information about OS configuration.
Click Next.

10. Specify the network resources that were defined in the profile. Select the network and for each network, select the network interface and enter the IP address.
The first network interface listed is the boot interface. For multiple network configuration, the first network interface is always overwritten by the boot interface network. You can select which is the primary network interface after the provisioning of the OS.

For single network, the boot interface network will be the defined as the primary network during OS configuration.

Click Next.

11. Select the option Do not assign to a Server Pool. Click Next.

12. Review the summary of the OS configuration parameters and click Next to schedule the job.

13. Schedule the provisioning job to run Now. Click Apply to apply the deployment plan on the selected targets.
When the job completes, the control domain is installed and appears in the All Assets section and each is managed by an Oracle VM Server for SPARC agent.

34.2.7 Create the Server Pool

A server pool is a group of control domains that has access to the same virtual and physical networks and storage resources. Server pools provide load balancing, high availability capabilities, and sharing of the resources for all the members of the pool.

This procedure creates a server pool containing the control domains you created, both storage libraries you created, and the network domain you created.

Before you begin, you must know the network interface that is the physical connection to the system that supports the control domain.

1. Select Server Pools in the Resource Management View of the Navigation pane.

2. Click Create Server Pool in the Actions pane.

3. Enter a name and description for the server pool.

4. Select Oracle VM Server - SPARC from the Virtualization Technology list.

5. Click Next.

6. Select the Oracle VM Servers to be added to the server pool. Click Next.

Figure 34-15 Select Members of the Server Pool

7. Select the new network domain to be associated with the server pool. When you select a the network domain, the Specify Physical Interface table is populated with the fabrics in the network domain.

Figure 34-16 Specify the Network Domain

8. Specify how each fabric connects to each Oracle VM Server, then click Next.

Note:
In the Physical Interface column, for each Oracle VM Server, select the name of the NIC that the system that hosts the Oracle VM Server uses to connect to the fabric. The NIC that is displayed initially is not a default; you must specify the NIC to use. Make sure that the proper interfaces are selected. If the public network is wrong, you cannot create virtual servers. If the private fabric connections are wrong, you cannot create attached private networks.

9. Click the Add Network icon to associate the public network in the network domain with the servers in the server pool. Enter 1 as the number of connections to the network in the Total Connections field. If you have pre-defined private networks managed outside of Enterprise Manager Ops Center, you can add them here. Click Next.

Figure 34-17 Add a Network

10. Specify the network configuration settings for each Oracle VM Server. If you correctly deployed the control domain, the information in the Configure Interfaces is correctly completed and the Oracle VM Server is already connected to the selected network. The UI displays the existing connection details to the network.
The following are the interfaces for each fabric in the network domain:

- For the fabric that supports the public network (the routable network), select any existing interfaces to the control domain. If no interface has been connected to the control domain, select the interface that is connected to the Ethernet switch.

- For the host-managed fabric, select the interface that is connected to Ethernet switch. Do not use bonded interfaces. Click Next.

Note:
In the NIC column, for each Oracle VM Server, select the name of the NIC that the system that hosts the Oracle VM Server uses to connect to the fabric. Specify the same NIC that you chose in Step 8.

Figure 34-18 Configure Interfaces

11. Storage libraries that are reachable from the selected members of the pool are displayed. Select the NAS and the SAN storage library to be associated with the server pool. Do not select a dynamic storage library. Click Next.

Figure 34-19 Associate Libraries

12. Select the placement and auto balancing policy, then click Next:

- Place the guest on Oracle VM Server with lowest relative load. The vDC will override this placement policy.

- Do not auto balance the server pool.

- Clear the option for Automatic Recovery. Enterprise Manager Cloud Control will take control of the high availability.

Figure 34-20 Define the Policies

13. Review the server pool information, then click Finish to create the server pool.

When the job finishes, the server pool is created and appears in the Server Pools view of the Assets section. Open the job to confirm that the job completed successfully.

34.2.8 Refresh the Library

Before you create the vDC, refresh the Static Block Storage Library. If the number is not refreshed before creating the vDC, it will break provisioning.

1. Expand Libraries, then expand Storage Libraries in the Navigation pane.

2. Select the storage library under Static Block Storage.

3. Click the Refresh button at the top of the center pane.
Wait a few minutes before creating the vDC to ensure that the refresh is complete. Refresh does not launch a job and you do not receive any notification that the library is refreshed.

34.3 Set Up and Configure a Virtual Data Center

- Create an Enterprise Manager User

- Create the vDC

- Create the vDC Account for PaaS

- Prepare the vServers

34.3.1 Create an Enterprise Manager User

Add a user to connect Enterprise Manager Ops Center with Enterprise Manager Cloud Control. The user does not need to have full access to Enterprise Manager Ops Center, only the Cloud role. You can create a local user or use a naming service.

You must have the Enterprise Manager Ops Center User Admin role to add a user.

1. Select Administration in the Navigation pane.

2. Click Local Users.

3. Click the Add User icon.

4. Enter ocadmin as the user name.

5. Add the Cloud role to the list of Selected Roles. You can add other roles, but it is not required. Click Add User.

34.3.2 Create the vDC

The vDC inherits network resources and storage resources from the server pool. The vDC enables cloud users to create virtual machines and run applications. The cloud user provides networking to its virtual machines from the public networks that are allocated to each account or by creating private networks. The cloud user can use the public networks, or create a private vNet for use in the account. When the cloud users create a private vNet, either a dynamic private network is created or the static private network is available for use in that account.

You must have the Enterprise Manager Ops Center Cloud Admin role to create a vDC.

1. Select vDC Management in the Navigation pane.

2. Click Create Virtual Datacenter in the Actions pane.

3. The first step Create Virtual Datacenter Wizard is an introduction to the vDC and the prerequisites for creating a vDC. Click Next.

4. In Specify Virtual Datacenter Details:

- Provide a name and description for the vDC.

- Enter tags to distinguish this vDC from other vDCs.

- Select Password Required to enforce using credentials when creating vServers in the vDC. When this option is enabled, cloud users must specify a root password, with or without an SSH key. In addition, cloud users must specify either an SSH key or remote user credentials when creating vServers that use Oracle Solaris 11 OS.

Click Next.

5. Select the new server pool from the list.
If the server pool does not appear in the list, the server pool was not properly configured. Ensure that the metadata library is created and that there is a dedicated network domain. The vDC is homogeneous. You can only add compatible server pools that have Oracle VM Server for SPARC. It is recommended to not mix machines that have different CPU and memory configurations.

6. Select one or more boot networks from the public network. You must select at least one network.

Note:
Boot networks are required for vServer OS deployment. You must also add at least one boot network to each account in the vDC for creating vServers in the account. You can also assign a boot network to an account and use it as a public network for that account.

Click Next.

7. The vCPU sizing displays this information:

- Total number of vCPUs: The total number of vCPU in the vDC for the updated vCPU to physical CPU Threads ratio.

- Avg memory per vCPU: The average memory per vCPU in GB. The total memory available for the vDC by the total number of vCPUs. When you want to use the CPU and memory resources to the full extent, the vServers must use this amount of resources.

Accept the default values and click Next.

8. Select Static Block Storage Libraries as the storage type for the root disk.

9. Select the SAN storage library you created.

10. Select Static Block Storage Libraries as the storage type for the volume and.

11. Select the SAN storage library you created.
Click Next.

12. Confirm the vDC configuration and click Finish to create the vDC. The vServers will run in this vDC, according to the vServer type.

34.3.3 Create the vDC Account for PaaS

In creating the account, you allocate resources from the vDC to the account. The resource allocation for all the accounts in a vDC can be more than the actual resources in a vDC. This oversubscription of the resources must be planned. You must update the resources when the requirement increases.

1. Expand vDC Management on the Navigation pane.

2. Expand vDCs, select the new vDC, then click Accounts.

Figure 34-21 vDC Management Navigation

3. On the Actions pane, click Create Account.

4. Enter the name for the account: PaaS_Account, then click Next.

5. Specify the quotas of vCPU, Memory, and Storage for the account.
Only one account will control the resources. For this PaaS_Account, specify the maximum capacity of each resource.

In the Number of private vNets field, enter the number of private vNets for this account, which is the same as the number of VLAN IDs assigned. Click Next.

Figure 34-22 Specify Account Resource Limits

6. Select the Enterprise Manager Ops Center user with the Cloud role, ocadmin, that you created earlier. Use the right arrow key to add this user to the list of Assigned Cloud Users. Do not assign the root user. Click Next.
The ocadmin user is the connection between Enterprise Manager Ops Center and Enterprise Manager Cloud Control. Cloud Control will connect to Ops Center using this user account.

Figure 34-23 Assign Users

7. View the Summary and click Finish to create the account. When the job is completed, a new account is created.

34.3.4 Prepare the vServers

A vServer is an entity that provides the outward interface of a stand-alone operating system that consumes CPU, storage, and memory resources. A vServer has its own identity, local storage, interfaces, and configuration that exist for the full lifetime of the vServer. You determine the creation of new vServers according to the account quota limits and applications requirements.

When creating a vServer, the following account resources are required:

- A vServer type: vServer Types are profiles that define the computing resources such as virtual CPU, memory, and storage size. You select the best suitable vServer type from those available for the account. vServer types are visible to cloud users during the vServer creation process.

- A server template: Server templates designate the OS provisioning and OS configuration for the vServer. You can either select a server template from those that exist for the account or create a new server template.

- One or more virtual networks: For the vServer network connectivity you must choose one or more vNets from the available vNets or create new ones before creating a vServer. vServers are only assigned to virtual networks when the vServer is created.

34.3.4.1 Create a New vServer Type

When you create a vServer type, the VM hosting details display the following information in the wizard based on the resources defined:

- The number of virtualization servers in the vDC that have sufficient physical resources to host a vServer with the selected resources.

- An estimation of number of vServers that can be hosted with the total number of physical resources of the vDC.

- A warning when the current value of the memory size exceeds the selected storage size.

1. Select the vDC and click Create vServer Type in the Actions pane.

2. Provide a name and description to identify the type. For example:

- single instance DBAAS

- RAC instance DBAAS

- RAC big instance DBAAS

3. Add tags for identification and classification of the vServer type. Click Next.

4. Specify values for vCPU, memory and storage resources, then click Next.
The VM Hosting Details will display the estimated number of vServers that can be hosted based on the figures you supply. The minimum amount of RAM for Oracle Solaris 11.2 is 2 GB. For example, Table 34-1 shows the recommended values for the DBaaS instances deploying Oracle 12c Database.

Table 34-1 Recommended Values for DBaaS Using Oracle 12c Database

Instance

RAM

root

vCPU

single instance DBAAS

4 GB

45 GB

16

RAC instance DBAAS

5 GB

45 GB

16

RAC big instance DBAAS

12 GB

45 GB

16

5. Review the information provided and click Finish to create the vServer type.

34.3.4.2 Create a Private vNet

Private vNet is a private virtual network set up exclusively for an account. The vServers associated with this vNet have private virtual IP address for internal communication. In this PaaS solution, only RAC instances use private networks. Generally, the number of networks is equal to the number of real application clusters that you want to host on your cloud. The private networks are used as the cluster interconnect, but you can use them to connect different virtual machines between each other with a network that cannot see them from the public network.

1. Expand vDC Management on the Navigation pane.

2. Expand vDCs, select the new vDC, then click Accounts.

3. Select the account you created.

4. On the Actions pane, click Create Private vNet.

5. Enter the name and description for the private virtual network. For example, large_private_vnet or small_private_vnet. Click Next.

6. Use the slide bar to set the value of the number of elements, or hosts. Click Next.
The values entered are rounded up to the next value of 13, 29, 61, 125, 253, 509, 1021, 2045, 4093, and 8189. Do not use the values of 1 or 5. You cannot change the size of a network after it is created so specify the size needed to accommodate your current and future requirements:

- The number of elements is also the maximum number of vServers that can be part of this vNet. Class C networks (for example, 10.0.0.1/24) enable you to create 256 vServers and Class 16C networks (for example, 10.0.0.2/20) enable you to create 4096 vServers.

- Whether the vNets will be shared or dedicated. If multiple RAC instances will share one or more networks, set the network size to 509 and more. If each RAC instance will have a dedicated network, limit the network size to 29 or 13.

Figure 34-24 Private vNet Configuration

7. Review the Summary, then click Finish to create the private virtual network.
The new private virtual network is listed in the Networks and vDC sections of the Navigation pane.

Figure 34-25 View of the New Private Virtual Network

8. Connect the IP address from this new private virtual network to the vServer, using Connect Private vNet icon in the Private vNets table. Click Connect.

Note:
If you have multiple vNets, connect each vNet one at a time. Wait for each job to complete before making the next connection.

34.4 Set Up and Configure a Server Template

Before you can create guest domains, you must create the necessary profiles and plans to define the operating system for the guest. After you create the profiles you will create a Server Template to apply the profiles.

Server Templates are a combination of OS update, OS provisioning, and OS Configuration profiles.You can create several profiles and server templates.

- Create an OS Update Profile

- Create an OS Provisioning Profile for Guests

- Create an OS Configuration Profile for Guests

- Create a vServer Template

- Create a vServer

34.4.1 Create an OS Update Profile

The Oracle Solaris 11 OS Update profile installs packages as part of an OS Provisioning profile. This example shows how to create an OS Update profile that installs the integration package. You then add this profile to an OS Provisioning profile.

1. Expand Plan Management in the Navigation pane, then select Update Profiles under Profiles and Policies.

Figure 34-26 Update Profiles Navigation

2. Click New Profile in the Actions pane.

3. Enter a name and description for the profile. In this case, the profile is PaaS base update. Then select Solaris 11 from the Type menu.

Figure 34-27 Create OS Update Profile

4. Keep the default filters and then search for each one of the following packages and files and click the Install icon. If more than one version appears, select the latest version.

- SUNWhea

- SUNWsprot

- developer/assembler

- developer/java/jdk-6

- developer/java/jdk-7

- post-script-paas

5. Click Create OS Update Profile. The profile appears in the list of Update profiles.

34.4.2 Create an OS Provisioning Profile for Guests

The OS provisioning profile will define the operating system image and PaaS package to install on the guest. This example installs Oracle Solaris 11.2 SRU 11.5.0.

Perform the following steps to create a new OS Provisioning profile:

1. Select the Plan Management section in the Navigation pane.

2. Expand Profiles and Policies and select OS Provisioning profile.

3. Click Create Profile in the Actions pane.
The Create Profile - OS Provisioning wizard is displayed.

4. Provide the following details for the profile identification, then click Next:

- Enter the name of the profile as ldom_guest_osp.

- Enter a suitable description for the profile that describes the OS.

- Select Logical Domain as the Subtype and Virtual Machine as the Target Type.

Figure 34-28 Identify the Logical Domain Profile

5. Select the following OSP parameters:

- The Oracle Solaris 11.1 OS and the SRU from the list.

- solaris-small-server as the Software Group from the list.

- For the Solaris 11 Update profile, select the OS Update Profile that you created: PaaS base update.

Figure 34-29 Specify the OSP Parameters

Click Next to specify the OS Setup.

6. Specify the OS setup parameters, then click Next:

- Enter the time zone, language, terminal type, console serial port, and console baud rate.

- Enter the root password. The password that you enter here will be overwritten. Cloud Control will deploy its own password.

- The NFS4 domain is set to dynamic in this example. If a naming service is configured in your environment, enter the NFS4 domain value.

Figure 34-30 Define the OS Setup

7. In the Specify User Account page, enter a user name and password to create a user account, then click Next.

Note:
Cloud Control will overwrite this password and deploy its own password.

8. (Optional) If you want to use iSCSI disks for OS provisioning, select the check box. Click Next.

Figure 34-31 Specify if an iSCSI Disk is to be Used for Provisioning

9. The root (/) and a swap file system are defined by default. You can change the swap size. Click the Add icon to add more ZFS file systems. Click Next to specify the name service.

Note:
The minimum swap space should be 6 GB. If you are using a larger deployment, you might increase the swap or create multiple server templates.

Figure 34-32 Specify the File System Layout

10. Select the DNS naming service, then click Next.

Note:
Ensure that your DNS naming service is working and that it conforms to public network requirements. All public IPs must be resolvable by the naming service.

11. Review the parameters selected for the profile and click Finish to create the OS provisioning profile.

The OS provisioning profile is created and listed under the OS provisioning profiles. Use this profile to create a Provision OS plan.

34.4.3 Create an OS Configuration Profile for Guests

1. Select the Plan Management section and expand Profiles and Policies.

2. Select OS Configuration and click Create Profile in the Actions pane.

3. Enter the following details to identify the profile, then click Next:

- Name and description of the profile.

- Select Logical Domain as the Subtype and Virtual Machine as the Target Type.

Figure 34-33 Identify the OS Configuration Profile for the Guests

4. Select Automatically manage with Oracle Enterprise Manager Ops Center and Deploy the Agent Controller. To manage the virtual machines, you can select the option Enable Multiplexed I/O so that you can associate block storage libraries such as FC and iSCSI for storage with the OS. MPxIO is not required because the control domain will control the management.
Deselect the option Enable Single Root I/O Virtualization (SR-IOV), the option is only applicable to root domains. Click Next.

Figure 34-34 Define the OS Management

5. In Specify Networking, select None as the networking option for the OS, then click Next.

6. Enter 1 in the network interfaces field. The vDC will create the network interfaces and overwrite this value. Click Next.

7. Review the parameters and click Finish to create the OS configuration profile.

34.4.4 Create a vServer Template

Create a vServer template from the new OS profiles you created: provisioning, which includes the update profile, and configuration. You can create different templates for different profiles and deployments.

1. Select the account in the vDC Management section.

2. Click Create Server Template in the Actions pane.

3. In the wizard, skip the introduction and click Next.

4. Enter the name and description for the server template. Click Next.

5. Select the new OS provisioning profile, then click Next.

6. Select the new OS configuration profile from the list, then click Next.

7. Review the information and click Finish to create the server template.

The new template is created and available to create vServers.

34.4.5 Create a vServer

Use the Server Template to create one or more vServers.

1. Select the account in the vDC Management section.

2. Click Create Server in the Actions pane.

3. In the wizard, skip the introduction and click Next.

4. Enter the name and description for the server.
Click Next.

5. Select the new OS provisioning profile, then click Next.

6. Select the new OS configuration profile from the list, then click Next.

7. Review the information and click Finish to create the server.

34.5 Validate the Integration and PaaS

Test the connections from Enterprise Manager Cloud Control and Enterprise Manager Ops Center as the cloud user. In this test, create two vServers with the same storage and network resources. If successful, one vServer can send information to and receive information from the other vServer. To test, log out as the Admin user and log in as the cloud user.

34.5.1 Create Volumes for vServer

Use the following procedure to create volumes from shared disks. In normal operations, Enterprise Manager creates the volumes.

1. Expand vDC Management in the Navigation pane.

2. Select the account from the vDC Accounts list.

3. Click Create Volume in the Actions pane.

4. Enter a name for the volume, then click Next.

5. Check the Shared option and enter the size of the volume. Click Next.

6. Click Finish to create the volume.
Delete the volume when the job has completed.

34.5.2 Create Test vServers

Create two vServers with the same private network.

1. Expand vDC Management in the Navigation pane.

2. Select the account from the vDC Accounts list.

3. Click Create vServer in the Actions pane.
The Create vServer Wizard is displayed.

4. Enter the following information in the vServer Details step:

- Name and description for the vServer.

- Tags for better identification and classification of the vServer.

- Number of vServers to create.

- The High Availability Support option has no effect in the PaaS integration.

Click Next.

5. Select a server template from the list. Click Next.

6. Select a vServer type from the list. Click Next.

7. Select one or more volumes from the Available Volumes list. Use the arrow keys to move the selected volumes to the Attached Volumes list.
For this test, attach the same volume to both vServers.

Click Next.

8. Select one or more vNets from the list. Click Next.

9. Select the Static method for assigning the IP address.

10. Assign the IP address from the new private virtual network to the vServer. Click Next.
You can also perform this step after you create the vServer by clicking the Connect vNet icon on the account's Networks tab in the Private vNet table.

Do not select a distribution group. Click Next.

11. Specify a root password. Click Next.

12. Confirm the vServer information provided in the Summary and click Finish to launch the job to create the vServer.
After the job completes, the vServer is created and listed in the Navigation pane. By default, the DNS and other naming information is taken from the selected vNet or server template and added in the /etc/resolv.conf file of the vServer.

34.5.3 Verify Shared Storage and Connectivity

To verify connectivity of the two vServers. From the console, log into one vServer and use the ping command with the IP address of the other vServer. This succeeds on public network or private network.

To verify shared storage:

- For a Fibre Channel SAN storage:fcadm lu

- For iSCSI SAN storage: iscsiadm list target -S

The Client Kit also contains the new_vDC.ksh script that can be useful for diagnosing problems. Enterprise Manager uses the file when it starts the integration, using the file path /tmp/INPUT/bootstrap.xml but you can also perform this manually.

Note:
After you finish testing, delete the bootstrap.xml file and the oc-pass.txt files because they contain security information such as passwords and URLs.

1. Create a file named bootstrap.xml in the following form and using your site's information.

<bootStrap version="1.0" name="boot_strap"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="bootstrap.xsd">
<!-- Ops-center details required to establish connection before running the ops center commands -->
<opsCenterDetails>
<opsCenterURL>https://<yourhostname>.com</opsCenterURL>
<!-- OpsCenter credentials -->
<opsCenterUser>ocadmin</opsCenterUser>
<opsCenterHome>/opt/oracle/iaas/cli/</opsCenterHome>
<!-- Stage location on Ops Center Host -->
<opsCenterStageLoc>/tmp/</opsCenterStageLoc>
</opsCenterDetails>

</bootStrap>

2. Issue the following commands:

-bash-4.1$ echo password > /tmp/INPUT/oc-pass.txt
-bash-4.1$ /opt/oracle/paas/tools/new_vDC.ksh

3. Review the output:

Certificate added to truststore /export/home/ocadmin/.oracle_iaas/truststore
Vserver types
4159 EXTRA_LARGE Logical Domain extra-large instance type for vDC PaaS_vDC 17179869184 28          4
4158 LARGE       Logical Domain large instance type for vDC PaaS_vDC       8589934592  24          2
4157 SMALL       Logical Domain small instance type for vDC PaaS_vDC       4294967296  20          1
4161 paas_RAC                                                              12884901888 45          16
4160 paas_SI                                                               4294967296  45          16
Vnets
VNET-321a93e4-2d11-4642-b3ec-3ebde6e86b04 big_private_net  big_private_net OK     172.16.0.0/20  private
VNET-badc34e5-021a-44c7-a7ad-d11915e04ec3 small_rac_net1   small_rac_net1  OK     192.168.0.0/28 private
VNET-47f06e55-7c72-4116-919f-bb940c978b8a 10.163.96.0/22.1                 OK     1x.16x.x6.0/22 public_external
Vserver s
TMPL-116826d2-6a96-4217-ab16-0d4a71157028 paas_default             OK     12884901888 false            false

34.5.4 Diagnosing Problems

If a virtual datacenter is unable to create vNets, edit the network domain to increase the limit of private networks it can provide simultaneously.

If the control domain is already running and you change the fabric that supports the server pool, you will need to configure the Fibre Channel controller:

1. fcadm hba-port

2. Identify active ports.

3. fcadm remote-port -p <each_portID_from_output>

4. # cfgadm -c configure <controller_to_be_configured>

35 Getting Started with Dynamic Resource Provisioning

This chapter provides an introduction to the Dynamic Resource Provisioning and describes how to set up the virtual service adapter so that it can communicate with virtual data center. It contains the following sections:

- About Dynamic Resource Provisioning

- Configuring the Solaris SPARC Adapter

35.1 About Dynamic Resource Provisioning

Oracle Enterprise Manager Ops Center provides a centralized management and optimization system by which administrators can create virtual operating systems, virtual systems, or a virtual data center in a cloud. The Enterprise Manager Platform as a Service allows administrators to create platforms onto which users can deploy database and middleware applications. By using the Dynamic Resource Provisioning feature, Enterprise Manager can now interface with the Enterprise Manager Ops Center to add or remove resources on demand to a PaaS Cloud.

This reduces the administrator overhead required while planning and setting up large infrastructure services. With this feature, administrators can:

- Dynamically add or remove virtual hardware

- Extend or downsize middleware resources in an automated manner.

To expand the capacity of a private cloud, the cloud administrator must request hardware and software from the Enterprise Manager Ops Center infrastructure administrator. The infrastructure administrator provides the host, network, and storage details to the cloud administrator who then uses these details to setup the PaaS infrastructure in the cloud.

In earlier releases, these tasks had to be performed manually. In this release, several of the steps have been automated and the cloud administrator can increase or decrease capacity by just a few clicks. To set up DBaaS / MWaaS on Solaris SPARC, the following steps are required:

- The virtual data center must be configured. This involves setting up the networks, storage volumes, creating server templates, and defining sizes. See Section 34.3, "Set Up and Configure a Virtual Data Center".

- The virtual machine adapter must be configured. See Section 35.2.2, "Creating the Virtual Machine Adapter Instance".

- The administrator can launch the Provision or De-Provision wizard to increase or decrease the capacity of the pool. For:

- DBaaS: See Section 36, "Provisioning Resources in a DBaaS Cloud".

- MWaaS: See Section 37, "Dynamically Provisioning Resources in an MWaaS Cloud".

35.2 Configuring the Solaris SPARC Adapter

The Solaris SPARC Adapter acts as an interface between Enterprise Manager and Enterprise Manager Ops Center and allows cloud and self service administrators to dynamically provision or de-provision resources in their private cloud setup. Resources can be added when additional service instances need to be provisioned or decreased if existing resources are not being utilized. Resources can either be infrastructure resources like hosts (based on virtual machines) or platform resources like database and middleware Oracle Homes.

To configure the virtual service adapter, follow these steps:

Step

Task

Link

1

Adding the Stage Server

See Section 35.2.1, "Adding the Stage Server".

2

Creating the Virtual Machine Adapter Instance

See Section 35.2.2, "Creating the Virtual Machine Adapter Instance".

3

Creating the Virtual Machine Template

See Section 35.2.5, "Creating the Virtual Machine Service Template".

35.2.1 Adding the Stage Server

A staging server is a managed host that communicates with the Enterprise Manager Ops Center to perform one or more of the following tasks:

- Query: Query and retrieve configuration information for Solaris SPARC systems from the Enterprise Manager Ops Center Virtual Data Center.

- Provision the Virtual Machines: Access the Enterprise Manager Ops Center to perform provisioning operations such as creating virtual machines, reserving networks and allocating storage on virtual machines.

- De-provision the Virtual Machines: Access the Enterprise Manager Ops Center to perform de-provisioning operations such as releasing networks, IP addresses, and storage on virtual machines.

Any managed host can be used as the staging server if the Enterprise Manager Ops Center Client kit has been installed and available for the platform. The following platforms are supported:

- Linux_x86

- Solaris_x64

- Solaris SPARC 64

Before the staging server can communicate with Enterprise Manager Ops Center, the Ops Center Client must be installed. To communicate with Enterprise Manager Ops Center, specify the IP address of the Ops Center's Enterprise Controller and the credentials for the cloud user account after configuring of the Ops Center Client, as described in Chapter 34, "Dynamic Resource Provisioning with Oracle VM Server for SPARC".

To add a stage server, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home.

2. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Virtual Adapters service family and click on the Stage Servers link.

3. Click Add on the Stage Servers page. The Add Stage Server window appears.

Figure 35-1 Add Stage Server

4. In the Host field, select a managed host that is to be used as the staging server.

5. Specify the directory in which the staging files are to be stored. This directory is used to stage and execute the scripts, store temporary data and results.

6. Specify the credential type which can be:

- Named: Select a named profile for which the credentials have been defined.

- New: Select this option to specify new credentials. Enter the user name, password, specify the Run privilege and click OK.

7. Click OK to add the stage server.
You can add one or more stage servers that can be used to communicate with Enterprise Manager Ops Center when the Solaris adapter instance is being created. When one of the stage servers goes down, the next available one will be used to communicate with Enterprise Manager Ops Center.

35.2.2 Creating the Virtual Machine Adapter Instance

A virtual machine adapter instance is a managed target which can be used as an interface with the Infrastructure provider system (Enterprise Manager Ops Center) to manage the client machines.

To create an virtual machine adapter instance, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home.

2. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Virtual Adapters service family and click on the Instances link.

3. Click Create. The Create Infrastructure Adapter: General page appears. Enter the name and description for the adapter.

4. Select the PaaS Infrastructure Zone with which the adapter is to be associated. Any virtual machine provisioned using this adapter will be added as a host member to the PaaS Infrastructure Zone selected here. A PaaS Infrastructure Zone can be associated with only one adapter instance.

Figure 35-2 Create Infrastructure Adapter: Connection Details

5. Click Next. In the Create Infrastructure Adapter: Connection Details page, specify the following:

- Ops Center Web Service URL: Enter the URL that is to be used to connect to the Enterprise Manager Ops Center server.

- Ops Center Admin User: Enter the name of the administrator who will be accessing the Enterprise Manager Ops Center server. This user is created when the virtual data center is set up.

- Password: Enter the password for the administrator.

- Stage Servers: Click Add to select the stage servers that are to be used to execute scripts to perform various operations such as provisioning, querying, and so on. You must select the correct stage server for this adapter instance. For example, there may be two administrators managing two different virtual data centers with different accounts and using separate stage servers for each of their accounts. In this case, it is important that the correct stage server is selected here.

6. Click Next. In the Placement Constraints page, specify the maximum number of virtual machines that can be provisioned.

7. Click Next. In the Characteristics page, specify the characteristics that will be applied to the virtual machine adapter target as target properties. When a new virtual machine is created, these properties will be applied.

8. Click Submit. A Solaris SPARC adapter instance that can be used to communicate with the virtualized resource provider system (Enterprise Manager Ops Center) is created. Along with the Solaris SPARC adapter instance, a default virtual machine service template is also created. This template can be modified and copied to create more service templates. These templates provide the structural definition for the virtual machines that will be created.

35.2.3 Editing the Virtual Machine Adapter Instance

To edit a virtual machine adapter instance, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home.

2. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Virtual Adapters service family and click on the Instances link.

3. Select a virtual machine adapter instance from the list and click Edit.

Figure 35-3 Edit Virtual Adapter Instance

4. You can edit the following:

- Name and description of the adapter.

- PaaS Infrastructure Zone: You can select a new PaaS Infrastructure Zone with which the adapter instance is to be associated.

- Fetch Configuration: Select this check box to retrieve the latest configuration information such subnet, storage, and so on available with the adapter. If the configuration has changed, the existing service templates may become invalid and scheduled provisioning operations may need to be manually purged.

5. Click Next. In the Connection Details page, you can modify the connection details, add a new stage server or remove an existing stage server. Click Next.

6. Modify the Placement Constraints if required. Click Next and modify the characteristics you have defined for the adapter instance if necessary.

7. Click Next and review the information entered so far. Click Submit to sumbit the changes made to the adapter instance.

35.2.4 Deleting the Virtual Machine Adapter Instance

To delete a virtual machine adapter instance, select an instance from the list and click Delete. A confirmation message is displayed. Click Yes to confirm and delete the adapter instance.

Note:
You cannot delete an instance if any virtual machines have been provisioned using the adapter instance.

35.2.5 Creating the Virtual Machine Service Template

The virtual machine template describes the virtual machine configuration that can be used to provision a virtual machine on the infrastructure adapter instance.

This template can be used:

- when the administrator chooses to provision the virtual infrastructure.

- when auto provisioning is not part of the service request. (This feature is available only for Middleware as a Service).

To create the virtual machine template, follow these steps:

1. From the Enterprise menu, select Cloud, then select Cloud Home.

2. From the Oracle Cloud menu, select Setup, then select Getting Started. Click the Setup link next to the Virtual Adapters service family and click on the Service Templates link.

3. Click Create. The General page appears. Enter the name and description for the template and click Next.

4. In the Characteristics page, specify the characteristics that will be applied to the virtual machines that will be provisioned using the Solaris SPARC adapter.

5. Click Next. In the Solaris Adapter page, click Add to select the Solaris SPARC Adapter with which the service template is to be associated.

6. Click Next. The Virtual Machine Configuration page appears. Depending on your use case (single instance, RAC, or middleware), the configuration details you specify will be different.

Figure 35-4 Virtual Machine Configuration (Single Instance)

Enter the virtual machine configuration details:

- Host Name Prefix: Enter a prefix for the host name. This is a logical name used to group hosts of a certain request type.

- Instance Size: The list of available virtual machine hardware configurations (memory, CPU, and storage) are listed. The configurations are retrieved from the Enterprise Manager Ops Center when the Solaris adapter is registered. Select the configuration that best suits your requirements based on how much CPU, storage, and memory is required to run the operating system, the software that is to be deployed, and extra space for maintenance.
If all configurations are selected, they will be displayed when the request is submitted.

For example, if the operating system requires 2GB, the Database Home to be deployed requires 2GB, and the maintenance space (3.5 times the Database Home) + expected data to be stored (1GB), you must select at least 10 GB size.

- Server Template: The server template defines the operating system image being used. When you select a server template, configuration details such as virtual machine templates, virtual machine sizes, networks, and storage volumes that are accessible and available to the administrator are retrieved from the Enterprise Manager Ops Center. To maintain consistency across the software pool, all the Oracle homes in the pool must be of the same type and are expected to use the same operating system image.

Example 35-1 Sample XML: Server Template

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result xmlns="http://www.oracle.com/xml/ns/iaas"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="DescribeServerTemplatesResult" requestId="8886">
<items>
<id>TMPL-1005a3b8-cc8b-4f3e-83c2-ee65b849c871</id>
<name>paas-templ</name>
<status>OK</status>
<size>12884901888</size>
<public>false</public>
<readOnly>false</readOnly>
</items>
<items>
<id>TMPL-55e78615-e896-4521-a9bd-d037dc5c981b</id>
<name>paas-tmpl-simple-post-script</name>
<status>OK</status>
<size>12884901888</size>
<public>false</public>
<readOnly>false</readOnly>
</items>
</result>

Example 35-2 Sample XML: Server Template: RAC

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result xmlns="http://www.oracle.com/xml/ns/iaas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="DescribeVserverTypesResult" requestId="8889">
<items>
<id>16019</id>
<name>PaaS_RAC_big</name>
<description>Custom vserver type: PaaS_RAC_big, CPU: 8 Memory: 12GB</description>
<tags>
<name>oracle.cloud.uuid.cloud</name>
<value>VDC-db24f716-feda-4bd2-8127-d88848d04687</value>
</tags>
<tags>
<name>oracle.vm.profile.type</name>
<value>CLOUD_CUSTOM</value>
</tags>
<tags>
<name>oc.internal.ui.hide</name>
<value>TRUE</value>
</tags>
<memorySize>12884901888</memorySize>
<storageSize>20</storageSize>
<vcpu>8</vcpu>
</items>
<items>
<id>16017</id>
<name>PaaS_SI</name>
<description>Custom vserver type: PaaS_SI, CPU: 4 Memory: 6GB</description>
<tags>
<name>oracle.cloud.uuid.cloud</name>
<value>VDC-db24f716-feda-4bd2-8127-d88848d04687</value>
</tags>
<tags>
<name>oracle.vm.profile.type</name>
<value>CLOUD_CUSTOM</value>
</tags>
<tags>
<name>oc.internal.ui.hide</name>
<value>TRUE</value>
</tags>
<memorySize>6442450944</memorySize>
<storageSize>20</storageSize>
<vcpu>4</vcpu>
</items>
</result>

- Networks: The list of available networks or VNET Ids are displayed. Select the public and private network interface for the virtual machine that is to be created. Multiple private and public networks can be available and you must decide which network is to be used for virtual machines created using this service template. For example, choose a network that has sufficient IP addresses available.

- Single Instance Database: If you are defining a service template that will be used create virtual machines for single instance databases, specify Public Network Details.

- RAC Database: If you are defining a service template that will be used to create virtual machines for cluster databases, specify Public Network Details and select public networks for virtual machines, Host IP, Scan IP, and Virtual IPs. For private interconnect, select Private Network Details and specify a private network with sufficient IP addresses available.

- Middleware: If you are defining a service template that will be used to create virtual machines for middleware as a service specify the Public Network Details.

Example 35-3 Sample XML: Networks

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result xmlns="http://www.oracle.com/xml/ns/iaas"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="DescribeVnetsResult" requestId="8887">
<items>
<id>VNET-90db3003-3518-4988-8920-4f66fd85aefc</id>
<name>bigpriv</name>
<description>bigpriv</description>
<status>OK</status>
<tags>
<name>network.normalized.name</name>
<value>com.sun.hss.domain:name=NORM-192.168.0.0_24,type=Network</value>
</tags>
<ipAddress>192.168.0.0/24</ipAddress>
<vnetType>private</vnetType>
</items>
<items>
<id>VNET-d7ae94f1-ff1c-4eb9-8b69-3d087a9344be</id>
<name>10.163.96.0/22.1</name>
<status>OK</status>
<ipAddress>10.163.96.0/22</ipAddress>
<vnetType>public_external</vnetType>
</items>
</result>

- Storage: Select shared and local storage for the virtual machine that is to be created. By default, all the available resources are selected. You must select the storage that best meets your requirement or can specify the storage details while submitting the request.
Note: Shared Storage (RAW) is applicable for RAC databases.

For example, if you are creating this service template to provision a RAC database, you must select an instance size with sufficient storage.

Example 35-4 Sample XML: Storage

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result xmlns="http://www.oracle.com/xml/ns/iaas"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="DescribeVolumesResult" requestId="8888">
<items>
<id>VOL-08391b8d-8f9f-4894-adc4-8214346d64a4</id>
<name>soanew-14d95dbf7f6-2-1-20</name>
<description>no_description_provided</description>
<status>OK</status>
<tags>
<name>keepDisk</name>
<value>True</value>
</tags>
<size>30.0</size>
<shared>false</shared>
<vservers>VSRV-d984031b-8385-4473-a0ce-07d71e33756e</vservers>
<paths>/dev/dsk/c1d1</paths>
</items>
<items>
<id>VOL-c0249120-d9be-42df-bb7d-f9f811a1fb8a</id>
<name>racsk2-s-1-10</name>
<description>no_description_provided</description>
<status>OK</status>
<tags>
<name>keepDisk</name>
<value>True</value>
</tags>
<size>10.0</size>
<shared>true</shared>
<vservers>VSRV-291b879b-5dbd-45ae-b5e3-c4f1239f0804</vservers>
<paths>/dev/dsk/c1d1</paths>
</items>
</result>

7. In the Host Configuration region, specify the Owner for the Host and Agent targets.

8. In the Agent Configuration region, select the Push EM Agent check box to deploy the Management Agent on the virtual machine and specify the following agent configuration details:

- Platform: Select Oracle Solaris on SPARC (64-bit) platform.

- Port: Enter the port used for the Management Agent process. If no value is specified, then either 3872 or any free port between 1830 and 1849 will be used.

- Base Location: Specify the full path to the directory in which the Management Agent is to be installed. Ensure that the Base Location you specify in the response file is empty and has write permissions. This is a mandatory field.

- Privilege Delegation Settings: Specify the privilege delegation settings. See the Enterprise Manager Basic Installation Guide for more details.

- Pre and Post Installation Scripts: These shell scripts can be used if any custom operations need to be performed on the virtual machines. These scripts must be present on the host on which the Oracle Management Service is running or on the virtual machine.
Note: The script will be present on the virtual machine only if it was bundled with the OS image.

- Credentials: Specify Named or New credentials.

9. Click Next. The Review page appears.

Figure 35-5 Review Page

Review the details entered so far and click Submit to create the virtual machine template.

After the virtual service adapter has been created and configured, you can associate it with software pools to provision virtual machines.

36 Provisioning Resources in a DBaaS Cloud

This chapter describes the process of adding or removing resources based on demand to a DBaaS Cloud. It contains the following sections:

- Provisioning Resources

- De-Provisioning Resources

36.1 Provisioning Resources

After you have set up and configured the virtual service adapter, you can dynamically add or remove virtual resources to your DBaaS cloud whenever required.

Prerequisites

- The stage server must be identified. See Section 35.2.1, "Adding the Stage Server"

- The Enterprise Manager Ops Center Client Kit must be deployed on the host that is being managed by Enterprise Manager.

- The Solaris Sparc Adapter instance must have been created and configured. See Section 35.2.2, "Creating the Virtual Machine Adapter Instance".

To provision new virtual resources in a DBaaS cloud, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Resource Providers. The list of existing resource providers is displayed. You can select one of the following:

- Database Pool: If you select a database pool, when the provisioning procedure has been completed, a virtual machine is created, the Management Agent, and Database Software is deployed on the virtual machine (either by using an image if the pool is subscribed to it or by using a reference home in the pool), and the Oracle Home is added to the pool. The capacity of the pool is now increased.

- PaaS Infrastructure Zone: If you select a PaaS Infrastructure Zone, when the provisioning procedure is completed, a virtual machine is created, the Management Agent is deployed, and a host is added to the pool.

4. Select one of the above resource providers from the list. From the Resources menu, select Provision.

5. In the General page, in the Execution Name field, enter a name for the provisioning procedure.
The virtual machine adapter with which this pool is associated is displayed.

6. In the Resources to be Provisioned field, enter the number of virtual machines that are to be provisioned.

7. Click Next. The Virtual Machine Configuration page appears.

Figure 36-1 Virtual Machine Configuration (Single Instance Database)

In the Service Template drop down field, select the Solaris Adapter service template from the list. The configuration details defined in the service template are displayed and can be modified.

For example, the service template used for a RAC database requires a private network along with a public network for scan and virtual IPs. You can select the correct template, VM size, network, and storage to create a stand alone virtual machine or a multi node network set up for clustered data using this example. For a detailed description of the fields, see Section 35.2.5, "Creating the Virtual Machine Service Template"

For a single instance database, you must consider the database size while selecting the virtual server type. The size guidelines you need to follow for single instance database are as follows:

SIDB VM size > OS size + (3.5 * Oracle home size) + expected data size

For RAC databases, you must use the following sizing guidelines:

RAC VM size > OS size + (3.5 * Oracle home size) In the case of RAC databases, data is stored on shared disk using ASM.

Figure 36-2 Virtual Machine Configuration (RAC Database)

8. Click Next. If you are provisioning a RAC machine, specify the cluster name and the network from which the Scan IP is to be allocated. The Scan IP is allocated dynamically from the pool of IPs in this network.

Figure 36-3 Cluster Configuration

9. Click Next. Specify the schedule for the provisioning procedure and click Next.

10. Review the information and click Submit to submit the provisioning job.

36.2 De-Provisioning Resources

You can remove or de-provision resources from your DBaaS cloud by following these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Resource Providers. The list of existing resource providers is displayed.

4. Select a Database Pool or a PaaS Infrastructure Zone from the list. From the Resources menu, select De-Provision.

Figure 36-4 De-Provision Resources

5. Enter a name and description for the procedure.

6. In the Resources to De-Provision region, click Add and select one or more Oracle homes to be de-provisioned.

- Single Instance Database: You must select the Oracle homes that are to be deleted. All virtual machines hosting these Oracle homes will be deleted.

- RAC Database: You must select all the Oracle homes that are part of the cluster. This will delete all virtual machines that are part of the cluster.

7. Click De-Provision to submit the job. The selected Oracle homes will be deleted and the virtual machines will be de-provisioned.

37 Dynamically Provisioning Resources in an MWaaS Cloud

This chapter describes the process of adding or removing resources based on demand to an MWaaS cloud. It contains the following sections:

- Provisioning Resources

- De-Provisioning Resources

- Enabling Dynamic Resource Provisioning

37.1 Provisioning Resources

After you have set up and configured the virtual machine adapter, you can dynamically add or remove virtual resources to your MWaaS cloud whenever required.

Prerequisites

- The stage server must be identified. See Section 35.2.1, "Adding the Stage Server".

- The Enterprise Manager Ops Center Client Kit must be deployed on the stage server.

- The Solaris Sparc Adapter instance must have been created and configured. See Section 35.2.2, "Creating the Virtual Machine Adapter Instance". The Solaris image (server template) must contain a JDK version that is supported for the selected application.

To provision new virtual resources in a MWaaS cloud, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Resource Providers. The list of existing resource providers is displayed.

4. Select a middleware pool from the list. From the Resources menu, select Provision.

5. In the General page, the virtual adapter instance with which the middleware pool is associated is displayed.

6. In the Execution Name field, enter a name for the provisioning procedure.

7. In the Resources to be Provisioned field, enter the number of virtual machines that are to be provisioned.

8. If dynamic provisioning has been enabled for this middleware pool, the Turn on Dynamic Provisioning flag is selected. If it has not been enabled, you can select the flag and enable it here. See Section 37.3, "Enabling Dynamic Resource Provisioning".

9. Click Next. The Virtual Machine Configuration page appears.

Figure 37-1 Virtual Machine Configuration

Enter the following details:

- Virtual Machine Template: Select the virtual machine template. This is the virtual adapter service template that was created while setting up the virtual service adapter. See Section 35.2.5, "Creating the Virtual Machine Service Template". Based on the template selected, the default virtual machine configuration is displayed. The configuration details can be modified.

10. Click Next. Specify the schedule for the provisioning procedure and click Next.

11. Review the information and click Submit to submit the provisioning job.

37.2 De-Provisioning Resources

You can remove or de-provision resources from your MWaaS cloud by following these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Cloud menu, select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Resource Providers. The list of existing resource providers is displayed.

4. Select a middleware pool from the list. From the Resources menu, select De-Provision.

Figure 37-2 De-Provision Resources: MWaaS

5. Enter a name and description for the procedure.

6. In the Resources to De-Provision region, click Add and select one or more hosts to be de-provisioned.

7. Click De-Provision to submit the job and remove the selected hosts.

37.3 Enabling Dynamic Resource Provisioning

You can enable dynamic provisioning for a middleware pool. If dynamic provisioning is enabled, when a self service user requests for a middleware service (WLaaS, JVMaaS, SBaaS, SOAaaS), virtual machines are automatically provisioned. Similarly, when the self service user no longer requires the virtual machine, it is automatically de-provisioned.

To enable dynamic provisioning, follow these steps:

1. Log into Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise Manager menu, select Cloud, then select Cloud Home. The Cloud Home page appears.

3. From the Oracle Cloud menu, select Resource Providers.

4. Select a middleware pool and from the Resources drop down menu, select Turn On Dynamic Provisioning.

5. In the General page, the virtual machine adapter with which the resource provider is associated is displayed. See Section 35.2.2, "Creating the Virtual Machine Adapter Instance".

6. In the Resources to be Provisioned field, enter the number of resources that are to be provisioned with the specified configuration. The number of servers specified in the middleware profile used in the service template will override the value specified here. Click Next. The Virtual Machine Configuration page appears.

Figure 37-3 Enable Dynamic Provisioning: Virtual Machine Configuration

7. In the Service Template field, select the virtual machine template from the drop down list. The configuration details as defined in the template are displayed. You can use the selected service template configuration or modify it if required. See Section 35.2.5, "Creating the Virtual Machine Service Template" for details.

8. Click Next. Review the information entered so far and click Save to save the configuration. The saved configuration will be applied on all virtual machines provisioned by the self service user.

37.3.1 Disabling Dynamic Provisioning

You can disable dynamic provisioning for a specific resource provider. Select a middleware pool for which dynamic provisioning has been enabled and from the Resources drop down, select Turn Off Dynamic Resource Provisioning. A confirmation message is displayed. If you select Yes, dynamic provisioning will no longer be enabled for the selected resource provider.

Part XIII

JVM Diagnostics as a Service

This section describes the process to enable and use JVM Diagnostics as a Service. It contains the following sections:

- Chapter 38, "Setting Up JVM Diagnostics as a Service"

- Chapter 39, "Using the JVM Diagnostics Self Service Portal"

38 Setting Up JVM Diagnostics as a Service

This chapter describes the procedure to set up and enable JVM Diagnostics as a Service. It covers the following:

- About JVM Diagnostics as a Service

- Creating Users and Roles

- Setting Up JVMDaaS

- Defining and Allocating Quotas

- Monitoring JVM Diagnostics Agents and Engines

38.1 About JVM Diagnostics as a Service

JVM Diagnostics as a Service (JVMDaaS) enables IT organizations to provide JVM Diagnostics functionality in a self service manner and monitor JVMs within a Web based portal. The JVMs being monitored can either be monitored targets in Enterprise Manager or remote targets.

For example, a development organization may want to provide JVM Diagnostics functionality to its developers and QA personnel. The system administrator can provide this service through JVMDaaS. This helps reduce the organization cost by enabling developers and QA personnel to complete development tasks faster as JVM Diagnostics is easily accessible on any instance they are working on. Since the self service approach is used, there is no increase in the workload of the system administrator.

38.2 Creating Users and Roles

Oracle Enterprise Manager supports different classes of Oracle users, depending upon the environment you are managing and the context in which you are using Oracle Enterprise Manager. User privileges provide a basic level of security in Enterprise Manager. They are designed to control user access to data and to limit the kinds of SQL statements that users can execute. When creating a user, you grant privileges to enable the user to connect to the database, to run queries and make updates, to create schema objects, and more.A role is a collection of Enterprise Manager resource privileges, or target privileges, or both, which you can grant to administrators or to other roles. These roles can be based upon geographic location (for example, a role for Canadian administrators to manage Canadian systems), line of business (for example, a role for administrators of the human resource systems or the sales systems), or any other model. By creating roles, an administrator needs only to assign the role that includes all the appropriate privileges to his team members instead of having to grant many individual privileges.

Before using JVMDaaS, the Super Administrator must create users for the following roles:

- EM_SSA_ADMINISTRATOR: Users with this role can define quotas and constraints for the self service users and grant them access privileges. Users with this role also have provisioning and patching designer privileges that allow them to create and save deployment procedures, create and view patch plans, and support the plug-in lifecycle on the Management Agent. These privileges are required for initial setup and ongoing maintenance of the infrastructure.

- JVMDAAS: Users with this role can access the Cloud JVM Diagnostics Self Service Portal. A user with the EM_SSA_ADMINISTRATOR role can provide additional privileges that allow users with this role to access other features in Enterprise Manager. While creating this role, ensure that:

- The EM_SSA_USER_BASE role has been explicitly granted to this role.

- The following resource privileges have been granted to this role:

- View Any Service Family

- Grant View Service Family

38.3 Setting Up JVMDaaS

Prerequisites

Users with the EM_SSA_ADMINISTRATOR and JVMDAAS role must have been created. See Creating Users and Roles.

To set up JVMDaaS, follow these steps:

1. Log in to Enterprise Manager as a user with the EM_SSA_ADMINISTRATOR role.

2. From the Enterprise menu, select Cloud, then select JVM Diagnostics Home.

Figure 38-1 JVMDAAS - Home

3. Click the Quotas tab to allocate quota to one or more users with JDAAS role. See Defining and Allocating Quotas.

4. Click the Home tab to manage and monitor the JVM Diagnostics Agents. See Monitoring JVM Diagnostics Agents and Engines.

38.4 Defining and Allocating Quotas

Quotas can be defined to specify the total number of JVMs that can be allocated to a self service user belonging to a specific role. Users with the EM_SSA_ADMINISTRATOR role can define quotas for self service users.

Prerequisites

- You must have created a user with the EM_SSA_ADMINISTRATOR role. This user must have the EM_SSA_ADMIN and JVM Diagnostics Administrator privileges.

- You must have created one or more users with the JVMDAAS role.

To set up quotas, follow these steps:

1. Click the Quotas tab. This page shows the list of roles and the maximum number of JVMs allocated to each role.

Figure 38-2 JVMDAAS - Quota

2. Click Create. In the Create Quota window that appears, specify the following:

- Role Name: Specify the EM_SSA_USER role to which the quota is to be allocated.

- JVMs: Specify the maximum number of JVMs or the quota that will be available to the selected role.

- JVMD Engine: You can select either of the following:

- JVM Diagnostics Engine: Select the JVM Diagnostics Engine that is to be registered for the JVM Diagnostics Service.

- Custom: Specify the host and port number of the JVM Diagnostics Manager on which a load balancer has been enabled.

3. Click OK to create the quota and return to the JVM Diagnostics Cloud Self Service Portal Setup page. The quota (JVM pool) with the specified number of JVMs is listed in the Quotas page.

You can edit or delete a quota by selecting the name of the role to which the quota has been assigned and clicking the Edit or Delete option as required.

Note:
If you modify a quota that contains active JVMs, the new quota will be applicable only to the new JVM connections. The existing JVMs will continue to use the old quota.

38.5 Monitoring JVM Diagnostics Agents and Engines

Click on the Home tab to view the JVM Diagnostics Home page. It contains the following regions:

- Overview: This region shows the total number of JVM Pools and JVMs for which quota has been allocated. It shows the number of active and deactivated JVMs.

- JVM States: This region shows a chart with the various states of the JVM.

- Active JVMs: The Active JVMs region shows the number of the JVMs that are active for a specified duration.

- JVMs and Pools: This region lists the JVMs and JVM Pools for which quota has been allocated. For each JVM Pool, the number of JVMs in the pool, the owner, and the date on which the JVM Pool was created is displayed. For each JVM, the status of the JVM (active or inactive), the owner, and the date on which it was created is displayed.
You can Activate, Deactivate a JVM, or Remove a JVM Pool. You can click on a JVM Pool or a JVM to drill down to the corresponding home page.

- Engines and Agents: This region shows the list of JVM Engines and JVM Agents.

39 Using the JVM Diagnostics Self Service Portal

39.1 JVM Diagnostics Cloud Self Service Portal

The JVM Diagnostics Cloud Self Service Portal allows self service users to view and monitor the JVMs allocated to them. To view this page, follow these steps:

1. Log in to Enterprise Manager as a user with the JDAAS_USER role. The Cloud Self Service Portal page appears.

2. The JVM Diagnostics Cloud Self Service Portal page appears. It contains the following regions:

- Summary: This region shows the total number of JVMs allocated to the self service user. It also shows the number of available JVMs, and deactivated JVMs.

- Getting Started: This region contains links to conceptual topics.

- My JVM Diagnostics: This region shows a list of JVM pools that have been allocated to the self service user. The following actions can be performed:

- Download Agent: Before you can monitor the JVM, click Download Agent to download the JVM Diagnostics Agent war file and deploy it on the Application Server that is to be monitored.

Note:
The quota assigned to the self service user must be greater than 0.

- Activate: After the war file has been deployed, select a JVM and click Activate to start monitoring it.

- Deactivate: Select a JVM and click Deactivate to stop monitoring the JVM.

- Note:
Before you remove the JVM, you must undeploy the JVM Diagnostics Agent from your application server. If it is not undeployed, the JVM Diagnostics Agent will reconnect and start monitoring the JVM again.

- Click on the Name link to drill down to the Java Virtual Machine Home page. The Java Virtual Machine Home page provides a summary view of the JVM and displays the real time thread states. Click the My JVM Diagnostics link to return to the JVM Diagnostics Cloud Self Service Portal page.

39.2 JVM Home Page

The JVM Home page with the following details is displayed.

- Summary: Shows details of the JVM such as the JVM Pool it belongs to, the host, JVM version, vendor, heap size, agent optimization level, and agent log level details.

- Realtime Thread States: Shows the state of the various threads in the JVM in the color coded columns. The current activity of the JVM including CPU usage, memory, number of threads waiting for a database response, network response, or number of threads waiting for synchronization lock, and number of idle threads are displayed. Click on a JVM to view the list of threads in the JVM and the details of each thread.

- Active Threads: The number of active threads in the JVM in the last 24 hours.

- Top Requests: Shows the top requests over the last 24 hours.

From this page, you can navigate to the following pages:

- JVM Performance Diagnostics: Shows the performance diagnostics data for the JVM.

- Live Thread Analysis: Shows the real time JVM data for the selected JVM.

- Cloud Self Service Portal: Takes you back the JVM Diagnostics Cloud Self Service Portal.

Part XIV

Enabling Testing as a Service (TaaS)

This section provides an overview of Testing as a Service (TaaS), describes the configuration steps, and the testing self service portal.

This part contains the following chapters:

- Chapter 40, "About Testing as a Service"

- Chapter 41, "Setting Up Testing as a Service"

- Chapter 42, "Using the Testing as a Service Portal"

40 About Testing as a Service

Testing as a Service (TaaS) is a cloud-based platform for delivering automated application testing services. It is a self-service solution designed for private clouds that:

- Orchestrates the testing process end-to-end by automating the provisioning of test labs including applications under test and test tools.

- Executes load and/or functional test scripts against the application.

- Provides rich application monitoring and diagnostics data for analysis.

- Has sophisticated chargeback facility for metering and charging the usage of the testing cloud by end-users.

Delivered through Enterprise Manager Cloud Control, TaaS makes it possible to significantly reduce testing time and costs without compromising quality and enables organizations to be more agile in delivering critical business applications to their users.

Key TaaS features include:

- Self-service portal for executing application load and functional tests.

- Test library with full access and security controls which stores all the test assets (scripts, databank files, scenario description and user configurable parameters) available to end users.

- On-demand automated provisioning of complete test labs that includes ability to deploy complex multi-tier applications, test tools, and test scripts. Pre-built assembly for Oracle Load Testing, Oracle Functional Testing, as well as custom test driver.

- Sharing of cloud hardware resource pools to help maximize hardware utilization while abiding by security policies.

- Integrated and rich application monitoring and diagnostics for middle tier and data tier, to ensure detection of bottlenecks and problems for the application under test.

- Resource metering and chargeback for tests that require to be charged to cost centers. These metering capabilities allow for tracking and charging for compute resources used.

40.1 TaaS Roles

There are three roles used in TaaS: Test Administrators, Test Designers, and Testers. The following sections describe these roles in more detail.

- Test Administrators

- Test Designers

- Testers

40.1.1 Test Administrators

TaaS enables Test Administrators to manage the application infrastructure for testing activities, define user activities for self-service testing, and manage test environments and test assets. See Figure 40-1.

Figure 40-1 Testing Cloud Administration Activities

From TaaS, the Test Administrator can:

- Set Up Applications

- Set Up Test Drivers

- Set Up Quotas

- Publish to User Roles

- Set Up Chargeback Service

40.1.2 Test Designers

TaaS enables Test Designers to create test assets and test environments that can be made available to users to perform testing activities. Test Designers create test scripts and testing scenarios by using the test drivers native capabilities. These scenarios include which parameters are configurable at run-time. See Figure 40-2.

Figure 40-2 Testing Cloud Designer Activities

From TaaS, the Test Designer can:

- Create Test Assets

- Create Test Environments

40.1.3 Testers

TaaS allows Testers to create tests from test assets and test environments that have been published to them by the Test Administrator. The Tester runs trials based on the test asset and environment, monitors ongoing trials, and analyzes the results of completed trials. The Tester can apply patches to an environment and rerun the trials to compare the results and determine how changes to the environment affect key metrics and overall performance. See Figure 40-3.

Figure 40-3 Testing Cloud End User Activities

From TaaS, the Tester can:

- Verify Available Test Assets and Environments

- Create Tests

- Create and Run Trials

- Share Tests

- Monitor On-Going Trials

- Report and Compare Trial Data from Previous Trials

- View Activity and Usage Information

- View Deployment Information

41 Setting Up Testing as a Service

This chapter provides an overview of the steps involved in setting up testing as a service (TaaS).

Many of these setup tasks are also required to use Infrastructure as a Service; if you have already set up IaaS, you will have already completed many of these tasks. This chapter contains the following sections:

- Getting Started

- Creating Test Administrators

- Creating an Assembly Component

- Creating a Deployment Plan

41.1 Getting Started

The table below provides an overview of TaaS setup tasks.

Table 41-1 Getting Started with TaaS

Step

Task

Role

1

Install the TaaS Plug-In

See Section 3.2, "Deploying the Required Plug-ins"

Super Administrator

2

Create Testers

See Section 41.2, "Creating Test Administrators"

CLOUD_ADMIN

3

Create a Virtualization (VT) Assembly with the Required Assembly Zip files

See Section 41.3, "Creating an Assembly Component"

CLOUD_ADMIN

4

Install Oracle VM Manager (OVM)

This is part of Setting the Cloud Infrastructure. See Chapter 3, "Setting Up the Cloud Management Infrastructure".

CLOUD_ADMIN

5

Install VT Plug-in from Enterprise Manager

See Section 3.2, "Deploying the Required Plug-ins"

CLOUD_ADMIN

6

Register OVM

See Section 5.3, "Registering the Oracle VM Manager"

CLOUD_ADMIN

7

Register Oracle VM Server (OVS)

Reimage steps

See Section 5.5, "Discovering a Virtual Server"

CLOUD_ADMIN

8

Add Storage

See Section 5.10, "Creating a Storage Repository"

CLOUD_ADMIN

9

Refresh Mount Locations

CLOUD_ADMIN

10

Add Storage Repository

See Section 5.10.1, "Performing Administrative Operations on a Storage Repository"

CLOUD_ADMIN

11

Present Server

See Section 5.11, "Presenting the Storage Repository"

CLOUD_ADMIN

12

Create Server Pool

See Section 5.14, "Creating a Virtual Server Pool"

CLOUD_ADMIN

13

Create Zone

See Section 5.15, "Creating a Zone"

CLOUD_ADMIN

14

Import Assembly into Storage Repository

See Section 5.12, "Importing Assemblies, Templates, and Virtual Disks into the Storage Repository"

CLOUD_ADMIN

15

Set Up Network

See Section 5.7, "Setting Up Networks"

CLOUD_ADMIN

16

Generate MAC Addresses

See Section 5.7.1, "Generating MAC Addresses"

CLOUD_ADMIN

17

Create a Deployment Plan

See Section 41.4, "Creating a Deployment Plan"

CLOUD_ADMIN

41.2 Creating Test Administrators

Follow these steps to create Test Administrators:

1. Log in to Enterprise Manager as a Super Administrator or a user who has privileges to create a new administrator.

2. From Setup, select Security, then select Administrator.

3. Create the TAASADMIN administrator with the EM_SSA_ADMINISTRATOR role.

4. Create the TAASDESIGNER administrator with the EM_TAAS_DESIGNER role.

5. Create the TAASUSER administrator with the EM_SSA_ROLE.

41.3 Creating an Assembly Component

To create a VT assembly, perform the following steps:

1. From the Enterprise menu, select Provisioning and Patching, then select Software Library.

2. Select the Root directory. Select Actions then select Create Folder.

3. Select the directory which has write access. From the Actions menu, select Create Entity, then select Virtualization.

4. Select Assembly as the type and click OK.

5. Provide the required value and click Next.

6. Select the upload mechanism. Click OK.

7. Click Add button to enter file name and click OK.

8. Continue to click Next until you are on the Review page and click Save and Upload.
If you are uploading a file from the OMS or Agent, then you need to Upload Files to a destination where you want the files to be uploaded.

41.4 Creating a Deployment Plan

Perform the following steps to create a Deployment Plan:

1. From Enterprise menu, select Cloud, then select Infrastructure Home.

2. In the right panel, select a zone and right click.
Note: A Deployment Plan created from Zone is the only supported option. (If the deployment plan is created from Server Pool or Oracle VM Server, that deployment plan is not visible in TaaS.)

3. Select Deploy Assembly. Select the Assembly created in the Software Library or assembly directly imported in the storage repository. Click Next.

4. On the Assembly Deployment: Network and Agent page, select Enable Agent Push Configuration. The push means that the Enterprise Manager Agent will be pushed from Enterprise Manager after OVM creation.

5. Provide the Installation Base Directory, Platform, User Name, and Password.

6. Click Save as Plan. Provide the name of the plan and select the software library folder. Any other information to provide depends on the assembly you want to install.

42 Using the Testing as a Service Portal

After the TaaS environment has been setup, Test Administrators and Test Designers must perform their up front tasks before the Tester can start testing. In general, the tasks are:

- Test Administrator gives access and quotas for environments on the cloud, test assets, and virtual user test limits for the Oracle Load Testing test driver.

- Test Designer creates test assets (pre-packaged test scripts and scenarios) and test environments (templates for application-under-test, based on Oracle Assemblies) for users to consume.

- Tester is the consumer of the test assets and test environments for testing created by the Test Designer. The Tester also plans, executes, and analyzes the test results.

Table 42-1 Tasks in TaaS

Task

How To

Role

Ensure Prerequisites Are Met

Prerequisites

Test Administrator, Test Designer, Tester

Add application

Setting Up Application Types

Test Administrator

Define Test Drivers

Setting Up Oracle Load Testing Test Drivers

Setting Up Oracle Functional Testing Test Drivers

Setting Up Custom Test Driver Types

Test Administrator

Set Up Quotas

Setting Up Quotas

Test Administrator

Publish Test Environments and Test Assets

Publishing Test Environments, Test Assets, and Test Drivers

Test Administrator

Set Up Chargeback Service

Setting Up Chargeback Service

Test Administrator

Create Test Asset

Creating Test Assets - General Information

Creating Test Asset - Oracle Load Testing

Creating Test Asset - Oracle Functional Testing

Creating Test Asset - Custom Test

Test Designer

Create Test Environments

Creating Test Environments

Test Designer

Verify Available Test Assets and Environments

Verifying Available Test Assets and Environments

Tester

Create Tests

Creating Tests

Creating Tests - Oracle Load Testing Tests

Creating Tests - Oracle Functional Testing Tests

Creating Tests - Custom Tests

Tester

Create and Run Trials

Creating and Running Trials

Creating and Running Oracle Load Testing Trial

Creating and Running Oracle Functional Testing Trial

Tester

Monitor On-Going Trials

Monitoring On-Going Trials

Tester

Compare Trial Results

Comparing Trial Results

Tester

View Activity and Usage Information

Viewing Activity and Usage Information

Tester

View Deployment Information

Viewing Deployment Information

Tester

42.1 Prerequisites

Ensure the following prerequisites are met when using the Testing Cloud Self Service Portal.

Before You Do Anything

- Ensure Enterprise Manager Cloud Control is set up to manage the cloud environment.

- Ensure Self Service Application Plug-in is installed because Testing as a Service is part of the SSA plug-in.

Prerequisites Specific to Test Designer

- Has the privileges to access the Testing as a Service (TaaS) Test Designer options. This user must have the EM_TAAS_DESIGNER role.

- Must have knowledge about what applications are to be tested using Enterprise Manager and their structure (such as database servers, application servers, and configurations for the servers.)

- Has created test scripts using the Oracle Application Testing Suite scripting tool OpenScript, the Oracle Load Testing scenario, and the self-contained .scnzip file, and the Oracle Functional Testing scenario with its self-contained .zip file. For information on how to create and record scripts, refer to the Oracle Application Testing Suite documentation available by downloading the documentation set from:
http://www.oracle.com/technetwork/oem/downloads/index-084446.html

- Must be familiar with Enterprise Manager Cloud Control features.

- Has created Test Assets based on scripts and scenarios for Oracle Load Testing, Oracle Functional Testing, or other test drivers and Test Environments based on Oracle assemblies.

- Has deploy privileges over the Cloud Zones, otherwise he cannot create deployment plans.

- Has access to the Cloud Infrastructure.

Prerequisites Specific to Test Administrator

- Has the privileges to access the Testing Cloud Self Service Portal Test Administrator options. This user must have the EM_SSA_ADMINISTRATOR role.

- Must have knowledge about what applications are being deployed, managed, and tested using Enterprise Manager and their structure (such as database servers, application servers, and configurations for the servers.)

- Must have basic DB administration knowledge and have a good understanding of virtualization technologies.

- Must be familiar with Enterprise Manager Cloud Control features.

- Ensures that the Test Designer has created Test Assets and Test Environments.

- Ensures that the Testers have the privileges to access the Testing Cloud Self Service Portal user options.

- Publishes the test assets, test environments, and test drivers to the Tester role and the EM_SSA_USER role.

- Has deploy privileges over the Cloud Zones, otherwise he cannot create deployment plans.

- Has access to the Cloud Infrastructure.

Prerequisites Specific to Tester and SSA Users

- Must have the EM_SSA_USER role.

- Ensures that the Test Designer has created Test Assets and Test Environments.

- Ensures that the Test Administrator has assigned Test Assets, Test Environments, and Test Drivers to the Tester role (EM_SSA_USER).

- Has the privileges to access the TaaS Tester options.

- Has the privileges to access the Testing Cloud Self Service Portal user options.

- Must be familiar with Enterprise Manager Cloud Control features.

42.2 Test Administrator Tasks

Enterprise Manager allows TaaS Test Administrators to manage the application infrastructure for testing activities, define user activities for self-service testing, and manage test environments and test assets.

Specific responsibilities include:

- Manage the test drivers.

- Manage user roles and access to test drivers (specify which users have access to which plug-in.)

- Manage access to test environments and test assets based on users and roles.

- Assign the OVM and Zone privileges to the following roles and users:

- OVM - View privilege to Test Designer and Test Administrator

- Zone - Operator privilege to Test Designer and Test Administrator

Since TaaS cannot know before hand the zones and Oracle Virtual Machines present in user deployments, the Super Administrator, Cloud Administrator, or respective target owner will decide which zones and Oracle Virtual Machines are to be used.

The following tasks are performed by the Test Administrator.

- Setting Up Application Types

- Setting Up Oracle Load Testing Test Drivers

- Setting Up Oracle Functional Testing Test Drivers

- Setting Up Custom Test Driver Types

- Setting Up Quotas

- Publishing Test Environments, Test Assets, and Test Drivers

- Setting Up Chargeback Service

42.2.1 Setting Up Application Types

The Testing Cloud Self Service Portal allows Test Administrators to manage the application infrastructure for testing activities, define user activities for self-service testing, and manage test environments and test assets. Specific responsibilities include:

- Manage the test drivers.

- Manage user roles and access to test drivers (specify which users have access to which plug-in.)

- Manage access to test environments and test assets based on users and roles.

- Assign the OVM and Zone privileges to the following roles and users:

- OVM - View privilege to Test Designer and Test Administrator

- Zone - Operator privilege to Test Designer and Test Administrator

Since TaaS cannot know before hand the zones and Oracle Virtual Machines present in user deployments, the Super Administrator, Cloud Administrator, or respective target owner will decide which zones and Oracle Virtual Machines are to be used.

Note: Ensure the prerequisites are met before using the Testing Cloud Self Service Portal (see Prerequisites).

Follow this process to set up application types to be tested.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Test Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Test Administrator page appears.

3. Click Application Types located in the left panel to define application types.

4. Click Add to define the name and description of the application type to make available for testing.

5. Define the name and description and click Save.

42.2.2 Setting Up Test Drivers

A Test Driver is the package of software that Enterprise Manager uses to generate tests or workload against test systems based on a deployment plan.

Oracle provides two types of drivers: Oracle Load Testing and Oracle Functional Testing. The Oracle Load Testing test driver is used for load, scalability, and stress testing. This allows you to simulate hundreds or thousands of users using the software at the same time. Oracle Functional Testing test driver is used for functional and regression testing.

Since Oracle Load Testing and Oracle Functional Testing are created by Oracle, Oracle knows the specifics of the test drivers and provides seamless integration to these drivers.

You can register your own type of test drivers as long as you can build a deployment plan around your assembly which contains the testing product and software. However, when you create a custom test driver, you need to direct your scripts on how to launch and monitor your tests.

The Custom Test Driver allows Testers to use test tools from third party vendors together with TaaS. Use Custom Test Driver Types to define and register test-driver types which meet your specific testing needs.

The following sections explain how to register specific test drivers.

- Setting Up Oracle Load Testing Test Drivers

- Setting Up Oracle Functional Testing Test Drivers

- Setting Up Custom Test Driver Types

42.2.3 Setting Up Oracle Load Testing Test Drivers

The Oracle Load Testing test driver is used for load, scalability, and stress testing. This allows you to simulate hundreds or thousands of users using the software at the same time.

Note: Ensure the prerequisites are met before setting up Oracle Load Testing Test Drivers (see Prerequisites).

To register an Oracle Load Testing test driver, follow these steps:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Test Administrator page appears.

3. Click Test Drivers located in the left panel. The Test Driver page appears.

4. From the Register menu, select Oracle Load Testing.

5. Provide the following information:

- Name: Enter a meaningful name for this Test Driver.

- Deployment Plan: Click the magnifying glass for selecting a deployment plan on which the test driver is based. In the resulting dialog box, select the Deployment Plan to be used for the test driver and click Select.
Ensure that Test Designers and Test Administrators create the deployment plan "on a zone". Also, ensure they have correct privileges to this zone. For information regarding deployment plans, see Oracle Enterprise Manager Lifecycle Management Administrator's Guide.

- Version: Version field is automatically filled in. The information is derived from the deployment plan.

- Agent Deployment Plan: Click the magnifying glass for selecting an Agent Deployment Plan.
The Agent deployment plan is a configuration file that defines an independent Agent machine on the cloud. Since TaaS registers the Agent deployment plan with a test driver, the Agent machine instance is used together with the test driver deployment plan to create the load test.

This allows TaaS to create independent agent machines on the cloud, allowing load generation capacity of a test driver to be scaled up depending upon the trial configuration and demand.

Ensure that the Agent Deployment Plan is scallable.

Note: Both the Deployment Plan's version of the Application Testing Suite and the Agent Deployment Plan's version of the Application Testing Suite must be same.

- Description: Enter a description for the Test Driver.

6. Click Register.

To view the details of a test driver that has already been registered, highlight the test driver in the table. The deployment plan, agent deployment plan, and assembly structure information are provided.

42.2.4 Setting Up Oracle Functional Testing Test Drivers

The Oracle Functional Testing Test Driver is used for functional and regression testing and validating application functionality.

Note: Ensure the prerequisites are met before setting up Oracle Load Testing Test Drivers and Oracle Functional Testing Test Drivers (see Prerequisites).

To register an Oracle Functional Testing test driver, follow these steps:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Test Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Testing Cloud Self Service Setup page appears.

3. Click Test Drivers located in the left pane. The Test Drivers pane appears.

4. From the Register menu, select Oracle Functional Testing.

5. Provide the following information:

- Name: Enter a meaningful name for this Test Driver.

- Deployment Plan: Click the magnifying glass for selecting a deployment plan on which the test driver is based. In the resulting dialog box, select the Deployment Plan to be used for the test driver and click Select.
Ensure that Test Designers and Test Administrators create the deployment plan "on a zone". Also, ensure they have correct privileges to this zone. For information regarding deployment plans, see Oracle Enterprise Manager Lifecycle Management Administrator's Guide.

- Version: Version field is automatically filled in. The information is derived from the deployment plan.

- Description: Enter a description for the Test Driver.

- Results Storage: Use either the Result File System or the repository. The Result File System enables you to store, manage, and access the Functional Testing results for a longer duration and without any size limitations. These results can also be accessed from your external web clients and servers using the http and nfs protocols.
If you choose to use the repository, you are limited to 10 MB of storage. Results stored locally will be purged after two days.

6. Click Register.

To view the details of a test driver that has already been registered, highlight the test driver in the table. The deployment plan and assembly structure information are provided.

42.2.5 Setting Up Custom Test Driver Types

The Custom Test Driver allows testers to use test tools from third party vendors together with TaaS. Use Custom Test Driver Types to define and register test-driver types which meet your specific testing needs.

Oracle Load Testing and Oracle Functional Testing are types of drivers, and since they are created by Oracle, we (Oracle) know the specifics of the drivers. However, when you create a test driver, you need to direct your scripts on how to launch and monitor your tests. You can register your own type of test drivers as long as you can build a deployment plan around your assembly which contains the testing product and software.

Note:
If you are using third party test automation tools, these tools need to be registered as Custom Test Drivers.
Ensure the prerequisites are met before setting up Oracle Load Testing Test Drivers and Oracle Functional Testing Test Drivers (see Prerequisites).

To register a custom test driver, follow these steps:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Testing Cloud Self Service Setup page appears.

3. Click Custom Types located in the left panel. The Custom Test Driver Types page appears

4. Click Create.

5. On the Add Custom Test Driver Type dialog, provide the following information:

1. Enter a meaningful name and description.

2. The Working Directory is a folder created on your Test Driver Virtual Machine (VM) where the operations will occur.

3. The Results Directory is a folder created on your Test Driver Virtual Machine (VM) and where the results of your tests will appear, TaaS will zip up the entire folder, send it to Enterprise Manager.

4. Pre-Execution Script is a file which performs pre-execution steps for your test. Click Browse to locate the file.

5. Execution Script is a file which launches the test. Click Browse to locate the file.

6. Progress Monitoring Script is a script which TaaS will run on the test driver, to determine if the test is running or complete (and its outcome). Click Browse to locate the file.
When the test is complete, TaaS reports the outcome of the test. TaaS looks at the value returned by this script to determine the test outcome (passed, failed, warning).

Note: For TaaS to know the outcome of the trial, ensure that your script prints one of the following outcomes: passed, failed or warning, as the last line to the standard output.

7. Post-Execution Script is a file which performs the clean up steps after your test runs. Click Browse to locate the file.

8. Stop Execution Script is a script which TaaS will run on the test driver to stop the test execution.

9. Custom Parameters is a property file which contains the run-time parameters that will be passed to the test execution. You can configure these parameters during trial submission.

10. Click OK.

Once you provide these inputs, your type is defined and you can now register a new driver of this type.

6. To register a driver, on the Test Drivers page, select Custom from the Register menu.

7. Provide a meaningful name for this Test Driver.

8. Click the magnifying glass for selecting a deployment plan on which the test driver is based. In the resulting dialog box, select the Deployment Plan that should be used for the Custom test driver and click Select.

9. Enter a description for the Test Driver and click Register.

10. Select a Test Driver in the list then click on the component to drill down to the Deployment Plan details.

42.2.6 Setting Up Quotas

The Testing as a Service Portal allows you (Test Administrator) to Setup usage quotas for Testers by specific roles. To set up quotas, follow these steps:

Note: Ensure the prerequisites are met before setting up quotas (see Prerequisites).

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Test Administrator page appears.

3. Click Quotas located in the left panel. The Quotas page appears.

4. Click Create.

5. For the Role Name, click the magnifying glass for selecting roles. In the resulting dialog box, select the role to set quotas for and click Select.

6. Enter the Number of Guest VMs (Virtual Machines), Number of CPUs, Memory (GB), Storage Size (GB), and Number of VUs (Virtual Users) to allocate to the selected role and click Create.

42.2.7 Setting Up Result File Systems

The Testing as a Service (TaaS) Portal allows you (Test Administrator) to setup result file systems for Testers.

Use Result File Systems to store, manage, and access the Functional Testing results for a longer duration and without any size limitations. These results can also be accessed from your external web clients and servers using the http and nfs protocols.

Note: Ensure the prerequisites are met before publishing test environments and test assets (see Prerequisites).

To set up result file systems, follow these steps:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Test Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Test Administrator page appears.

3. Click Result File Systems located in the left panel. The Result File System region appears.

4. Click Add.

5. On the Add Result File System dialog box, provide the following:

- Name

- Export Path - Full path to file that stores results, for example, nfs-server.mydomain.com:/export/OFTResults

- HTTP Access URL - HTTP URL corresponding to the NFS path provided.

- Description

6. Click Add.

42.2.8 Publishing Test Environments, Test Assets, and Test Drivers

The Testing as a Service (TaaS) Portal allows you (Test Administrator) to publish test asset assets, test environments, and test drivers to selected roles so they can be used when creating tests.

Note: Ensure the prerequisites are met before publishing test environments and test assets (see Prerequisites).

To publish test environments, test assets, and test drivers, follow these steps:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Test Administrator page appears.

3. Click Publish located in the left panel. The Publish page appears.

4. Click Add.

5. From the Add menu in the Select Test Assets, Test Environments, Test Drivers region, select either Test Asset, Test Environment., or Test Driver. In the resulting dialog box, select the appropriate item to be published and click Select.
The Detail region displays the specific information for each test asset, test environment, and test driver.

6. Click Add in the Select Roles region. In the resulting dialog box, select the role to be published and click Select.

7. After all the test assets, test environments, test drivers, and roles have been selected, click Publish.

42.2.9 Setting Up Chargeback Service

Note: Ensure the prerequisites are met before setting up the chargeback service (see Prerequisites).

For information about Chargeback Service, refer to the Chargeback Administration chapter in the Oracle Enterprise Manager Cloud Administration Guide.

Follow this process to set up applications to be tested.

1. Log in to Enterprise Manager Cloud Control using Test Administrator credentials.

2. From the Setup menu, select Cloud, then select Testing. The Test Administrator page appears.

3. Click Chargeback located in the left panel to define the chargeback service.

4. Click Configure Charge Plan to define Extended Charge Plans. Plans may be defined by configuration or usage. If defining plans by usage, charges may be based on universal metrics (CPU, memory, storage) or by metrics specific to the targets. Use extended charge plans to set individual prices.

5. Click Configure Targets to assign Charge Plans. Charge plans must be assigned to targets. If targets are grouped into a zone, then a charge plan can be assigned to the zone, and will apply to all targets within that zone. If there are multiple zones, then different charge plans may be assigned to each one. The Self-Service Application (SSA) administrator can determine chargeback pricing by assigning existing charge plans to the different zones.

6. Click Configure Cost Center to set up Cost Centers (Optional). Cost Centers may be set up to aggregate costs among groups of users, but are not required. If Cost Centers are set up, the chargeback reports by Cost Center are only available to SSA administrators.

42.3 Test Designer Tasks - Creating Test Assets and Test Environments

The following tasks are performed by the Test Designer:

- Creating Test Assets - General Information

- Creating Test Asset - Oracle Load Testing

- Creating Test Asset - Oracle Functional Testing

- Creating Test Asset - Custom Test

- Creating Test Environments

42.3.1 Creating Test Assets - General Information

A Test Asset is a collection of test artifacts (scenarios, scripts, tests) that can be executed on a test environment. A test asset defines the actions that need to be executed to reproduce the workload against the test environment. The Testing Cloud Self Service Portal allows the Test Designer to create Test Assets based upon the available Test Drivers defined by the Test Administrator.

The Test Designer should know the application under test and its relevant Key Performance Indicators (KPIs). The Test Designer should also know the business use-cases for the test scenarios being run. Specific responsibilities include:

- The Test Designer should be skilled in Oracle OpenScript. If the Oracle Load Testing Test Driver is used, the Test Designer should be skilled in Oracle Load Testing. If a Custom Test Driver is used, the Test Designer should be skilled using the corresponding test scripting tool.

- The Test Designer should be skilled as DBA.

- Create Test Assets using the Testing as a Service portal.

- Create Test Environments using the Testing as a Service portal.

- If the Test Designer is required to create environments, the Test Designer must know how to create assemblies.

Note: Ensure the prerequisites are met before creating test assets (see Prerequisites).

42.3.2 Creating Test Asset - Oracle Load Testing

Follow this process to create Oracle Load Testing test assets.

1. Log in to Enterprise Manager Cloud Control using Test Designer credentials.

2. From the Enterprise menu, select Cloud, then select Self Service Portal. The Infrastructure Cloud Self Service Portal page appears.

3. Click My Tests. The My Library tab appears.

4. Click Test Assets to define the test asset to be added to the library.

5. From the Create menu, select Oracle Load Testing. The Oracle Load Testing Asset Properties page appears.

6. Provide the following information:

- Name: Enter a meaningful name for this Test Asset.

- Description: Enter a meaningful description for this Test Asset.

- Application Type: Click the Application drop-down list and select the application to be tested from the list.

- Tags: Enter any tags to use as keywords to further identify this test asset. These tags make test assets easier to identify and to understand the purpose of the asset.

- Scenario: Click Browse and select the asset file you want to upload. The file type for Oracle Load Testing is SCNZIP. If the Test Asset was going to used to do large scalable testing using a number of agent machines, the scenario configuration file will have the Hardware Estimation Available feature enabled, as well as values for End Condition, Ramp-up Rate, and Number of Virtual Users.

- Configurable Parameters: Choose none, any, or all of the parameters. The selected parameters will be exposed within TaaS and the parameters can be changed for the TaaS test runs.

7. Once all the information is provided, click Submit. The Test Asset is added to the library. Click on a test asset name to drill down to the Test Asset Details page.

42.3.3 Creating Test Asset - Oracle Functional Testing

Follow this process to create Oracle Functional Testing test assets.

1. Log in to Enterprise Manager Cloud Control using Test Designer credentials.

2. From the Enterprise menu, select Cloud, then select Self Service Portal. The Infrastructure Cloud Self Service Portal page appears.

3. Click My Tests. The My Library tab appears.

4. Click Test Assets to define the test asset to be added to the library.

5. From the Create menu, select Oracle Functional Testing. The Oracle Functional Testing Asset Properties page appears.

6. Provide the following information:

- Name: Enter a meaningful name for this Test Asset.

- Description: Enter a meaningful description for this Test Asset.

- Application Type: Click the Application drop-down list and select the application to be tested from the list.

- Tags: Enter any tags to use as keywords to further identify this test asset. These tags make test assets easier to identify and to understand the purpose of the asset.

- Script: Click Browse and select the script file (or files) you want to upload. The file type for Oracle Functional Testing is ZIP. (Test Script Zip exported from Open Script Tool.)
Note: When you select multiple scripts, the order is important. The scripts are executed in the order in which they appear in the list.

7. Once all the information is provided, click Submit.
The Test Asset is added to the library. If Oracle Load Testing Scenario file contains the Hardware Estimation result, the 'Hardware Estimation Available ' label is set to true.

Click on a test asset name to drill down to the Test Asset Details page.

42.3.4 Creating Test Asset - Custom Test

Follow this process to create Custom test assets.

1. Log in to Enterprise Manager Cloud Control using Test Designer credentials.

2. From the Enterprise menu, select Cloud, then select Self Service Portal. The Infrastructure Cloud Self Service Portal page appears.

3. Click My Tests. The My Library tab appears.

4. Click Test Assets to define the test assets to be added to the library.

5. From the Create menu, select Custom. The Custom Test Asset Properties page appears.

6. Select the type of Custom test driver.
Enter a name and description for the test asset. In addition, for Custom asset type, you determine which parameters will be exposed to the user.

7. Click the Application drop-down list and select the application to be tested from the list.

8. Enter any tags to use as keywords to further identify this test asset. These tags make test assets easier to identify and to understand the purpose of the asset.

9. Click Browse and select the asset file you want to upload. The file type for Custom can be whatever file type understood by the test driver involved.

10. Click OK. The Test Asset is added to the library. Click on a test asset name to drill down to the Test Asset Details page.

42.3.5 Creating Test Environments

A Test Environment is a collection of entities that represents the entire application stack, thus an environment consists of the following elements:

- Application under test (AuT): Contains the software bits and application data. For example, for a deployed Siebel application, end users can modify settings, configurations, and parameters of the application.

- Infrastructure under test (IaT): These are entities the Application under test depends upon, for example, the cloud setup/infrastructure in a cloud deployment. Typically an infrastructure is something created for consumption of end users by administrators.

Note: Ensure the prerequisites are met before creating test environments (see Prerequisites).

Follow this process to create test environments.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Test Designer credentials.

2. From the Enterprise menu, select Cloud, then select Self Service Portal. The Self Service page appears.

3. Click My Tests. The My Library tab appears.

4. Click Test Environments to define the test environments to be added to the library.

5. Click Create. The Test Environment Properties page appears.

6. Enter a name and description for the test environment.

7. Click the Application drop-down list and select the application to be tested from the list.

8. Enter any tags to use as keywords to further identify this test environment. These tags make test environments easier to identify and to understand the purpose of the environment.

9. Click the magnifying glass icon and select the Deployment Plan to use for this test environment.
The Deployment Plans must already be created on a Zone where the Test Designer/Administrator has Operator privileges and which (the zone) is part of an Oracle VM Manager with view privileges to the same user.

10. If the Test Environment contains a Web Application, click Yes.

11. Click the Select web-application drop-down and select the appliance that will act as the application or web server when the environment is deployed in the cloud.

12. Click OK. The test environment is added to the library. Click on a test environment name to drill down to the Test Environment Details page. Click on a deployment plan name to drill down to the Deployment Plan Details page.

42.4 Tester Tasks - Using the Testing Environment

Once the Test Administrator and Test Designer have performed their respective tasks, the Tester can now start testing.

The Testing Cloud Self Service Portal allows Testers to create tests from test assets and test environments to perform testing activities. Testers create tests using test assets and environments that have been assigned to them by the Test Administrator.

The Tester should know the application under test and its relevant Key Performance Indicators (KPIs). The Tester should also know the business use-cases for the test scenarios being run. Specific responsibilities include:

- Running the tests by using the test assets and environments created by the Test Designer and assigned to them by the Test Administrator.

- Reserving resources from the cloud, cancel upcoming reservations, update configurations of resources that have been reserved (CPU, memory, and so on).

- Editing test scenarios set up by the Test Designer to specify run time test parameters and schedule the tests for execution.

- Performing the test run analysis to compare various metrics that are relevant to the application and business use-case.

The following tasks are performed by the Tester.

- Creating Tests

- Creating Tests - Oracle Load Testing Tests

- Creating Tests - Oracle Functional Testing Tests

- Creating Tests - Custom Tests

- Creating and Running Trials

- Creating and Running Oracle Load Testing Trial

- Creating and Running Oracle Functional Testing Trial

- Monitoring On-Going Trials

- Comparing Trial Results

- Sharing Tests

- Viewing Activity and Usage Information

- Viewing Deployment Information (Browse My Deployments)

- Browsing the Testing Home Page

42.4.1 Verifying Available Test Assets and Environments

The Testing Cloud Self Service Portal allows Testers to verify which test assets and test environments have been assigned to them by the Test Administrator.

Note: Ensure the prerequisites are met before verifying available test assets and environments (see Prerequisites).

Follow this process to verify test assets and test environments assigned to your role.

1. Log in to Enterprise Manager Cloud Control using Tester credentials. You are logged into Self Service Portal.

2. Click My Tests. The Testing Cloud Self Service Portal Home tab appears.

3. Click the My Library tab. The My Library tab shows the test environments and test assets published to you by the Test Administrator.

4. Click Test Environments.

5. Click on an environment to view the details about the environment. Click on the component to drill down to the Assembly Structure details.

6. Click Test Assets.

7. Click on a test asset to view the details about the asset.

42.4.2 Creating Tests

The Testing Cloud Self Service Portal allows Testers to create tests from test assets and environments to perform testing activities. Testers create tests using test assets and test environments that have been assigned to them by the Test Administrator.

Note: Ensure the prerequisites are met before creating tests (see Prerequisites).

See the following section for the types of tests you can create:

- Creating Tests - Oracle Load Testing Tests

- Creating Tests - Oracle Functional Testing Tests

- Creating Tests - Custom Tests

42.4.3 Creating Tests - Oracle Load Testing Tests

Note: Ensure the prerequisites are met before creating Tests (see Prerequisites).

Follow this process to create Oracle Load Testing tests.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into the Infrastructure Cloud Self Service Portal.

2. Click My Tests.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. From the Create menu, select Oracle Load Testing. The Create Test page appears.

5. Provide the name and description. In addition, click the magnifying glass icon, select the test asset to be used in this test, and click Continue.

6. Select the Source, click the magnifying glass icon, and select the test environment to be used in this test. Change the Mapping URLs settings if needed.

7. Click the Test Driver drop-down and select the test driver to use to run the test in the cloud.

8. The Hardware Estimate region displays the recommended number of agent machines to use for this test based on the Test Asset and Test Driver if the Test driver is configured with Agent Deployment plan.

9. Click OK. The test is added to the library that specifies an asset, an environment, and a test-driver. Click on a test name to drill down to the details page.

42.4.4 Creating Tests - Oracle Functional Testing Tests

Note: Ensure the prerequisites are met before creating Tests (see Prerequisites).

Follow this process to create Oracle Functional Testing tests.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into the Infrastructure Cloud Self Service Portal.

2. Click My Tests.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. From the Create menu, select Oracle Functional Testing. The Create Test page appears.

5. Provide the name and description.

6. Click Add to select one or more Functional Test Assets for the test. The order in which the assets are listed will be the order of their execution in the trial.
Rearrange the order of the assets as needed by using the Move Up and Move Down arrows. You can also remove assets as needed.

7. Click Continue.

8. Select the Source, click the magnifying glass icon, and select the test environment to be used in this test. Change the Mapping URLs as needed.

9. Click the Test Driver drop-down and select the test driver to use to run the test in the cloud.

10. Click OK. The test is added to the library that specifies an asset, an environment, and a test-driver. Click on a test name to drill down to the details page.

42.4.5 Creating Tests - Custom Tests

Note: Ensure the prerequisites are met before creating Tests (see Prerequisites).

Follow this process to create Custom tests.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into the Infrastructure Cloud Self Service Portal.

2. Click My Tests.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. From the Create menu, select Custom. The Create Test page appears.

5. Enter a name and description for the test.

6. Click the magnifying glass icon, select the test asset to be used in this test, and click Select.

7. Select the test asset, review the details, and click Continue.

8. Select the Source and click the magnifying glass icon and select the test environment to be used in this test.

9. Select the test environment and click Select.

10. Click the Test Driver drop-down and select the test driver to use to run the test in the cloud.

11. Click OK. The test is added to the library that specifies an asset, an environment, and a test-driver. Click on a test name to drill down to the details page.

42.4.6 Creating and Running Trials

The Testing Cloud Self Service Portal allows Testers to create and run trials from the test instances that have been created in the portal. The Tester runs trials on the test asset and environment, monitors ongoing trials, and analyzes the results of completed trials.

Note: Ensure the prerequisites are met before creating and running trials (see Prerequisites).

See the following section for the types of trials you can create and run:

- Creating and Running Oracle Load Testing Trial

- Creating and Running Oracle Functional Testing Trial

42.4.7 Creating and Running Oracle Load Testing Trial

Follow this process to create and run Oracle Load Testing trials:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Infrastructure Cloud Self Service Portal.

2. Click My Tests in the Self Service Portal.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. Select a test to run for this trial.

5. Click Create... in the Trials section. The Create Trial page appears.

6. Enter a name and description for the trial.

7. In the Application Under Test Region, specify the Application Under Test instance details.

- Create new instance: You can create new virtual machines on the cloud for the application under test.

- Use existing instance: If you have created instances for this test or this application before, you can choose to re-use the same set of virtual machines instead of creating new ones.
Re-using an existing instance is faster because there will be no need to deploy the instance.

- If you are creating a new instance, enter a password of your choice for the Root Password and reenter to confirm it.

Important:
This value is not retrievable. DO NOT FORGET THIS PASSWORD.

- (Optional) Specify the Stop Instance and Delete Instance settings and click Continue.

8. In the Test Asset Parameters region, you can:

- Change the number of virtual users to run for this trial in the Trial Virtual Users column of each script.
You can set these values ONLY if the Test Designer (who created the asset) has chosen to allow users to override the values. Otherwise, the application uses the information available in the asset and these controls are grayed out.

- Specify the Ramp Up Rate settings for this trial.
You can change these values ONLY if the Test Designer (who created the asset) has chosen to allow users to override the values. Otherwise, the application uses the information available in the asset and these controls are grayed out.

- Set the End Condition settings for the Trial and click Continue.
You can set these values ONLY if the Test Designer (who created the asset) has chosen to allow users to override the values. Otherwise, the application uses the information available in the asset and these controls are grayed out.

If you do not set the test end conditions, the test runs until it is stopped manually.

After you have reviewed the Test Asset Parameters, click Continue.

9. In the Test Driver region, you can either create a new instance or use an existing instance. If the existing instance is being used by another trial, it will not be available.
Enter a password of your choice for the Master Password and reenter to confirm it. This is the password the Testing Cloud Self Service Portal will set for the Oracle Load Testing Virtual Machine and all accounts for Oracle Load Testing.

Specify the Stop Instance and Delete Instance settings and click Continue.

10. In Hardware Estimate region, you can estimate and add agent machines (hardware estimate feature).
If this is a Trial, use a Test Driver that has an Agent Deployment plan. The number is calculated based on parameters set in the previous step and the Agent Deployment plan. You can also specify a new number. The Hardware Estimate setting is enabled only when the Test driver has an Agent Deployment plan.

11. In the Schedule region, specify whether to start the trial immediately or schedule at a later time. A new trial will be created and submitted for execution.
Click OK. The initial execution of a trial will take some time to deploy the Virtual Machines, copy necessary software, and start the test.

42.4.8 Creating and Running Oracle Functional Testing Trial

Follow this process to create and run Oracle Functional Testing trials:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Infrastructure Cloud Self Service Portal.

2. Click My Tests in the Self Service Portal.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. Select a test to run for this trial.

5. Click Create... in the Trials section. The Create Trial page appears.

6. Enter a name and description for the trial.

7. In the Application Under Test region, specify the Application Under Test instance details.

- Creating new instance: Users can create new virtual machines on the cloud for the application under test.

- Re-using an existing instance: If users have created instances for this test or this application before, they can choose to re-use the same set of virtual machines instead of creating new ones.
Re-using an existing instance is faster because there will be no need to deploy the instance.

- If creating a new instance, enter a password of your choice for the Master Password and reenter to confirm it.

Important:
This value is not retrievable. DO NOT FORGET THIS PASSWORD.

- Specify the Stop Instance and Delete Instance settings.

8. In the Asset Execution Settings region, select the assets that are to be executed. Click Continue.

9. In the Playback Settings region, change the settings as needed for this trial. To save time, you can copy the settings from another asset.
Click Reset to go back to the original settings for this trial.

10. In the Data Banks region, review and modify the data banks used with this asset. Click Continue.

11. In the Test Driver region, either create a new instance of the test driver or use an existing instance.
If the existing instance is being used by another trial, it will not be available.

- Enter a password of your choice for the Master Password and reenter to confirm it.

- Specify the Stop Instance and Delete Instance settings.

12. In the Schedule region, specify the schedule for starting the trial run and click OK. A new trial will be created and submitted for execution. The initial execution of a trial will take some time to deploy the Virtual Machines, copy necessary software, and start the test.

42.4.9 Monitoring On-Going Trials

The Testing Cloud Self Service Portal allows Testers to monitor running trials and create charts of the key performance indicators for the application-under-test.

Note: Ensure the prerequisites are met before monitoring on-going trials (see Prerequisites).

Follow this process to monitor on-going tests.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Infrastructure Cloud Self Service Portal.

2. Click My Tests.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. Select the test to view the trial details. The trial status information appears in the Trials pane.

5. Click on the trial name link in the Trials pane to navigate to the trial-home page.
You can monitor the progress of the trial by clicking Status. If the status of the trial is In Progress, click the trial name which will take you to the trial home and the remaining trial information.

6. Expand the metric nodes and select metrics or counters to plot them in the chart. For Oracle Functional Testing, you can select items for Trial Result to display the result in detail.

7. View the Agent count associated to the current trial in the Test Driver Instance session.

42.4.10 Comparing Trial Results

The Testing Cloud Self Service Portal allows Testers to compare trial results and create charts of the key performance indicators for the application-under-test.

Note: This feature is only available for Oracle Load Testing Test Driver based trials.

Note: Ensure the prerequisites are met before comparing trial results (see Prerequisites).

Follow this process to compare trial results.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Infrastructure Cloud Self Service Portal.

2. Click My Tests.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. Select the test to view the trial details. The trial status information appears in the Trials pane.

5. Select two trials of the same test that have been previously run.
To select 2 trials of the same test, select one trial, then click Shift/Control to select the other trial. The trials must belong to the same test.

6. Click Compare Results. You can compare the metrics of the two trials to view the differences.
When in this mode, selecting any metric will chart two lines - one for each of the selected trials. You can also compare the Oracle Load Testing session summary report side-by-side.

42.4.11 Sharing Tests

To avoid duplication of effort, you can share tests with other users. Note that the person who created and shared the tests will be charged for any resource usage associated with the shared tests.

To share tests, perform the following steps:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Self Service Portal.

2. Click My Tests.

3. Click the My Tests tab in the Testing Cloud Self Service Portal.

4. Select a test from the list of Tests on the My Tests page.

5. Click Share.

6. Select a user to share the Test with.

7. Click Share.

8. Click Log Out.

To verify that the test is shared:

1. Log in as the user whom you shared the test with.

2. Verify that you have access to the shared test.

42.4.12 Viewing Activity and Usage Information

The Testing Cloud Self Service Portal allows Testers to view summary information for test assets and test environments available to you, your quota as defined by the Test Administrator for your role, your current utilization of hardware resources, and submitted and scheduled trials.

Note: Ensure the prerequisites are met before viewing activity and usage information (see Prerequisites).

Follow this process to view activity and usage information.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Self Service Portal.

2. Click My Tests.

3. Click the Home tab in the Testing Cloud Self Service Portal. This tab shows summary information for test assets and test environments available to you, your quota as defined by the Test Administrator for your role, your current utilization of hardware resources, and submitted and scheduled trials.

42.4.13 Viewing Deployment Information

The Testing Cloud Self Service Portal allows Testers to create tests from test assets and test environments to perform testing activities using the Testing Cloud Self Service Portal. Testers create tests using test asset and environment that have been assigned to them by the Test Administrator. The Tester runs trials on the test asset and environment, monitors ongoing trials, and analyzes the results of completed trials.

Note: Ensure the prerequisites are met before viewing deployment information (see Prerequisites).

Follow this process to view activity and usage information.

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Self Service Portal.

2. Click My Tests.

3. Click the My Deployments tab in the Testing Cloud Self Service Portal. This tab shows a table of all environments and test-drivers deployed for you.

4. Select a test environment or test driver instance. The details pane shows the appliances within the selected test environment or test driver instance.

5. Click on an appliance within the selected test environment or test driver instance to navigate to the details view of the appliance.

42.4.14 Browsing the Testing Home Page

The users HOME tab displays a summary of what the user has done, including resources consumed for testing and tests created by the user. From the HOME tab, users can quickly access previously executed test trials in order to compare results or to do more in depth post-run analysis.

The Testing home page provides information regarding the statistics of ongoing testing. General statistics are provided, as well as test assets and environments, ongoing test and trials, Oracle Load Testing, and the Infrastructure. It also provides an overview of the servers and infrastructure resources consumed by the user, like the number of servers provisioned, number of CPUs, as well as RAM and Storage.

When you log in as Test Designer, you only see the My Library tab. When you log in as Test Administrator, you see the Home tab. When you log in as a Super Administrator, you see both the Home and My Library tabs.

The sections on the Home tab are:

- General - Total counts of various artifacts available in the system, for example, its ”total tests present in system”, ”total trials ran across all trials”, and so on.

- Test Assets/Environments - Accumulation graph of test assets, environments, and machines in use in the Testing Cloud. Count and trend data are included. This is the Test Administrator's overview of the entire TaaS portal, regardless of Testers.

- Tests and Trials - Daily totals of the number of tests created or daily totals of the number of trial runs.

- Infrastructure - Daily consumption of infrastructure resources: CPU, Memory, and Disk space storage.

- Oracle Load Testing (OLT) - Daily total of the number of OLT Virtual Users (VU) that were run. Oracle Load Testing uses OpenScript scripts to simulate users accessing an application under test.

The vertical axis shows daily usage totals based upon the View selection in each of the regions.

The My Library tab provides details on both Test Assets and Test Environments.

1. Log in to Enterprise manager using Tester credentials.

2. Click My Tests radio button.

3. Click the Home tab.

You will see a summary of test assets and test environments available to you, your quota as defined by the Test Administrator for your role, your current utilization of hardware resources, and the submitted and scheduled trials.

42.4.15 Trial Page

The Trial Page provides the Results, Test Environment, Configuration, and Performance information of the trial.

The top of the page provides the general information of the trial including: status of the trial, results of the trial, start time of the trial with the option to stop the trial, the test being run, and the test environment being used.

Results

Note: The Results tab is only for Oracle Functional Testing.

From the Results tab, you can:

- Download the results to be viewed at another time.

- Browse the results location

- Generate a Report to be published in BI Publisher.

Test Environment

From the Test Environment tab, you can:

- Start, stop, and restart the Guest Virtual Machines used for the test.

- Start, stop, and restart the Test Driver Instance used for the test.

Configuration

From the Configuration tab, you can:

- View the details of the application that was tested.

- Test Driver used for the test.

- List of the Test Asset Parameters used.

- Schedule of the trial.

Performance

Note: The Performance tab is only available for Oracle Load Testing trials.

From the Performance tab, you can:

- View all the collected Oracle Load Testing counters and Enterprise Manager target metrics.

- Select interested counter(s)/metric(s) and show them in charts.

Summary

Note: The Summary tab is only available for Oracle Load Testing trials.

From the Summary tab, you can:

- See the summary report of this trial and AWR report if it is available.

- Generate Oracle Load Testing trial report and AWR report if it is available.

42.4.16 Viewing TaaS Reports

To facilitate the sharing of information about trials, TaaS provides reports using Business Intelligence Publisher (BI Publisher). These reports include the TaaS Oracle Functional Testing Trial Report and the TaaS Oracle Load Testing Trial Report.

To view these reports:

1. Log in to Enterprise Manager Cloud Control using Testing Cloud Self Service Portal Tester credentials. You are logged into Infrastructure Cloud Self Service Portal.

2. Click My Tests.

3. Click the Home tab in the Testing Cloud Self Service Portal. This tab shows summary information for test assets and test environments available to you, your quota as defined by the Test Administrator for your role, your current utilization of hardware resources, and submitted, scheduled, and completed trials.

4. Highlight a trial.

5. On the Results tab, click Generate Report.

42.4.17 Estimating Hardware Needed for Testing

The Test Driver hardware resource requirement depends on factors such as: number of virtual users for your Trial, ramp-up rate, number of script steps, number of variables in the script and script type.

To ensure that TaaS provides the appropriate amount of resources for your test trial, TaaS provides a hardware estimation feature. TaaS calculates and creates agent machines based on estimation results of CPU and memory resources consumed by the test asset in your test trial.

Note:
To use the Hardware Estimation Available feature, you must have selected the Hardware Estimation Data option on the Export File screen when creating the scenario.zip file in the Oracle Load Testing application.

To take advantage of this feature, the Test Administrator and Tester need to perform the following steps:

1. Define an Agent deployment plan for an Oracle Load Testing Test Driver.

1. From Setup menu, select Cloud, then select Testing.

2. On the Testing Cloud Self Service Setup page, select Test Drivers in the navigation tree.

3. From the Register menu, select Oracle Load Testing.

4. Provide the information for Name, Deployment Plan, Version, and so on.
Ensure that the deployment plans you use are scalable.

2. View hardware estimation result in Test Oracle Load Testing Asset.

1. From Enterprise menu, select Cloud, then select Self Service Portal.

2. Select My Tests.

3. On the Testing Cloud Self Service Portal page, click the My Library tab.

4. Select Test Assets. Highlight the asset in which you are interested. The Scenario Configuration section states whether Hardware Estimation is available for this asset. An X denotes that the estimate is not available whereas a check mark denotes that it is.

3. To create a Test Asset, click Create and choose Oracle Load Testing. Provide the requisite information.

- The scenario zip file is exported from the Oracle Load Testing application.
Note that it is through the scenario zip file that the Hardware Estimation Data feature is enabled. To learn how to create a scenario, refer to the Oracle Load Testing Load Testing User's Guide available from the 'Oracle Application Testing Suite Downloads' page: (http://www.oracle.com/technetwork/oem/downloads/index-084446.html).

- By choosing the configurable parameters, you can change these settings when you create a trial using this asset.

4. Evaluate Test Driver with estimation resource result.

1. From the My Tests tab, select Create, then select Oracle Load Testing.

2. Provide the requisite information and ensure that the source (Test Asset) is one that has the Hardware Estimation Data feature.
Note: It is through the scenario zip file that the Hardware Estimation Data feature is enabled on the Export File page.

Also note that the Hardware Estimate region contains the recommended number of agent machines to use for testing the selected Test Asset.

5. Start an Oracle Load Testing Trial Using Estimation Resource Result

1. Click the My Tests tab. Highlight the test you want to use for the trial.

2. In the Trials section, select Create.

3. On the Create Trial screen:
- Provide the requisite information in the Overview and Application Under Test regions. Click Continue.

- For the Test Asset Parameters, if needed change the values for the Trial Virtual Users, Ramp-up Rate, and End Condition. Click Continue.

- Provide the parameters for the Test Driver, Hardware Estimate, and Schedule. Click OK.

Note that in the Hardware Estimate region, the number of agents is calculated by TaaS to meet the required resource needed for the trial. However, you can change the number of agents if you want.

6. View Agent Status in Trial Home
On the My Tests tab, highlight the trial of interest.

7. View Agent Status in My Deployment Tab.
On the My Deployments tab, highlight the deployment of interest. The Agent Status will be shown in the Agent tab.

8. Share/unshare the Agent between different test driver instances.

Part XV

Using Consolidation Planner and Chargeback

This section describes the Consolidation Planner and Chargeback features in Enterprise Manager.

It contains the following chapters:

- Chapter 44, "Using Consolidation Planner"

- Chapter 43, "Chargeback Administration"

43 Chargeback Administration

This chapter describes the Chargeback application and details the administrative tasks necessary to set up and run the application. It then presents various ways to access and use the information Chargeback collects and aggregates.

The chapter contains the following sections:

- Overview of Chargeback

- Setting Up Chargeback

- Accessing Chargeback Information

43.1 Overview of Chargeback

This section gives a brief overview of the most important aspects of Chargeback. It covers the following topics:

- Why Implement Chargeback

- Enterprise Manager Chargeback

43.1.1 Why Implement Chargeback

The purpose of Chargeback is to gather data on resource use, allocate charges for the use of these resources, and present the results in a comprehensible format.

Chargeback is used to allocate the costs of IT resources to the people or organizations who consume them. While it can be applied in situations where IT resources are dedicated, it is particularly relevant in situations where resources are shared, as without some way to meter and charge for consumption there will be a tendency for users to use more resources than they need. This problem is exacerbated in cloud environments where users are able to provision their own resources using self-service.

Consider the following primary use cases:

- Increasingly, organizations are adopting consolidation platforms such as Oracle Exadata and Oracle Exalogic, where there are multiple applications running on a shared hardware platform. There needs to be a way to meter the resources consumed by each application so charges can be applied accordingly. This, in turn, helps to measure the business value of IT investments so that priority can be given to the applications with the greatest return on investment (ROI).

- With the popularity of cloud computing on the rise, where users have the ability to self-service provision resources such as databases and virtual machines, it is highly desirable to be able to meter the resources each cloud consumer uses so that they can be charged based on their consumption. Cloud consumers likewise benefit by rationing their consumption to that which provides optimal business value, thus contributing to the overall ROI of the organization's IT investment.

To sum up, adopting a Chargeback (or Showback) model can deliver significant benefits to both IT and Line of Business users:

- Chargeback benefits consumers by placing them in control of their IT costs.

- Chargeback benefits IT by helping to drive up utilization rates, thus reducing the number of physical resources they need to manage.

43.1.2 Enterprise Manager Chargeback

Chargeback, as the name implies, is a tool of accountability. The application's primary uses can generally be described as follows:

- Provide resource usage metering by aggregating and normalizing the enormous amount of metric data Enterprise Manager collects.

- Provide IT with a means to "charge" a currency amount to the consumers of resources.

- Provide consumers with reports detailing their consumption and associated charges.

43.1.2.1 Chargeback Entities

Chargeback calculates charges based on resource use. A resource is typically associated with an Enterprise Manager target. Chargeback collects metrics and configuration information for a subset of Enterprise Manager targets to calculate charges. A resource can also be something that an integrator customizes to be monitored and charged for in Enterprise Manager. Chargeback recognizes these Enterprise Manager targets and custom resources collectively as entities. For information on creating a custom entity, see the Oracle Enterprise Manager Cloud Control Extensibility Programmer's Guide.

Note:
You can also add Chargeback support for Enterprise Manager target types for which there is no current out-of-box Chargeback support. See Chapter 56, "Chargeback and Metering EMCLI Verbs," for more information.

Within Chargeback there is the concept of usage mode; that is, how an entity is metered. Integrators who create entity types define associated usage modes. All entity types have a default usage mode. Administrators, when adding entities to Chargeback, decide which usage mode is applicable in a given context, if the entity in question has more than its default usage mode. Common usage modes include the following:

- Metered–where charges accrue against a single cost center

- Metered by service–a database instance with multiple services bills by the service; charges by service can be to different cost centers, or charges for all services can be to the same cost center

- Metered by J2EE application–a WebLogic Server bills by the J2EE application; charges by application are to different cost centers

See Section 43.2.6 for detailed information on adding entities to Chargeback.

43.1.2.2 Charge Plans

A charge plan defines the resources to charge for and their associated rates. Chargeback offers two types of charge plan—the universal charge plan and extended charge plans.

Universal Charge Plan

The universal charge plan contains the rates for three common resources:

- CPU

- Memory

- Storage

Note that the universal plan does not apply to all entity types. Universal rates are not applicable to J2EE applications, for example.

Extended Charge Plans

While CPU, memory and storage can be used for Chargeback across a variety of entity types, there may be situations where entity-specific charges are required. For example, you may want to base charges on the type of host OS (Windows or Linux), or on a database option such as Partitioning. In this instance, an extended charge plan can be used. The extended charge plan provides greater flexibility to Chargeback administrators, enabling them to:

- Define entity type-specific charges

- Define configuration and usage-based rates

- Define a flat charge independent of configuration or usage

- Override or adjust universal plan rates

Chargeback provides an out-of-box extended plan that you can use as a sample for creating your own extended plans tailored to your environment. The shipped plan defines charges for the Oracle VM Guest entity type where charge items and applicable rates vary depending on machine size.

See Section 43.2.4 for detailed information on working with charge plans.

43.1.2.3 Cost Centers

When charges for the consumption of resources are calculated, these charges must be assigned somewhere. In Chargeback, the assignment of these costs is to a cost center. Cost centers are typically organized in a business hierarchy and may correspond to business units—sales, engineering, human resources, and so forth. The cost center hierarchy is defined within the Chargeback application and is used for rollup and drill-down purposes when reporting on usage and charges. There are also default mechanisms in place based on cost center properties set outside of Chargeback. See Section 43.2.5 for detailed information on creating cost centers.

43.1.2.4 Reports

The payoff for setting up Chargeback is the wealth of information it puts at your fingertips. The information is available in a variety of formats, including pie charts and bar graphs. You can drill down to details by cost center, entity type, and resource. Trending reports show charges and resource utilization over time, up to a year in fact, which can help in IT resource planning. In addition to the reporting function available to administrators within the application, self service users can view Chargeback information related to their entities within the self service portal, and Line of Business users can view Chargeback information in BI Publisher reports.

Report Cycle

Chargeback calculates charges for the current calendar month. This constitutes the report cycle. Any adjustments to configured charge plans and rates are retroactively applied to usage from the first day of the report cycle (that is, the first day of the current month). Charges accrued in previous calendar months are considered closed. Thus, modifications to charge plans do not affect the calculated charges for previous months.

See Section 43.3 for detailed information on accessing Chargeback information.

43.2 Setting Up Chargeback

This section describes the following tasks, which must be completed to implement and support Chargeback services:

- Configuring Global Settings for Chargeback

- Working with Charge Plans

- Creating Cost Centers

- Adding Entities to Chargeback

- Assigning Cost Centers to Entities

- Assigning Charge Plans to Entities

- Running the Daily Data Collection Job

The person performing these tasks must have the necessary privileges. These privileges can be granted using the EM_CBA_ADMIN role.

Note:
To view a visual demonstration on setting up and using Chargeback, watch the video Oracle Enterprise Manager 12c: Metering and Chargeback, using the following URL:

https://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:5772,1

Figure 43-1 shows a simple workflow of steps required to set up Chargeback.

Figure 43-1 Chargeback Setup Workflow

Following initial setup, you perform tasks on a regular basis, such as:

- Adding new entities to Chargeback

- Updating charge plans

- Assigning charge plans and cost centers

Other events happen automatically:

- SSA entity charges are rolled up to higher-level cost centers

- New entities that are members of a composite entity (a VM Guest in a VM zone, for example) are discovered and added to Chargeback

The daily data collection job is responsible for capturing these changes, in addition to collecting metric and configuration data.

See Section 43.2.10 for detailed information on the daily collection job.

43.2.1 Chargeback and Metrics

Chargeback uses information that Enterprise Manager collects as a basis for metering. Chargeback metrics can be configuration-based, usage-based, or availability-based.

- Configuration-based metrics refer to things such as number of CPUs or database version; these metrics are considered static and thus have a daily aggregation.

- Usage-based metrics refer to things such as CPU utilization or memory consumption; these metrics have an hourly aggregation.

- Availability-based metrics measure the time an entity is available, otherwise known as an entity's uptime. It is the number of minutes in a given hour an entity is considered available. The charge is prorated for downtime.

Charges can also be applied at a fixed rate.

Entity types for which charge rates can be defined for specific metrics include host, virtual machine, WebLogic Server, database instance, schema service, and pluggable database (PDB). Composite entity types can also be added to Chargeback. These include Cluster Database, Oracle WebLogic Cluster, Oracle WebLogic Domain, Oracle VM Zone, PaaS Infrastructure Zone, Oracle VM Server Pool, and so forth. Adding groups and systems automatically includes all members that are valid Chargeback entities. After an entity has been added to Chargeback, a collection job will run once a day against entity tables in Enterprise Manager to extract information for use by Chargeback.

Chargeback Data Retention Period

Chargeback retains the data it collects as follows:

- Hourly data remains available for three months by default. To see what your current retention period is for hourly data, execute the following query:

select * from  EM_INT_PARTITIONED_TABLES where table_name like@ 'EMCT_CBA_CHARGE_1HOUR'

To adjust the hourly retention period, execute the following command sequence:

begin
gc_interval_partition_mgr.SET_RETENTION('SYSMAN', 'EMCT_CBA_CHARGE_1HOUR',
4);
end;

This example extends the hourly retention period to four months.

- Daily data remains available for 24 months by default. To see what your current retention period is for daily data, execute the following query:

select * from  EM_INT_PARTITIONED_TABLES where table_name like
@ 'EMCT_CBA_CHARGE_1DAY'

To adjust the daily retention period, execute the following command sequence:

begin
gc_interval_partition_mgr.SET_RETENTION('SYSMAN', 'EMCT_CBA_CHARGE_1DAY',
36);
end;

This example extends the daily retention period to 36 months.

43.2.2 Self Service Applications and Zones within Chargeback

A key component of cloud computing is availability of self service applications. Enterprise Manager includes SSAs for Oracle VM, database, and middleware.

1. To access the respective portal, from the Enterprise menu, select Cloud, then select Self Service Portal.

2. On the Self Service Portal page, select a service type from the Manage drop-down menu.

3. Click the Chargeback icon in the left pane to view charge trends and details for the selected service type, provided it was configured for Chargeback.

While performing cloud setup, you can link directly into Chargeback to configure the respective zone. Note that zone setup is a prerequisite.

1. From the Setup menu, select Cloud, then select as follows:

- Infrastructure–to set up VM types.

- PaaS Infrastructure Zones–to manage PaaS Infrastructure zones.

- Database–to set up database resource pools.

- Middleware–to set up middleware resource pools.

- Testing–to add application types for use by test designers to organize test-related activities.

2. Each respective home page has a Chargeback selection on the left. Click it to display an informational page on Chargeback setup that includes links into Chargeback to perform setup.

Chargeback supports several zones including Oracle VM and PaaS Infrastructure, which includes DBaaS, MWaaS, Schema as a Service (SchaaS), and Pluggable Database as a Service (PdbaaS).

Within Chargeback, the respective zone hierarchies appear as follows on the Entities tab, PaaS Infrastructure under the Cloud category and Oracle VM under the Servers, Storage and Network category:

Note:
A PaaS Infrastructure zone can contain a database instance, a RAC instance, a database service, a composite application, or any combination of these, as represented below.

Zones

Zone Hierarchy

PaaS Infrastructure

PaaS Infrastructure Zone
Single Instance Database

Cluster Database

Database Instance1

Database Instance2

Schema Service

Pluggable Database

Oracle Composite Application

WebLogic Domain

WebLogic Cluster

Oracle WebLogic Server1

Oracle WebLogic Server2

Oracle WebLogic Server

Oracle VM

Oracle VM Zone
Oracle VM Server Pool

Oracle VM Guest1

Oracle VM Guest2

The following characteristics apply to all entity type zones:

- Adding a zone to Chargeback automatically includes all child instances.

- Removing a zone from Chargeback automatically removes all child instances.

- A child instance with no explicitly assigned charge plan inherits the plan of its nearest ancestor above it in the hierarchy.

- A child instance with no explicitly assigned cost center inherits the cost center of its nearest ancestor above it in the hierarchy.

- Querying on charges at a given level within the hierarchy will include all charges for the levels below (either directly or indirectly).

- New members discovered or added to a zone are automatically recognized by Chargeback at the next data collection cycle.

As the Chargeback Administrator with respect to self service, you should perform all configuration-related tasks on the self service zone rather than on child entities.

The SSA user is automatically associated with the SSA entity as the cost center, when the SSA entity is added to Chargeback. See Section 43.2.7 to learn about assigning cost centers.. When assigning charge plans, a plan assigned to a zone applies to all members within the zone that do not otherwise have a plan assigned. See Section 43.2.8 to learn about assigning charge plans.

43.2.3 Configuring Global Settings for Chargeback

Click the Settings subtab on the Home tab to configure global settings for currency symbol and uptime calculations.

Currency Symbol

You can change the default currency (USD) by clicking in the currency symbol text box and entering the desired currency symbol. The new selection becomes the default currency across all charge plans; that is, the universal plan and all extended charge plans. All reports, including historical reports, reflect the new currency. Note that no rate conversion occurs when you change the currency; that is, the numbers stay the same. Change from dollars to euros and a one dollar charge becomes a one euro charge.

Uptime Calculations

Select the appropriate radio button to ignore or include uptime in charge calculations. The default is to include uptime as a consideration. Note that to include uptime has an impact on all fixed and configuration-based charge calculations for all entities.

Chargeback prorates charges and discounts accordingly. So, for example, if an entity was available 22.5 hours in a 24-hour period, the daily charge would be adjusted 1.5 hours. A change in the uptime setting is effective from the beginning of the current report cycle, but does not impact previous report cycles; that is, charges in historical reports are not prorated based on a change made to the setting in the current cycle.

Click Save to update the settings.

Example

To demonstrate the difference in factoring in uptime, consider the following charge plan configurations:

- A universal charge plan that charges two dollars a day per gigabyte of memory allocation, a dollar a day per gigabyte of storage, and no charge for CPU usage

- An extended charge plan for a Guest VM (medium), with a base charge of a dollar an hour and a memory allocation adjustment of x5

Given these charge plans, a user requisitions a Guest VM with 4 GB of memory and 100 GB of disk space for two consecutive days. The first day the uptime metric records 20 hours and the second day, 24 hours.

When uptime is not a factor in the calculations, the charge per day is 164 dollars, computed as follows:

- Forty dollars a day for memory (4 GB* $2 * 5)

- A hundred dollars a day for storage (100 GB * $1)

- A base charge of 24 dollars a day (24 hours * $1)

When uptime is a factor, charges for the first day are 137 dollars (rounded up), computed by subtracting the four hours of downtime from the per day charge (20/24 * 164).

43.2.4 Working with Charge Plans

As described in the Overview, there are two types of charge plan, the universal charge plan and extended charge plans.

The universal charge plan establishes rates for three basic metrics (CPU, memory, and storage). For example, charge a dollar a day for a CPU (generic), two dollars a week per GB of memory, and a dollar a week per GB of storage. Optionally, different rates can be applied per CPU architecture. For example, charge different rates for a PA-RISC, a SPARC, and an x86. You can create multiple revisions of the universal charge plan for use in the future.

An extended charge plan enhances the universal plan to include entity-specific metrics. You may want to implement charges that relate to specific characteristics of an entity. An extended charge plan affords that flexibility. The entity type determines the items for which rates can be charged.

In defining an appropriate charge plan for use with a given entity type, you have to decide on a case-by-case basis whether the three basic metrics of CPU, memory, and storage are sufficient to charge for resource use. If the answer is no, then you have to define an extended plan for the entity type.

In any case, you want to define the universal charge plan for general use. You can then indicate in an extended charge plan how the universal plan rates apply.

An extended charge plan consists of groups of entity-type specific charge items. Entity-specific charge templates are available for the following entity types:

- Host

- Oracle WebLogic Server (includes J2EE applications)

- Oracle VM Guest

- Database Instance (includes database services)

- Pluggable Database (PDB)

- Schema Service

Chargeable items and applicable rate adjustments vary, depending on the entity type.

With an extended plan you can base charges on entity-specific charge items. For example, you may want an additional charge for a host running Windows OS, or a database with the Partitioning option installed. In addition to configuration- and usage-based charge items, you can include a fixed charge. For example, charge $100 a month for each host, regardless of consumption.

You may find that even with an extended plan, the charge items available for a given entity type are insufficient for your particular needs. In this case, you can introduce custom charge items through use of CLI verbs. For additional information, see Chapter 56, "Chargeback and Metering EMCLI Verbs."

This section covers the following topics:

- Charge Plans and Effective Dates

- Creating and Revising the Universal Charge Plan

- Creating an Extended Charge Plan

- Viewing Charge item Metadata

- Using Conditions in Charge Plans

- Revising Extended Charge Plans

43.2.4.1 Charge Plans and Effective Dates

When you create a charge plan (universal or extended), you establish the plan's effective date, which is always the first of a month. The plan revision remains in effect until you create a new plan revision whose effective date determines the previous plan revision's termination.

Say, for example, you want to set up a charge plan for a calendar year, in which a new plan revision goes into effect each quarter. You create an initial plan revision that goes into effect January 1. The plan shows an effective date of Jan. 1, yyyy - Onward. You create a plan revision that goes into effect April 1. The initial plan revision now shows an effective date of Jan. 1, yyyy - Mar. 31, yyyy, and the new plan revision, Apr. 1, yyyy - Onward. You create two more plan revisions, one with an effective date of July 1 and the other with an effective date of October 1. You now have four plan revisions with effective dates as follows:

- Jan. 1, yyyy - Mar. 31, yyyy

- Apr. 1, yyyy - Jun. 30, yyyy

- Jul. 1, yyyy - Sep. 30, yyyy

- Oct. 1, yyyy - Onward

Only current and future plan revisions appear in the Charge Plans navigation pane. You can retrieve expired plan revisions by selecting Historical Revisions from the View menu.

43.2.4.2 Creating and Revising the Universal Charge Plan

Set up the universal charge plan as follows:

1. How to proceed depends on the revision date:

- If the effective date under Universal Charge Plan starts in the past, select the revision in the navigation pane, then select Revision from the Create menu.

- If the effective date under Universal Charge Plan is current or in the future, select the revision in the navigation pane and click Set Rates.

2. In the dialog that opens, select the effective date of the revision. Note that a change to rates currently in effect is retroactive to the beginning of the cycle. Click OK.

3. In the Charge Plan editor, set the rates and charge frequency for the three basic metrics.
Select a row, enter the rate and select the frequency from the drop-down menu.

The rates set here are effective from the beginning of the current month, and have no impact on any previous month.

4. Make additional entries for different CPU architectures, as required.

1. Click the Add button.

2. Select a CPU from the drop-down menu and click OK.

3. In the new row added to the table, enter the rate and select the charge frequency from the drop-down menu.

5. When done, click the Save button in the upper right hand corner to complete the universal charge plan revision.

43.2.4.3 Creating an Extended Charge Plan

Set up an extended charge plan as follows:

1. From the Create menu, select Plan. The Charge Plan editor opens.

2. Enter a name for the plan. The name must be unique but the plan can have multiple, date-based revisions.

3. Click Add. The Add Entity Types dialog opens.

4. Select from the list of supported entity types. As a plan can serve more than one entity type, you can multiselect in the dialog. Click OK.
Selected entity types appear in a table with one configuration (default) indicated.

5. Click Set Up Configurations to open the Set Up Configurations dialog, then click Add to open the Add Configuration dialog.

Add a condition to set up a configuration for the entity type selected. The list of conditions available derives from the entity type. Select from the list, choose an operator, and set the condition value. You can specify a value or click the search icon to select the condition value from a list, or to search for some other value.

You might, for example, set a condition of machine architecture for a host entity type, where there are two options: sparc sun4u and AMD64. You can then use the Move Up and Move Down buttons to establish the order of precedence in matching conditions, if applicable.

Click OK when done with configuration setup.

As Figure 43-2 shows, the charge plan table now displays separate columns for conditional configurations and the default configuration called Other.

Figure 43-2 Setting Up an Entity Configuration

Note that you can set only a single condition for a configuration. Suppose you want to change the condition from machine size to high availability for VM Guest. To do so, open the Set Up Configurations dialog and remove the machine size condition items. When you click Add, the high availability condition item is now available.

6. Click Add Item to open the Add Item dialog. Use this dialog to add charge items based on entity type for billing purposes.

Select a charge item from the drop-down list. The list of items derives from the entity type. For certain items, you can select the charge type from a drop-down list—flat rate, per unit, and so forth. You can also set conditions, the same as for configurations in Step 5. For a database metered by service, charges are per service. For a WebLogic Server metered by J2EE application, charges are per application. Make your selection and click OK.

The charge plan table now displays a row for the charge item just added. A column appears for each configuration. Click the help icon to see a pop-up description of the charge item.

7. In the charge item row, specify the rate and select the frequency for each configuration. Say, for example, you added a CPU count charge item for entity type host, for which you want to charge a $1 a week per unit for the SPARC architecture, $.50 a week per unit for the AMD architecture, and $.75 per unit a week for all other architectures. Make the appropriate entries in the respective columns as displayed in Figure 43-3.

Figure 43-3 Setting a Condition on a Charge Item

8. Repeat Steps 6 and 7 to include additional charge items for the entity type.

9. Optional. Make rate adjustments to the universal charge plan basic metrics for this extended charge plan. Make adjustments by specifying a factor of the base rate, where 1, the default, represents the prevailing base rate. So, for example, enter 1.5 to increase the rate by 50 percent; enter .5 to decrease the rate by 50 percent. If you want to ignore a universal plan rate altogether, enter 0.
Expand the rate factor for a metric to see what the actual charge is. For example, if the rate adjustment for memory allocation is 1.5 and the rate is $2 a month, the adjusted rate will be $3 a month.

The metrics available for an entity type determine which rate adjustments are possible. For example, you cannot make rate adjustments for a WebLogic Server metered by J2EE application.

Suppose, given the example, you want to adjust the CPU rate to 75 percent for the AMD architecture and to 125 percent for the SPARC, leaving the rate as is for the rest. Make appropriate entries as shown in Figure 43-4.

Figure 43-4 Extended Plan Showing Customized Charge Items

10. When done, click the Save button in the upper right hand corner to complete the extended charge plan revision for the entity type.
You can now assign the extended charge plan to an entity instance of the appropriate entity type. Remember that extended charge plans are automatically effective from the beginning of the month.

43.2.4.4 Viewing Charge item Metadata

The charge item library enables you to see at-a-glance detailed information about the charge items known within your Chargeback installation. This includes all charge items for well-known Enterprise Manager target types as well as for custom entity types introduced by integrators.

In many cases, charge items can be taken at face value: amount of memory used. In other cases, however, it is not so clear cut. Is the charge for database memory use computed based on allocated SGA memory or on the amount of memory used? What is the underlying metric or configuration used to determine CPU time or DB time usage? In cases such as these the usage value is only a part of some formula or customized query used to compute charges. In any event, you can take advantage of the detailed information available as you create extended charge plans.

1. From the Enterprise menu, select Chargeback and click the Charge Plans tab

2. Click the Charge Item Library icon.
The charge items metadata browser opens, displaying a table of all known charge items.

3. Optional. Select Columns from the View menu to alter the display and to show hidden columns, which might be of interest to you.

4. Optional. Click Export to save the charge items metadata content in a spreadsheet.

Consider the following as you view charge item metadata:

- The information is organized by entity type.

- Resource category is an internal bucket that Chargeback uses to organize charge items.

- Source type denotes a charge item as usage-based, configuration-based, or fixed.

- Chargeable means a rate can be defined for the item. An item without the check in the Chargeable column does not itself have a rate defined. Machine Architecture, for example, is a condition rather than a chargeable item.

- An Invalid indicator means the selected usage mode is not appropriate for the entity type.

- User-defined distinguishes custom charge items from out-of-box charge items.

- Charge items that are inactive cannot be added to new plans but can still be used in existing plans. They may also have meaning to historical plans.

- Metric Group and Metric Column link a charge item to its Enterprise Manager collection data. See the "Using Metric Extensions" chapter in the Enterprise Manager Cloud Control Administrator's Guide for more information.

43.2.4.5 Using Conditions in Charge Plans

Conditions introduce considerable flexibility when creating extended charge plans. You can create variations known as configurations that allow you to determine a set of rates to charge based on entity configuration. You base configurations on a property or attribute of an entity, such as the size of a virtual machine. The sample extended plan (identified as Sample Charge Plan), for example, sets conditions on a VM Guest entity type, based on the machine size of the virtual machine, allowing for different sets of charges to apply depending on machine size. There is also an implied default configuration, which is the charge plan itself if no configurations are set up, or the charge plan of record if there is no match for a configuration condition. The sample extended plan thus has four configurations, one each for machine sizes small, medium, and large, plus the default "Other."

Similarly, you can place a condition on an individual charge item that determines if a charge will be applied. For example a condition set on Partitioning means charge only if partitioning is used.

Use the Like condition operator with string-based entity type and charge items to match a range of string values. For example, set a Like condition on a database instance to match on all 11g releases (Like 11%). Or use it as a wildcard (Like %) to match on any string of characters (or none). Use an underscore (Like _) to match any single character. Use backslash to escape a wildcard character (Like \%). Use a double backslash to escape the escape character (Like\\%).

When you have multiple configurations, you have to set the order of precedence to determine how conditions are applied. Suppose you have the following sequence of configurations based on the host operating system:

- OS Like %Linux%

- OS Like %Linux 6%

- Default

The second condition (Linux 6) will never be tested because the first will always take precedence when the OS is any version of Linux. Thus, you have to make the test for Linux 6 first to base charges specifically on the Linux 6 OS.

Contrast the Like operator with the Equals operator, where the match must be exact, and there is no wildcard recognition. So, for example, Equals 11.2% does not match 11.2.0 or 11.2.1. You must specify Equals 11.2.0 or Equals 11.2.1. Note also that all string matching is case-sensitive. Equals UPPER is not the same as Equals upper. There is also a Not Equals operator with which you can exclude specific string values.

Consider these other condition examples:

- For a shared database, set a condition to base the charge on the nodes of a RAC.

- For a dedicated database instance, use the SQL Executions charge item to set a charge rate on SQL statement executions per second.

Conditions give you flexibility. For example, you may want to create many charge plans with no conditions and assign individually to entities. Or, you can create a single charge plan with many conditions, and assign to many entities.

43.2.4.6 Revising Extended Charge Plans

You can update an extended charge plan in the following ways:

- Make changes to the charge rates in effect for the current or a future cycle.

- Create a plan revision for the next or a later report cycle, based on an existing plan.

To make changes to the charge rates in effect for the current or a future cycle:

1. Select the plan revision in the navigation pane and click Set Rates.

2. Make adjustments to the charge items and rates in effect.

3. Click Save to update the plan revision.

Note the warning when changing charge rates for the current cycle that the changes are retroactive to the beginning of the cycle.

To create a plan revision for the next or a later report cycle, based on an existing plan revision:

1. Select a plan in the navigation pane, then select Revision from the Create menu.

2. In the dialog that opens, select the effective date of the revision. The default date is the first month after the most recently added revision. For example, if the current cycle is for May and a June revision already exists, July 01 is the default effective date. Click OK.

3. In the familiar create-like model, the configurations, charge items, and rate adjustments for the plan you selected in the navigation pane appear in the plan details table on the right.
Edit the plan details as desired:

- Add and remove entity types.

- Add and remove configurations.

- Add, change, and delete charge items.

- Make adjustments to metric rates.

4. When done, click Save to complete the plan revision.

43.2.5 Creating Cost Centers

Cost centers are vehicles for aggregating charges. A cost center can be an individual, a department within an organization, or a multitiered business hierarchy that spreads charges across the enterprise. You can create a business hierarchy by setting up cost centers and assigning users to the business units.

As part of Enterprise Manager user setup, an administrator can be assigned to a cost center. This cost center property then becomes the parent within Chargeback in place of the default cost center. For example:

- The daily data collection job creates a cost center for each Enterprise Manager user. If a cost center was assigned as part of user setup, it becomes the parent of the user's daily collection cost center; otherwise, the Chargeback default cost center becomes the parent of the user's daily collection cost center.

- A cost center is automatically assigned to an SSA entity during setup. If a cost center was assigned to the SSA requestor as part of Enterprise Manager user setup prior to the SSA entity being added to Chargeback, it becomes the parent of the SSA cost center; otherwise, the Chargeback default cost center becomes the parent of the SSA cost center.

Oracle recommends use of the Enterprise Manager user cost center property as a way to better manage cost center hierarchies within Chargeback.

A cost center can originate in the following ways:

- Setting the Cost Center Property for an Enterprise Manager User

- Setting the Cost Center Property on the Target Home Page

- Creating High-Level Cost Centers in Chargeback

- Importing a Business Hierarchy from an LDAP Server

43.2.5.1 Setting the Cost Center Property for an Enterprise Manager User

Enterprise Manager users who administrate Chargeback should be assigned to a cost center in their account profile.

1. From the Setup menu, select Security, then select Administrators.

2. Search for and select the administrator in question, then click Edit.

3. On the Properties page, enter an appropriate value for the Cost Center property as it relates to charges accruing to this user.

4. Advance to the Review page and click Finish.

You can of course also set the cost center property as part of the overall user account creation process.

This cost center will take precedence over the default cost center in Chargeback.

43.2.5.2 Setting the Cost Center Property on the Target Home Page

When you make a server request in the process of setting up a self service application, the Cost Center target property of the target, VM Guest for example, is automatically set to the user login of the person making the request. When the entity is configured for Chargeback, the user login is imported and appears in the Cost Center column for that entity on the Entities tab. Its parent is the Enterprise Manager user cost center if assigned; otherwise, it is consigned to the Chargeback default cost center.

You cannot change the cost center assignment for an SSA entity, but you can reassign the SSA user out of the default cost center to a more appropriate cost center, if desired, as described in Section 43.2.5.3.

Similarly, you can manually set an entity's Cost Center target property to an appropriate value (user ID), which will subsequently be imported and appear in the Cost Center column on the Entities tab when the entity is configured for Chargeback. Its parent is the Enterprise Manager user cost center if assigned; otherwise, the user ID is consigned to the Chargeback default cost center from which it can subsequently be reassigned to another cost center. This method is relevant only for non-self service entities; it provides a way to automatically set the cost center when the entity is added to Chargeback.

To create a cost center in this fashion:

1. On the All Targets page, select the target in question and go to the target home page.

2. From the target type menu, select Target Setup, then select Properties.

3. Click Edit and enter a value for the Cost Center property, then click OK.
The value will appear as described when the target is configured for Chargeback.

Note that if you change the Cost Center property for an entity that has already been added to Chargeback, the system does not recognize the new value.

43.2.5.3 Creating High-Level Cost Centers in Chargeback

A user who provisions an entity using the self service portal appears under the associated Enterprise Manager user cost center as a consequence of adding the SSA entity to Chargeback. If there was no Enterprise Manager user cost center assigned, the SSA user appears under the Chargeback default cost center, from which the user can subsequently be reassigned to an appropriate cost center as described in Step 4 of the process below. Reassignment can also be automated using LDAP.

To create a cost center manually:

1. From the Enterprise menu, select Chargeback.

2. Select the Cost Centers tab and then click the Add button.

3. Enter the appropriate information in the New Cost Center dialog:

- The cost center takes a unique name by which it is known internally in the system.

- The cost center also takes a meaningful name that appears in the user interface and generated reports.

- Indicate the cost center's position in the tree hierarchy; that is, whether it should be root or nested. You can subsequently change its position in the hierarchy.

When you click OK, the new cost center appears in the table.

4. Cost centers typically equate to business organizations. When you select a cost center row, users who are part of the organization appear in the region below. Users can also be unassigned.
In addition to the cost centers you create, there also is a system default cost center that serves as a clearinghouse for unassigned users. These include:

- Self service users; that is, the user login of the person setting up the SSA who do not otherwise have an Enterprise Manager user cost center assigned

- Users designated as the Cost Center target property on the target home page who do not otherwise have an Enterprise Manager user cost center assigned

You can reassign these users to roll up charges to a higher-level cost center.

1. First, select the default cost center row in the Cost Center table. This exposes the users consigned to the default cost center.

2. Next, select a user row in the Users table.

3. Click the Assign to Cost Center button that is now active.

4. In the dialog that opens, designate the cost center to which to assign the user, then click OK.
The user now appears in the designated cost center.

5. As the cost centers list grows, you may find that you want to combine cost centers, sales under marketing, for example. To do so, select the cost center row, then select Move from the Action menu. The change is effective from the beginning of the current reporting cycle.
In the dialog that opens, indicate whether to include nested cost centers and choose where in the tree to move the cost center, then click OK.

6. At some point, you may decide to deactivate the cost center. To do so, select the cost center row and click the Remove button. Indicate whether to deactivate nested cost centers as well. The change is effective from the beginning of the current reporting cycle. Deactivation means the cost center can no longer be assigned to an entity, but its association with entities remains in previous report cycles; that is, if you run a report for a previous cycle, the entity assignment reflects the deactivated cost center.

Note the following about cost center moves, for example when a cost center (and its users) move to a different parent:

- The user assignment of an entity resource remains the same: the PC assigned to JDoe remains assigned to JDoe.

- Likewise, the resource usage assignment remains the same, but the report rollup reflects the new cost center parent child relationship, unless the administrator changes the assignment. The cost center move effects a change in the usage assignment, which is associated with the cost center and user ID.

43.2.5.4 Importing a Business Hierarchy from an LDAP Server

You can import a business hierarchy from an LDAP server. LDAP servers supported include:

- Oracle Internet Directory

- Microsoft Active Directory

- Sun iPlanet

- Novell eDirectory

- OpenLDAP

1. From the Enterprise menu, select Chargeback.

2. Select the Cost Centers tab.

3. From the Action menu, select LDAP Settings.

4. The LDAP Settings dialog opens; it takes the following values:

- Select the LDAP server type from the drop-down list (default is Oracle Internet Directory).

- Specify host name of the LDAP server.

- Select what to use as the authentication ID (which attribute the LDAP server uses to authenticate: user name or e-mail address).

- If a login is required, mark the check box and provide the credentials (where username is the LDAP server Principal, for example, cn=orcladmin).

- Enter the port number of the LDAP server.

- Check the box for a secure connection.

- Check the box to enter a custom search base (base DN where users are stored; for example, dc=oracle,dc=com).

- Select the level to which to maintain the cost center. This refers to the level within the cost center hierarchy to be synchronized with the LDAP server at the end of each report cycle. Note that any levels lower in LDAP than the specified level are subsumed into the specified level in Chargeback. So, for example, if you specify level 5, and LDAP has 7 levels, LDAP levels 6 and 7 are subsumed into level 5 in Chargeback.
Click OK.

An LDAP cost center overwrites a manually created cost center of the same name while maintaining entity assignments. You can opt to reassign entities to some other cost center.

A successfully imported LDAP cost center hierarchy generates a scheduled repeatable job to run at the beginning of each report cycle (typically the first of the month) to sync the hierarchy with its counterpart on the LDAP server. You can also perform this operation on an ad hoc basis by selecting On-demand LDAP Sync from the Action menu.

Note that the LDAP Sync job only synchronizes existing SSA users; that is, SSA users who are already known to Chargeback as a result of their SSA entities being added to Chargeback. The sync job does not automatically synchronize any other (SSA or other) users in the LDAP directory.

When an SSA entity is added to Chargeback, the SSA user appears in the default cost center automatically. The LDAP Sync job then populates the cost centers hierarchy with default cost center SSA users, based on the management hierarchical structure, as determined by the MANAGER attribute in the LDAP directory. The sync job also overwrites the cost centers of any SSA users who were manually reassigned, based on the same management hierarchical structure.

43.2.6 Adding Entities to Chargeback

Decide on the entities whose resources you want to manage within Chargeback. You have to add entities to start collecting metrics against which to calculate charges. Note that if you want to add a Real Application Cluster (RAC) that has member instances already monitored in Chargeback, you must first remove those instances from Chargeback.

For certain database entity types, you have to enable metric collection before you can add entities of these types to Chargeback:

- Database instance where metering is by service

- Cluster database where metering is by service

- CDB (both single instance and RAC)

- Pool databases used for provisioning schema services and pluggable database services provided as part of a PaaS Infrastructure zone

For information on enabling metric collection, see Section 43.2.6.1.

A CDB is a composite entity. When you add a CDB instance, all of its pluggable databases (PDBs) are automatically discovered and reported as children of the CDB instance. Usage and charges are calculated at the PDB level.

When you add a PaaS Infrastructure Zone entity, all of its databases (single instance and RAC), database services, and PDBs are automatically discovered and reported as children of the zone. Usage and charges are calculated at the entity level.

Note:
Pool entities that provision services for a PaaS Infrastructure Zone tracked in Chargeback, cannot also be tracked independently as entities in Chargeback. This may lead to nondeterministic behavior in charge plan assignments. So, for example, a CDB that serves as a pool entity for a PDB service entity that is part of a PaaS Infrastructure Zone, cannot also be added to Chargeback as a composite entity.

You must have the ADD_CHARGEBACK_TARGET role assigned to add any entity monitored in the Enterprise Manager instance that qualifies for Chargeback support. Without it, the Add Entities button is disabled. As in the process of adding entities you can also assign charge plans and cost centers, these privileges must be included: MANAGE_CBA_ENTITY_OBJ_PRIV, ASSIGN_CHAREG_PLAN_PRIV, and ASSIGN_CBA_COST_CENTER_PRIV.

The VIEW_CAT_TARGET role allows you to see Chargeback data related to a specific entity. The VIEW_ANY_CAT_TARGET role allows you to see Chargeback data related to any entity.

1. From the Enterprise menu, select Chargeback.

2. Select the Entities tab and click the Add Entities button.
The Add Entities wizard opens, where you perform the following steps:

1. Selecting Entities for Chargeback

2. Making Assignments

3. Reviewing Entity Setup

It may take up to 24 hours after an entity is added to Chargeback for its metering data to appear. To stop collecting data on entities, select the entities involved and click the Remove Entities button.

Note:
When you remove an entity from Chargeback scope, its usage and charge data are dropped from the current report cycle. A warning to this effect appears as part of the removal process.

As new services for cluster members are discovered as part of the daily collection, they appear automatically in the tree hierarchy under the RAC node. The charge plan in effect is automatically assigned. Make cost center assignments accordingly.

43.2.6.1 Configuring Metric Collection for Enterprise Manager Database Services

Metric collection for Enterprise Manager database services is disabled by default for the following entity types:

- Database instance metered by database service

- RAC metered by database service or PDB

- CDB (both single instance and RAC)

- Pool databases used for provisioning schema services and pluggable database services provided as part of a PaaS Infrastructure zone

You have to enable metric collection before Chargeback can manage resources on these entities.

To effect change to metric data collections, you must be assigned the MANAGE_TARGET_METRICS role on the specific target.

1. From the Targets menu, select Databases.

2. Locate the target in the table and open its home page (provide credentials if requested).

3. From the Oracle Database menu, select Monitoring, then select Metric and Collection Settings.

4. On the Metric and Collection Settings page, change the view to All Metrics.

5. As shown in Figure 43-5, scroll down to EM Database Services (not simply Database Services), click Disabled, and complete the enabling process.

Figure 43-5 Enabling Metric Collection for Database Services

Do this for each cluster member in a RAC and for each CDB instance.

Alternatively, you can use the following EMCLI command to enable the metric collection on the corresponding database entity instance:

emcli modify_collection_schedule -targetType='oracle_database' -targetNames=target_name1;target_name2 -collectionStatus='ENABLED' -collectionName='DBService' -preview='N';

Where target_namen is an appropriate database target instance.

43.2.6.2 Selecting Entities for Chargeback

Step 1 in the Add Entities wizard is to select the entities you want to add to Chargeback and establish a usage mode where applicable.

For certain database entity types, you have to enable Enterprise Manager metric collection before you can add entities of these types to Chargeback:

- Database instance where metering is by service

- Cluster database where metering is by service

- CDB (both single instance and RAC)

- Pool databases used for provisioning Oracle Database Services and pluggable database services provided as part of a PaaS Infrastructure zone

For information on enabling metric collection, see Section 43.2.6.1.

1. Click the Add button.

2. In the dialog that opens search for the entity types you want to add. Use criteria to filter your search.
To add a database as a service entity type (DBaaS or SchaaS), select the PaaS Infrastructure Zone entity type. Database services and PDBs appear as children of the zone parent.

Note:
Database (single instance and RAC) and CDB entities that provision service entities for a PaaS Infrastructure Zone cannot themselves be added as entities to Chargeback. To do so may lead to nondeterministic behavior in charge plan assignments.

3. In the search results list, select the specific entities you want to add. Note that you can multiselect entities. Click Select.
The dialog closes and a progress indicator notes the search for associated entities. The selected entities then appear in the table. For a composite entity, its members are accounted for in the Members column. The metered flag indicates that metrics and configuration data will be collected for the entity and used in charge calculations. So, for example, the metered flag is not set for a WebLogic domain because data collection occurs at the WebLogic Server level.

4. Optional. Set the usage mode to other than the default where applicable to declare how to perform metering.
Select the usage mode from the drop-down list. Choices depend on the entity type; in some cases, there is only one choice, Metered. A database, for example, offers three choices: Metered by Database Instance, Metered by Service, or Metered by PDB.

5. Click Next to make charge plan and cost center assignments.

43.2.6.3 Making Assignments

Step 2 in the Add Entities wizard is to make charge plan and cost center assignments.

Charge plans provide a basis for calculating the cost of resource consumption.

1. Select entities in the table and click the Assign Plan button.

2. In the dialog that opens, select the universal or extended charge plan appropriate to entity selection and click OK. The dialog closes, and the plan assignment appears in the entity table row.

You can opt not to assign charge plans now and assign them after adding the entities for Chargeback. See Section 43.2.8 for more information.

Cost centers provide a way to aggregate the charges accrued for resource consumption.

1. Select entities in the table and click the Assign Cost Center button.

2. In the dialog that opens, select the cost center appropriate to entity selection and click OK.
The dialog closes, and the cost center assignment appears in the entity table row.

You can opt not to assign cost centers now and assign them after adding the entities for Chargeback. See Section 43.2.7 for details.

When done, click Next to review entity setup and complete the task of adding entities to Chargeback.

43.2.6.4 Reviewing Entity Setup

Step 3 in the Add Entities wizard provides an opportunity to review your selections and assignments, before completing the task. If satisfied, click Submit.

You return to the Entities tab where a message confirms that n number of entities were successfully added. For more information on what happens after entities are added, see the paragraphs after the three wizard steps in Section 43.2.6.

43.2.7 Assigning Cost Centers to Entities

Cost centers are a way of distributing charges for resource usage. A cost center is automatically assigned to an SSA entity as part of SSA setup (Cost Center target property). Use this manual process only for assigning cost centers to non-SSA entities.

Note:
You also can perform cost center assignment when adding an entity for Chargeback. See Step 2 of the Add Entities wizard described in Section 43.2.6.3.

1. From the Enterprise menu, select Chargeback.

2. Select the Entities tab.

3. Select the entities to which you want to assign a cost center and click the Assign Cost Center button.

4. A dialog opens displaying a list of cost centers. Choose the cost center for the entities and click OK.
The table of entity assignments refreshes to reflect the assignment.

When charges are calculated, unassigned entities are assigned to the default cost center. Note that assigning a cost center to a composite entity maps directly to the composite entity, and to any children that otherwise have no direct cost center assignment.

A group member with one cost center assignment who is a member of another group with a different cost center assignment is in conflict as noted on the Entities tab for the affected group member. It is also possible that a group member is part of a regular target hierarchy as well as a group. For example, a database (DB1) appears under a zone (PaaS zone 1) and under a group (Group 1). In these cases, charges continue to be calculated, but are charged to the default cost center until an administrator resolves the conflict, at which time charges will accrue against the appropriate cost center.

Shared services under a RAC node can be assigned to different cost centers.

Note:
For entities requested and provisioned through SSA, the Cost Center target property is set to the user login. The SSA user appears under the associated Enterprise Manager user cost center as a consequence of adding the SSA entity to Chargeback. If there was no Enterprise Manager user cost center assigned, the SSA user appears under the Chargeback default cost center. You cannot change the cost center assignment of an SSA entity, but you can reassign the SSA user out of the default cost center to a more appropriate cost center, if desired, as described in Section 43.2.5.3.

To unassign a cost center, select the entities involved and select Unassign Cost Center from the Action menu.

43.2.8 Assigning Charge Plans to Entities

When assigning charge plans to entities, you have the option of assigning plans individually to child members or assigning at an ancestor level and having the child members inherit the assigned plan.

An extended charge plan includes parameters for how to apply universal charge rates to an assigned entity. You also can replace an extended plan by reassigning the universal plan to an entity.

For SSA entities (zones), the person performing SSA setup assigns the charge plan to the zone as part of setup so that all entities within the zone inherit the plan.

Note:
You also can perform charge plan assignment when adding an entity for Chargeback. See Step 2 of the Add Entities wizard described in Section 43.2.6.3.

1. From the Enterprise menu, select Chargeback.

2. Select the Entities tab. A hierarchical list of entities appears showing assigned cost centers and charge plans.

3. Select the entities to which you want to assign a charge plan and click the Assign Plan button.

4. A dialog opens displaying a list of plans that apply only to the entity type selected. Choose the plan you want to assign, then click OK.
The table of entity assignments refreshes to reflect the assignment.

Note that assigning a charge plan to a composite entity maps directly to the composite entity, and implicitly to any children that otherwise have no direct plan assignment.

A group member with one plan assignment who is a member of another group with a different plan assignment is in conflict as noted on the Entities tab for the affected group member. It is also possible that a group member is part of a regular target hierarchy as well as a group. For example, a database (DB1) appears under a zone (PaaS zone 1) and under a group (Group 1). In these cases, no charges are calculated for the entity until an administrator resolves the conflict, at which time calculations resume. If there is no resolution before the close of the reporting cycle, charges can no longer be calculated.

A RAC can be metered by database instance, database service, or PDB. Each RAC member appears under the RAC node in the tree hierarchy and can be assigned to different charge plans and different cost centers.

To unassign a charge plan, select the entities involved and select Unassign Plan from the Action menu.

43.2.9 Setting Default Charge Plans for Entity Types

As part of the process of adding entities to Chargeback, you have the option of setting a default charge plan for an entity type. This way, whenever you add an entity of that type or one is discovered, the designated plan will automatically be assigned. Charge plan availability presupposes that at least one extended charge plan has been created for a given entity type; the universal charge plan is available for all entity types.

1. From the Enterprise menu, select Chargeback and click the Entities tab.

2. From the Action menu, select Set Default Plans.

3. Click an entity type row; a drop-down control appears in the Default Plan column.

4. Select a plan from the drop-down list.

5. When you are finished setting default plans, click OK.
When you add an entity for which a default plan has been set, the plan automatically appears in the Charge Plan column when you advance to the Make Assignments step in the Add Entities wizard.

Note the following about default charge plans:

- You can subsequently change the charge plan assignment for an entity that is assigned a default plan.

- A charge plan designated as a default for an entity type cannot be deleted until removed from default status.

- Default assignment and plan inheritance can vary. Consider the following scenarios where default plans are in place for WebLogic Domain and WebLogic Server entity types:

- You add a WebLogic Domain that has WebLogic Servers. The default plan is assigned only at the domain level.

- You add a WebLogic Server where there was no WebLogic Domain previously added. The default plan is assigned to the WebLogic Server.

- You add a WebLogic Server where a WebLogic Domain was previously added. The default plan is not assigned to the WebLogic Server.

43.2.10 Running the Daily Data Collection Job

The daily data collection in Chargeback is an ETL— extract, transform, load—process where information is extracted from one source, transformed into an appropriate format, and loaded into a repository.

Enterprise Manager collects metric and configuration information on entities and stores it in the Management Repository. These collections occur with varying frequencies. When an entity is added to Chargeback, the application extracts the data from the repository and transforms it for use in Chargeback-dedicated tables. This process of extracting and transforming data is the Chargeback data collection process, which is scheduled to run every 24 hours. Chargeback maintains its own data collection tables because it needs to perform various transformations on the data, and to provide a historical data reference.

Given the 24-hour cycle, any Chargeback activity is not immediately apparent. For example, if you change a cost center assignment, it may take up to 24 hours (until the next data collection job runs) for reports to show the change. To circumvent the cycle, you can run the collection job on-demand to update the tables immediately.

1. From the Enterprise menu, select Chargeback.

2. Select the Entities tab.

3. From the Action menu, select On-demand data collection.
Chargeback data collection tables are updated to reflect the most recent activity.

To check on the job schedule:

1. From the Enterprise menu, select Job, then select Activity.

2. On the Job Activity page, click Advanced Search.

3. In the Advanced Search region, select Chargeback Data Loader from the Job Type drop-down list, then click Go.

4. Check the Scheduled column for the next scheduled job execution.

Do not change the job schedule.

Upgrade Consideration

If you upgraded from Chargeback 12.1.0.5 to 12.1.0.6, where you had database or WebLogic Server shared targets, they will not display properly on the Entities and Reports tabs until you run the daily data collection job on-demand (or the job runs as scheduled). Note that after the job runs, the shared components become Chargeback entities that can be assigned to their own cost center and charge plan, per the new release.

43.3 Accessing Chargeback Information

Once a Chargeback data collection cycle completes, you can begin to parse the information in a variety of ways. This section covers the following topics

- Following Usage and Charge Trends

- Viewing an Entity's Collected Metric Data

- Generating and Distributing Chargeback Reports

- Viewing Chargeback Information in the Self Service Portal

- Sharing Chargeback Data with Other Applications

43.3.1 Following Usage and Charge Trends

Once you define charge plans, set up cost centers, and begin to monitor entities, trends in usage and charges emerge. Trending reports show metric or charge trends over a defined period of time and are useful for end users who want to see how their charges change over time. They are also useful to the IT department for capacity planning purposes.

The Home tab displays bar graphs that denote usage and charge trends over time. Each trend region has an Option link in the upper-right corner that opens a dialog where you can customize the display.

Usage Trend Options

Customize the usage trend display as follows:

- Time Period–Select the desired time period to chart usage trends; default is the current year

- Aggregation–Select how to group usage across the selected time period; default is monthly

- Usage Value Type–Show usage as a percent (utilization) or as a consumptive value; default is utilization

- Resource–Show usage in terms of a particular metric (CPU, memory, or storage); default is the three metrics

Figure 43-6 displays a usage trend showing CPU, disk, and memory utilization over the past week, aggregated daily.

Figure 43-6 Sample Usage Trend Graph

Charge Trend Options

Customize the charge trend display as follows:

- Time Period–Select the desired time period to chart charge trends; default is current year

- Aggregation–Select how to group charges across the selected time period; default is monthly

- Group By–Group charges by either cost center or entity type; default is cost center

- Cost Center–Display charge trends for all cost centers, a particular cost center, or for unassigned users; default is all

Figure 43-7 displays a charge trend showing last week's charges for the VM Guest entity type, aggregated daily.

Figure 43-7 Sample Charge Trend Graph

43.3.2 Viewing an Entity's Collected Metric Data

You can view an entity's metrics in graph form or as a time-stamped report of raw metric data. You can export the latter view to an external application such as a spreadsheet. You also can check metric collection status.

Note that you might have to expand the metric data region at the bottom of the Entities tab to expose the subtabs referenced in the instructions below.

1. From the Enterprise menu, select Chargeback.

2. Select the Entities tab and then select an entity to view.

- Select the Metered Data (Chart) subtab below the entities list, to view a wave graph of data metrics for the entity. Select the metric to display from the drop-down list on the right. The metric selection is entity-type dependent. For a WebLogic Server metered by J2EE application, the metrics are per application. For a database metered by service, the metrics are service-related. For a RAC, metrics are represented as a multiline graph grouped by cluster member, where each line maps to usage by a particular member for the selected service.

- Select the Metered Data (Table) subtab to view the raw numbers. In this view, you can filter the data and export it as a csv-formatted file. You also can change the focus to another entity. For a RAC, the view shows the same service data for all cluster members within the RAC.

- Select the Collection Status subtab to glean statistical data such as error count and when metric data was last collected. For a RAC, collection status is for all cluster members within the RAC regardless of service selected.

- Select the Problems subtab to view any problems related to the selected entity such as with the data collection process. The summary entry links directly to Incident Manager where you can learn more about the problem and potential solutions. A service request (SR) number appears if assigned. There is also a Problems subtab on the Home tab that notes issues related to the whole of Chargeback. There are here likewise direct links to Incident Manager.

Note:
Within Incident Manager, you can view, track, and manage the life cycle of a problem and its associated incidents. Support Workbench allows your to further investigate and report a problem. As the Chargeback Administrator, you require full privileges on all hosts and Management Agents associated with the Oracle Management Service to view problem details in the Support Workbench.

- Click the help icon that appears in a charge details row to see a pop-up description of the applicable charge item.

Figure 43-8 shows a chart tracking instance uptime for the selected entity over a span of 16 days.

Figure 43-8 Sample Entity Metric Data

Note that you can see additional details on the Job Activity page.

1. From the Enterprise menu, select Job, then select Activity.

2. Click Advanced Search and specify the following filtering criteria:

- Select Chargeback Data Loader as Job Type.

- Select Targetless as Target Type.

- Select appropriate values for Status and Scheduled Start.

3. Click Go.

The log output for each job step captures any warnings or errors encountered.

43.3.3 Generating and Distributing Chargeback Reports

Chargeback summary reports are a powerful analytical tool for tracking resource usage and charge distributions. These summary reports show information related to charge or resource utilization broken down by Cost Center, Entity Type and Resource. They enable you to quickly assess the entities or cost centers with the greatest charges or resource utilization. Summary reports are primarily useful for drill-down purposes.

Data collection occurs once a day. The daily data collection job for the current cycle is based on charge plan and cost center assignments. The reporting cycle defines the time period for which to calculate charges. The cycle is for the current month starting on the first day of the month.

To generate ad hoc reports:

1. From the Enterprise menu, select Chargeback.

2. Select the Reports tab.

3. Design your report from the following options:

- Use the current report cycle or customize a date range to report on.

- Choose between summary and trend report types. A summary report presents a pie-chart breakdown, while a trend report uses a y-axis multiple bar chart to denote usage trends.

- Select specific cost centers or report on all users.

- Select specific entities or entity types or report on all entities within all entity types.

- Choose the metric to report on.

Click View Report to see the results.

The report displays color-coded graphs summarizing charges by cost center, entity type, and resource, with details displayed in the table at the bottom. Click a color box link in the respective graph to recalculate the report contents for the color-coded selection, for example memory in the resource graph.

Figure 43-9 displays a summary report showing charges for the current reporting cycle for all cost centers and entity types, with a breakdown by resource.

Figure 43-9 Summary Report for a Cost Center and Entity Type

4. Filter the details by choosing from the drop-down list; the default is All. Use the query-by-example feature (icon to the right of the action buttons) to search report details. The icon acts as a toggle; clicking it alternately shows or hides text and selection boxes above the table columns. The feature is also available in the View menu. Enter search criteria in various combinations by selecting a date and by typing values in the respective columns. Press Enter to activate the search.

5. Click the Export button in the details region to export report contents to file.

6. Click Publish Report to make report contents public. This action integrates with BI Publisher, where you can:

- Save reports in a variety of formats (Excel, PowerPoint, HTML, PDF)

- Distribute generated reports to e-mail lists (users who do not have access to Enterprise Manager, for example) on a defined schedule

For information on BI Publisher setup, see the "Installing BI Publisher on Enterprise Manager" chapter in the Enterprise Manager Cloud Control Advanced Installation and Configuration Guide.

Reporting on Uptime

When you choose to report on the uptime metric, the details display the fractions of hours in a day an entity was available over the course of the reporting cycle. Note that reporting uptime does not prorate charges. The prevailing sense is to put in the hands of the customer how best to make adjustments to charges based on the report results. To this end, export the results to a Microsoft Excel html-formatted file for further analysis and consideration.

43.3.4 Viewing Chargeback Information in the Self Service Portal

You can access Chargeback information as it relates to self service applications from the self service portal.

1. From the Enterprise menu, select Cloud, then select Self Service Portal.

2. On the Self Service Portal page, select a service type from the Manage drop-down menu.

3. Click the Chargeback icon in the left pane to view charge trends and details for the selected service type, provided it was configured for Chargeback, to view the following informational breakdown:

- Charge Trend calculates charges across a date range for various metrics. If you hover over a metric, memory for example, the bar graph changes to reflect only that metric. Set a date range and click Go to recalculate charges.

- Details below are a reflection of the charges and date range above. You can reorder the data by selecting from the Detail Level drop-down menu. You can also display additional information by exposing more columns.

- Charge Plans allows you to select a zone to see the charge plan in effect, in this case, an extended charge plan defined for a specific entity type. That entity type, Oracle VM Guest for example, has certain charge items that were set as part of the plan definition and are displayed on the Charge Items tab. The charge plan determines the charges displayed in trends and details on the left. The other tab, Universal Rate Adjustments, shows adjustments if any made to the base plan rates (CPU, memory, and storage).

Figure 43-10 shows a sample Chargeback informational breakdown in the self service portal.

Figure 43-10 Chargeback Breakdown for a Self Service Application

43.3.5 Sharing Chargeback Data with Other Applications

Amassed Chargeback data is a valuable commodity that can be made available to other applications. There are several ways to do this:

- Export administrative reports (Export button on the Reports tab in Chargeback)

- Publish administrative reports via BI Publisher (Publish button on the Reports tab in Chargeback)

- Export details of charge trends for self service applications (Export button on the Chargeback tab in the self service portal)

- Execute the EM CLI verb get_metering_data to generate comma-separated output on usage and, optionally, charge data (see Chapter 56, "Chargeback and Metering EMCLI Verbs," for more information)

In addition, Enterprise Manager supports repository views to access information in the Management Repository for further processing and presentation. There are two views available (MGMT$EMCT_CBA_CHARGE_HOURLY and MGMT$EMCT_CBA_CHARGE_DAILY) to access Chargeback information in the Management Repository. See the Enterprise Manager Cloud Control Extensibility Programmer's Reference for more information.

44 Using Consolidation Planner

This chapter covers use of the Consolidation Planner feature provided with Oracle Enterprise Manager Cloud Control.

This chapter includes the following sections:

- Overview of Consolidation Planner

- Using Consolidation Planner

44.1 Overview of Consolidation Planner

Over the years, the typical enterprise data center will grow steadily due to the addition of servers required to satisfy the needs of the business. This growth typically results in excess servers that occupy rack space, consume a lot of power for cooling, and require system maintenance such as security and patching.

Depending on the procurement cycle or the specific hardware vendor agreement in effect, enterprises may acquire different types of server hardware and operating systems, inadvertently creating a confusing array of systems that administrators need to manage, administer, patch and upgrade. This in turn increases labor and ongoing maintenance and support costs against IT budgets. Enterprises look at consolidation as a way to migrate their disparate systems onto standardized operating systems and hardware, with the ultimate goal of reducing costs.

Enterprises also are increasingly investigating virtualization technologies such as Oracle Virtual Machine by moving from physical to virtual servers. This makes it possible to use the shared hardware infrastructure while getting the benefits of isolation that virtualization provides.

The goal of consolidation is to identify such under-utilized servers and find a way to consolidate them, enabling the enterprise to free up as many servers as possible while continuing to maintain service levels. Since servers have different levels of CPU capacity, Consolidation Planner uses computer benchmark data to normalize the CPU usage for a given hardware in the consolidation process. Specifically, Consolidation Planner uses the following CPU benchmarks for different classes of hardware:

- SPECint®_base_rate2006 for database hosts, application hosts, or mixed-workload hosts

- SPECjbb®2005 for middleware platforms

Consolidation Planner enables you to match managed target sources you want to consolidate with new or existing target destinations. Consolidate source servers to generic physical machines, Oracle engineered systems (Exadata Database Machines or Exalogic Elastic Cloud systems), or Oracle Virtual Machine (VM) servers.

You can also consolidate source servers to physical machines configured in the Oracle Cloud. In a consolidation of this type, an Oracle Cloud Compute configuration mimics a host, except that only memory and CPU capacity are of consequence as resources to be considered.

By leveraging metric and configuration data collected from managed target servers by Enterprise Manager Cloud Control, Consolidation Planner helps you determine the optimum consolidation scenarios that also reflect business and technical constraints in the consolidation process.

44.1.1 Key Concepts

The following concepts are central to using Consolidation Planner.

Source Server

An existing server that will be considered for consolidation.

Destination Server

An existing or yet-to-be-purchased server that a source server will be consolidated to. Can also be thought of as the consolidation target. These may be individual machines, virtual server pools, an engineered system such as the Oracle Exadata Database Machine or an Exalogic Elastic Cloud system, or an Oracle Cloud Compute configuration.

Consolidation Project

Defines the scope of a potential consolidation effort, including:

- The type of consolidation. In the current release, two types of consolidation schemes are supported:

- P2V: From physical source servers to Oracle Virtual Machine (VM) destination servers

- P2P: From physical source servers to physical destination servers

- The preliminary set of candidate source servers to consider consolidating from

- The preliminary set of candidate destination servers to consider consolidating to

- The duration over which data used to generate consolidation scenarios will be collected for the source servers

- The benchmark used to measure CPU capacities when determining how many source servers can be consolidated to a destination server

Consolidation Scenario

Each consolidation project contains one or more consolidation scenarios that are generated based on the inputs provided, which include:

- The source server resource requirements that a destination server must meet, including one or more of the following: CPU, memory, disk I/O, network I/O, and disk storage

- Any business, compliance or technical constraints that must be considered

- The destination servers to consider in the scenario

A set of pre-configured consolidation scenarios are provided, representing conservative, medium, and aggressive consolidation schemes. Each scenario is generated based on inputs you provide. Alternatively, you can create your own custom scenarios that best suit your situation. Once created, you can compare the various scenarios to determine which consolidation strategy best meets your requirements.

Each scenario also includes initial mappings between each source server and the destination server it may be consolidated to. You can choose to create mappings manually, or allow Consolidation Planner to create them automatically. Once all inputs are specified, you can run the scenario and evaluate the results. Subsequently, you can rerun the scenario to re-evaluate the scenario based on the previously specified conditions with the latest available data. The results of the previous analysis will be over-written. You can also create a new scenario based on an existing scenario, where you tweak certain values to customize the new scenario.

44.1.2 Consolidation Constraints

Consolidation Planner allows you to specify various constraints that must be considered when creating consolidation projects and scenarios.

This section covers the following:

- Source Server Constraints

- Destination Server Constraints

44.1.2.1 Source Server Constraints

For source servers, you define constraints on the basis of compatibility or exclusivity.

Compatible Servers

Servers are considered compatible if they match on certain property and configuration values.

Properties include the following:

- Lifecycle Status

- Department

- Location

For example, there may be situations that mandate that specific servers remain within a specific location, such as data center location or geography.

Configuration items include the following:

- Network Domain

- System Vendor

- System Configuration

- CPU Vendor

- CPU Name

- Operating System

For example, there may be an accounting policy that the same system and CPU vendor be used.

You can choose to establish compatibility on none, some, or all of these target properties and configuration items.

Mutually Exclusive Servers

You can choose to exclude servers from consolidation scope because they violate certain Oracle best practices. Set either or both of the following conditions to exclude matching servers:

- Nodes of a RAC Database–do not consolidate nodes of the same RAC database to a single destination server

- Nodes of an Oracle Cluster–do not place nodes of an Oracle cluster in the same failure group

44.1.2.2 Destination Server Constraints

For destination servers, you can scope candidates to either new or existing candidates, but constraints are primarily expressed as a percentage of CPU and memory resource utilization; that is, how much of either resource type can maximally be used on a destination server.

44.2 Using Consolidation Planner

The steps in the consolidation planning process are:

1. Create a consolidation project. See Section 44.2.1, "Creating a Consolidation Project."

2. Define one or more consolidation scenarios within the project. You have two options:

- Use a pre-defined consolidation scenario. See Section 44.2.1.5, "Choosing a Pre-configured Scenario."

- Create a custom consolidation scenario. See Section 44.2.2, "Creating a Custom Consolidation Scenario."

3. Evaluate your consolidation scenarios in the Consolidation Planner console to determine the consolidation strategy that best meets your needs. See Section 44.2.4, "Evaluating a Consolidation Scenario."

4. Modify the settings of your scenarios to generate different results. Continue this process until you have the most optimal scenario(s) for your situation.

Note that in this release, consolidation scenarios can be created for planning purposes only. Execution of scenarios—that is, the actual movement of data from sources to destinations—is not supported.

When consolidating multiple sources to more than one destination, the resource requirements of sources are checked against the resource capacity of the destinations. To consolidate all identified sources to the least number of destinations, Consolidation Planner tries to identify a set of sources that have known resource requirements that will fit into a destination's corresponding available resources as tightly as possible.

For example, if the available memory in a destination server is 2 GB, Consolidation Planner will try to find a set of source candidate servers with a sum of required memory as close to 2 GB as possible then ”fit” the source servers in the destination server. The goal is to ”fit” the source servers into the least number of destination servers.

This section includes the following:

- Creating a Consolidation Project

- Creating a Custom Consolidation Scenario

- Other Scenario Creation Options

- Evaluating a Consolidation Scenario

- Analyzing a Consolidation Scenario

- Viewing Consolidation Reports

- Considering Oracle Compute Cloud Shapes

- Managing Data Collections

44.2.1 Creating a Consolidation Project

You create a consolidation project for each consolidation effort, then add individual consolidation scenarios within it. You can then compare consolidation scenarios to determine which consolidation strategy makes the most sense.

After the project is defined, a Cloud Control job is submitted to collect available data for the specified targets from the Management Repository. Once the job finishes, the project becomes an active project. As long as the project is in an active state, data collection will continue.

Note:
To view a visual demonstration on creating a project to consolidate legacy hosts onto an Exadata engineered system, watch the video Oracle Enterprise Manager 12c: Consolidation Planner, using the following URL:

https://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:6427,2

A wizard guides you through the creation process and involves the following steps:

- Declaring the Consolidation Type

- Specifying Source Candidates

- Specifying Destination Candidates

- Setting Data Collection Parameters

- Choosing a Pre-configured Scenario

- Reviewing and Saving the Consolidation Project

44.2.1.1 Declaring the Consolidation Type

Specify general information about the consolidation project as follows:

1. From the Enterprise menu, select Consolidation Planner.

2. Click the Create Project button.

3. Enter the consolidation project name and, optionally, a description.

4. Select the host consolidation type: from physical source servers to Oracle VM servers (P2V), or from physical source servers to physical servers (P2P).

5. Click Next to specify source candidates.

44.2.1.2 Specifying Source Candidates

Proceed with source selection as follows:

1. Select an appropriate benchmark from the drop-down menu.

- Specify SPECint®_base_rate2006 for database hosts, application hosts, or mixed-workload hosts

- Specify SPECjbb®2005 for middleware platforms

2. Click Add Source Servers to select the source servers to be consolidated from a list of managed server candidates. Use the filtering criteria to refine your target search. Choose from the filtered results, then click Select.
The targets you select appear in the table. Note that you can subsequently cull the list by removing selected source servers.

3. Optionally set server I/O capacities for disk I/O request and network I/O volume capacities. Click Specify Server I/O Capacity to estimate these I/O capacities for all source involved in the consolidation project. Note that you can subsequently fine-tune these estimates by clicking a row and editing the values for the various capacities.

4. Click Next to specify destination candidates.

44.2.1.3 Specifying Destination Candidates

Proceed with destination selection as follows:

1. Optionally select one or more existing servers to consolidate the source servers to.

- If you are consolidating from physical servers to Oracle Virtual Servers (P2V), click Add Existing Virtual Servers as Destinations to view a list of existing VM-based Exalogic Elastic Cloud systems and Oracle Virtual Machine destination servers to consolidate the source servers to. Use the target type filter to differentiate the two. Select the servers you want to add, then click Select.
The targets you select appear in the table. Note that you can subsequently cull the list by removing selected destination servers.

- If you are consolidating from physical servers to physical servers (P2P), click Add Existing Oracle Engineered System as Destinations to search for the Exadata Database Machine servers or Exalogic Elastic Cloud servers to consolidate the source servers to. Use the target type filter to differentiate the two. Select the servers you want to add, then click Select.
The targets you select appear in the table. Note that you can subsequently cull the list by removing selected destination servers.

Note:
The consolidation will be either to new destination servers, or to the existing servers that were selected as source servers.

2. Optionally edit estimated CPU capacity, I/O request, and network I/O volume by clicking in a row and changing the value. You can also edit the I/O value by clicking Specify Server I/O Capacity to estimate these I/O capacities for all destination servers involved in the consolidation project.

3. Click Next to set up data collection.

44.2.1.4 Setting Data Collection Parameters

Specify the duration over which data used to generate consolidation scenarios will be collected for the source servers specified in the project in the Data Collection region. This data will be used to determine the resource requirements that a destination server must meet.

1. Specify the minimum number of days to collect data. The default minimum value is 21 days. To use existing historical data to run and view consolidation scenarios immediately, set the minimum number of days to 0.

2. Specify the maximum number of days to collect data. The default maximum value is 90 days.

3. Specify when to begin the data collection process.
Note that once data collection begins, you can elect to suspend and resume collecting at any time from the Actions menu in the Consolidation Planner console.

4. Optionally select Continue Data Collection Over the Maximum Days to purge the oldest day's data when data for a new day is added.

5. Click Next to choose a pre-configured scenario.

44.2.1.5 Choosing a Pre-configured Scenario

When creating a consolidation project, you can optionally choose to generate up to three pre-configured consolidation scenarios to add to the project. These out-of-the-box scenarios represent conservative, aggressive, and medium consolidation schemes.

These scenarios are generated using data collected for the source targets defined in the consolidation project at the time the project is created. If no data is available when the project is created, the pre-configured scenarios will be automatically generated once the minimum amount of data has been collected.

Consolidation Planner ships with three out-of-the-box scenarios that represent conservative, aggressive, and medium consolidation schemes.

1. Choose whether to use a pre-configured scenario by clicking the appropriate radio button. Choosing the option displays a list of the out-of-the-box consolidation scenarios available. By default, the scenarios are designated by the method used to aggregate daily source target resource usage:

- Aggressive: Aggregate data based on average daily usage per hour.
This typically results in a high consolidation (source:destination) ratio, because more sources will ”fit” into each destination. But because more sources are involved, the odds that one or more will not meet the resource requirements are higher.

- Conservative: Aggregate data based on maximum daily usage per hour.
This typically results in a lower source:destination ratio, because fewer sources will ”fit” into each destination.

- Medium: Aggregate data based on the 80 percentile usage.
This typically results in a source:destination ratio somewhere between Aggressive and Conservative aggregations.

2. Select the pre-configured scenario you want to use. Note that you can select any or all scenarios.

3. Select whether to factor new or existing destinations in the scenario. If you choose a new (phantom) server, provide resource metric estimates.

4. Click Next to review the consolidation project.

The pre-configured scenarios will be generated when the project is created using data collected for the source servers defined in the consolidation project.

You can also opt to create your own custom scenario once the consolidation project has been completed.

44.2.1.6 Reviewing and Saving the Consolidation Project

Review the specifics of the consolidation project. Use the Back button to return to a given step to make changes. If satisfied, click Submit. A message confirms that the project has been created and the job has been submitted.

Once the project is created, it will show up in the Consolidation Planner console. Consolidation scenarios can then be defined for this project.

44.2.2 Creating a Custom Consolidation Scenario

You can create custom consolidation scenarios instead of or in addition to using the pre-configured scenarios. Multiple scenarios can be created within a project, enabling you to compare different scenarios before deciding on a solution. New consolidation scenarios are created within an existing consolidation project.

A wizard guides you through the creation process and involves the following steps:

- Specifying Scenario Parameters

- Defining Consolidation Constraints

- Specifying Destination Candidates

- Mapping Sources to Destinations

- Reviewing and Saving the New Scenario

44.2.2.1 Specifying Scenario Parameters

Specify the general parameters of the scenario as follows:

1. From the Enterprise menu, select Consolidation Planner.

2. Click the consolidation project for which the scenario is intended.

3. Click the Create Scenario button.

4. Specify the scenario details, such as scenario name.

5. Specify the source resources to consider. Consolidation Planner will aggregate the specified resources to determine the total requirements.

- Resource Type: The server requirements, such as CPU, memory (GB), and I/O capacity that must be considered.

- Scale Factor: Provide room for growth on the destination for each source. The resource requirement estimate uses the scale factor to pad the estimate for consolidation. So, for example, if the estimated requirement for a given source, based on usage data, is 2 GB of memory, which equates to a scale factor of 1, and you specify a scale factor of 1.1, 2.2 GB will be required to consolidate that source.

- Applicable Days: The days of the week on which resource usage metrics are collected.

- Resource Allocation: The method used to aggregate daily source server resource usage. Values are:

- Aggressive: Aggregate data based on average daily usage per hour.
This typically results in a high consolidation (source:destination) ratio, because more sources will ”fit” into each destination. But because more sources are involved, the odds that one or more will not meet the resource requirements are higher.

- Conservative: Aggregate data based on maximum daily usage per hour.
This typically results in a lower source:destination ratio, because fewer sources will ”fit” into each destination.

- Medium: Aggregate data based on the 80 percentile usage. This typically results in a source:destination ratio somewhere between Aggressive and Conservative aggregations.

- The date ranges should define a period of time that is typical of standard resource requirements.

6. Click Estimated Requirements to view the estimated total resource requirements.
Resource requirements are shown based on the averaged hourly requirement. The displayed requirements reflect the scale factor (if any) specified for the resource. The 24-hour requirement pattern will be used as the minimum requirements that must be met by consolidation targets.

7. Click Next to define consolidation constraints.

44.2.2.2 Defining Consolidation Constraints

Specify business, corporate or technical constraints that must be enforced. These constraints will be used to:

- Guide the allocation process during automatic source-to-destination mapping; or

- Calculate violations if manual mapping between sources and destinations is used

1. Select compatible server criteria.
Servers are considered compatible if they have the same specified target properties and configurations. If you are consolidating multiple source servers to a single target server, only compatible servers can be consolidated together on the same target server.

2. Specify mutually exclusive server criteria.
Certain types of source servers are mutually exclusive and should not be consolidated together on the same destination server due to various reasons. For example, nodes of an Oracle cluster should not be placed in the same failure group.

3. Click Preview Effect of Constraints to view a list of source servers that are not compatible based on the defined constraints.

4. Click Next to specify destination server candidates.

44.2.2.3 Specifying Destination Candidates

Determine the destination candidates needed to meet your requirements. Proceed according to the project type.

- Physical Server to Virtual Server Project

- Physical Server to Physical Server Project

Physical Server to Virtual Server Project

For a P2V project:

1. Choose destination server candidates using either of the following options:

- Click Use New (Phantom) Servers if you plan to use target servers that have yet to be provisioned or purchased, then select either of the following options:

- Use Oracle Engineered System and click the search icon to select an appropriate configuration type for an Exalogic Elastic Cloud system.

- Use Generic Servers and provide the estimated CPU capacity if available; otherwise, click the search icon next to the CPU capacity input field, then select a server configuration that most closely matches your needs.
Adjust the memory and storage estimates as necessary.

In a virtual environment, you can also specify a quantity of the resource to be set aside (reserved) for use by supervisory software in the database machine. This quantity is subtracted from the total capacity of the destination before consolidating source servers into the remaining resource. For example, if your estimated memory requirement is 12 GB and you specify a reserve of 2 GB, only 10 GB is available for consolidation.

Consolidation Planner will determine how many destination servers are required as part of the consolidation results.

- Click Use Existing Servers to specify a set of existing managed servers to use as targets.
These are the servers you specified when defining the scope for the consolidation project. Consolidation Planner will determine the available hardware resources based on collected usage data.

By default, the consolidation process will try to use as few target servers as possible. If you prefer, choose to balance the source load across all destinations.

2. Accept the defaults or edit the percentages for Maximum Allowed Resource Utilization on Destination Servers. Contrast these allowances, which provide headroom on destination servers, with the scale factor, which provides headroom for individual source servers.

3. Click Next to map the source servers to the destination servers.

Physical Server to Physical Server Project

For a P2P project:

1. Choose destination server candidates using either of the following options:

- Click Use New (Phantom) Servers if you plan to use destination servers that have yet to be provisioned or purchased, or if you are using Oracle Cloud Computing, then select the appropriate option:

- Use Oracle Engineered System and select either Exadata Database Machine or Exalogic Elastic Cloud. Click the search icon and select a configuration type appropriate to either choice.

- Use Generic Servers and provide the estimated CPU capacity if available; otherwise, click the search icon next to the CPU capacity input field, then select a server configuration that most closely matches your needs.

- Use Oracle Compute Cloud and select the cloud computing configuration, or shape, to use as the destination. See Section 44.2.7, "Considering Oracle Compute Cloud Shapes," for more information.

Adjust the memory and storage estimates as necessary.

- Click Use Existing Servers to specify a set of existing managed servers to use as destinations for the project.
These are the servers you specified when defining the scope for the consolidation project. Consolidation Planner will determine the available hardware resources based on collected usage data. If you did not explicitly specify destination candidates, all source servers are potential destinations for consolidation.

By default, the consolidation process will try to use as few destination servers as possible. If you prefer, choose to balance the source load across all destinations.

2. Accept the defaults or edit the percentages for Maximum Allowed Resource Utilization on Destination Servers. Contrast these allowances, which provide headroom on destination servers, with the scale factor, which provides headroom for individual source servers.

3. Click Next to map the source servers to the destination servers.

44.2.2.4 Mapping Sources to Destinations

Next, map the sources to the destinations they will be consolidated to. The objective is to fit source requirements with each destination's available resources as tightly as possible.

It is recommended that you allow Consolidation Planner to perform this mapping automatically. This will allow the tool to maximize resource utilization of destinations based on resource capabilities and the various consolidation constraints specified.

When you have chosen existing destinations, you can optionally map each source and destination manually:

1. Click a source in the list.

2. Click the flashlight icon to select the destination to map to the source. Note that you can map a single source to a destination or multiple sources to a destination, but a source can be mapped to only one destination.
The resulting consolidation report will show any resource and/or constraint violations due to such manual mapping.

3. Click Next to review the consolidation scenario.

44.2.2.5 Reviewing and Saving the New Scenario

Finally, review the various parameters set in the new scenario. Note that you can optionally save the scenario as a template. Use the Back button if you need to make changes; otherwise, proceed as follows:

- Optionally, you can save the scenario as a template, which can then be shared with other users. If you want to do this, click Save Scenario as a Template. In the dialog that opens, browse to a location in the local file system and save the template as an XML file.

- Click Submit. A message appears confirming that a job has been submitted for further analysis of the scenario. Results appear at the bottom of the Consolidation Planner page when done.

44.2.3 Other Scenario Creation Options

You can also create a consolidation scenario based on an existing scenario. Select an applicable scenario under a consolidation project and then select Create Like Scenario from the Actions menu. Modify the scenario as desired, provide a meaningful name, and submit for analysis as usual.

If you saved a scenario as a template, you can subsequently import the scenario into another environment.

1. On the Consolidation Planner home page, select Create Scenario from Template from the Actions menu.

2. Browse to a saved template XML file in the local file system. Click Open.

3. Indicate the extent to which you want replicate the saved template; that is, in terms of the resources, constraints, and targets planning represented by the template. Click Update if you make any changes.

4. Click OK to import the saved template.
The imported scenario opens in the wizard where you can edit and save it in Consolidation Planner.

44.2.4 Evaluating a Consolidation Scenario

You can view details of your consolidation scenarios using the Consolidation Planner console. After evaluating the consolidation scenario results, you can define different plans as well as rerun existing scenarios to re-evaluate them based on the previously specified conditions with the latest available data. The results of the previous analysis will be over-written. You can also create a new scenario based on an existing scenario, where you tweak certain values to customize the new scenario. This iterative process helps you obtain the optimized consolidation scenario which is generated by compromising various factors and weighing different trade-offs.

Compare the consolidation scenarios you create to determine which consolidation strategy best meets your requirements.

Your objective is to:

- Match source resource requirements with destinations best able to meet those requirements.

- Fit source requirements with each destination's available resources as tightly as possible, so you can get maximum usage of destination capacity.

- Provide room for growth on destinations by allowing for headroom as a factor of resource requirements.

- Optionally balance the source workload across all available destinations.

In the current release, consolidation scenarios can be created for planning purposes only. Consolidation scenarios cannot be executed using Consolidation Planner.

1. From the Enterprise menu, select Consolidation Planner.

2. First, examine the project containing the scenario you want to view.

- The Status column indicates the status of data collection, based on the minimum and maximum collection days specified for the project.

- The General tab summarizes the project in terms of type, collection details, number of sources, and so forth.

- Click the Sources tab to view various usage data collected for the sources defined in the project. Data can include utilization rates for CPU, memory, storage, and disk and network I/O, depending on the project type.

- Click the Source Workload tab to view a graph showing source resource usage data collected. Data is shown for each 24 hour period across a monthly span. You can filter the view by source, resource type, and month.

- Click the Destination Candidates tab to view a breakdown of hardware details and projected resource utilization by destination candidate, based on the sources to be consolidated.

- Click the Report button above the table when the project is selected to view summarized information and more details.

3. Next, view the data for a specific scenario. For a completed analysis, click any metric in the row to view details. Clicking the Sources metric takes you to the General tab where you can view a summary of the scenario. Clicking the remaining metrics takes you to the respective tab, as follows:

- Destinations: The list of destinations to which the sources will be consolidated. Resource configuration and calculated utilization are shown for each destination.
For consolidations to the cloud, resources of consequence are CPU capacity and memory.

- Ratio: The ratio of sources to destinations. By default, Consolidation Planner will try to ”fit” sources into as few destinations as possible.

- Mapping: The destinations to which specific sources will be mapped. The analysis includes estimated CPU and memory requirements and utilization, enhanced by suggested CPU and memory allocation figures to consider. These suggestions represent a reasonable compromise between requirements and destination server capacity.

- Confidence: The percentage of the data collected for sources that meet the source usage requirements defined in the scenario. This value is aggregated for all sources defined with the project.

- Violations: The number of violations of technical or business constraints defined in the scenario.

- Exclusions: The number of sources that do not have a qualified mapping to a destination. These are sources that exceed the capacity of available destinations. This metric is applicable only if auto-mapping of sources to destination is used.

A different set of constraints may result in a different optimal scenario. Modify the constraints to come up with different scenario results.

44.2.5 Analyzing a Consolidation Scenario

To analyze a consolidation scenario, Consolidation Planner follows a defined process.

First, Consolidation Planner estimates the hourly and overall resource requirements for each of the consolidation sources. Using metric data collected by Enterprise Manager, Consolidation Planner calculates the requirement for each hour and for all hours (in the specified collection days), selecting the average, 80th percentile, or maximum value, depending on the selected resource allocation style (Aggressive, Medium, or Conservative). Consolidation Planner adjusts this value if a scale factor is specified. The resource requirement displayed for the source is the overall requirement determined by the resource allocation style and adjustments.

If the consolidation scenario includes existing destinations, Consolidation Planner performs a similar calculation to determine the hourly and overall usage values for each destination. Consolidation Planner does not scale or otherwise adjust these values, but calculates them using average, 80th percentile, or maximum values depending on the resource allocation style.

To consolidate sources into new or existing destinations, Consolidation Planner matches the hourly requirements for each source against the available hourly capacity of a destination. (Existing destinations start this process populated with their existing hourly workloads; new destinations start in an empty state.) If the destination can accommodate all hourly requirements for all resources, a success consolidation occurs. If any requirement cannot be consolidated, Consolidation Planner tries the next destination until one is found with sufficient capacity. If the consolidation is to existing destinations and none have sufficient remaining capacity, the source is excluded from the consolidation. For consolidation to new destinations, another destination is created to accommodate the source. By default, Consolidation Planner consolidates sources to the fewest possible destinations. However, for scenarios with multiple existing destinations, you can choose to spread the workload across all destinations instead.

The scenario Mapping page displays the results of the consolidation. The contents of this page vary depending on the project type and the resources selected for consolidation, but in general displays the following:

- Projected destinations, and the sources consolidated to each destination.

- For each resource, the capacity of the destination, together with the percentage and amount of that resource that will be consumed by the sources consolidated to it and existing workload, if any. Consolidation Planner estimates this amount by finding the largest hourly usage for the resource on the destination. The source line shows the percentage of the destination's resources that will be used by that source.

44.2.6 Viewing Consolidation Reports

You can repurpose consolidation project and scenario details in report form that you can capture in a variety of formats and distribute to a wider audience.

44.2.6.1 Viewing Consolidation Planner Project Reports

To view a project report, select the project on the Consolidation Planner home page and click the Report button above the table. The report page repurposes project details as stacked, scrollable tables representing the tabbed information that appears in the project's details on the home page.

Click Publish Report to capture report contents. This action integrates with BI Publisher, where you can:

- Save reports in a variety of formats (Excel, PowerPoint, HTML, PDF).

- Distribute generated reports to e-mail lists (users who do not have access to Enterprise Manager, for example) on a defined schedule.

Click OK to return to the Consolidation Planner home page.

44.2.6.2 Viewing Consolidation Planner Scenario Reports

To view a project scenario report, select the scenario within the project on the Consolidation Planner Home page and click the Report button above the table. The report page repurposes scenario details as stacked, scrollable tables representing the tabbed information that appears in the scenario's details on the home page.

Click Publish Report to capture report contents. This action integrates with BI Publisher, where you can:

- Save reports in a variety of formats (Excel, PowerPoint, HTML, PDF).

- Distribute generated reports to e-mail lists (users who do not have access to Enterprise Manager, for example) on a defined schedule.

Click OK to return to the Consolidation Planner home page.

44.2.7 Considering Oracle Compute Cloud Shapes

A shape defines the number of Oracle Compute Units (OCPUs) and the amount of RAM available for an instance. An (OCPU) provides the equivalent CPU capacity of the current 3.0 GHz 2012 Intel Xeon processor with hyper threading enabled. Each OCPU corresponds to two hardware execution threads, known as vCPUs.

A wide range of shapes is available to help you select a combination of processing power and memory for your instances that best suits your business requirement. While selecting a shape for your instance, consider the nature of applications that you will deploy on the instance, the number of users that you expect to use the application, and also how you expect the load to scale in the future. Remember to also factor in the CPU and memory resources that will be used by the OS.

To determine the shape that meets your resource requirements, you may want to experiment with a shape and test it with a representative workload.

Table 44-1 provides the list of shapes currently available in Oracle Compute Cloud Service. The shapes named OC3 through OC7 represent standard combinations of OCPUs and memory, while shapes named OC1M through OC5M represent high memory configurations, where the memory allocation is double that of the standard configurations.

Table 44-1 Oracle Compute Cloud Service Shapes

Name

OCPUs

vCPUs

Memory (GB)

OC3

1

2

7.5

OC4

2

4

15

OC5

4

8

30

OC6

8

16

60

OC7

16

32

120

OC1M

1

2

15

OC2M

2

4

30

OC3M

4

8

60

OC4M

8

16

120

OC5M

16

32

240

44.2.8 Managing Data Collections

Manage data collections by viewing the status of your projects.

1. On the Consolidation Planner home page select View Data Collection from the Actions menu.

2. The view lists source targets within a project where you can perform the following tasks:

- View the latest collection status by project.

- Select a target to see its collection history and troubleshoot potential problems with the collection.

- Click the link under Data Collection Jobs to go to the job activity page where you can view and administer the latest data collection job.

- Update the latest SPECint rates by following the instructions to download a CSV file with the latest rates. After downloading the file, click Browse to locate the file in the local file system and click Load to update the rates in Consolidation Planner.

Part XVI

Using the Cloud APIs

This section describes the cloud application programming interfaces (APIs) and the RESTful (Representational State Transfer) API.

It contains the following chapters:

- Chapter 45, "Introduction to Cloud APIs"

- Chapter 46, "Cloud Resource Models"

- Chapter 47, "EM CLI Verbs for Database as a Service Administrator."

- Chapter 48, "Database as a Service Administrator REST APIs."

- Chapter 49, "Database as a Service SSA User REST APIs."

- Chapter 50, "DBaaS REST APIs and EM CLI Verbs Based Use Cases."

- Chapter 51, "SSA Administration REST APIs."

- Chapter 52, "SSA Portal Management REST APIs."

- Chapter 53, "WebLogic as a Service REST APIs."

- Chapter 54, "SOAaaS and OSBaaS APIs"

- Chapter 55, "Rapid Start Cloud Setup."

- Chapter 56, "Chargeback and Metering EMCLI Verbs."

- Chapter 57, "Introduction to Blueprints."

- Chapter 58, "Cloud Blueprints and Blueprint Reference."

- Chapter 59, "Infrastructure as a Service REST APIs."

- Chapter 60, "Testing as a Service REST APIs."

45 Introduction to Cloud APIs

Cloud computing is a style of computing in which dynamically scalable and deployed resources are provided as a service over the network. Users need not have knowledge of, expertise in, or control over the underlying infrastructure in the cloud that supports the services rendered to the users. As enterprises (companies, governments, and other organizations) integrate their existing IT infrastructures and IT resources with the sharable cloud paradigm, it is imperative for cloud enablers to provide a uniform API that these enterprises can use to tailor the cloud to their business processes and economic models.

The Representational State Transfer (REST) API presented here focuses on the resource models and their attributes.

This chapter contains the following sections:

- Introduction

- When to Use Cloud REST APIs

- Change History

- Common Behaviors

45.1 Introduction

As IT deployments become more complex, an abstraction of the infrastructure resources becomes more relevant to address concerns of compliance and configuration. Furthermore, such abstractions enable consumers to self serve the exact service they need and operationally control these services without any significant administrator involvement.

The REST API enables an infrastructure provider to service their customers by allowing them to perform the following:

- Browse templates that contain definitions and metadata of a logical unit of service.

- Deploy a template into the cloud and form an IT topology on demand.

- Perform operations (such as ONLINE, OFFLINE) on the resources.

The REST API is based on the HTTP protocol and GET, POST, PUT, and DELETE requests are all used. Resource representations documented here are in JavaScript Object Notation (JSON).

The REST API presupposes no particular structure in the Uniform Resource Identifier (URI) space. The starting point is a URI, supplied by the cloud service provider, that identifies the cloud itself. The cloud's representation contains URIs for the other resources in the cloud. Operations on the cloud resources are performed by making an HTTP request against the URI of the resource.

The specification of this Cloud REST API includes the following:

- Common behaviors that apply across all requests and responses, error messages, and common resource attributes.

- Resource models, which describe the JSON data structures used in requests and responses.

- Requests that may be sent to cloud resources and the responses expected.

45.2 When to Use Cloud REST APIs

The Cloud REST APIs can be used to integrate Enterprise Manager with custom-built or 3rd party self service consoles and service desks. A few example scenarios include:

- Deploying databases and Oracle VM assemblies from custom-built self-service consoles.

- Integration into a bigger orchestration flow, such as a provisioning preceded with approval workflows.

- Deploying databases and Oracle VM assemblies from service desks.

- As a part of public clouds where the tenant interface of the cloud is typically different and serves service procurement, tenant registration, and so on.

45.3 Change History

The following table describes the high level changes to Enterprise Manager Cloud Control's Cloud Service Portal Plug-in 12.1.0.4 to 12.1.0.5.

Table 45-1 Changes to the Resource Model (from 12.1.0.4 to 12.1.0.5)

Abstract

Decsription

Impacts

Availability of QuotaUsage resource.

Service family type may provide resource quota usage information through the API.

Additional attributes are added to the respective resource models to reference the quota usage.

Availability of ServiceTemplateFinds resource.

Service family type may provide supports to query for Service Template resources.

Cloud level interactions return a list of service templates satisfying the listing criteria.

The following table describes the high level changes to Enterprise Manager Cloud Control's Cloud Service Portal Plug-in 12.1.0.2 to 12.1.0.4.

Table 45-2 Changes to the Resource Model (from 12.1.0.2 to 12.1.0.4)

Abstract

Description

Impacts

Introduction of x-specification-version header.

x-specification-version is a new header introduced in this release. The purpose of this header is to inform the backend server to switch between various supported versions of the Cloud Resource Model.

By default, if this header is not specified, the server will automatically use the latest version of the resource model.

Each server response will also now include x-specification-version.

If a client wishes to interact with the web service using the previous (pre-12.1.0.4 Cloud Service Portal release) resource model in 12.1.0.4 Cloud Service Portal, the following header can be specified.

x-specification-version: 10000

For example, GET /em/cloud with x-specifcation-version: 10000 will return the pre 12.1.0.4 release CloudServicePortal Cloud resource.

Cloud media type is updated to be service oriented.

Before this release, top level Cloud media type is IaaS centric. However, with the additions of Middleware as a Service in this release, the Cloud media type is transformed into a generic service model where additional XaaS can be plugged into the system without further remodel of the media type.

The Cloud media type is no longer backward compatible. (However, using the x-specifiction-version header can still allow a client to switch back to the older media type).

Consolidate the concept of VDC into Zone.

Resource relationships that are supported by the IaaS centric VDC are now consolidated into the generic Zone resource. The VDC resource is currently not visible from the 12.1.0.4 Cloud Service Portal resource model.

Interacting with the 12.1.0.4 Cloud Service Portal resource model would be centric around Zone instead of VDC.

"media_type" attribute for resources.

Each resource will have a "media_type" attribute to support client introspections in the generic service model. In other words, a Collection attribute in a resource may contain list of resources that are of different media type extending the same abstract media type.

The interaction with the web service may be introspective. For example, the Cloud resource contains "service_templates" attribute that describes the list of service templates that are from various XaaS.

Each service template item in the "service_templates" may be of different media types, but these media types should contain all the attributes of the generic ServiceTemplate model.

"Accept" header may be optional.

If the intention of the interaction is clear, you do not need to specify the "Accept" header.

The web service will introspect the resource URI automatically to return the resource with the most specific media type.

Generic and Specific media types.

This version introduces the concept of Generic and Specific media types to support inheritance. For example, application/oracle.com.cloud.common.ServiceTemplate is a Generic media type and application/oracle.com.cloud.common.VMTemplate is a specific type that extends the above generic type.

A specific type can extend another specific type (just like object inheritance).

It is now possible to use the Generic type to inquire about the resource. For example, if an URI represents a resource of specific type Y that extends generic type X, then, GET URI shall also accept the "accept" header of value X.

Furthermore, attributes in specific type Y are expected to include the attributes in generic type X, and therefore clients shall be able to interact with the resource on the generic type.

45.4 Common Behaviors

The following sections specify constraints that apply to all the requests and responses that occur in the REST APIs supported by the Oracle Cloud Computing Platform.

45.4.1 Transport Protocol

All of the platform APIs are based on the Hypertext Transfer Protocol (HTTP), version 1.1 (RFC 2616). Each request will be authenticated using HTTP Basic Authentication (RFC 2617) unless otherwise noted. Therefore, requests sent from the public Internet (and not on a secure channel such as a VPN) must use the HTTPS protocol.

45.4.2 URI Space

The resources in the system are identified by URIs. To begin operations, the URI for a resource must be known. Dereferencing the URI yields a representation of the resource containing resource attributes and links to associated resources.

Assumptions about the layout of the URIs or the structure of resource URIs should not be made.

45.4.3 Media Types

In this specification, resource representations and request bodies are encoded in JavaScript Object Notation (JSON), as specified in RFC 4627. Each type of resource has its own media-type, which matches the following pattern:

application/oracle.com.cloud.common.Xxxxx+json

where Xxxxx represents the portion of the identifier unique to a particular representation format for each resource. The identifier must be globally unique in the space of vnd.com.oracle.cloud, and the media type should be registered in accordance to RFC 4288.

The Platform must provide representations of all resources available in JSON. The Platform must accept requests encoded in JSON.

45.4.4 Request Headers

In requests made to services implementing Oracle Cloud Platform APIs, several specific HTTP headers are used as described in the following table:

Table 45-3 Request Headers

Header

Supported Values

Description

Required

Accept

Comma-delimited list of media types or media type patterns

Indicates to the server what media types are acceptable.

Recommended on requests that will produce a response message body.

Authorization

”Basic” plus user name and password (per RFC 2617).

Identifies the user making this request.

Yes on most of the requests.

Content-Length

Length (in bytes) of the request message body.

Describes the size of the message body.

Yes on requests that contain a message body.

Content-Type

Media type describing the request message body.

Describes the representation and syntax of the request message body.

Yes on requests that contain a message body.

Host

Identifies the host receiving the message.

Required to allow support of multiple origin hosts at a single IP address.

All requests.

X-YYYYYClient-Specification-Version

String containing a specification version number.

Declares the specification version of the YYYYY API that this client was programmed against.

No.

45.4.5 Response Headers

Specific HTTP headers included in the responses returned from the platform are described in the following table:

Table 45-4 Response Headers

Header

Supported Values

Description

Required

Content-Type

Media type describing the response message body.

Describes the representation and syntax of the response message body.

Yes, on responses that contain a message body.

Location

Canonical URI of the resource, either newly created, or the original referenced resource.

Returns a URI that can be used to request a representation of the resource.

Yes, on responses to requests that create a new resource, or change an existing resource.

Cache-Control

Max-age, public, no-store, mustrevalidate, proxyrevalidate.

How the representation of the resource should be cached, and its freshness.

No. For public resources (such as a list of public assemblies or templates) that do not change frequently, allowing lenient cache-control to optimize the response.

This will never be returned on a privileged resource or a resource request that contains an authorization header.

45.4.6 HTTP Status Codes

Oracle Cloud Computing Platform APIs return standard HTTP response codes as described in the following table, under the conditions listed in the description.

Table 45-5 HTTP Response Codes

Header

Description

100 Continue

The client should continue with its request. This interim response is used to inform the client that the initial part of the request has been received and has not yet been rejected by the platform. The client should continue by sending the remainder of the request or, if the request has already been completed, ignore this response.

200 OK

The request was successfully completed. If this request created a new resource that is addressable with a URI, and a response body is returned containing a representation of the new resource, a 200 status will be returned with a location header containing the canonical URI for the newly created resource.

201 Created

A request that created a new resource was completed and no response body containing a representation of the new resource is being returned. A location header containing the canonical URI for the newly created resource will be returned.

202 Accepted

The request has been accepted for processing, but the processing has not been completed. Per the HTTP/1.1 specification, the returned entity (if any) should include an indication of the request's current status. A location header containing the canonical URI for the not-yet completed resource is returned along with the status attribute indicating its progress.

400 Bad Request

The request could not be processed because it contains missing or invalid information (such as validation error on an input field, a missing required value, and so on).

401 Unauthorized

The authentication credentials included with this request are missing or invalid.

403 Forbidden

The server recognized your credentials, but you do not possess authorization to perform this request.

404 Not Found

The request specified a URI of a resource that does not exist.

405 Method Not Allowed

The HTTP verb specified in the request (DELETE, GET, HEAD, POST, PUT) is not supported for this request URI.

406 Not Acceptable

The resource identified by this request is not capable of generating a representation corresponding to one of the media types in the Accept header of the request.

409 Conflict

A creation or update request could not be completed because it would cause a conflict in the current state of the resources supported by the platform. For example, an attempt is made to create a new resource with a unique identifier that is already assigned to some existing resource or an attempt is made to modify a resource attribute which is not yet completed.

410 Gone

The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities should delete references to the Request-URI after user approval.

If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) should be used instead. This response is cacheable unless indicated otherwise.

412 Precondition Failed

The precondition given in one or more of the request-header fields evaluated to + when it was tested on the server. This response code allows the client to place preconditions on the current resource meta-information (header field data) and thus prevent the requested method from being applied to a resource other than the one intended.

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request.

501 Not Implemented

The server does not (currently) support the functionality required to fulfill the request.

503 Service Unavailable

The server is currently unable to handle the request due to temporary overloading or maintenance of the server.

45.4.7 Common Resource Attributes

All the resource entities in this specification may contain the following common resource attributes.

45.4.7.1 Resource State

This attribute denotes the state of the resource describing the lifecycle of the resource. This differs from the status of the entity represented by the resource which has entity specific semantics.

The following table shows the Data Model of this attribute.

Table 45-6 ResourceState Data Model

Field

Type

Description

Occurs

state

String

The current state of the resource as last known. This is a label containing lifecycle state (for example, INITIATED, CREATING, CREATED, DESTROYING, DESTROYED, READY).

When there are vendor extensions, the vendor shall publish and document their semantics.

1

progress

Integer between 0 and 100

This indicates the progress made as an approximate percentage. Not all state labels assign semantic meaning to this field.

0..1

messages

Message[]

Include the message data model instances to denote noteworthy communications.

0..1

45.4.8 Collection

This attribute is a meta resource that represents a collection field in a resource. For example, a VDC contains a collection of VMs and the field that represents the list of VMs is implemented in this type.

In the resource model, a collection field is denoted as Collection<type>, for example, Collection<VM>.

Table 45-7 Collection<type> Data Model

Field

Type

Description

Occurs

uri

URI

URI that represents the collection of entities.

1

type

String

Type of the entity that this collection contains.

1

total

Integer

Total number of elements that can be safely assumed to be in the elements list.

0..1

elements

<TYPE>[]

List of entities in this collection. The URI of the entities must be populated by the platform. When dereferencing the URI, the client must use the type field in the Accept header (except in the case where type = URI).

If this is not returned, then the collection is an empty list.

0..1

In addition to the resource type, the collection also supports Collection<URI> where the type field is ”URI”. This basic type collection requires additional type casting where the URI can be dereferenced properly.

This basic type collection requires additional type casting where the URI can be dereferenced properly. It is also permissible to have a collection of type collection, for example, Collection<Collection<Server>>.

45.4.9 Error Response Message

Successful requests will generally return an HTTP status code of 200 (OK), 201 (Created), 202 (Accepted), or 204 (No Content) to indicate that the requested action has been successfully performed or submitted.

In addition, a response message body (with an appropriate media type) containing a representation of the requested information might also be included. However, it is possible for a number of things to go wrong.

The various underlying causes are described by various HTTP status codes in the range 400-499 (for client side errors) or 500-599 (for server side problems).

If a response is returned with an error status code (400-499 or 500-599), the server will also return a response message body containing a message data model, with zero or more message data models, describing what went wrong. The text values of such messages might be used, for example, to communicate with a human user of the client side application.

The entire list of messages included in a single error response is encapsulated in a messages data model. The media type shall be returned in the Content-Type header. The client shall not include the Messages media type in the Accept header.

Table 45-8 Messages Data Model

Field

Type

Description

Occurs

messages

Message

Zero or more message data for each individual message.

0..n

An individual message contains the following fields:

Table 45-9 Individual Message Data Model

Field

Type

Description

Occurs

code

String

Zero or more message data for each individual message.

0..1

field

String

Name of the field from the request data model that this message is associated with.

0..1

hint

String

Localized text further describing the nature of the problem, possibly including potential workarounds that the client could try.

0..1

text

String

Localized text describing the nature of the problem reported by this message.

1

severity

String

Label indicating the severity of the error condition represented by this message.

Vendor shall publish the enumerators that are associated with this field and their semantics.

0..1

stack_trace

String

Vendor specific stack trace associated with this message.

0..1

source

String

Symbolic identifier of the service implementation component that triggered this message.

0..1

46 Cloud Resource Models

This chapter specifies the representations of the resources that the REST API operates on. It contains the following sections:

- Enterprise Manager Cloud Resource Model 10001

- About Cloud Resources

- Resource Data Models

46.1 Enterprise Manager Cloud Resource Model 10001

This version of the Cloud resource model is the culmination of the XaaS implementation for Cloud Service Portal Plug-in, where additional service types can be used to support the creation and lifecycle management of service instances.

For this release of Enterprise Manager Cloud Control's Cloud Service Portal Plug-in, 10001 is the default version when /em/cloud is accessed by the client. Specifically, the client can specify x-specification-version: 10001 in the HTTP header to examine whether or not a resource supports version 10001. It is important to note that the resource type from different versions may not be inter-mixed in a request. For example, 10001 may reject a request where the content is shaped like the 10000 version of the resource.

The following table contains the top level description of the resources:

Table 46-1 Top Level Resource Descriptions

Resource

Description

application/oracle.com.cloud.common

This media type namespace contains "common" resources that are not specific to resource types in XaaS implementation. It is customary that XaaS implementation may extend a common resource type by responding to the request where the accept/content-type is the base type. This is similar to Java's class typing where one can always typecast the base class to an implementation class.

Cloud

This is the top level media type of the entry point /em/cloud where the client can get a high level view of the Cloud as a whole.

ServiceTemplate

This is the common media type that represents a service template each XaaS can extend to create a service instance.

ServiceInstance

This represents the common media type that represents a service instance. Each XaaS can extend this media type to represent the service instances that it supports.

ServiceFamilyType

This represents XaaS or a service family.

InstanceType

This represents a type of service instance. For example, VM is an extending media type of ServiceInstance and there is a corresponding InstanceType? that describes what a VM instance may contain.

Metric

This represents a metric of a resource. For example, performance metrics such as CPU utilization and network utilization are metrics of a VM instance. This does not need to be constrained to performance metrics only. Any measurable or observable time series data can be represented as a metric.

MultipartMetric

This extends the Metric, but represents a multi-dimensional observation.

CloudInteractions

This represents the collection of interactions that are supported by the Cloud. The data of this resource would be protocol dependent. For example, in HTTP protocol, the data would consist of the supported HTTP request triple of (request method, accept type, and content type).

QuotaUsage

This represents the quota information in the context of a service family.

46.2 About Cloud Resources

Cloud resource representations are made up of fields, each with a name and value, encoded using a JavaScript Object Notation (JSON) dictionary. The values may be lists, dictionaries, or numeric or string literals, each of which is represented in JSON in accordance with RFC 4627.

Each type of cloud resource has its own Internet Media Type. The media type SHALL conform to the pattern application/oracle.com.cloud.common.Xxxxxxxx+json, and the specific media type for each resource model is included in square brackets in the corresponding section header.

Cloud resources are now organized by common service entities where specific services (for example, Infrastructure as a Service) provide resources extending common service entities where appropriate. The figure below shows the resource model relationships on the common resources and Infrastructure as a service specific resources.

Figure 46-1 Cloud Resource Model

46.3 Resource Data Models

The following sections provide details on the different cloud resource data models.

46.3.1 Cloud [application/oracle.com.cloud.common.Cloud+json]

A Cloud represents the user's starting view of all accessible resources. The following table describes the cloud data model.

Table 46-2 Cloud Data Model

Field

Type

Occurs

Description

Since

uri

URI

1

GET against this URI refreshes the client representation of the resources accessible to this user.

12.1.0.1

name

String

1

Human readable name. It is a UNICODE string to support different languages.

12.1.0.1

description

String

0..1

Brief description. This is a UNICODE string to support different languages.

12.1.0.1

service_templates

Collection<ServiceTemplates>

0..1

List of service templates that are accessible to the user.

12.1.0.4

service_family_types

Collection <ServiceFamilyType>

0..1

The list of service family types that are supported by the Cloud.

12.1.0.4

zones

Collection<Zone>

0..1

List of zones that are supported by the cloud and accessible to the user.

12.1.0.2

resource_state

ResourceState

0..1

Cloud that is online and running would have READY as its state. If this field is not returned, the client can assume the cloud is READY. If the state of the returned field is not READY, the client cannot assume the viability of subsequent interactions into the cloud.

12.1.0.1

media_type

String

1

Value of this media type with the payload format. For example, application/oracle.com.cloud.common.Cloud+json.

12.1.0.4

46.3.2 ServiceTemplate [application/oracle.com.cloud.common.ServiceTemplate+json]

A ServiceTemplate represents the definition of the deployable service. For a user, a ServiceTemplate represents the definition of the deployable service. Users can create cloud resources by interacting with the URI of a ServiceTemplate. The cloud shall instantiate the resources and their configurations as specified in the definition of the ServiceTemplate.

VMTemplate is a subclass to the ServiceTemplate resource and therefore it is possible to get the ServiceTemplate from the URI of a VMTemplate. The following table shows the ServiceTemplate Data Model.

Table 46-3 ServiceTemplate Data Model

Field

Type

Occurs

Description

Since

uri

URI

1

GET against this URI refreshes the client representation of the ServiceTemplate definition to this user.

12.1.0.4

name

String

1

Human readable name given to the ServiceTemplate. It is a UNICODE string to support different languages.

12.1.0.4

description

String

0..1

A brief description given to the ServiceTemplate. It is a UNICODE string to support different languages.

12.1.0.4

type

String

1

The string that describes the type of the service template.

12.1.0.4

created

Timestamp

1

Date and time, in ISO 8601 format, when the ServiceTemplate was created.

12.1.0.4

service_family_type

String

0..1

The name of the service family type under which this service template is categorized.

12.1.0.4

default_instance_media_type

String

0..1

The default media type of the service instance that can be created using this template.

For example, a VMTemplate would have VM for this attribute to indicate that VMTemplate can be deployed into a VM service instance.

12.1.0.4

resource_state

ResourceState

1

Only a service template with a READY state can be deployed.

12.1.0.4

deployment_params

List of Deployment Parameters

0..1

Contains the list of data structure of Deployment Parameters to indicate the parameters that may be specified during the service instance deployment using this template

12.1.0.4

zones

List of Zones

0..1

Contains the list of Zone resources that this service template can be used to create service instances with

12.1.0.4

service_instances

Collection<?>

0..1

Contains the list of service instances that are created with this template.

12.1.0.4

The following table describes the structure of the Deployment Parameters.

Table 46-4 Deployment Parameter Structure

Field

Type

Occurs

Description

name

String

1

The name of the parameter that needs to be specified during deployment.

description

String

0..1

A brief description of the deployment parameter.

type

String

1

The type of the deployment parameter. It is an enumeration of the following values, STRING, INTEGER, NUMBER, and LIST.

default_value

String

0..1

The default value for this parameter.

required

Boolean

1

TRUE if this parameter is required, FALSE otherwise.

sensitive

Boolean

1

TRUE if this parameter denotes a password. FALSE otherwise.

46.3.3 Zone [application/oracle.com.cloud.common.Zone+json]

A Zone represents a logical boundary where the resources may reside. A Zone can represent a particular geographically location such as Europe Zone, North America Zone, East Asia Zone. A zone can also represent characteristics, such as high network bandwidth or DMZ secured. Furthermore, a Zone can be organizational in nature, such as Financial Department Zone, Testing Zone, and Development Zone.

There should not be any assumption of exclusivity of underlying infrastructures in the Zones unless otherwise noted. For example, Zone A and Zone B can be on the same physical network serving two different departments, but their physical infrastructure setup is transparent to cloud users.

Table 46-5 Zone Data Model

Field

Type

Occurs

Description

Since

uri

URI

1

GET against this URI refreshes the client representation of the Zone definition to this user.

12.1.0.1

name

String

1

Name of the Zone.

12.1.0.1

description

String

0..1

Human readable description of the Zone. It is a UNICODE string to support different languages.

12.1.0.1

media_type

String

1

The media type of the resource.

12.1.0.4

resource_state

ResourceState

0..1

The resource state of the resource.

12.1.0.1

service_family_type

String

0..1

The name of the service family type that this zone is associated with.

Each Zone is contextualized in the service family type.

12.1.0.4

service_templates

Collection <ServiceTemplate>

0..1

Collection of the service templates that this zone supports and can be deployed into.

12.1.0.4

service_instances

Collection <ServiceInstance>

0..1

Collection of the service instances that are in this zone.

12.1.0.4

46.3.4 Service Family Type [application/oracle.com.cloud.common.ServiceFamilyType+json]

A service family type is a category of services that are offered by the cloud. For example, IaaS is a category that encapsulates infrastructure services. Mwaas is a category that encapsulates middleware services. These categories are predefined.

The following table describes the ServiceFamilyType Data Model

Table 46-6 Service Family Type

Field

Type

Occurs

Description

Since

uri

URI

1

A GET against this URI refreshes the client representation of the ServiceFamilyType definition to this user.

12.1.0.4

name

String

1

Name of the ServiceFamilyType.

12.1.0.4

description

String

0..1

Human readable description of the Service Family Type. Shall be a UNICODE string to support different languages.

12.1.0.4

resource_state

ResourceState

0..1

The resource state of the resource.

12.1.0.4

media_type

String

1

The media type of the resource.

12.1.0.4

service_templates

Collection <ServiceTemplate>

0..1

The collection of service templates that are of this service family type.

12.1.0.4

zones

Collection<Zone>

0..1

The collection of zones that support service instances of this service family type.

12.1.0.4

instance_types

Collection <InstanceType>

0..1

The collection of instance types that are supported by this service family type.

12.1.0.4

quota_usages

Collection <QuotaUsage>

0..1

The collection of quota usages of the perspective family type of the authenticated user.

12.1.0.5

quota_def

Json Object

0..1

The family type specific quota metadata information, this may include some permission information.

The structure of this object would be documented in the perspective family type resource model.

12.1.0.5

46.3.5 Service Instance Type [application/oracle.com.cloud.common.InstanceType+json]

A service instance type describes the common metadata about service instances of the type. This can be interpreted analogously as a Class where the service instance of the type is an instantiation of the class.

The following table describes the ServiceFamilyType Data Model.

Table 46-7 Service Instance Type

Field

Type

Occurs

Description

Since

uri

URI

1

A GET against this URI refreshes the client representation of the ServiceInstanceType definition to this user.

12.1.0.4

name

String

1

Name of the ServiceInstanceType.

12.1.0.4

description

String

0..1

Human readable description of the Service Instance Type. Shall be a UNICODE string to support different languages.

12.1.0.4

resource_state

ResourceState

0..1

The resource state of the resource.

12.1.0.4

media_type

String

1

The media type of the resource.

12.1.0.4

instance_media_type

String

0..1

The media type of the instance of this type.

12.1.0.4

metrics

List<List<String>>

0..1

List of metrics that may be supported by the instance type. Each list element represents the triple of "name", "description", and "type" of the metric.

12.1.0.4

46.3.6 Metric [application/oracle.com.cloud.common.Metric+json]

This resource represents a time series data that may be performance or configuration related. For example, CPU utilization could be a metric for a VM resource, Tablespace usages could be a metric for a Database resource.

The following table describes the Metric Data Model.

Table 46-8 Metric Data Model

Field

Type

Occurs

Description

Since

uri

URI

1

A GET against this URI refreshes the client representation of the Metric definition to this user.

12.1.0.4

name

String

1

Name of the Metric.

12.1.0.4

description

String

0..1

Human readable description of the Metric. SHALL be a UNICODE string to support different languages.

12.1.0.4

resource_state

ResourceState

0..1

The resource state of the resource.

12.1.0.4

media_type

String

1

The media type of the resource.

12.1.0.4

type

String

1

The type of the metric value. This is an enumeration of STRING, INTEGER, PERCENTAGE, NUMBER, MIX.

12.1.0.4

current_value

String

0..1

The latest known value of the metric

12.1.0.4

current_time

ISO 8601 Date

0..1

The UTC time when the current_value was last observed

12.1.0.4

time_range

List of 2 ISO 8601 Dates

0..1

The first one is begin date, and the second one is end date. This range determines the time series window of "values" attribute

12.1.0.4

rollup_unit

String

0..1

The rollup unit for the time series data. Could be one of DAY, DAILY, DAYLY, HOUR, HOURLY, RAW

12.1.0.4

values

List of objects

0..1

For rollup_unit = RAW, this would be a list of object each containing "time_utc", and "value" attributes to indicate a timed observation.

For all other rollup_unit, this would be a list of object each containing "time_utc", "average", "min", "max", "std" attributes to indicate an aggregated observations where supported.

12.1.0.4

time_range_epoch

List of 2 Number

0..1

Same as time_range, but in the form of epoch time.

12.1.0.4

46.3.7 Service Instance [application/oracle.com.cloud.common.ServiceInstance+json]

A service instance describes the some common metadata about service instances. This is an abstract media type where the actual implementation would be provided by each XaaS service. It is expected that the extending resources respect GET request with this abstract media type.

The following table describes the Service Instance Data Model.

Table 46-9 Service Instance Data Model

Field

Type

Occurs

Description

Since

uri

URI

1

A GET against this URI refreshes the client representation of the ServiceInstance definition to this user.

12.1.0.4

name

String

1

Name of the ServiceInstance.

12.1.0.4

description

String

0..1

Human readable description of the Service Instance. Shall be a UNICODE string to support different languages.

12.1.0.4

resource_state

ResourceState

1

The resource state of the resource.

12.1.0.4

media_type

String

1

The media type of the resource.

12.1.0.4

metrics

Collection <Metric>

0..1

Collection of metrics that are observed on the resource.

12.1.0.4

service_family_type

String

1

The name of the ServiceFamilyType that this service instance is in context of.

12.1.0.4

status

String

0..1

The status of the entity represented by the service instance. For example, for service instance VM, the value could be STARTED, STOPPED, or any other values that are appropriate for VM. Each extending resource should describe the enumeration of status that are applicable.

12.1.0.4

created

ISO 8601 Date

0..1

The date of which the service instance is created.

12.1.0.4

46.3.8 Quota Usage [application/oracle.com.cloud.common.QuotaUsage+json]

A quota usage describes the amount of some resource used by the authentication used in the context of a service family type. For example, in IaaS, there were quota defined for CPU, Memory, number of servers, where the usages of each is encapsulated into a Quota Usage resource.

The following table describes the Quota Usage Data Model.

Table 46-10 QuotaUsage Data Model

Field

Type

Occurs

Description

Since

uri

URI

1

A GET against this URI refreshes the client representation of the QuotaUsage

12.1.0.5

name

String

1

Name of the QuotaUsage.

12.1.0.5

description

String

0..1

Human readable description of the Service Instance. Shall be a UNICODE string to support different languages.

12.1.0.5

media_type

String

1

The media type of the resource.

12.1.0.5

id

String

1

The identification representation of the resource.

12.1.0.5

type

String

1

The service family type of the resource.

12.1.0.5

used

Number

1

How much of the resource is used. The type is represented by the "unit" attribute.

12.1.0.5

maxAllowed

Number

0..1

What is the maximum amount of resource that may be used by the authenticated user.

12.1.0.5

unit

String

1

The unit of the resource.

12.1.0.5

46.3.9 Service Template Finds [application/oracle.com.cloud.common.ServiceTemplateFinds+json]

Service Template Finds is a resource that would search and filter service templates under the entire cloud given the search criteria. Each service family type shall document the scope of support (for example, list of filter attributes).

The following table describes the Service Template Finds Data Model.

Table 46-11 ServiceTemplateFinds Data Model

Field

Type

Occurs

Description

Since

uri

URI

1

A GET against this URI refreshes the client representation of the Service TemplateFinds.

If service templates were added/removed that matched the criteria, refreshing the link will reflect the changes.

12.1.0.5

name

String

1

Name of the ServiceTemplateFinds.

12.1.0.5

description

String

0..1

Human readable description of the Service Instance. Shall be a UNICODE string to support different languages.

12.1.0.5

filters

Json Object

1

Map of key-value pair to indicate the filter criteria.

12.1.0.5

finds

Collection <*>

1

.Collection of entities (could be any sub type of the service template) that satisfies the filter criteria.

12.1.0.5

The following table describes the attributes supported in the filters:

Table 46-12 Filter Attributes

Attributes

Description

Since

media_type

The specific service template media to search for. This will be an exact match of the media type.

12.1.0.5 Cloud Service Portal Plug-in (IaaS service family type only)

name

A service template will be returned if the name contains the specified string. This is case insensitive, so OEL and oel will return the same result.

12.1.0.5 Cloud Service Portal Plug-in (IaaS service family type only)

46.4 Cloud REST API Examples

The following sections provide examples of different interactions in Enterprise Manager Cloud Control 12.1.0.2 with the 12.1.0.5 Cloud Service Portal Plug-in. These examples illustrate the shape of the various resources. In this version, default x-specification-version is assumed at 10001.

46.4.1 Cloud Resource

Use the top level /em/cloud to introspect the Cloud resource. The following table describes the GET method features:

Table 46-13 Cloud Resource GET Method

Feature

Description

URL

https://example.oracle.com/em/cloud

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI

=X-specification-Version: 10001

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

The following returns the Cloud resource:

{
"uri" : "/em/cloud" ,
"name" : "Oracle Cloud by Enterprise Manager" ,
"description" : "This represents the Cloud resource of the Oracle Enterprise Manager Cloud Management solution" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.common.Cloud+json" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "3" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/zone/450121204B4703131FC0FDD72E7BF494" ,
"name" : "PaaS_Zone_Middleware" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas"
} ,
{
"uri" : "/em/cloud/opc/opczone" ,
"name" : "OPC Zone" ,
"media_type" : "application/oracle.com.cloud.opc.OpcZone+json" ,
"service_family_type" : "opc" ,
"type" : "opc"
} ,
{
"uri" : "/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "cloud_zone" ,
"media_type" : "application/oracle.com.cloud.iaas.Zone+json" ,
"service_family_type" : "iaas" ,
"type" : "VM_ZONE"
}
]
} ,
"service_templates" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate+json" ,
"total" : "7" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1" ,
"name" : "template_sanity" ,
"media_type" : "application/oracle.com.cloud.common.VMTemplate+json" ,
"service_family_type" : "iaas" ,
"type" : "Template"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC75E88B04D7FEDEDE040578CDA810E49%3A0.1" ,
"name" : "sidb_assembly" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"service_family_type" : "iaas" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC769B1F361529309E040578CDA813D57%3A0.1" ,
"name" : "wls_assembly" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"service_family_type" : "iaas" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76F733BC7A41AF7E040578CDA812CDC%3A0.1" ,
"name" : "fmw_venkat" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"service_family_type" : "iaas" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76C144A4A245B62E040578CDA8163B9%3A0.1" ,
"name" : "fmw_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"service_family_type" : "iaas" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC77122B0A916D95CE040578CDA814854%3A0.1" ,
"name" : "sidbasmA_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"service_family_type" : "iaas" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76C8792DE2A0937E040578CDA81795E%3A0.1" ,
"name" : "WLS_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"service_family_type" : "iaas" ,
"type" : "Assembly"
}
]
} ,
"service_family_types" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"total" : "4" ,
"elements" :
[
{
"uri" : "/em/cloud/service_family_type/jaas" ,
"name" : "jaas" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "jaas"
} ,
{
"uri" : "/em/cloud/service_family_type/dbaas" ,
"name" : "dbaas" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "dbaas"
} ,
{
"uri" : "/em/cloud/service_family_type/opc" ,
"name" : "opc" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "opc"
} ,
{
"uri" : "/em/cloud/service_family_type/iaas" ,
"name" : "iaas" ,
"media_type" : "application/oracle.com.cloud.iaas.IaasServiceFamilyType+json" ,
"type" : "iaas"
}
]
}
}

Note:
even though the Accept type was not specified, the Web service still unambiguously returns the Cloud resource because "/em/cloud" address uniquely identify the Cloud as the default resource to be returned.

The following table shows the Cloud resource picking up specific attributes

Table 46-14 Cloud Resource GET Method

Feature

Description

URL

https://example.oracle.com/em/cloud?service_family_types,name

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

Here are the selective attributes:

{
"name" : "Oracle Cloud by Enterprise Manager" ,
"service_family_types" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"total" : "4" ,
"elements" :
[
{
"uri" : "/em/cloud/service_family_type/jaas" ,
"name" : "jaas" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "jaas"
} ,
{
"uri" : "/em/cloud/service_family_type/dbaas" ,
"name" : "dbaas" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "dbaas"
} ,
{
"uri" : "/em/cloud/service_family_type/opc" ,
"name" : "opc" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "opc"
} ,
{
"uri" : "/em/cloud/service_family_type/iaas" ,
"name" : "iaas" ,
"media_type" : "application/oracle.com.cloud.iaas.IaasServiceFamilyType+json" ,
"type" : "iaas"
}
]
}
}

This feature is supported on all the common resources where only selective attributes would be gathered and returned to the client.

46.4.2 Service Family Type Resource

The following table shows the features of the Service Family Type resource:

Table 46-15 Service Family Type Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/service_family_type/iaas

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

Here is the returned headers and content for this interaction.

X-specification-version: 10001
Content-Type: application/oracle.com.cloud.iaas.IaasServiceFamilyType+json; charset=ISO-8859-1
{
"uri" : "/em/cloud/service_family_type/iaas" ,
"name" : "iaas" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.iaas.IaasServiceFamilyType+json" ,
"type" : "iaas" ,
"service_templates" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate+json" ,
"total" : "7" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1" ,
"name" : "template_sanity" ,
"media_type" : "application/oracle.com.cloud.common.VMTemplate+json" ,
"type" : "Template"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC75E88B04D7FEDEDE040578CDA810E49%3A0.1" ,
"name" : "sidb_assembly" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC769B1F361529309E040578CDA813D57%3A0.1" ,
"name" : "wls_assembly" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76F733BC7A41AF7E040578CDA812CDC%3A0.1" ,
"name" : "fmw_venkat" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76C144A4A245B62E040578CDA8163B9%3A0.1" ,
"name" : "fmw_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC77122B0A916D95CE040578CDA814854%3A0.1" ,
"name" : "sidbasmA_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76C8792DE2A0937E040578CDA81795E%3A0.1" ,
"name" : "WLS_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
}
]
} ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "cloud_zone" ,
"media_type" : "application/oracle.com.cloud.iaas.Zone+json" ,
"service_family_type" : "iaas" ,
"type" : "VM_ZONE"
}
]
} ,
"instance_types" :     {
"media_type" : "application/oracle.com.cloud.common.InstanceType+json" ,
"total" : "2" ,
"elements" :
[
{
"uri" : "/em/cloud/instance_type/vm%40iaas" ,
"name" : "vm" ,
"media_type" : "application/oracle.com.cloud.common.InstanceType+json" ,
"instance_media_type" : "application/oracle.com.cloud.common.VM+json"
} ,
{
"uri" : "/em/cloud/instance_type/assembly%40iaas" ,
"name" : "assembly" ,
"media_type" : "application/oracle.com.cloud.common.InstanceType+json" ,
"instance_media_type" : "application/oracle.com.cloud.common.AssemblyInstance+json"
}
]
} ,
"quota_usages" :     {
"media_type" : "application/oracle.com.cloud.common.QuotaUsage+json" ,
"total" : "6" ,
"elements" :
[
{
"uri" : "/em/cloud/quota_usage/iaas_3" ,
"name" : "Local Storage Quota" ,
"description" : "Local Storage Quota" ,
"context_id" : "3" ,
"media_type" : "application/oracle.com.cloud.common.QuotaUsage+json" ,
"used" : "10240" ,
"maxAllowed" : "2000" ,
"unit" : "GB"
} ,
{
"uri" : "/em/cloud/quota_usage/iaas_2" ,
"name" : "RAM Quota" ,
"description" : "RAM Quota" ,
"context_id" : "2" ,
"media_type" : "application/oracle.com.cloud.common.QuotaUsage+json" ,
"used" : "512" ,
"maxAllowed" : "600000" ,
"unit" : "MB"
} ,
{
"uri" : "/em/cloud/quota_usage/iaas_1" ,
"name" : "CPU Quota" ,
"description" : "CPU Quota" ,
"context_id" : "1" ,
"media_type" : "application/oracle.com.cloud.common.QuotaUsage+json" ,
"used" : "1" ,
"maxAllowed" : "100" ,
"unit" : "COUNT"
} ,
{
"uri" : "/em/cloud/quota_usage/iaas_6" ,
"name" : "Servers Quota" ,
"description" : "Servers Quota" ,
"context_id" : "6" ,
"media_type" : "application/oracle.com.cloud.common.QuotaUsage+json" ,
"used" : "1" ,
"maxAllowed" : "20" ,
"unit" : "COUNT"
} ,
{
"uri" : "/em/cloud/quota_usage/iaas_5" ,
"name" : "SWLIB Storage Quota" ,
"description" : "SWLIB Storage Quota" ,
"context_id" : "5" ,
"media_type" : "application/oracle.com.cloud.common.QuotaUsage+json" ,
"used" : "0" ,
"maxAllowed" : "-1" ,
"unit" : "GB"
} ,
{
"uri" : "/em/cloud/quota_usage/iaas_4" ,
"name" : "Extra Storage Quota" ,
"description" : "Extra Storage Quota" ,
"context_id" : "4" ,
"media_type" : "application/oracle.com.cloud.common.QuotaUsage+json" ,
"used" : "0" ,
"maxAllowed" : "-1" ,
"unit" : "GB"
}
]
} ,
"quota_def" :     {
"uri" : "/em/cloud/iaas/quota" ,
"name" : "iaas Quota" ,
"description" : "iaas Quota" ,
"media_type" : "application/oracle.com.cloud.iaas.Quota+json"
} ,
"instance_options" :
[
{
"name" : "Medium" ,
"cpu" : "4" ,
"memory" : "8192" ,
"local_storage" : "512000" ,
"id" : "2"
} ,
{
"name" : "Large" ,
"cpu" : "8" ,
"memory" : "15360" ,
"local_storage" : "1024000" ,
"id" : "3"
} ,
{
"name" : "Small" ,
"cpu" : "2" ,
"memory" : "4096" ,
"local_storage" : "256000" ,
"id" : "1"
}
]
}

The application/oracle.com.cloud.iaas.IaasServiceFamilyType+json media type is returned automatically as the most detailed resource. Similarly, you can interact with the system by accepting the common type:

Table 46-16 Service Family Type Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/service_family_type/iaas

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Accept-Type: application/oracle.com.cloud.common.ServiceFamilyType+json

Method

GET

The Web service will return the content as shown in the previous interaction.

46.4.3 Quota Resource

The following sdescribes the quota resource that is exposed through the IaaS service family type to introspect the quota definition for IaaS services.

Table 46-17 Service Family Type Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/iaas/quota

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.5 Cloud Service Portal Plug-in

The following example shows the returned headers and content for this interaction:

X-specification-version: 10001
Content-Type: application/oracle.com.cloud.iaas.Quota+json; charset=ISO-8859-1
{
"uri" : "/em/cloud/iaas/quota" ,
"name" : "iaas Quota" ,
"description" : "iaas Quota" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.iaas.Quota+json" ,
"service_family_type" : "iaas" ,
"allowedSaveToSwlib" : "1" ,
"allowedSaveToSwlibOnExpiry" : "0" ,
"resourceQuotas" :     {
"total" : "6" ,
"elements" :
[
{
"name" : "Local Storage Quota" ,
"description" : "Local Storage Quota" ,
"maxAllowed" : "2000" ,
"unit" : "GB"
} ,
{
"name" : "RAM Quota" ,
"description" : "RAM Quota" ,
"maxAllowed" : "600000" ,
"unit" : "MB"
} ,
{
"name" : "CPU Quota" ,
"description" : "CPU Quota" ,
"maxAllowed" : "100" ,
"unit" : "COUNT"
} ,
{
"name" : "Servers Quota" ,
"description" : "Servers Quota" ,
"maxAllowed" : "20" ,
"unit" : "COUNT"
} ,
{
"name" : "SWLIB Storage Quota" ,
"description" : "SWLIB Storage Quota" ,
"maxAllowed" : "-1" ,
"unit" : "GB"
} ,
{
"name" : "Extra Storage Quota" ,
"description" : "Extra Storage Quota" ,
"maxAllowed" : "-1" ,
"unit" : "GB"
}
]
}
}

46.4.4 Service Instance Type Resource

This is the resource that describes the type of services that are provided by a particular Service Family Type.

Table 46-18 Service Instance Type Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/instance_type/vm%40iaas

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

The following is the Service Instance Type resource:

{
"uri" : "/em/cloud/instance_type/vm%40iaas" ,
"name" : "vm" ,
"description" : "A Virtual Machine represents a computational unit that contains CPU, Memory, Network Instances, and Disks" ,
"media_type" : "application/oracle.com.cloud.common.InstanceType+json" ,
"instance_media_type" : "application/oracle.com.cloud.common.VM+json" ,
"metrics" :
[
[
"CPU_Utilization" ,
"CPU Utilization of the Server" ,
"GENERIC"
] ,
[
"Total_Network_Throughput" ,
"Total Network Throughput of the Server" ,
"GENERIC"
] ,
[
"Total_Disk_Throughput" ,
"Total Disk Throughput of the Server" ,
"GENERIC"
] ,
[
"Filesystem_Total_Used" ,
"Summary of the total file system usage" ,
"GENERIC"
]
] ,
"instance_options" :
[
{
"name" : "Medium" ,
"cpu" : "4" ,
"memory" : "8192" ,
"local_storage" : "512000" ,
"id" : "2"
} ,
{
"name" : "Large" ,
"cpu" : "8" ,
"memory" : "15360" ,
"local_storage" : "1024000" ,
"id" : "3"
} ,
{
"name" : "Small" ,
"cpu" : "2" ,
"memory" : "4096" ,
"local_storage" : "256000" ,
"id" : "1"
}
]
}

46.4.5 Zone Resource

The following table shows the features of the Zone resource:

Table 46-19 ZoneResource

Feature

Description

URL

https://example.oracle.com/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

The following is the Zone resource, automatically cast to the application/oracle.com.cloud.iaas.Zone+json media type

{
"uri" : "/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "cloud_zone" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "D73AF0D42C8459E11419862797D1F37D" ,
"media_type" : "application/oracle.com.cloud.iaas.Zone+json" ,
"service_family_type" : "iaas" ,
"type" : "VM_ZONE" ,
"service_templates" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate+json" ,
"total" : "7" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1" ,
"name" : "template_sanity" ,
"media_type" : "application/oracle.com.cloud.common.VMTemplate+json" ,
"type" : "Template"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC75E88B04D7FEDEDE040578CDA810E49%3A0.1" ,
"name" : "sidb_assembly" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC77122B0A916D95CE040578CDA814854%3A0.1" ,
"name" : "sidbasmA_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC769B1F361529309E040578CDA813D57%3A0.1" ,
"name" : "wls_assembly" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76C144A4A245B62E040578CDA8163B9%3A0.1" ,
"name" : "fmw_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76C8792DE2A0937E040578CDA81795E%3A0.1" ,
"name" : "WLS_abby" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC76F733BC7A41AF7E040578CDA812CDC%3A0.1" ,
"name" : "fmw_venkat" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
}
]
} ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"vnets" :     {
"media_type" : "application/oracle.com.cloud.common.VNet+json" ,
"total" : "3" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3AnetConfig%3AC76CEADBBBE6B23FE040578CDA817FB1" ,
"context_id" : "oracle:defaultService:em:provisioning:1:netConfig:C76CEADBBBE6B23FE040578CDA817FB1" ,
"media_type" : "application/oracle.com.cloud.common.VNet+json" ,
"id" : "oracle:defaultService:em:provisioning:1:netConfig:C76CEADBBBE6B23FE040578CDA817FB1"
} ,
{
"uri" : "/em/cloud/iaas/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3AnetConfig%3AC77076C8FDEC6BD7E040578CDA813B2B" ,
"context_id" : "oracle:defaultService:em:provisioning:1:netConfig:C77076C8FDEC6BD7E040578CDA813B2B" ,
"media_type" : "application/oracle.com.cloud.common.VNet+json" ,
"id" : "oracle:defaultService:em:provisioning:1:netConfig:C77076C8FDEC6BD7E040578CDA813B2B"
} ,
{
"uri" : "/em/cloud/iaas/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3AnetConfig%3AC76F741AFD7EB760E040578CDA812CD8" ,
"context_id" : "oracle:defaultService:em:provisioning:1:netConfig:C76F741AFD7EB760E040578CDA812CD8" ,
"media_type" : "application/oracle.com.cloud.common.VNet+json" ,
"id" : "oracle:defaultService:em:provisioning:1:netConfig:C76F741AFD7EB760E040578CDA812CD8"
}
]
} ,
"delegated_credentials" :     {
"media_type" : "application/oracle.com.cloud.iaas.ExalogicZoneCredential+json" ,
"total" : "0" ,
"elements" :
[      ]
}
}

46.4.6 Service Template Resource

As can be seen from the previous examples, the elements in the collection shown all have "media_type" as an attribute to clearly indicate what its resource type is. The following table shows the features of the Service Template resource:

Table 46-20 Service Template Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

This is the resource returned as the complete VMTemplate resource.

{
"uri" : "/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1" ,
"name" : "template_sanity" ,
"description" : "test template" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "oracle:defaultService:em:provisioning:1:cmp:Virtualization:Template:C76CEB5563EA5E13E040578CDA817FAF:0.1" ,
"media_type" : "application/oracle.com.cloud.common.VMTemplate+json" ,
"type" : "Template" ,
"created" : "2012-08-17T11:53:26+0000" ,
"default_instance_media_type" : "application/oracle.com.cloud.common.VM+json" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.iaas.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "cloud_zone" ,
"media_type" : "application/oracle.com.cloud.iaas.Zone+json" ,
"service_family_type" : "iaas" ,
"type" : "VM_ZONE"
}
]
} ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"deployment_params" :
[
{
"name" : "zone" ,
"description" : "'zone' attribute is the URI of the zone that the 'application/oracle.com.cloud.common.VM' resource is to be created in" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "based_on" ,
"description" : "'based_on' attribute is the URI of the service template or format String of the originated source which the deployed 'application/oracle.com.cloud.common.VM' resource is to be followed" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "cpu" ,
"description" : "The information that determined how much 'CPU' is to be allocated to the deployed resource" ,
"type" : "LIST" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "memory" ,
"description" : "The information that determined how much 'MEMORY' is to be allocated to the deployed resource" ,
"type" : "NUMBER" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "disks" ,
"description" : "The list of disks to be included in the deployed resource" ,
"type" : "LIST" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.domain_type" ,
"description" : "The domain type of the Virtual Machine" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.network_profile" ,
"description" : "The identifier of the network profile to be used for the network instances of the Virtual Machine" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.server_prefix" ,
"description" : "The server prefix to be specified for the Virtual Machine" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "false"
} ,
{
"name" : "params.server_size" ,
"description" : "The name of the server instance size" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.request_name" ,
"description" : "The request name to be tracked for the Virtual Machine creation" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.request_description" ,
"description" : "The request description to be tracked for the Virtual Machine creation" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.vnc_password" ,
"description" : "The VNC password for the Virtual Machine" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "true"
} ,
{
"name" : "params.root_password" ,
"description" : "The Root password for the Virtual Machine" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "true"
} ,
{
"name" : "params.start_vm" ,
"description" : "Whether or not the Virtual Machine should be started after creation" ,
"type" : "STRING" ,
"defaultValue" : "YES" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.ha_enabled" ,
"description" : "Whether or not the Virtual Machine should be HA enabled" ,
"type" : "STRING" ,
"defaultValue" : "NO" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.disks_overwrite" ,
"description" : "Whether or not the default Virtual Machine disks should be overwritten" ,
"type" : "STRING" ,
"defaultValue" : "NO" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "params.networks" ,
"description" : "Whether or not the default Virtual Machine disks should be overwritten" ,
"type" : "LIST" ,
"require" : "false" ,
"sensitive" : "false"
}
] ,
"directory" : "COMP_Components" ,
"updated" : "2012-08-17T11:53:26+0000" ,
"creator" : "DMBHAT1" ,
"last_modified_by" : "DMBHAT1" ,
"componenttype" : "Virtualization" ,
"oracle_owned" : "false"
}

46.4.7 Metric Resource

A metric contains time series information and depending on the type of the metric, rollup information can also be retrieved. For example,

Table 46-21 Service Template Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/metric/iaas%3Avm%3ACPU_Utilization%3A523CAE80A305928C9C5BE8A67A4181FD

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

Here is the response from the web service:

{
"uri" : "/em/cloud/metric/iaas%3Avm%3ACPU_Utilization%3A523CAE80A305928C9C5BE8A67A4181FD" ,
"name" : "CPU_Utilization" ,
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"resource_state" :     {
"state" : "READY"
} ,
"type" : "NUMBER" ,
"current_value" : "52.53868103027344" ,
"current_time" : "2012-08-22T01:28:14+0000" ,
"time_range" :
[
"2012-08-22T01:18:14+0000" ,
"2012-08-22T01:28:14+0000"
] ,
"time_range_epoch" :
[
"1345598294965" ,
"1345598894965"
] ,
"rollup_unit" : "RAW" ,
"values" :
[
{
"time_utc" : "2012-08-22T01:21:44+0000" ,
"value" : "52.53868103027344"
}
] ,
"key" : "iaas:vm:CPU_Utilization:523CAE80A305928C9C5BE8A67A4181FD"
}

The default time range is 10 minutes. To modify the time range, query parameters can be used to specify the time range. For example, the following would get the metric data for the last 50 minutes:

Table 46-22 Service Template Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/metric/iaas%3Avm%3ACPU_Utilization%3A523CAE80A305928C9C5BE8A67A4181FD?time_range_epoch=1345595894965~1345598894965

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

The query parameter "time_range_epoch" contains 2 numbers separated by "~" to indicate FROM time and TO time, inclusive. Here is the response:

{
"uri" : "/em/cloud/metric/iaas%3Avm%3ACPU_Utilization%3A523CAE80A305928C9C5BE8A67A4181FD" ,
"name" : "CPU_Utilization" ,
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"resource_state" :     {
"state" : "READY"
} ,
"type" : "NUMBER" ,
"current_value" : "52.53868103027344" ,
"current_time" : "2012-08-22T01:29:19+0000" ,
"time_range" :
[
"2012-08-22T00:38:14+0000" ,
"2012-08-22T01:28:14+0000"
] ,
"time_range_epoch" :
[
"1345595894965" ,
"1345598894965"
] ,
"rollup_unit" : "RAW" ,
"values" :
[
{
"time_utc" : "2012-08-22T01:21:44+0000" ,
"value" : "52.53868103027344"
} ,
{
"time_utc" : "2012-08-22T01:16:44+0000" ,
"value" : "52.67461395263672"
} ,
{
"time_utc" : "2012-08-22T01:11:44+0000" ,
"value" : "51.93536376953125"
} ,
{
"time_utc" : "2012-08-22T01:06:44+0000" ,
"value" : "52.61101531982422"
} ,
{
"time_utc" : "2012-08-22T01:01:44+0000" ,
"value" : "52.30859375"
} ,
{
"time_utc" : "2012-08-22T00:56:44+0000" ,
"value" : "52.778690338134766"
} ,
{
"time_utc" : "2012-08-22T00:51:44+0000" ,
"value" : "52.08208084106445"
} ,
{
"time_utc" : "2012-08-22T00:46:44+0000" ,
"value" : "52.42387771606445"
} ,
{
"time_utc" : "2012-08-22T00:41:44+0000" ,
"value" : "52.2672004699707"
}
] ,
"key" : "iaas:vm:CPU_Utilization:523CAE80A305928C9C5BE8A67A4181FD"
}

Similarly, to specify a different rollup unit, the following interaction shows the HOURLY rollup for the last 7 hours:

Table 46-23 Service Template Resource

Feature

Description

URL

https://example.oracle.com/em/cloud/metric/iaas%3Avm%3ACPU_Utilization%3A523CAE80A305928C9C5BE8A67A4181FD?time_range_epoch=1345571178252~1345611178252&rollup_unit=HOURLY

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Method

GET

Since

12.1.0.4 Cloud Service Portal Plug-in

Here is the response from the web service for the aggregated information:

{
"uri" : "/em/cloud/metric/iaas%3Avm%3ACPU_Utilization%3A523CAE80A305928C9C5BE8A67A4181FD" ,
"name" : "CPU_Utilization" ,
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"resource_state" :     {
"state" : "READY"
} ,
"type" : "NUMBER" ,
"current_value" : "52.37758255004883" ,
"current_time" : "2012-08-22T04:55:13+0000" ,
"time_range" :
[
"2012-08-21T17:46:18+0000" ,
"2012-08-22T04:52:58+0000"
] ,
"time_range_epoch" :
[
"1345571178252" ,
"1345611178252"
] ,
"rollup_unit" : "HOUR" ,
"values" :
[
{
"time_utc" : "2012-08-21T23:00:00+0000" ,
"average" : "52.6733585993448905" ,
"min" : "52.130245208740234" ,
"max" : "53.29022216796875" ,
"std" : "3.55263697371071501307481053785512321532E-01"
} ,
{
"time_utc" : "2012-08-21T22:00:00+0000" ,
"average" : "5.24303614298502599166666666666666666667E01" ,
"min" : "51.621360778808594" ,
"max" : "52.85725402832031" ,
"std" : "3.63521555326025399658498002900543252046E-01"
} ,
{
"time_utc" : "2012-08-21T21:00:00+0000" ,
"average" : "52.6410032908121745" ,
"min" : "52.04186248779297" ,
"max" : "53.23821258544922" ,
"std" : "3.21552680564547999623645642115362106482E-01"
} ,
{
"time_utc" : "2012-08-21T20:00:00+0000" ,
"average" : "7.60534032185872416666666666666666666667E00" ,
"min" : "0" ,
"max" : "52.8489990234375" ,
"std" : "1.80268512452981440717409537961069439254E01"
} ,
{
"time_utc" : "2012-08-21T19:00:00+0000" ,
"average" : "0" ,
"min" : "0" ,
"max" : "0" ,
"std" : "0"
} ,
{
"time_utc" : "2012-08-21T18:00:00+0000" ,
"average" : "0" ,
"min" : "0" ,
"max" : "0" ,
"std" : "0"
}
] ,
"key" : "iaas:vm:CPU_Utilization:523CAE80A305928C9C5BE8A67A4181FD"
}

46.5 Service Request REST APIs

This section covers the following REST APIs for rescheduling and deleting DBaaS and MWaaS service requests.

Table 46-24 Supported Methods for Service Request

Method

Query Parameters

Request Payload

Response Payload

Canonical Link

Description

PUT

NA

{"newdate": "8/23/2013 4:46:12 AM"}

Status Message (json payload)

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/<id>

Reschedules service request based on the id and attributes.

Date must be specified in the format yyyy-MM-dd'T'HH:mm:ss'Z

DELETE

NA

None

None

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/<service-request-id>

Cancels GET specified ServiceRequest

GET

NA

NA

List of requests as json payload

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/

Retrieves a list of all service requests.

46.6 Service Request Collection

ServiceRequestCollection is a collection resource representing a Cloud Administrator's view of all the accessible Service Request resources (which can be canceled or rescheduled). The following table describes the ServiceRequestCollection data model.

Table 46-25 ServiceRequestCollection Data Model

Field

Type

Occurs

Description

name

String

1

Displays the name of this collection resource.

type

String

1

Indicates the type of collection resource.

hasMore

Boolean

1

Indicates whether there are more elements in the collection.

count

Integer

1

Number of elements in the collection resource.

items

Collection <Request>

1

List of ServiceRequest resources. If there are no instance, this list will be blank.

totalCount

Integer

1

Total number of requests.

canonicalLink

URI

1

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

selfLink

URI

1

Refers to the resource equivalent of the containing elements.

47 EM CLI Verbs for Database as a Service Administrator

This chapter provides details on the Enterprise Manager Command Line Interface (EM CLI) verbs for Enterprise Manager Self Service Applications administration users for Database as a Service (DBaaS). For other EM CLI verbs related to cloud administration see Enterprise Manager Command Line Interface Guide.

The EM CLI 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.

The following sections are covered in this chapter:

- PaaS Zone EM CLI Verbs

- Software Pool EM CLI Verbs

- Database Quota EM CLI Verbs

- Database Request Settings EM CLI Verbs

- Database Size EM CLI Verbs

- Database Profile EM CLI Verbs

- About Database Provisioning Profile Types

- Creating Provisioning Profiles using EM CLI

- Sample EM CLI Property Files

- Database Profile EM CLI Verbs

- Creating a Database Profile Using EM CLI Verbs

- Editing a Database Profile Using EM CLI Verbs

- Deleting a Database Profile Using EM CLI Verbs

- Viewing All the Database Profiles

- Refreshing a Database Profile Using EM CLI Verbs

- Service Template EM CLI Verbs

- Service Template Executable .json Files

- Creating a Database Clone Using EM CLI Verbs

- Refreshing a Database Using EM CLI Verbs

- Deleting a Database Using EM CLI Verbs

- Database Fleet Maintenance EM CLI Verbs

- Database Request Handling EM CLI Verbs

- Cloning a Pluggable Database

- Transferring Data Between Databases

- Backing Up Datafiles and Metadata of a Pluggable Database

- Importing Data from Export Dumps to a Database

- Invoking a REST API Using EM CLI Verb

All PaaS infrastructure zone EM CLI operations are available only to users with a EM_CLOUD_ADMINISTRATOR role and Software pool operations are available only to users with a EM_SSA_ADMINISTRATOR role. EM CLI verbs will obtain user information from the security context and grant permission only those users authorized to perform these operations.

47.1 PaaS Zone EM CLI Verbs

The following table provides details of the supported verbs for the PaaS zone resource.

Table 47-1 Paas Zone EM CLI Verbs

Verb

Description

Format

emcli 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 - This placement policy constraint allows the cloud administrator to set maximum thresholds for any host. Value entered must be between 1 and 100. If not provided, the default value is taken to be 80 percent. This parameter is not needed if Oracle VM zone targets are added as members.

- memory_utilization - This is a placement policy constraint for the PaaS infrastructure zone. The value entered must be between 1 and 100. If it is not provided, the default value is taken to be 80 percent. This parameter is not needed if Oracle VM zone targets are added as members.

Example:

emcli create_paas_zone
-name=MyPaaSZone
-credential=AIME__N
-hosts=xyxy.example.com
-roles="SSA_USER_ROLE1"
-description="Test PaaS zone"
-cpu_utilization=90
-memory_utilization=90

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>]

emcli 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 the Paas infrastructure zone. The hosts to be added should not have been added to other existing PaaS zones.

- remove_hosts - Comma separated list of the host targets to be removed from the Paas infrastructure zone.

- add_ovm_zones - Comma separated list of the Oracle VM zone targets to be added as members of the Paas infrastructure zone. The Oracle VM zones to be added should not have been added to other existing PaaS zones.

- remove_ovm_zones - Comma separated list of the Oracle VM zone targets to be removed from the Paas infrastructure zone.

- add_roles - Comma separated list of SSA roles to be added that can access the PaaS infrastructure zone.

- remove_roles - Comma separated list of SSA roles to be removed from the PaaS infrastructure zone.

- description - Updated description of the PaaS infrastructure zone.

- cpu_utilization - This placement policy constraint allows the cloud administrator to set maximum thresholds for any host. The value entered must be between 1 and 100.

- memory_utilization - This placement policy constraint is for the memory utilization of the PaaS infrastructure zone. The value entered must be between 1 and 100.

Example:

emcli update_paas_zone
-name=MyPaaSZone
-credential=AIME_N
-add_hosts=xyxy.example.com
-remove_hosts=xxy.example.com
-add_roles="SSA_USER_ROLE1"
-remove_roles="SSA_USER_ROLE2"
-description="Test PaaS zone"
-cpu_utilization=90
-memory_utilization=90

Sample Output:
PaaS Infrastructure Zone "MyPaaSZone" updated successfully.

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>]

emcli delete_paas_zone

Deletes a PaaS infrastructure zone. The 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.

Example:

emcli delete_paas_zone
-name=MyPaaSZone

Sample Output:
PaaS Infrastructure Zone "MyPaaSZone" deleted successfully

emcli delete_paas_zone

-name=<Name of PaaS zone>

emcli 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 (%).

Example:

emcli  get_paas_zone_detail
-name=MyPaaSZone

Sample Output:
Name               MyPaaSZone
Description        TEST zone
Named Credentials  AIME_N
Number of Hosts    1
Roles              SSA_USER_ROLE1
Maximum Memory Allocation (%)    90
Maximum CPU Utilization (%)      90

emcli get_paas_zone_detail

-name=<Name of PaaS zone>

47.2 Software Pool EM CLI Verbs

The following table provides details of the supported verbs for the Software pool resource.

Table 47-2 Software Pool EM CLI Verbs

Verb

Description

Format

emcli create_pool

Creates a database, schema, or pluggable database pool.

- name - Name of the Software pool to be created.

- target_type - Target type of the Software pool to be created. For example: mwaas_zone for middleware pool, oracle_cloud_zone for database pool, and schaas_pool for schema pool.

- 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 database pool in terms of resource consumption. Use 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. Use 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.

Note:

- To procure the GUID run the following command:

emcli get_procedures
[-type={procedure type}]

Sample command:
emcli get_procedures -type=DBPROV

- Root credentials are optional. They are required if you want to use the pool for snap cloned database requests.

- Grid Infrastructure credentials are optional. They are required if you are creating only a RAC database.

- ASM credentials are optional. They are required if you want to use the database pool for live cloning of a database using ASM.

- An existing pool with similar configuration can be associated to the new database pool as a standby pool. To do so use the standby_pools property. To associate multiple pools the pool names should be separated using the pipe symbol.

Examples:

- Database pool -

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.2.0,
PLATFORM=226"
-placement_constraints=
"MAX_INSTANCES=7"
-properties=
"host_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
root_credential_guid=DBA449B8967AAF77E040F00A73B11F55"
grid_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
asm_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
standby_pools=DB_POOL1|DB_POOL2
Sample Output:
Software Pool "MyDbPool" created successfully.

- Schema pool -

emcli  create_pool
-name= MySchemaPool
-target_type= schaas_pool
-paas_zone=MyPaaSZone
-members= simple.us.example.com
-description="Test Schema Pool"
-member_constraints=
" TARGET_TYPE=oracle_database,
VERSION=11.2.0.2.0,
PLATFORM=226"
-placement_constraints=
"MAX_SERVICES=7,
USE_WORKLOAD=true,
MAX_CPU_USAGE=90,
MAX_MEMORY_USAGE=90,
ENFORCE_CPU=true"
-properties=
"host_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
database_credential_guid =DBA449B8967AAF77E040F00A73B11F55"

Sample Output:
Software Pool "MySchemaPool" created successfully.

- Pluggable database pool -

emcli  create_pool
-name= MyPdbPool
-target_type= pdbaas_pool
-paas_zone=MyPaaSZone
-members= database
-description="Test PDB Pool"
-member_constraints=
TARGET_TYPE_CDB=oracle_database,
VERSION_CDB=12.1.0.1.0,
PLATFORM_CDB=226"
-placement_constraints=
"MAX_PDB_SERVICES=7,
PDBS_USE_WORKLOAD=true,
MAX_CPU_USAGE_BY_PDBS=90,
MAX_MEMORY_USAGE_BY_PDBS=90,
PDBS_ENFORCE_CPU=true"
-properties=
"host_credential_guid=DBA449B8967AAF77E040F00A73B11F55, gi_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
cdb_credential_guid =DBA449B8967AAF77E040F00A73B11F55"

Sample Output:
Software Pool "MySchemaPool" created successfully

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>]

emcli update_pool

Updates a a database, schema, or pluggable database pool (whichever specified).

- 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.

Examples:

- Database pool -

emcli update_pool
-name=MyDbPool
-target_type=oracle_cloud_zone
-paas_zone=MyPaaSZone
-add_members=
OraDb11g_home1_1_slc03qtn
-remove_members=
OraDb11g_home1_2_slc01mdr
-description="Test Database Pool"
-placement_constraints=
"MAX_INSTANCES=7"
-properties=
"host_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
root_credential_guid=DBA449B8967AAF77E040F00A73B11F55"

Sample Output:
Software Pool "MyDbPool" updated successfully.

- Schema pool -

emcli update_pool
-name= MySchemaPool
-target_type= schaas_pool
-add_members=
simple.us.example.com
-remove_members=
Simple1.us.example.com
-description="Test Database Pool"
-placement_constraints=
"MAX_SERVICES=17,
USE_WORKLOAD=false,
MAX_CPU_USAGE=90,
MAX_MEMORY_USAGE=90,
ENFORCE_CPU=false"

Sample Output:
Software Pool "MySchemaPool" updated successfully.y.

- Pluggable database pool -

emcli update_pool
-name= MyPdbPool
-target_type= pdbaas_pool
-paas_zone=MyPaaSZone
-add_members=database
-remove_members=database
-description="Test PDB Pool"
-placement_constraints=
"MAX_PDB_SERVICES=7,
PDBS_USE_WORKLOAD=true,
MAX_CPU_USAGE_BY_PDBS=90,
MAX_MEMORY_USAGE_BY_PDBS=90,
PDBS_ENFORCE_CPU=true"
-properties=
"host_credential_guid=DBA449B8967AAF77E040F00A73B11F55, gi_credential_guid=DBA449B8967AAF77E040F00A73B11F55,
cdb_credential_guid =DBA449B8967AAF77E040F00A73B11F55"

Sample Output:
Software Pool "MyPdbPool" updated successfully.

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>]

emcli delete_pool

Deletes a database, scheme, or pluggable database pool. The 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.

Examples:

- Database pool -

emcli delete_pool
-name=MyDbPool
-target_type=oracle_cloud_zone
Sample Output:
Software Pool "MyDbPool" deleted successfully.

- Schema pool -

emcli delete_pool
-name=MySchemaPool
-target_type= schaas_pool

Sample Output:
Software Pool "MySchemaPool" deleted successfully.

- Pluggable database pool -

emcli delete_pool
-name= MyPdbPool
-target_type= pdbaas_pool

Sample Output:
Software Pool "MyPdbPool" deleted successfully.

emcli delete_pool

-name=<Name of Software Pool>

-target_type=<Target type of Software Pool>

emcli 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

Examples:

- Database pool -

emcli get_pool_detail
-name=MyDbPool
-target_type=oracle_cloud_zone

Sample Output:
Name              MyDbPool
Target Type       oracle_cloud_zone
Description       Test Database Pool
Paas Infrastructure Zone SLC01MDR_ZONE
Number of Members               1
Placement Constraints
MAX_INSTANCES : 10
Member Constraints
CONFIGURATION : DatabaseInstance
VERSION : 11.2.0.2.0 ,
PLATFORM : Linux x86-64

- Schema pool -

emcli get_pool_detail
-name=MySchemaPool
-target_type= schaas_pool

Sample Output:
Name                MyRchemaPool
Target Type         schaas_pool
Description         Test Schema Pool
Paas Infrastructure Zone   SLC01MDR_ZONE
Number of Members   1
Placement Constraints
MAX_CPU_USAGE : 90 ,
ENFORCE_CPU : false ,
MAX_MEMORY_USAGE : 90 ,
MAX_SERVICES : 17 ,
USE_WORKLOAD : false
Member Constraints
VERSION : 11.2.0.2.0 ,
PLATFORM : Linux x86-64 ,
TARGET_TYPE : Database Instance

- Pluggable database pool -

emcli get_pool_detail
-name= MyPdbPool
-target_type= pdbaas_pool

Sample Output:
Name                 MyPdbPool
Target Type          pdbaas_pool
Description          Test PDB Pool
Paas Infrastructure Zone  PDB_ZONE
Number of Members     1
Placement Constraints
MAX_MEMORY_USAGE_BY_PDBS : 90 ,
MAX_CPU_USAGE_BY_PDBS : 90 ,
MAX_PDB_SERVICES : 7 ,
PDBS_ENFORCE_CPU : false ,
PDBS_USE_WORKLOAD :false
Member Constraints
PLATFORM_CDB : Linux x86-64 ,
TARGET_TYPE_CDB : Database Instance,
VERSION_CDB : 12.1.0.1.0

emcli get_pool_detail

-name=<Name of Software Pool>

-target_type=mwaas_zone

47.3 Database Quota EM CLI Verbs

The following table provides details of the supported verbs for Database quota.

Table 47-3 Database Quota Em CLI Verbs

Verb

Description

Format

emcli create_database_quota

Creates database quota for a EM_SSA_USER role.

- role_name: Name of SSA user Role for which quota is to be created

- databases: Number of database service requests allowed.

- schema_services: Number of schema service requests allowed.

- pluggable_databases: Number of pluggable database requests allowed.

- memory: Amount of memory usage allowed.

- storage: Amount of storage usage allowed.

Example

emcli create_dbaas_quota
-role_name="My Role"
-databases="10"
-schema_services="10"
-pluggable_databases="10"
-memory="99"
-storage="99"

Sample Output
Quota for "MyRole" setup successfully.

emcli create_dbaas_quota

-role_name="<Name of SSA User Role>"

-databases="<Number of Database Requests>"

-schema_services="<Number of Schema Service Requests>"

-pluggable_databases="<Number of Pluggable Database Service Requests>"

-memory="<Memory(GB)>"

-storage="<Storage(GB)>"

emcli update_dbaas_quota

Updates the database quota for the SSA user role.

- role_name - Name of the SSA user role for which quota is to be updated.

- databases - Number of database service requests allowed.

- schema_services - Number of schema service requests allowed.

- pluggable_databases - Number of PDB service requests allowed.

- memory - Amount of memory usage allowed.

- storage - Amount of storage space usage allowed.

Example

emcli update_dbaas_quota
-role_name="My Role"
-databases="10"
-schema_services="10"
-pluggable_databases="10"
-memory="99"
-storage="99"

Sample Output
Quota for "My Role" updated successfully.

emcli update_dbaas_quota

-role_name="<Name of SSA User Role>"

-databases="<Number of Database Requests>"

-schema_services="<Number of Schema Service Requests>"

-pluggable_databases="<Number of Pluggable Database Service Requests>"

-memory="<Memory(GB)>"

-storage="<Storage(GB)>"

emcli delete_dbaas_quota

Deletes the database quota for a SSA User Role.

- role_name - Name of the SSA user role for which quota is to be deleted.

Example

emcli delete_dbaas_quota           -role_name="My Role"

Sample Output
Quota for "My Role" deleted successfully.

emcli delete_dbaas_quota

-role_name="<Name of SSA User Role">

emcli get_dbaas_quota

Lists the database quota setup for SSA user roles.

Example

emcli get_dbaas_quota

Sample Output:
ROLE_NAME: SSA_USER_ROLE1 NUMBER_OF_SCHEMA_SERVICES: 99
MEMORY: 99
STORAGE: 99
NUMBER_OF_PLUGGABLE_DATABASES: 99NUMBER_OF_DB_INSTANCES : 99

Quotas for Roles retrieved successfully

emcli get_dbaas_quota

47.4 Database Request Settings EM CLI Verbs

The following table provides details of the supported verbs for Database request settings.

Table 47-4 Database Request Settings EM CLI Verbs

Verb

Description

Format

emcli update_dbaas_request_settings

Updates the Database request settings.

- future_reservation_length - The time duration before which a Self Service user can schedule a request.

- maximum_archive_duration - The duration of time after which the ''Completed'', Self service create requests will be purged from the repository.

- default_retirement_period - The maximum amount of time for which Self service user can retain a service instance.

Example:

emcli update_dbaas_request_settings
-future_reservation_length="2 Months"
-maximum_archive_duration="10 Weeks"
-default_retirement_period="No Reservation"
Sample Output:
Request settings updated successfully

emcli update_dbaas_request_settings

-future_reservation_length="<Future Request Scheduling Period>"

-maximum_archive_duration="<Request Purging Duration>"

-default_retirement_period="<Default Retention Duration>"

emcli get_dbaas_request_settings

Retrieves the PaaS infrastructure zone details.

Example:

emcli get_dbaas_request_settings
Sample Output:
Future Reservation Length  : 2 Months
Maximum Archive Duration : 10 Weeks
Default Retirement Period : 1 Years
Request Settings retrieved successfully.

emcli get_dbaas_request_settings

47.5 Database Size EM CLI Verbs

The table below lists the supported verbs for Database size resource.

Table 47-5 Database Size EM CLI Verbs

Verb

Description

Format

emcli create_database_size

Specify one or more attributes that make up this database size. The different attributes are separated by a semicolon (;). Attributes specified in the database size override values specified in the service template

- name- Create a name for the size.

- description - Create a description for the size.

- attributes - The different attributes are separated by a semicolon (;). Users can specify values for the following attributes:

- cpu: Total number of CPU cores.

- memory: Total maximum memory in GB.

- processes: Total number of processes that can simultaneously connect to Oracle.

- storage: Total storage that is allocated to Oracle (in GB).

Example:

emcli create_database_size -name=Small -description="Small size database" -attributes="cpu:4;storage:50;memory:4"
Sample Output:
Database size 'Small' has been successfully created.

emcli create_database_size

-name="<Size name>"

-description="<Size description>"

[-attributes="cpu:<number of cores>;

memory:<memory in GB>;

processes:<max number of processes>;

storage:<Total Storage in GB allocated to database>;"

]

emcli update_database_size

Specify one or more attributes that have to be modified. The different attributes are separated by a semicolon (;). If you want to remove an attribute from the database size definition, specify 'remove' against that attribute.

- name - Name of the existing database.

- description - Updates the description of the existing size.

- attributes - The different attributes are separated by a semicolon (;). Users can specify values for the following attributes:

- cpu: Total number of CPU cores.

- memory: Total maximum memory in GB.

- processes: Total number of processes that can simultaneously connect to Oracle.

- storage: Total storage that is allocated to Oracle (in GB).

Example:

emcli update_database_size -name=Small -description="Small size database" -attributes="cpu:4;storage:50;memory:4"
Sample Output:
Database size 'Small' has been successfully updated.

emcli update_database_size

-name="<Existing size name>"

-description="<Size description>"

[-attributes="cpu:<number of cores>;

memory:<memory in GB>;

processes:<max number of processes>;

storage:<Total storage in GB allocated to database>;"]

emcli delete_database_size

Deletes database size.

name - Name of the existing database size.

Example:

emcli delete_database_size -name=small
Sample Output:
Database size 'Small' has been successfully deleted.

emcli delete_database_size

-name="<Existing size name>"

emcli list_database_sizes

Lists all the database sizes that have been created.[name]: A complete or a partial string.

Example:

eemcli list_database_sizesemcli list_database_sizes -name="Extra*"
Sample Output:
Name:Extra-Small
Description:Extra-small
CPU(cores):4
Memory(GB):4
Storage(GB):Not Specified
Processes(Units):Not Specified

Name:Small
Description:Small database
CPU(cores):8
Memory(GB):8
Storage(GB):Not Specified
Processes(Units):Not Specified

emcli list_database_sizes[name]: A complete or a partial string.

47.6 Database Profile EM CLI Verbs

This section explains the different database provisioning profiles used for Database as a Service. It also explains how these profiles can be created using the EM CLI verbs. The following topics are covered:

- About Database Provisioning Profile Types

- Creating Provisioning Profiles using EM CLI

- Creating a Database Profile Using EM CLI Verbs

- Editing a Database Profile Using EM CLI Verbs

- Deleting a Database Profile Using EM CLI Verbs

- Viewing All the Database Profiles

- Refreshing a Database Profile Using EM CLI Verbs

47.6.1 About Database Provisioning Profile Types

Given below are the four types of Database provisioning profiles used in Database as a Service and Schema as a Service:

- DBCA Template

- RMAN

- Snapclone

- Schema

47.6.1.1 DBCA Template

The DBCA template supports both structure plus data and structure only types. This database provisioning profile is created from the production or source database registered with Enterprise Manager.

Note:
Structure and data requires a shutdown of the database. It should be used for very small databases (< 50GB).

47.6.1.2 RMAN

This data content of this database provisioning profile comprises the RMAN backup pieces. Any of the following methods can be used to create the RMAN profile:

- Hot RMAN backup - This option is enabled only when the archive log mode on the source database is turned ON.

- Cold RMAN backup - In this case, the source database is brought down to take the RMAN backup.

- Existing backup - This option can be used when the RMAN backup is already taken on the source and you want to use one of the existing RMAN backups to create a profile.

- Existing backup pieces when there is no access to the source database - Create profile source database using existing backup pieces when there is no access to the source database. This option can be used when the RMAN backup is already taken on the source and kept in a known location. This option is only supported using EM CLI verbs.

47.6.1.3 Snapclone

The data content of this database provisioning profile is derived from Snapshot information on the filer (NetApp or SunZFS filer) of all the volumes where the datafiles for the source database are residing.

47.6.1.4 Schema

The data content of this database provisioning profile is compiled from an export dump created using the Data pump tool. You can choose to export Schema objects (structure only) or the Schema with data (structure and data).

Note that you cannot export empty schemas or include Oracle schemas (these schemas are not available for selection). Schemas that are filtered out are listed below:

Table 47-6 Filtered Out Schema

ANONYMOUS

DMSYS

OASPUBLIC

OWBSYS

TSMSYS

APEX_030200

EXFSYS

ODM

OWBSYS_AUDIT

WEBSYS

APEX_PUBLIC_USER

FLOWS_

ODM_MTR

SCOTT

WK_PROXY

APPQOSSYS

FLOWS_03000

OLAPSYS

SI_INFORMTN_SCHEMA

WK_TEST

AURORA$JIS$UTILITY$

FLOWS_FILES

ORACLE_OCM

SPATIAL_CSW_ADMIN_USR

WKPROXY

AURORA$ORB$UNAUTHENTICATED

LBACSYS

ORDDATA

SPATIAL_WFS_ADMIN_USR

WKSYS

BI

MDDATA

ORDPLUGINS

SYS

WMSYS

CTXSYS

MDSYS

ORDSYS

SYSMAN

XDB

DBSNMP

MGMT_VIEW

OSE$HTTP$ADMIN

SYSTEM

XS$NULL

DIP

MTSSYS

OUTLN

TRACESRV

47.6.2 Creating Provisioning Profiles using EM CLI

This method allows the administrators or cloud provisioning operators to create the database provisioning profile using EM CLI verbs. The following is the syntax of the verb:

emcli create_dbprofile -input_file=data:<Prop file name>

For the verb description and options see Table 47-13.

For the steps to be followed to create a database profile, see Section 47.6.5, "Creating a Database Profile Using EM CLI Verbs".

This command takes in a property file that completely describes the type of profile that will be created and the options used. For property files of different database provisioning profiles, see Section 47.6.3, "Sample EM CLI Property Files".

47.6.3 Sample EM CLI Property Files

The following sections provide sample EMCLI property files for the database provisioning profiles:

- DBCA Template

- New RMAN Backup from the Source Database

- Existing RMAN Backup from the Source Database

- Existing RMAN Backup on the Stage Location

- Snapclone Database

- Schema Database

47.6.3.1 DBCA Template

Table 47-7 EMCLI Property Files for DBCA Template

Name

Required

Description

Variable

Reference Database

true

The source database from which the profile will be created.

REFERENCE_DATABASE=

Type of the reference database

true

The target type of the source database (oracle_database or rac_database)

REFERENCE_DATABASE_TYPE=

Reference Node

false

The reference node from which the profile will be created. Applicable only for RAC and Cluster targets

REF_NODE_SELECTED=

Create the database gold image

false

Includes the database gold image as part of the profile.

DATABASE_GOLD_IMAGE_TYPE=

Create the GI gold image

false

Includes the GI gold image as part of the profile.

GI_GOLD_IMAGE_TYPE=

Create the database gold image

false

Includes the database gold image as part of the profile.

DATA_CONTENT_MODE=

Create mode for the data content

false

The create mode decides whether to use existing data or create new data.

CREATE_DATA_OPTION=

The content that will be included in the backup

false

The data content that gets included in the backup can be metadata or data.

DATA_CONTENT=

Reference Host Credentials

false

The credentials to be used for OS authentication.

REF_HOST_CREDENTIALS=

Database Credentials

false

The credentials to be used for performing database related operations.

REF_DB_CREDENTIALS=

Grid Infrastructure Credentials

false

The credentials to be used for OS authentication for grid infrastructure.

REF_GI_CREDENTIALS=

Root Credentials

false

Root credentials to be required to perform privileged operations on host.

REF_HOST_ROOT_CREDENTIALS=

Convert to OFA format

false

Converts to the OFA format.

CONVERT_TO_OFA=

Profile Name

true

Name of the profile.

PROFILE_NAME=

Profile Description

false

Name with which the profile should be created.

PROFILE_DESC=

Profile location

true

Location of the profile in the software library.

PROFILE_LOCATION=

Profile Version

false

Version of the profile. If nothing is specified, the Database version is used.

PROFILE_VERSION=

Profile Vendor

false

Vendor of the profile. The default is Oracle.

PROFILE_VENDOR=

Profile notes

false

Notes for the profile.

PROFILE_NOTES=

Create Image version flag

false

Flag to indicate if only the image version needs to be created.

DB_GOLD_IMAGE_CREATE_VERSION_ONLY=

Create Image version flag

false

Flag to indicate if only the image version needs to be created.

GI_GOLD_IMAGE_CREATE_VERSION_ONLY=

GI Home gold image id

false

Entity ID of the gold image.

GI_GOLD_IMAGE_ID=

Database home gold image id

false

Entity ID of the gold image.

DB_GOLD_IMAGE_ID=

Database gold image id

false

Entity ID of the gold image.

DB_GOLD_IMAGE_ID=

Database gold image name

false

Entity name of the database gold image.

DB_GOLD_IMAGE_ENTITY_NAME=

Grid Infrastructure gold image name

false

Entity name of the database gold image.

GI_GOLD_IMAGE_ENTITY_NAME=

Data gold image name

false

Entity name of the data gold image.

DATA_GOLD_IMAGE_ENTITY_NAME=

Working Directory

false

Working directory is the location where the files are staged.

WORKING_DIRECTORY=

Storage Type

false

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_TYPE_FOR_SOFTWARE=

Storage Name

false

The storage name as configured in the software library.

STORAGE_NAME_FOR_SOFTWARE=

NFS Mount Point

false

Location at which the NFS server is mounted on the host.

NFS_LOCAL_MOUNT_POINT_FOR_SOFTWARE=

Storage Type

false

The list of valid storage types are NFS, AGENT, and OmsShared

STORAGE_TYPE_FOR_DATA=

Storage Name

false

The storage name as configured in the software library.

STORAGE_NAME_FOR_DATA=

NFS Mount Point

false

Location at which the NFS server is mounted on the host.

NFS_LOCAL_MOUNT_POINT_FOR_DATA=

Is the profile initiated by end user

false

Indicates if the profile initiated by end user ia a part of backup process or the database.

USER_INITIATED=

Is Database target available

false

Indicates if the Database target is available.

DB_TARGET_AVAILABLE=

Platform Name of Source Database

false

Platform Name of Source Database. For example: Linux x86-64, Oracle Solaris on x86-64 (64-bit) etc.

SOURCE_DB_PLATFORM_NAME=

Schedule for Profile Execution

false

Schedule for the profile execution.

PROFILE_SCHEDULE=

Profile Single Refresh

false

Single refresh of the profile.

PROFILE_SINGLE_REFRESH=

Profile Purge Policy Type

false

Profile purge policy type.

PROFILE_PURGE_POLICY_TYPE=

Profile Purge Policy Value

false

Profile purge policy value.

PROFILE_PURGE_POLICY_VALUE=

Profile Image Version

false

Profile image version.

PROFILE_IMAGE_VERSION=

Profile location list

false

Location of the profile list.

PROFILE_LOC_LIST

47.6.3.2 New RMAN Backup from the Source Database

Table 47-8 EMCLI Property Files for a New RMAN Backup

Name

Required

Description

Variable

Reference Database

true

The source database from which the profile will be created

REFERENCE_DATABASE=

Type of the reference database

true

The target type of the source database (oracle_database or rac_database)

REFERENCE_DATABASE_TYPE=

Reference Node

false

The reference node from which the profile will be created. Applicable only for RAC and Cluster targets

REF_NODE_SELECTED=

Backup mechanism for data

false

Variable to identify what mode needs to be used for creating backup data. Possible values are EXPORT, DBCA_TEMPLATE, RMAN, and THIN_PROVISIONING

DATA_CONTENT_MODE=RMAN

The content that will be included in the backup

false

The data content that gets included in the backup can be metadata or data. Possible values are METADATA_ONLY and METADATA_AND_DATA.

DATA_CONTENT=METADATA_AND_DATA

Reference Host Credentials

true

The credentials that will be used for OS authentication. Format is <Cred Name:Owner>. If this is not provided,preferred credentials will be checked against NormalHostCreds.

REF_HOST_CREDENTIALS=

Database Credentials

false

The credentials that will be used for performing database authentication. Format is <Cred Name:Owner>. If this is not provided, preferred credentials will be checked against SysDbaCreds

REF_DB_CREDENTIALS=

Profile Name

true

Name of the profile

PROFILE_NAME=

Profile Description

false

Name with which the profile should be created.

PROFILE_DESC=

Profile location

true

Location of the profile in software library

PROFILE_LOCATION=

Profile Version

false

Version of the profile. If none is specified, the Database version shall be used.

PROFILE_VERSION=

Profile Vendor

false

Vendor of the profile. Default is Oracle.

PROFILE_VENDOR=

Profile notes

false

Notes for the profile.

PROFILE_NOTES=

Working Directory

false

Working directory is the location where the files are staged.

WORKING_DIRECTORY=

Is the profile initiated by end user

true

Is the profile initiated by end user as part of backup process or the database.

USER_INITIATED=false

Is Database target available

false

Is Database target available. Must be set to 'true' for this use case.

DB_TARGET_AVAILABLE=true

Backup Type

false

Backup type.

RMAN.BACKUP_TYPE=

Number of RMAN Channels to use(Default No of Channels : 2

false

Number of Channels to be used. Possible Values: like 1, 2 or 3.

RMAN.RMAN_CHANNELS=

Retain backup until

false

Retain backup until. Format: mm/dd/yyyy.

RMAN.RETAIN_UNTIL=

Encryption Type

false

Encryption Type. Possible Values: ON, OFF.

RMAN.ENCRYPTION_TYPE=

Encryption Password/Key

false

Encryption key which was used to encrypt the backup.

RMAN.ENCRYPTION_PASSWORD=

Compression Type

false

Compression type. Possible Values: HIGH, MEDIUM, LOW.

RMAN.COMPRESSION_TYPE=

RMAN Backup Location

true

Location of the RMAN Backups.

RMAN.RMAN_BACKUP_LOCATION=

Backup file format

false

Backup file format.

RMAN.BACKUP_FILE_FORMAT=

Backup file tag

false

Backup file tag.

RMAN.BACKUP_FILE_TAG=

Source: Control File Location

false

Location of the Control File.

RMAN.CONTROL_FILE_NAME=

Control File Tag

false

Control File Tag.

RMAN.CONTROL_FILE_TAG=

Source: Database SID

false

Database SID of the source database.

RMAN.ORACLE_DB_SID=

Initialize File Name

false

Initialize file name.

RMAN.INIT_FILE_NAME=

User List File Name

false

Name of the users list file. this file should be kept in location specified for RMAN_BACKUP_LOCATION.

RMAN.USERLIST_FILE_NAME=

GDB Name of source Db

false

GDB Name of source Db.

RMAN.DATABASE_NAME=

use existing RMAN Backup

true

use existing RMAN Backup. This should be set to 'NO' for this use case.

RMAN.USE_EXISTING_BACKUP=NO

47.6.3.3 Existing RMAN Backup from the Source Database

Table 47-9 EMCLI Property Files for a Existing RMAN Backup

Name

Required

Description

Variable

Reference Database

true

The source database from which the profile will be created

REFERENCE_DATABASE=

Type of the reference database

true

The target type of the source database (oracle_database or rac_database)

REFERENCE_DATABASE_TYPE=

Reference Node

false

The reference node from which the profile will be created. Applicable only for RAC and Cluster targets

REF_NODE_SELECTED=

Backup mechanism for data

false

Variable to identify what mode needs to be used for creating backup data. Possible values are EXPORT, DBCA_TEMPLATE, RMAN, and THIN_PROVISIONING

DATA_CONTENT_MODE=RMAN

The content that will be included in the backup

false

The data content that gets included in the backup can be metadata or data. Possible values are METADATA_ONLY and METADATA_AND_DATA.

DATA_CONTENT=METADATA_AND_DATA

Reference Host Credentials

true

The credentials that will be used for OS authentication. Format is <Cred Name:Owner>. If this is not provided,preferred credentials will be checked against NormalHostCreds.

REF_HOST_CREDENTIALS=

Database Credentials

false

The credentials that will be used for performing database authentication. Format is <Cred Name:Owner>. If this is not provided, preferred credentials will be checked against SysDbaCreds

REF_DB_CREDENTIALS=

Profile Name

true

Name of the profile

PROFILE_NAME=

Profile Description

false

Name with which the profile should be created.

PROFILE_DESC=

Profile location

true

Location of the profile in software library.

PROFILE_LOCATION=

Profile Version

false

Version of the profile. If none is specified, the Database version shall be used.

PROFILE_VERSION=

Profile Vendor

false

Vendor of the profile. Default is Oracle.

PROFILE_VENDOR=

Profile notes

false

Notes for the profile.

PROFILE_NOTES=

Working Directory

false

Working directory is the location where the files are staged.

WORKING_DIRECTORY=

Is the profile initiated by end user

true

Is the profile initiated by end user as part of backup process or the database.

USER_INITIATED=false

Is Database target available

false

Is Database target available. Must be set to 'true' for this use case.

DB_TARGET_AVAILABLE=true

Platform Name of Source Database

false

Platform Name of Source Database. For example, Linux x86-64 or Oracle Solaris on x86-64 (64-bit).

SOURCE_DB_PLATFORM_NAME=

Backup Type

false

Backup type.

RMAN.BACKUP_TYPE=

Number of RMAN Channels to use(Default No of Channels : 2

false

Number of Channels to be used. Possible Values: like 1, 2 or 3.

RMAN.RMAN_CHANNELS=

Retain backup until

false

Retain backup until. Format: mm/dd/yyyy.

RMAN.RETAIN_UNTIL=

Encryption Type

false

Encryption Type. Possible Values: ON, OFF.

RMAN.ENCRYPTION_TYPE=

Source:Encryption Password/Key

false

Encryption key which was used to encrypt the backup.

RMAN.ENCRYPTION_PASSWORD=

Compression Type

false

Compression type. Possible Values: HIGH, MEDIUM, LOW.

RMAN.COMPRESSION_TYPE=

RMAN Backup Location

true

Location of the RMAN Backups.

RMAN.RMAN_BACKUP_LOCATION=

Backup file format

false

Backup file format.

RMAN.BACKUP_FILE_FORMAT=

Backup file tag

false

Backup file tag.

RMAN.BACKUP_FILE_TAG=

Source: Control File Location

false

Location of the Control File.

RMAN.CONTROL_FILE_NAME=

Control File Tag

false

Control File Tag.

RMAN.CONTROL_FILE_TAG=

Source: Database SID

false

Database SID of the source database.

RMAN.ORACLE_DB_SID=

Initialize File Name

false

Initialize file name.

RMAN.INIT_FILE_NAME=

User List File Name

false

Name of the users list file. this file should be kept in location specified for RMAN_BACKUP_LOCATION.

RMAN.USERLIST_FILE_NAME=

GDB Name of source Db

false

GDB Name of source Db.

RMAN.DATABASE_NAME=

use existing RMAN Backup

true

use existing RMAN Backup. This should be set to 'YES' for this use case.

RMAN.USE_EXISTING_BACKUP=YES

47.6.3.4 Existing RMAN Backup on the Stage Location

Table 47-10 EMCLI Property Files for a Existing RMAN Backup on the Stage Location

Name

Required

Description

Variable

Reference Database

true

The source database from which the profile will be created

REFERENCE_DATABASE=

Type of the reference database

true

The target type of the source database (oracle_database or rac_database)

REFERENCE_DATABASE_TYPE=

Reference Node

false

The reference node from which the profile will be created. Applicable only for RAC and Cluster targets

REF_NODE_SELECTED=

Backup mechanism for data

false

Variable to identify what mode needs to be used for creating backup data. Possible values are EXPORT, DBCA_TEMPLATE, RMAN, and THIN_PROVISIONING

DATA_CONTENT_MODE=RMAN

The content that will be included in the backup

false

The data content that gets included in the backup can be metadata or data. Possible values are METADATA_ONLY and METADATA_AND_DATA.

DATA_CONTENT=METADATA_AND_DATA

Reference Host Credentials

true

The credentials that will be used for OS authentication. Format is <Cred Name:Owner>. If this is not provided,preferred credentials will be checked against NormalHostCreds.

REF_HOST_CREDENTIALS=

Database Credentials

false

The credentials that will be used for performing database authentication. Format is <Cred Name:Owner>. If this is not provided, preferred credentials will be checked against SysDbaCreds

REF_DB_CREDENTIALS=

Profile Name

true

Name of the profile

PROFILE_NAME=

Profile Description

false

Name with which the profile should be created.

PROFILE_DESC=

Profile location

true

Location of the profile in software library.

PROFILE_LOCATION=

Profile Version

false

Version of the profile. If none is specified, the Database version shall be used.

PROFILE_VERSION=

Profile Vendor

false

Vendor of the profile. Default is Oracle.

PROFILE_VENDOR=

Profile notes

false

Notes for the profile.

PROFILE_NOTES=

Working Directory

false

Working directory is the location where the files are staged.

WORKING_DIRECTORY=

Is the profile initiated by end user

true

Is the profile initiated by end user as part of backup process or the database.

USER_INITIATED=false

Is Database target available

false

Is Database target available. Must be set to 'false' for this use case.

DB_TARGET_AVAILABLE=false

Platform Name of Source Database

false

Platform Name of Source Database. For example, Linux x86-64 or Oracle Solaris on x86-64 (64-bit).

SOURCE_DB_PLATFORM_NAME=

Backup Type

false

Backup type.

RMAN.BACKUP_TYPE=

Number of RMAN Channels to use(Default No of Channels : 2

false

Number of Channels to be used. Possible Values: like 1, 2 or 3.

RMAN.RMAN_CHANNELS=

Retain backup until

false

Retain backup until. Format: mm/dd/yyyy.

RMAN.RETAIN_UNTIL=

Encryption Type

false

Encryption Type. Possible Values: ON, OFF.

RMAN.ENCRYPTION_TYPE=

Source:Encryption Password/Key

false

Encryption key which was used to encrypt the backup.

RMAN.ENCRYPTION_PASSWORD=

Compression Type

false

Compression type. Possible Values: HIGH, MEDIUM, LOW.

RMAN.COMPRESSION_TYPE=

RMAN Backup Location

true

Location of the RMAN Backups.

RMAN.RMAN_BACKUP_LOCATION=

Backup file format

false

Backup file format. Possible Values: %U

RMAN.BACKUP_FILE_FORMAT=

Source: Control File Location

false

Location of the Control File.

RMAN.CONTROL_FILE_NAME=

Control File Tag

false

Control File Tag. Default: control01.ctl

RMAN.CONTROL_FILE_TAG=

Source: Database SID

false

Database SID of the source database.

RMAN.ORACLE_DB_SID=

Initialize File Name

false

Initialize file name.

RMAN.INIT_FILE_NAME=

User List File Name

false

Name of the users list file. this file should be kept in location specified for RMAN_BACKUP_LOCATION.

RMAN.USERLIST_FILE_NAME=

GDB Name of source Db

false

GDB Name of source Db.

RMAN.DATABASE_NAME=

RMDB Version

false

RMDBS version

RMAN.DATABASE_VERSION=

47.6.3.5 Snapclone Database

Table 47-11 EMCLI Property Files for Snapclone Database

Name

Required

Description

Variable

Reference Database

true

The source database from which the profile will be created.

REFERENCE_DATABASE=

Type of the reference database

true

The target type of the source database (oracle_database or rac_database).

REFERENCE_DATABASE_TYPE=

Reference Node

false

The reference node from which the profile will be created. Applicable only for RAC and Cluster targets.

REF_NODE_SELECTED=

Create the database gold image

false

Includes the database gold image as part of the profile.

DATABASE_GOLD_IMAGE_TYPE=

Create the GI gold image

false

Includes the GI gold image as part of the profile.

GI_GOLD_IMAGE_TYPE=

Create the database gold image

false

Includes the database gold image as part of the profile.

DATA_CONTENT_MODE=

Create mode for the data content

false

The create mode decides whether to use existing data or create new data.

CREATE_DATA_OPTION=

The content that will be included in the backup

false

The data content that gets included in the backup can be metadata or data.

DATA_CONTENT=

Reference Host Credentials

false

The credentials to be used for OS authentication.

REF_HOST_CREDENTIALS=

Database Credentials

false

The credentials to be used for performing database related operations.

REF_DB_CREDENTIALS=

Grid infrastructure credentials

false

The credentials to be used for OS authentication for grid infrastructure.

REF_GI_CREDENTIALS=

Root Credentials

false

Root credentials that will be required to perform privileged operations on host.

REF_HOST_ROOT_CREDENTIALS=

Convert to OFA format

false

Converts to the OFA format.

CONVERT_TO_OFA=

Profile Name

true

Name of the profile.

PROFILE_NAME=

Profile Description

false

Name with which the profile should be created.

PROFILE_DESC=

Profile location

true

Location of the profile in the software library.

PROFILE_LOCATION=

Profile Version

false

Version of the profile. If nothing is specified, the Database version is used.

PROFILE_VERSION=

Profile Vendor

false

Vendor of the profile. The default is Oracle.

PROFILE_VENDOR=

Profile notes

false

Notes for the profile.

PROFILE_NOTES=

Create Image version flag

false

Flag to indicate if only image version needs to be created.

DB_GOLD_IMAGE_CREATE_VERSION_ONLY=

Create Image version flag

false

Flag to indicate if only image version needs to be created.

GI_GOLD_IMAGE_CREATE_VERSION_ONLY=

GI Home gold image id

false

Entity ID of the gold image.

GI_GOLD_IMAGE_ID=

Database home gold image id

false

Entity ID of the gold image.

DB_GOLD_IMAGE_ID=

Database gold image id

false

Entity ID of the gold image.

DB_GOLD_IMAGE_ID=

Database gold image name

false

Entity name of the database gold image.

DB_GOLD_IMAGE_ENTITY_NAME=

Grid Infrastructure gold image name

false

Entity name of the database gold image.

GI_GOLD_IMAGE_ENTITY_NAME=

Data gold image name

false

Entity name of the data gold image.

DATA_GOLD_IMAGE_ENTITY_NAME=

Working Directory

false

Working directory is the location where the files are staged.

WORKING_DIRECTORY=

Storage Type

false

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_TYPE_FOR_SOFTWARE=

Storage Name

false

The storage name as configured in the software library.

STORAGE_NAME_FOR_SOFTWARE=

NFS Mount Point

false

Location at which the NFS server is mounted on the host.

NFS_LOCAL_MOUNT_POINT_FOR_SOFTWARE=

Storage Type

false

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_TYPE_FOR_DATA=

Storage Name

false

The storage name as configured in the software library.

STORAGE_NAME_FOR_DATA=

NFS Mount Point

false

Location at which the NFS server is mounted on the host.

NFS_LOCAL_MOUNT_POINT_FOR_DATA=

Is the profile initiated by end user

false

Is the profile initiated by the end user a part of backup process or the database.

USER_INITIATED=

Is Database target available

false

Is the Database target available.

DB_TARGET_AVAILABLE=

Platform Name of Source Database

false

Platform Name of Source Database. For example: Linux x86-64, Oracle Solaris on x86-64 (64-bit) etc.

SOURCE_DB_PLATFORM_NAME=

Schedule for Profile Execution

false

Schedule for profile execution.

PROFILE_SCHEDULE=

Profile Single Refresh

false

Single refresh of the profile.

PROFILE_SINGLE_REFRESH=

Profile Purge Policy Type

false

Profile purge policy type.

PROFILE_PURGE_POLICY_TYPE=

Profile Purge Policy Value

false

Profile purge policy value.

PROFILE_PURGE_POLICY_VALUE=

Profile Image Version

false

Profile image version.

PROFILE_IMAGE_VERSION=

Profile location list

false

Location of the profile list.

PROFILE_LOC_LIST=

47.6.3.6 Schema Database

Table 47-12 EMCLI Property Files for Schema Database

Name

Required

Description

Variable

Reference Database

true

The source database from which the profile will be created

REFERENCE_DATABASE=

Type of the reference database

true

The target type of the source database (oracle_database or rac_database)

REFERENCE_DATABASE_TYPE=

Reference Node

false

The reference node from which the profile will be created. Applicable only for RAC and Cluster targets

REF_NODE_SELECTED=

Backup mechanism for data

false

Variable to identify what mode needs to be used for creating backup data. Possible values are EXPORT, DBCA_TEMPLATE, RMAN, and THIN_PROVISIONING

DATA_CONTENT_MODE=EXPORT

The content that will be included in the backup

false

The data content that gets included in the backup can be metadata or data. Possible values are METADATA_ONLY and METADATA_AND_DATA.

DATA_CONTENT=METADATA_AND_DATA

Reference Host Credentials

true

The credentials that will be used for OS authentication. Format is <Cred Name:Owner>. If this is not provided,preferred credentials will be checked against NormalHostCreds.

REF_HOST_CREDENTIALS=

Database Credentials

false

The credentials that will be used for performing database authentication. Format is <Cred Name:Owner>. If this is not provided, preferred credentials will be checked against SysDbaCreds

REF_DB_CREDENTIALS=

Profile Name

true

Name of the profile

PROFILE_NAME=

Profile Description

false

Name with which the profile should be created.

PROFILE_DESC=

Profile location

true

Location of the profile in software library.

PROFILE_LOCATION=

Profile Version

false

Version of the profile. If none is specified, the Database version shall be used.

PROFILE_VERSION=

Profile Vendor

false

Vendor of the profile. Default is Oracle.

PROFILE_VENDOR=

Profile notes

false

Notes for the profile.

PROFILE_NOTES=

Data gold image name

true

Entity name of the data gold image

DATA_GOLD_IMAGE_ENTITY_NAME=

Working Directory

false

Working directory is the location where the files are staged.

WORKING_DIRECTORY=

Schemas to be exported

true

List of schemas that needs to be included as part of the export.

EXPORT.SCHEMA_INCLUDE_LIST.0=

Dump Directories

false

List of directory objects that needs to be used for storing export. Format: directory=dir1,file_name=file1%U.dmp[,max_size=1MB].

EXPORT.DUMP_DIRECTORY_LIST.0=

Log Directory

false

Log directory location where the log file generated during export.

PORT.LOG_FILE_DIRECTORY=

Degree of Parallelism

false

Degree of Parallelism indicates the number of threads. For example, 1 or 2 or 3...

EXPORT.DEGREE_OF_PARALLELISM=

47.6.4 Database Profile EM CLI Verbs

The table below provides the verbs related to database profile.

Table 47-13 Database Profile EM CLI Verbs

Verb

Description

Format

emcli create_dbprofile

Creates a new database profile.

Options:

- -input_file - A property file which completely describes the type of profile that will be created and the options used. Enter emcli help describe_dbprofile_input for help with populating values for the property file. For property file details see Section 47.6.3, "Sample EM CLI Property Files".

- -schedule

- frequency: Frequency type with which the Database Profile will be created. It can be interval(in minutes), weekly, monthly or yearly.

- start_time: Denotes the starting time of database profile component creation in the format yy-MM-dd HH:mm.

- end_time: Denotes the end time of database profile component creation repetition in the format yy-Mm-dd HH:mm.

- repeat: Repetition rate at which database profile will be created. If the frequency is interval, then repeat will be in minutes.

- months: Number of months after which repetition of database profile component creation should occur.

- days: Number of days after which repetition of database profile component creation should occur.

- tz: Time zone ID. For example tz:America/New_York.

- grace_period: A period of time in minutes that defines the maximum permissible delay when attempting to create a database profile. If the job system cannot start the execution within a time period equal to the scheduled time + grace period, it will set the create database profile to be skipped.By default, grace period is indefinite.

- -purge_policy - Purges the collected data based on number of days or count of snapshots. If it is not specified, the default is NONE. Allowed values are DAYS, and SNAPSHOT.

- DAYS specifies the number of days after which the data component should be purged.

- SNAPSHOT specifies the count or number of data components, after which the older data will be purged.

Example

emcli create_dbprofile -input_file="data:/tmp/profile.txt" -schedule="frequency:interval;start_time:14-10-05 05:30;end_time:14-10-12 05:23;repeat:30;grace_period:60;tz:America/New_York" -purge_policy=DAYS:2

emcli create_dbprofile

-input_file=data:"absolute file path"

[-schedule=

[frequency:interval|weekly|monthly|yearly];

start_time:yy-MM-dd HH:mm;

end_time:yy-MM-dd HH:mm;

[repeat:#m];

[months:#,#,#,...];

[days:#,#,#,...];

[tz:{timezone ID}];

[grace_period:xxx];

]

[-purge_policy=DAYS|SNAPSHOTS: number]

emcli edit_dbprofile

Updates the cloned database profile.

Options:

- [-comp_loc] - Indicates the database profile component location in the software library.

- [-schedule] - Indicates the schedule for cloning.

- [frequency:interval| daily |weekly|monthly|yearly];

- start_time:yy-MM-dd HH:mm;

- end_time:yy-MM-dd HH:mm;

- [repeat:#m];

- [months:#,#,#,...];

- [days:#,#,#,...];

- [tz:{java timezone ID}];

- [grace_period:xxx];

- [-purge_policy] - Indicates the duration after which the purge occurs.

Example:

emcli edit_dbprofile
-comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/Database xyxy.us.example.com Profile100"
-schedule="start_time:14-07-22 03:00;frequency:interval;end_time:14-07-22 23:00;repeat:30"
-purge_policy="DAYS:1"

emcli edit_dbprofile

-comp_loc="Database Profile component location in software library"

[-schedule=

[frequency:interval|daily |weekly|monthly|yearly];

start_time:yy-MM-dd HH:mm;

end_time:yy-MM-dd HH:mm;

[repeat:#m];

[months:#,#,#,...];

[days:#,#,#,...];

[tz:{java timezone ID}];

[grace_period:xxx];

[-purge_policy=days| snapshots: number]

emcli delete_dbprofile

Deletes the database profile.

Options:

- comp_loc - Indicates the database profile component location in the software library.

- [-version] - Indicates the database profile component version name.

Examples:

- emcli delete_dbprofile -comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/Database xyxy.example.com Profile101"

- emcli delete_dbprofile -comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/ Database xyxy.example.com Profile101" -version="THIN_PROVISIONING_07_25_2014_03_00_AM"

emcli delete_dbprofile

-comp_loc="Database Profile component location in software library"

[-version="Database Profile component version name"]

emcli list_dbprofiles

Lists the database profiles.

Option:

- [-details] - Provides details of the database profiles.

Example:

emcli list_dbprofiles -details

emcli list_dbprofiles [-details]

emcli refresh_dbprofile

Refreshes the database profile.

Options:

- -comp_loc - Indicates the database profile component location in the software library.

Example:

emcli refresh_dbprofile -comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/ Database xyxy.example.com Profile102"

emcli refresh_dbprofile

-comp_loc="Database Profile component location in software library"

emcli refresh_database

Refreshes the database.

Options:

- -target_name - Indicates the target database name.

- -target_type - Indicates the target database type.

- -input_file - Indicates the input file that defines the input field values.

Example:

emcli refresh_database -target_name="database" -target_type="oracle_database" -input_file=data:"/tmp/refr.txt"

emcli refresh_database

-target_name="database target name"

-target_type="database target type"

-input_file=data:"file:path"

emcli delete_database

Deletes the database.

Options:

- inputFile - Indicates the file containing properties required for deleting a database. For details, see Section 47.11, "Deleting a Database Using EM CLI Verbs".

Example:

emcli delete_database -inputFile=/u01/files/delete_clone.props

emli delete_database

-inputFile="File containing properties required for deleting a clone"

47.6.5 Creating a Database Profile Using EM CLI Verbs

This section describes the procedure to create a database profile, RMAN backup, RMAN image backup or a Snapshot backup using EM CLI verbs.

Note:
The procedure to create a RMAN backup, RMAN image backup or Snapshot database is the same as the procedure to be followed to create a database profile. However, the only difference is in the property file used for the different flavours.

Figure 47-1 Creating a Database Profile Using EM CLI Verbs

Follow the steps below to create a database profile:

1. Create a template properties file from a procedure definition.
To create a template properties file follow the steps below:

1. Retrieve the GUID or the name of the procedure. Run the following command to retrieve these.

emcli get_procedures
[-type={procedure type}]

Sample command:
emcli get_procedures -type=DBPROV

Sample output:
GUID                  Type    Name                DisplayName                           Version  Owner   Parent Procedure
0A15E9DC285B2EF5E053E87BF00A6701  DBPROV  CLOUD_DEPLOY_SOFTWARE_NAME  Software Life Cycle Management Procedure  14.52    ORACLE
0A15E9DC20712EF5E053E87BF00A6701  DBPROV  CLEANUP_DB_PROC             Cleanup Mass Database                     13.0     ORACLE
0A15E9DC205C2EF5E053E87BF00A6701  DBPROV  DBREPLAYCLIENTDP_NG         Provision Oracle Database Client          14.0     ORACLE
0A15E9DC204E2EF5E053E87BF00A6701  DBPROV  SIHA_SIDB_PROC              Provision Oracle Database                 14.0     ORACLE

2. Input the GUID or the name as an input value in the following command to generate a template properties file.

emcli describe_procedure_input
[-procedure={procedure GUID}]
[-name={procedure name or procedure configuration}]
[-owner={owner of the procedure or procedure configuration}][-parent_proc={procedure of the procedure configuration. This only applies to describe a procedure configuration with the same name}]

Sample command:
emcli describe_procedure_input -procedure=0A15E9DC204E2EF5E053E87BF00A6701> /tmp/snapprofile.txt

2. Enter new values in the properties file.
Use an editor to edit the properties file. Enter the desired values for the variables and save the properties file.

For different flavours of database profile see the following:

- To create a new database profile with data and structure configure the mandatory parameters, and required optional parameter (DATA_CONTENT=METADATA_AND_DATA) in the Table 47-14, "Sample Properties File for Creating a New Database Profile".

- To create a new database profile with data only configure the mandatory parameters, and required optional parameter (DATA_CONTENT=DATA) in the Table 47-14, "Sample Properties File for Creating a New Database Profile".

- To create an RMAN backup, see Table 47-15, "Sample Properties File for Creating a Full Backup Profile".

- To create an RMAN image backup see Table 47-16, "Sample Properties File for Creating a Thin Backup Profile".

- To create an snapshot database, configure the mandatory parameters along with the REF_NODE_SELECTED, DATA_CONTENT, REF_HOST_CREDENTIALS, REF_DB_CREDENTIALS, PROFILE_VERSION, and PROFILE_VENDOR parameters in Table 47-15, "Sample Properties File for Creating a Full Backup Profile".

Table 47-14 Sample Properties File for Creating a New Database Profile

Parameters

Sample values

Description

Mandatory Parameters

REFERENCE_DATABASE

REFERENCE_DATABASE=dbname.xyz.com

The source database from which the profile is to be created.

REFERENCE_DATABASE_TYPE

REFERENCE_DATABASE_TYPE=oracle_database

The target type of the source database. Accepted values are oracle_database or rac_database.

DATA_CONTENT_MODE

DATA_CONTENT_MODE=STORAGE_SNAPSHOT

Data Mode for which the database profile needs to be submitted. The accepted values are: EXPORT, DBCA_TEMPLATE, RMAN, DNFS, and STORAGE_SNAPSHOT.

PROFILE_NAME

PROFILE_NAME=Profile_snap

Name of the profile.

PROFILE_LOCATION

PROFILE_LOCATION=Database Provisioning Profiles/11.2.0.4.0/linux_x64/

Location of the profile in the software library.

Optional Parameters

REF_NODE_SELECTED

REF_NODE_SELECTED= xxyy.us.example.com

The reference node from which the profile is to be created. This parameter is applicable only for RAC and cluster targets.

DATABASE_GOLD_IMAGE_TYPE

Includes the database gold image as part of the profile.

GI_GOLD_IMAGE_TYPE

Includes the GI gold image as part of the profile.

CREATE_DATA_OPTION

Indicates if existing data is to be used or to create new data.

DATA_CONTENT

DATA_CONTENT=METADATA_AND_DATA

The data content that gets included in the backup can be METADATA_AND_DATA or DATA.

REF_HOST_CREDENTIALS

REF_HOST_CREDENTIALS=AE_2COOL:ARA1

The credentials for OS authentication.

REF_DB_CREDENTIALS

REF_DB_CREDENTIALS=SYS_WD:RAH

The credentials for performing database related operation.

REF_GI_CREDENTIALS

The credentials for OS authentication of grid infrastructure.

REF_HOST_ROOT_CREDENTIALS

REF_HOST_ROOT_CREDENTIALS= AE_2OOL:RA1

Root credentials required to perform privileged operations on host.

CONVERT_TO_OFA

Converts to OFA format.

PROFILE_DESC

PROFILE_DESC=11204 SnapClone profile 1

Description of the profile.

PROFILE_VERSION

Version of the profile. If this parameter is not specified, the database version is used.

PROFILE_VENDOR

Vendor of the profile. The default is Oracle.

PROFILE_NOTES

Notes for the profile.

DB_GOLD_IMAGE_CREATE_VERSION_ONLY

Flag to indicate if only image version needs to be created.

GI_GOLD_IMAGE_CREATE_VERSION_ONLY

Flag to indicate if only image version needs to be created.

GI_GOLD_IMAGE_ID

Entity ID of the GI gold image.

DB_GOLD_IMAGE_ID

Entity ID of the DB gold image.

DB_GOLD_IMAGE_ENTITY_NAME

Entity name of the database gold image.

GI_GOLD_IMAGE_ENTITY_NAME

Entity name of the GI gold image.

DATA_GOLD_IMAGE_ENTITY_NAME

Entity name of the data gold image.

WORKING_DIRECTORY

WORKING_DIRECTORY=/tmp

Working directory is the location where the files are staged.

STORAGE_TYPE_FOR_SOFTWARE

The list of valid storage types are NFS, AGENT, and OmsShare.

STORAGE_NAME_FOR_SOFTWARE

The storage name as configured in the software library.

NFS_LOCAL_MOUNT_POINT_FOR_SOFTWARE

Location at which the NFS server is mounted on the host.

STORAGE_TYPE_FOR_DATA

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_NAME_FOR_DATA

The storage name as configured in the software library.

NFS_LOCAL_MOUNT_POINT_FOR_DATA

Location at which the NFS server is mounted on the host.

USER_INITIATED

Indicates if the profile initiated by end user ia a part of backup process or the database.

DB_TARGET_AVAILABLE

Indicates if the database target is available.

SOURCE_DB_PLATFORM_NAME

Platform name of source database. For example: Linux x86-64, Oracle Solaris on x86-64 (64-bit), etc.

PROFILE_SCHEDULE

Schedule for profile execution.

PROFILE_SINGLE_REFRESH

Single refresh of the profile.

PROFILE_PURGE_POLICY_TYPE

Type of profile purge policy. Accepted values are SNAPSHOTS or DAYS. The default value is NONE.

PROFILE_PURGE_POLICY_VALUE

Value of profile purge policy.

PROFILE_IMAGE_VERSION

Version of the profile image.

Table 47-15 Sample Properties File for Creating a Full Backup Profile

Parameters

Sample values

Description

Mandatory Parameters

REFERENCE_DATABASE

REFERENCE_DATABASE=dbname.xyz.com

The source database from which the profile will be created.

REFERENCE_DATABASE_TYPE

REFERENCE_DATABASE_TYPE=oracle_database

The target type of the source database. It can be oracle_database or rac_database.

DATA_CONTENT_MODE

DATA_CONTENT_MODE=STORAGE_SNAPSHOT

Data Mode for which the database profile needs to be submitted. It can have the following values: EXPORT, DBCA_TEMPLATE, RMAN, DNFS, and STORAGE_SNAPSHOT

PROFILE_NAME

PROFILE_NAME=Profile_snap

Name of the profile.

PROFILE_LOCATION

PROFILE_LOCATION=Database Provisioning Profiles/11.2.0.4.0/linux_x64/

Location of the profile in software library.

BACKUP_FILE_TAG

BACKUP_FILE_TAG=data_backup_1419417051961

Tag of backup files.

BACKUP_TYPE

BACKUP_TYPE=OFFLINE

Type of backup. Accepted values are OFFLINE or ONLINE. The default is OFFLINE.

BACKUP_FILE_FORMAT

BACKUP_FILE_FORMAT=backup_%U

Format of backup file.

RMAN_CHANNELS

RMAN_CHANNELS=2

Number of RMAN channels.

RMAN_BACKUP_LOCATION

RMAN_BACKUP_LOCATION=/oradbnas/aime_slc05ntg/sec

Location where RMAN backup files will be created. This parameter is mandatory if IS_SAVE_TARGET_PROFILE is set to Y and DATA_CONTENT_MODE is RMAN or DNFS.

Optional Parameters

REF_NODE_SELECTED

REF_NODE_SELECTED= slch.xyz.com

The reference node from which the profile will be created. This parameter is applicable only for RAC and cluster targets.

DATABASE_GOLD_IMAGE_TYPE

Includes the database gold image as part of the profile.

GI_GOLD_IMAGE_TYPE

Includes the GI gold image as part of the profile.

CREATE_DATA_OPTION

Indicates if existing data is to be used or to create new data.

DATA_CONTENT

DATA_CONTENT=METADATA_AND_DATA

The data content that gets included in the backup can be METADATA_AND_DATA or DATA.

REF_HOST_CREDENTIALS

REF_HOST_CREDENTIALS=AE_2COL:RA1

The credentials for OS authentication.

REF_DB_CREDENTIALS

REF_DB_CREDENTIALS=SYS_WL1:RA1

The credentials for performing database related operation.

REF_GI_CREDENTIALS

The credentials for OS authentication of grid infrastructure.

REF_HOST_ROOT_CREDENTIALS

REF_HOST_ROOT_CREDENTIALS= AE_2L:RA1

Root credentials required to perform privileged operations on host.

CONVERT_TO_OFA

Converts to OFA format.

PROFILE_DESC

PROFILE_DESC=11204 SnapClone profile 1

Description of the profile.

PROFILE_VERSION

Version of the profile. If this parameter is not specified, the database version is used.

PROFILE_VENDOR

Vendor of the profile. The default is Oracle.

PROFILE_NOTES

Notes for the profile.

DB_GOLD_IMAGE_CREATE_VERSION_ONLY

Flag to indicate if only image version needs to be created.

GI_GOLD_IMAGE_CREATE_VERSION_ONLY

Flag to indicate if only image version needs to be created.

GI_GOLD_IMAGE_ID

Entity ID of the GI gold image.

DB_GOLD_IMAGE_ID

Entity ID of the DB gold image.

DB_GOLD_IMAGE_ENTITY_NAME

Entity name of the database gold image.

GI_GOLD_IMAGE_ENTITY_NAME

Entity name of the GI gold image.

DATA_GOLD_IMAGE_ENTITY_NAME

Entity name of the data gold image.

WORKING_DIRECTORY

WORKING_DIRECTORY=/tmp

Working directory is the location where the files are staged.

STORAGE_TYPE_FOR_SOFTWARE

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_NAME_FOR_SOFTWARE

The storage name as configured in the software library.

NFS_LOCAL_MOUNT_POINT_FOR_SOFTWARE

Location at which the NFS server is mounted on the host.

STORAGE_TYPE_FOR_DATA

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_NAME_FOR_DATA

The storage name as configured in the software library.

NFS_LOCAL_MOUNT_POINT_FOR_DATA

Location at which the NFS server is mounted on the host.

USER_INITIATED

Indicates if the profile initiated by end user is a part of backup process or the database.

DB_TARGET_AVAILABLE

Indicates if the database target is available.

SOURCE_DB_PLATFORM_NAME

Platform name of source database. For example: Linux x86-64, Oracle Solaris on x86-64 (64-bit), etc.

PROFILE_SCHEDULE

Schedule for profile execution.

PROFILE_SINGLE_REFRESH

Single refresh of the profile.

PROFILE_PURGE_POLICY_TYPE

Type of profile purge policy. Accepted values are SNAPSHOTS or DAYS. The default value is NONE.

PROFILE_PURGE_POLICY_VALUE

Value of profile purge policy.

PROFILE_IMAGE_VERSION

Version of the profile image.

Table 47-16 Sample Properties File for Creating a Thin Backup Profile

Parameters

Sample values

Description

Mandatory Parameters

REFERENCE_DATABASE

REFERENCE_DATABASE=dbname.example.com

The source database from which the profile will be created.

REFERENCE_DATABASE_TYPE

REFERENCE_DATABASE_TYPE=oracle_database

The target type of the source database. It can be oracle_database or rac_database.

DATA_CONTENT_MODE

DATA_CONTENT_MODE=STORAGE_SNAPSHOT

Data Mode for which the database profile needs to be submitted. It can have the following values: EXPORT, DBCA_TEMPLATE, RMAN, DNFS, and STORAGE_SNAPSHOT

PROFILE_NAME

PROFILE_NAME=Profile_snap

Name of the profile.

PROFILE_LOCATION

PROFILE_LOCATION=Database Provisioning Profiles/11.2.0.4.0/linux_x64/

Location of the profile in software library.

DNFS.BACKUP_FILE_TAG

DNFS.BACKUP_FILE_TAG=data_backup_1419417051961

Tag of backup files.

DNFS.BACKUP_TYPE

DNFS.BACKUP_TYPE=OFFLINE

Type of backup. Accepted values are OFFLINE or ONLINE. The default is OFFLINE.

DNFS.BACKUP_FILE_FORMAT

DNFS.BACKUP_FILE_FORMAT=backup_%U

Format of backup file.

DNFS.BACKUP_LOCATION

DNFS.BACKUP_LOCATION=/oradbnas/aime_slc05ntg/suk

Location where RMAN backup files will be created. It is mandatory if IS_SAVE_TARGET_PROFILE is set to Y and DATA_CONTENT_MODE is RMAN or DNFS.

DNFS.BACKUP_IMAGE_MODE

DNFS.BACKUP_IMAGE_MODE=OfflineImage

Backup Image Mode

DNFS.BACKUP_IMAGE_TYPE

DNFS.BACKUP_IMAGE_TYPE=RMANImage

Type of backup Image.

Optional Parameters

REF_NODE_SELECTED

REF_NODE_SELECTED= slnh.us.example.com

The reference node from which the profile will be created. This parameter is applicable only for RAC and cluster targets.

DATABASE_GOLD_IMAGE_TYPE

Includes the database gold image as part of the profile.

GI_GOLD_IMAGE_TYPE

Includes the GI gold image as part of the profile.

CREATE_DATA_OPTION

Indicates if existing data is to be used or to create new data.

DATA_CONTENT

DATA_CONTENT=METADATA_AND_DATA

The data content that gets included in the backup can be METADATA_AND_DATA or DATA.

REF_HOST_CREDENTIALS

REF_HOST_CREDENTIALS=AE_2CL:RA1

The credentials for OS authentication.

REF_DB_CREDENTIALS

REF_DB_CREDENTIALS=SYS_W1:RA1

The credentials for performing database related operation.

REF_GI_CREDENTIALS

The credentials for OS authentication of grid infrastructure.

REF_HOST_ROOT_CREDENTIALS

REF_HOST_ROOT_CREDENTIALS= AE_2CL:RA1

Root credentials required to perform privileged operations on host.

CONVERT_TO_OFA

Converts to OFA format.

PROFILE_DESC

PROFILE_DESC=11204 SnapClone profile 1

Description of the profile.

PROFILE_VERSION

Version of the profile. If this parameter is not specified, the database version is used.

PROFILE_VENDOR

Vendor of the profile. The default is Oracle.

PROFILE_NOTES

Notes for the profile.

DB_GOLD_IMAGE_CREATE_VERSION_ONLY

Flag to indicate if only image version needs to be created.

GI_GOLD_IMAGE_CREATE_VERSION_ONLY

Flag to indicate if only image version needs to be created.

GI_GOLD_IMAGE_ID

Entity ID of the GI gold image.

DB_GOLD_IMAGE_ID

Entity ID of the DB gold image.

DB_GOLD_IMAGE_ENTITY_NAME

Entity name of the database gold image.

GI_GOLD_IMAGE_ENTITY_NAME

Entity name of the GI gold image.

DATA_GOLD_IMAGE_ENTITY_NAME

Entity name of the data gold image.

WORKING_DIRECTORY

WORKING_DIRECTORY=/tmp

Working directory is the location where the files are staged.

STORAGE_TYPE_FOR_SOFTWARE

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_NAME_FOR_SOFTWARE

The storage name as configured in the software library.

NFS_LOCAL_MOUNT_POINT_FOR_SOFTWARE

Location at which the NFS server is mounted on the host.

STORAGE_TYPE_FOR_DATA

The list of valid storage types are NFS, AGENT, and OmsShared.

STORAGE_NAME_FOR_DATA

The storage name as configured in the software library.

NFS_LOCAL_MOUNT_POINT_FOR_DATA

Location at which the NFS server is mounted on the host.

USER_INITIATED

Indicates if the profile initiated by end user ia a part of backup process or the database.

DB_TARGET_AVAILABLE

Indicates if the database target is available.

SOURCE_DB_PLATFORM_NAME

Platform name of source database. For example: Linux x86-64, Oracle Solaris on x86-64 (64-bit), etc.

PROFILE_SCHEDULE

Schedule for profile execution.

PROFILE_SINGLE_REFRESH

Single refresh of the profile.

PROFILE_PURGE_POLICY_TYPE

Type of profile purge policy. Accepted values are SNAPSHOTS or DAYS. The default value is NONE.

PROFILE_PURGE_POLICY_VALUE

Value of profile purge policy.

PROFILE_IMAGE_VERSION

Version of the profile image.

USE_EXISTING_BACKUP

Whether exiting backup is to be used.

3. Execute the following EM CLI verb to create a database profile, using the updated properties file as the input file.

emcli create_dbprofile
-input_file=data:"file:path"
[-schedule=
[frequency:interval|daily|weekly|monthly|yearly];
start_time:yy-MM-dd HH:mm;
end_time:yy-MM-dd HH:mm;
[repeat:#m];
[months:#,#,#,...];
[days:#,#,#,...];
[tz:{java timezone ID}];
[grace_period:xxx];
]
[-purge_policy=days|snapshots: number]

Samples:
emcli create_dbprofile -input_file=data:"/tmp/snapprofile.txt" -schedule="start_time:14-06-23 01:00;frequency:yearly;end_time:14-05-28 01:00;days:1,3,8,7,10;months:1,3,9,11,1" -purge_policy="SNAPSHOTS:1"

emcli create_dbprofile -input_file=data:"/tmp/snapprofile.txt" -schedule="start_time:14-05-28 01:00;frequency:monthly;end_time:14-05-28 01:00;days:1,3,8,7" -purge_policy="DAYS:1"

emcli create_dbprofile -input_file=data:"/tmp/snapprofile.txt" -schedule="start_time:14-05-28 01:00;frequency:weekly;end_time:14-05-28 01:00;days:1,3,7" -purge_policy="SNAPSHOTS:1"

emcli create_dbprofile -input_file=data:"/tmp/snapprofile.txt" -schedule="start_time:14-05-28 01:00;frequency:daily;end_time:14-05-28 01:00" -purge_policy="DAYS:1" -purge_policy="SNAPSHOTS:1"

emcli create_dbprofile -input_file=data:"/tmp/snapprofile.txt" -schedule="start_time:14-07-22 03:00;frequency:interval;end_time:14-07-22 07:00;repeat:30" -purge_policy="SNAPSHOTS:1"

Sample output:
Create Database Profile deployment procedure has been submitted successfully with the instance name :
'CreateDatabaseProfile_SYSMAN_06_23_2014_01_00_PM' and execution_guid='0AE6096550756B26E0539878B10A6FF5'
You can track the status of profile creation using the following command:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

4. Verify the status of the database profile creation by executing the following EM CLI verb.

emcli get_instance_status
[-instance={instance guid}]
[-exe=execution guid]
[-xml
[-details]
[-showJobOutput]
[-tailLength={last N characters}]]

Sample:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5

Sample Output:
0AE6096550716B26E0539878B10A6FF5, PROFILE, CreateDatabaseProfile_SYSMAN_12_23_2014_23_18_PM, Running

To know the complete status of each of the steps in xml format, execute the following command.

emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

47.6.6 Editing a Database Profile Using EM CLI Verbs

This section describes the procedure to edit a database profile using EM CLI verbs.

Figure 47-2 Editing a Database Profile Using EM CLI Verbs

Follow the steps below to edit a database profile:

1. Identify the location of the database profile in the software library.
Execute the following command to locate the database profile.

emcli list_dbprofiles
[-details]

Sample command:
emcli list_dbprofiles

Sample output:
Name=Profile_snap,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/
Name=Profile_rman,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/

2. Edit the database profile with the following command, using the obtained location.

emcli edit_dbprofile
-comp_loc="Database Profile component location in software library"
[-schedule=
[frequency:interval| daily |weekly|monthly|yearly];
start_time:yy-MM-dd HH:mm;
end_time:yy-MM-dd HH:mm;
[repeat:#m];
[months:#,#,#,...];
[days:#,#,#,...];
[tz:{java timezone ID}];
[grace_period:xxx];
]
[-purge_policy=days| snapshots: number]

Sample command:
emcli edit_dbprofile -comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/Profile_snap " -schedule="start_time:14-07-22 03:00;frequency:interval;end_time:14-07-22 23:00;repeat:30" -purge_policy="DAYS:1"

Sample output:
The Create Database Profile deployment procedure with new schedule and purge policy has been submitted successfully with the instance name :
'CreateDatabaseProfile_SYSMAN_07_22_2014_03_00_PM' and execution_guid= '0AE6096550756B26E0539878B10A6FF5'
You can track the status of profile creation using the following command:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

3. Verify the status of the database profile edit by executing the following EM CLI verb.

emcli get_instance_status
[-instance={instance guid}]
[-exe=execution guid]
[-xml
[-details]
[-showJobOutput]
[-tailLength={last N characters}]]

Sample:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5

Sample output:
0AE6096550716B26E0539878B10A6FF5, PROFILE, CreateDatabaseProfile_SYSMAN_07_22_2014_03_00_PM, Running

To know the complete status of each of the steps in xml format, execute the following command.

emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

47.6.7 Deleting a Database Profile Using EM CLI Verbs

This section describes the procedure to delete a database profile using EM CLI verbs.

Figure 47-3 Deleting a Database Profile Using EM CLI Verbs

Follow the steps below to delete a database profile:

1. Identify the location and version of the database profile component in the software library.
Execute the following command to locate the database profile.

emcli list_dbprofiles
[-details]

Sample command:
emcli list_dbprofiles

Sample output:
Name=Profile_snap,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/,Type=STORAGE_SNAPSHOT,Status=Ready,Description= Database Reference Profile 05-11-2014 12:40 PM from database.mycompany.com
Version: STORAGE SNAPSHOT_05_11_2014_12_40_PM: ,contains=STORAGE_SNAPSHOT(s),removalOverdue=0, sourceDatabaseName=database.mycompany.com.

Name=Profile_rman,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/,Type=RMAN,Status=Ready,Description=Database Reference Profile 04-11-2014 12:40 PM from database.mycompany.com
Version : RMAN_04_11_2014_12_40_PM,contains=RMAN(s),removalOverdue=0, sourceDatabaseName=database.mycompany.com.

2. Delete the database profile with the following command, using the obtained location and version.

emcli delete_dbprofile
-comp_loc="Database Profile component location in software library"
[-version="Database Profile component version name"]

Sample command:
emcli delete_dbprofile -comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/Profile_snap"

emcli delete_dbprofile -comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/ Profile_snap" -version="STORAGE SNAPSHOT__05_11_2014_12_40_PM"

Sample output:
Delete Database Profile deployment procedure has been submitted successfully with the instance name :'DeleteDatabaseProfile_SYSMAN_07_22_2014_03_00_PM' and execution_guid='0AE6096550756B26E0539878B10A6FF5'
You can track the status of profile creation using the following command:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

3. Verify the status of the database profile deletion by executing the following EM CLI verb.

emcli get_instance_status
[-instance={instance guid}]
[-exe=execution guid]
[-xml
[-details]
[-showJobOutput]
[-tailLength={last N characters}]]

Sample:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5

Sample output:
0AE6096550716B26E0539878B10A6FF5, PROFILE, DeleteDatabaseProfile_SYSMAN_07_22_2014_03_00_PM, COMPLETED

To know the complete status of each of the steps in xml format, execute the following command.

emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

47.6.8 Viewing All the Database Profiles

Execute the following command to view all the database profiles with their details.

emcli list_dbprofiles
[-details]

Sample command:
emcli list_dbprofiles

Sample output:
Name=Profile_snap,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/,Type=STORAGE_SNAPSHOT,Status=Ready,Description= Database Reference Profile 05-11-2014 12:40 PM from database.mycompany.com
Version: STORAGE SNAPSHOT_05_11_2014_12_40_PM: ,contains=STORAGE_SNAPSHOT(s),removalOverdue=0, sourceDatabaseName=database.mycompany.com.

Name=Profile_rman,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/,Type=RMAN,Status=Ready,Description=Database Reference Profile 04-11-2014 12:40 PM from database.mycompany.com
Version : RMAN_04_11_2014_12_40_PM,contains=RMAN(s),removalOverdue=0, sourceDatabaseName=database.mycompany.com.

47.6.9 Refreshing a Database Profile Using EM CLI Verbs

This section describes the procedure to refresh a database profile using EM CLI verbs.

Figure 47-4 Refreshing a Database Profile Using EM CLI Verbs

Follow the steps below to refresh a database profile:

1. Identify the location of the database profile component in the software library.
Execute the following command to locate the database profile.

emcli list_dbprofiles
[-details]

Sample command:
emcli list_dbprofiles

Sample output:
Name=Profile_snap,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/
Name=Profile_rman,Location=Database Provisioning Profiles/11.2.0.4.0/linux_x64/

2. Refresh the database profile with the following command, using the obtained location.

emcli refresh_dbprofile
-comp_loc="Database Profile component location in software library"

Sample command:
emcli refresh_dbprofile -comp_loc="Database Provisioning Profiles/11.2.0.4.0/linux_x64/ Profile_snap"

Sample output:
A Refresh Single Profile procedure has been submitted successfully with the instance name :
'RefreshSingleProfile_SYSMAN_07_22_2014_03_00_PM' and execution_guid= '0AE6096550756B26E0539878B10A6FF5'
You can track the status of profile creation using the following command:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

3. Verify the status of the database profile refresh by executing the following EM CLI verb.

emcli get_instance_status
[-instance={instance guid}]
[-exe=execution guid]
[-xml
[-details]
[-showJobOutput]
[-tailLength={last N characters}]]

Sample:
emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5

Sample output:
0AE6096550716B26E0539878B10A6FF5, PROFILE, RefreshSingleProfile_SYSMAN_07_22_2014_03_00_PM, Running

To know the complete status of each of the steps in xml format, execute the following command.

emcli get_instance_status -exe=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

47.7 Service Template EM CLI Verbs

The table below lists the supported verbs for Service Template resource.

The .json file content samples are provided in Section 47.8, "Service Template Executable .json Files".

Table 47-17 Service Template EM CLI Verbs

Verb

Description

Format

emcli create_service_template

Creates a database, schema, or pluggable database service template.

The input_file should be a JSON based metadata file which should have the necessary configuration for the specific service template creation.

Samples of the JSON service executable metadata files are available at Section 47.8, "Service Template Executable .json Files".

Examples:

- Database service template-

emcli create_service_template
-name="Database service template"
-service_family="DBAAS"
-service_type="DB"
-pool_target_type="oracle_cloud_zone"
-software_pools="MyPoolOH"
-roles="SSA_USER_ROLE"
-description="Database small instance service template."
-input_file="data:executable.json"

Sample Output:
Service Template "My Service Template" created successfully

- Schema service template-

emcli create_service_template
-name="Schema service template"
-service_family="DBAAS"
-service_type="SCHEMA"
-pool_target_type="schaas_pool"
-software_pools="MySCHPool"
-roles="SSA_USER_ROLE"
-description="Schema small instance service template."
-input_file="data:executable.json

Sample Output:
Service Template "My Schema Service Template" created successfully

- Pluggable database service template -

emcli create_service_template
-name="PDB service template"
-service_family="DBAAS"
-service_type="PDB"
-pool_target_type="pdbaas_pool"
-software_pools="MyPDBPool"
-roles="SSA_USER_ROLE"
-description="PDB small instance service template."
-input_file="data:executable.json"

Sample Output:
Service Template "My PDB Service Template" created successfully.

emcli create_service_template

-name="<Name of Service Template>"

-service_family="<Service family for which the Service Template is being created>"

-service_type="<Service type for which the Service Template is being created>"]

-pool_target_type="Target type of Software Pools to be associated with the Service Template"

-software_pools="<SwPool1,SwPool2,SwPool3,...>"

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

[-description="<Description of Service Template>"]

[-input_file="data:<Name of Service executable MetaData File>"]

emcli delete_service_template

Deletes the Service template.

Example:

emcli delete_service_template
-name="Database service template"
-service_family="DBAAS"
Sample Output:
Service Template with name " Database service template " and service family " DBAAS " deleted successfully.

emcli delete_service_template

-name="<Name of Service Template>"]

-service_family="<Service family to which the Service Template belongs>"]

emcli get_service_templates

Retrieves the list of available service templates based on the service family passed.

Example:

emcli get_service_templates
-service_family="DBAAS"
Sample Output:
Name Service Family                      Description
ServiceTemplate1                         DBAAS ServiceTemplate1Description

emcli get_service_templates

[-service_family="<Service family filter used for filtering the service templates>"]

47.8 Service Template Executable .json Files

Samples of Service Template executable .json files are listed below:

- DBCA Based Service Template .json File

- Standby DBCA Based Service Template .json File

- RMAN Based Single Instance Database Service Template .json File

- RMAN Based Single Instance Database with Single Instance Standby Service Template .json File

- RMAN Based RAC One Node Database Service Template .json File

- RMAN Based RAC One Node Database with Standby Service Template .json File

- RMAN Based RAC Database with Single Instance Standby Service Template .json File

- RAC Database with Standby Using a DBCA Template Service Template .json File

- DNFS Based Database Service Template .json File

- Snap Clone Single Instance Database with Archiving Enabled Service Template .json File

- Schema Based Service Template .json File

- Pluggable Database Service Template .json File

- RAC Pluggable Database Using an Empty Pluggable Database Service Template .json File

- RAC Pluggable Database Using a Profile Pluggable Database Service Template .json File

- Clone DB Based Service Template .json File

- Full Clone Using an RMAN Duplicate Service Template .json File

- Snapclone Database Using Live Clone Template on EMC Storage Service Template .json File

47.8.1 DBCA Based Service Template .json File

{
"name": "Create ST for SI Db using DBCA Template - ASM Subh_2",
"description": "Creates Single Instance DB",
"roles": [ "SSA_USER_ROLE" ],
"serviceType": "DB",
"serviceTemplateTypeId": "61",
"rscProvAssocOption": [ "byRscProvInst" ],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [ "137F74D7A8359A60762ED550341A5F47" ],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [ { "name": "PROFILE_COMPONENT_URN", "value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:269BA6C90E6A5000E053C075B10A51A3:0.1" } ],
"configurations": [
{ "name": "REF_ZONE", "value": "Salt Lake City Zone" },
{ "name": "REF_POOL", "value": "SI Databases Pool_Oracle_DB_11g" },
{ "name": "REF_HOST", "value": "xyz.example.com" },
{ "name": "REF_TGT", "value": "xyz.example.com" },
{ "name": "DBCA_TEMPLATE:DB_STORAGE_TYPE", "value": "ASM" },
{ "name": "DBCA_TEMPLATE:REC_STORAGE_TYPE_SAME_AS_DB_FILES", "value": "Y" },
{ "name": "DBCA_TEMPLATE:FLASH_RECOVERY_AREA_SIZE", "value": "4038" },
{ "name": "DBCA_TEMPLATE:DATA_FILE_LOCATION", "value": "DATA" },
{ "name": "DBCA_TEMPLATE:REDO_FILE_LOCATION", "value": "RECO" },
{ "name": "DBCA_TEMPLATE:ARCHIVE_LOG_MODE", "value": "Y" },
{ "name": "DBCA_TEMPLATE:RECOVERY_FILE_LOCATION", "value": "RECO" },
{ "name": "DATABASE_TYPE", "value": "oracle_database" },
{ "name": "COMMON_DOMAIN_NAME", "value": "us.example.com" },
{ "name": "ORACLE.SYSMAN.SSA.PROVISIONING_TYPE", "values": [ "DBCA_TEMPLATE" ] },
{ "name": "ENTITY_TYPE", "value": "USE_PROFILE" },
{ "name": "PROFILE_COMPONENT_URN", "value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:269BA6C90E6A5000E053C075B10A51A3:0.1" },
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY"
},
{ "name": "SID_OPTION", "value": "ssauser" },
{ "name": "SELECT_ORACLE_HOME_OPTION", "value": "SELECT_ORACLE_HOME_AT_RUNTIME"},
{ "name": "COMMON_DB_SYS_PASSWORD", "value": "welcome"},
{ "name": "DB_ADMIN_PASSWORD_SAME", "value": "true" },
{ "name": "INIT_PARAMS", "values": [
"sga_target=1073741824",
"pga_aggregate_target=1073741824"
]
},
{ "name": "LISTENER_PORT", "value": "1521" },
{ "name": "TARGET_PROP_LIST",
"values": [
"Site:null:false:false",
"Contact:xxxx:false:true",
"Downtime Contact:null:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:Testing:false:true",
"Line of Business:null:false:false"
]
}
]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.2 Standby DBCA Based Service Template .json File

{
"name":"TestDbTemplate1",
"serviceType":"DB",
"serviceFamily":"DBAAS",
"description":"This is a test database dbca service template 1",
"poolIds":[ "D125A1536E9ADC36CC24EAB058B9E7AC" ],
"serviceExecutableMeta":{
"type":"CDP",
"configurations":[
{ "name":"PROFILE_COMPONENT_URN", "value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:F1EA40D2AE964994E0436051F20AFE32:0.1" },
{ "name":"DATABASE_TYPE","value":"rac_database" },
{ "name":"COMMON_DB_SYSTEM_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_DBSNMP_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_SYS_PASSWORD","value":"welcome" },
{ "name":"DB_ADMIN_PASSWORD_SAME", "value":"true" },
{ "name":"INSTANCE_COUNT","value":"2" },
{ "name":"SID_OPTION", "value":"ssauser  "},
{ "name":"COMMON_DB_SID","value":"mydb1" },
{ "name":"COMMON_DOMAIN_NAME",  "value":"us.example.com" },
{ "name":"LISTENER_PORT", "value":"1521"},
{ "name":"STAGE_LOCATION", "value":"/scratch" },
{ "name":"REF_ZONE", "value":"SLC00ECPQ_ZONE" },
{ "name":"REF_POOL",   "value":"PRIMARY_RAC_POOL" },
{ "name":"REF_HOST", "value":"xyxy.example.com" },
{ "name":"REF_TGT","value":"xxy.example.com" },
{ "name":"ROLE_NAME","value":"ROLE_Oct_31_2014_17_59_PM" },
{ "name":"ROLE_DESC","value":"New database role to be assigned to master account." },
{ "name":"USER_PRIVILEGES","value":"CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY" },
{ "name":"DEFAULT_DATABASE_SIZE","value":"small" },
{ "name":"DATABASE_SIZES","value":"","values":["small","medium"]},
{ "name":"TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false",
"Location:null:false:false",
"Comment:null:false:false",
"LifeCycle Status:null:false:false",
"Line of Business:null:false:false",
"Contact:null:false:false"]
},
{ "name":"CUSTOM_TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false
]
},
{ "name":"DBCA_TEMPLATE:DB_STORAGE_TYPE",  "value":"ASM" },
{ "name":"DBCA_TEMPLATE:DATA_FILE_LOCATION","value":"DATA" },
{ "name":"DBCA_TEMPLATE:REC_STORAGE_TYPE_SAME_AS_DB_FILES", "value":"Y" },
{ "name":"DBCA_TEMPLATE:ARCHIVE_LOG_MODE", "value":"Y" },
{ "name":"DBCA_TEMPLATE:FLASH_RECOVERY_AREA_SIZE", "value":"2048" },
{ "name":"DBCA_TEMPLATE:RECOVERY_FILE_LOCATION","value":"RECO" },
{ "name":"DBCA_TEMPLATE:REDO_FILE_LOCATION", "value":"RECO"  },
{
"name":"INIT_PARAMS",
"subconfigurations":[
{ "name":"INIT_PARAMS:1", "value":"sga_target=1073741824" },
{ "name":"INIT_PARAMS:2", "value":"pga_aggregate_target=1073741824"  }
]
},
{ "name":"STANDBY_REQUIRED","value":"true" },
{ "name":"STANDBY_REQUIRED_LOCK","value":"false" },
{ "name":"STANDBY_WORK_DIR","value":"/tmp" },
{ "name":"PRIMARY_PROTECTION_MODE","value":"MAXIMIZE AVAILABILITY" },
{ "name":"DBAAS_SSA_STANDBY_CUSTOM_PRE_SCRIPTS_URN","value":"" },
{ "name":"DBAAS_SSA_STANDBY_CUSTOM_POST_SCRIPTS_URN","value":"" },
{ "name":"STANDBY_DB_DETAILS","value":"","values":[
"pool=RAC_11204_Tier_2;databaseSIDPrefix=;databaseType=rac_database;standbyConfigName=Near DR;redoMode=SYNC;realtimeQuery=true;databaseRACInstanceCount=2;databaseDelay=30;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com",
"pool=SI_11204;databaseSIDPrefix=;databaseType=oracle_database;standbyConfigName=Far DR;redoMode=ASYNC;realtimeQuery=false;databaseRACInstanceCount=2;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"]}

]
}
}

47.8.3 RMAN Based Single Instance Database Service Template .json File

{
"name": "Database Service - RMAN Based with archiving with SI Standby",
"description": "This creates Database Archiving log mode.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"1898CF93BD39C19BF032672271BC4B44"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
}
],
"configurations": [
{
"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
},
{
"name": "SELECT_ORACLE_HOME_OPTION",
"value": "SELECT_ORACLE_HOME_FROM_REQUEST"
},
{
"name": "REF_TGT",
"value": "xyz.example.com"
},
{
"name": "REF_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_ZONE",
"value": "Salt Lake City Zone"
},
{
"name": "zoneTargetName",
"value": "Salt Lake City Zone"
},
{
"name": "REF_POOL",
"value": "Databases Pool"
},
{
"name": "DATABASE_TYPE",
"value": "oracle_database"
},
{
"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"
},
{
"name": "LISTENER_PORT",
"value": "1521"
},
{
"name": "PROFILE_VERSION",
"value": "latest"
},
{
"name": "COMMON_DB_SID",
"value": "db"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"
},
{
"name": "RMAN.DB_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_SIZE",
"value": "4038"
},
{
"name": "RMAN.USE_ARCHIVING",
"value": "YES"
},
{
"name": "RMAN.DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"
},
{
"name": "RMAN.REDO_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.RECOVERY_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.WORK_DIR_LOC",
"value": "/tmp/work"
},
{
"name": "RMAN.DB_ADMIN_PASSWORD_SAME",
"value": "Y"
},
{
"name": "RMAN.DATABASE_PASSWORDS",
"value": "welcome"
},
{
"name": "RMAN.BACKUP_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "RMAN.USE_OFA",
"value": "N"
},
{
"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"
},
{
"name": "STANDBY_DB_DETAILS",
"values": [
"pool=Near DR Pool;databaseSIDPrefix=;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
}
]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.4 RMAN Based Single Instance Database with Single Instance Standby Service Template .json File

{
"name": "Database Service - RMAN Based with archiving with SI Standby",
"description": "This creates Database Archiving log mode.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"1898CF93BD39C19BF032672271BC4B44"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
}
],
"configurations": [
{
"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
},
{
"name": "SELECT_ORACLE_HOME_OPTION",
"value": "SELECT_ORACLE_HOME_FROM_REQUEST"
},
{
"name": "REF_TGT",
"value": "xyz.example.com"
},
{
"name": "REF_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_ZONE",
"value": "Salt Lake City Zone"
},
{
"name": "zoneTargetName",
"value": "Salt Lake City Zone"
},
{
"name": "REF_POOL",
"value": "Databases Pool"
},
{
"name": "DATABASE_TYPE",
"value": "oracle_database"
},
{
"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"
},
{
"name": "LISTENER_PORT",
"value": "1521"
},
{
"name": "PROFILE_VERSION",
"value": "latest"
},
{
"name": "COMMON_DB_SID",
"value": "db"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"
},
{
"name": "RMAN.DB_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_SIZE",
"value": "4038"
},
{
"name": "RMAN.USE_ARCHIVING",
"value": "YES"
},
{
"name": "RMAN.DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"
},
{
"name": "RMAN.REDO_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.RECOVERY_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.WORK_DIR_LOC",
"value": "/tmp/work"
},
{
"name": "RMAN.DB_ADMIN_PASSWORD_SAME",
"value": "Y"
},
{
"name": "RMAN.DATABASE_PASSWORDS",
"value": "welcome"
},
{
"name": "RMAN.BACKUP_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "RMAN.USE_OFA",
"value": "N"
},
{
"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"
},
{
"name": "STANDBY_DB_DETAILS",
"values": [
"pool=Near DR Pool;databaseSIDPrefix=;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
}
]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.5 RMAN Based RAC One Node Database Service Template .json File

{
"name": "Create Databases on RAC One database",
"description": "Creates Databases on RAC.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"647E8750A1C3835557165B499B269FB3"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"
}
],
"configurations": [
{"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"},
{"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"},
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name": "REF_TGT",
"value": "abc.example.com"},
{"name": "REF_HOST",
"value": "adc.example.com"},
{"name": "REF_ZONE",
"value": "Salt Lake City Zone"},
{"name": "zoneTargetName",
"value": "Salt Lake City Zone"},
{"name": "REF_POOL",
"value": "RAC Databases Pool"},
{"name": "DATABASE_TYPE",
"value": "rac_database"},
{"name": "IS_RAC_ONE",
"value": "Y"},
{"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"},
{"name": "LISTENER_PORT",
"value": "1521"},
{"name": "PROFILE_VERSION",
"value": "latest"},
{"name": "COMMON_DB_SID",
"value": "db"},
{"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"},
{"name": "RMAN:DB_STORAGE_TYPE",
"value": "FS"},
{"name": "RMAN:FRA_SIZE",
"value": "4038"},
{"name": "RMAN:USE_ARCHIVING",
"value": "NO"},
{"name": "RMAN:DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"},
{"name": "RMAN:WORK_DIR_LOC",
"value": "/tmp/work"},
{"name": "RMAN:DB_ADMIN_PASSWORD_SAME",
"value": "Y"},
{"name": "RMAN:DATABASE_PASSWORDS",
"value": "welcome"},
{"name": "RMAN:BACKUP_LOCATION",
"value": "/oradbnas/backups/rman/"},
{"name": "RMAN:USE_OFA",
"value": "N"},
{"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"}
]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.6 RMAN Based RAC One Node Database with Standby Service Template .json File

{
"name": "RAC One Database Provisioning with RAC One Standby and SI Standby",
"description": "Creates RAC One Databases with RAC One Standby and SI Standby.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"647E8750A1C3835557165B499B269FB3"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"}
],
"configurations": [
{"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"},
{"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"},
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name": "REF_TGT",
"value": "adc.example.com"},
{"name": "REF_HOST",
"value": "adc.example.com"},
{"name": "REF_ZONE",
"value": "Salt Lake City Zone"},
{"name": "zoneTargetName",
"value": "Salt Lake City Zone"},
{"name": "REF_POOL",
"value": "RAC Databases Pool"},
{"name": "DATABASE_TYPE",
"value": "rac_database"},
{"name": "IS_RAC_ONE",
"value": "Y"},
{"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"},
{"name": "LISTENER_PORT",
"value": "1521"},
{"name": "PROFILE_VERSION",
"value": "latest"},
{"name": "COMMON_DB_SID",
"value": "db"},
{"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"},
{"name": "RMAN:DB_STORAGE_TYPE",
"value": "FS"},
{"name": "RMAN:FRA_SIZE",
"value": "4038"},
{"name": "RMAN:USE_ARCHIVING",
"value": "NO"},
{"name": "RMAN:DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"},
{"name": "RMAN:WORK_DIR_LOC",
"value": "/tmp/work"},
{"name": "RMAN:DB_ADMIN_PASSWORD_SAME",
"value": "Y"},
{"name": "RMAN:DATABASE_PASSWORDS",
"value": "welcome"},
{"name": "RMAN:BACKUP_LOCATION",
"value": "/oradbnas/backups/rman/"},,
{"name": "RMAN:USE_OFA",
"value": "N"},
{"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"},
{"name": "STANDBY_REQUIRED",
"value": "true"},
{"name": "STANDBY_DB_DETAILS",
"value": "",
"values": [
"pool=SI Databases Zone - Oracle 11g - Standby;databaseSIDPrefix=st;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
}
]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.7 RMAN Based RAC Database with Single Instance Standby Service Template .json File

{
"name" : "Create Databases on RAC with SI  Standby",
"description" : "Creates Databases on RAC.",
"serviceType" : "DB",
"serviceTemplateTypeId" : "81",
"rscProvAssocOption" : [ "byRscProvInst" ],
"resourceProvider" : {
"lookupCharacteristics" : [ {
"characteristics" : [ {
"name" : "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values" : [ "647E8750A1C3835557165B499B269FB3" ],
"targetType" : {
"targetType" : "oracle_cloud_zone",
"targetTypeName" : "Database Pool",
"parentTargetType" : "self_service_zone",
"parentTargetTypeName" : "PaaS Infrastructure Zone"
}
} ],
"purposeId" : 1
} ]
},
"payloads" : [ {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"
} ],
"configurations" : [ {
"name" : "STAGE_LOCATION",
"value" : "/scratch/emga/backups/rman/"},
{"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"}
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name" : "REF_TGT",
"value" : "adc.us.example.com"},
{"name" : "REF_HOST",
"value" : "adc.us.example.com"},
{"name" : "REF_ZONE",
"value" : "Salt Lake City Zone"},
{"name" : "zoneTargetName",
"value" : "Salt Lake City Zone"},
{"name" : "REF_POOL",
"value" : "RAC Databases Pool"},
{"name" : "DATABASE_TYPE",
"value" : "oracle_database"},
{"name" : "COMMON_DB_SYS_PASSWORD",
"value" : "welcome"},
{"name" : "LISTENER_PORT",
"value" : "1521"},
{"name" : "PROFILE_VERSION",
"value" : "latest"},
{"name" : "COMMON_DB_SID",
"value" : "db"},
{"name" : "TARGET_PROP_LIST",
"values" : [ "Contact:9980697299:false:false", "Location:null:false:false", "LifeCycle Status:null:false:false", "Department:null:false:false", "Comment:null:false:false", "Line of Business:null:false:false" ]},
{"name" : "USER_PRIVILEGES",
"value" : "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"},
{"name" : "RMAN:DB_STORAGE_TYPE",
"value" : "FS"},
{"name" : "RMAN:FRA_SIZE",
"value" : "4038"},
{"name" : "RMAN:USE_ARCHIVING",
"value" : "NO"},
{"name" : "RMAN:DATA_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/oradata"},
{"name" : "RMAN:WORK_DIR_LOC",
"value" : "/tmp/work"},
{"name" : "RMAN:DB_ADMIN_PASSWORD_SAME",
"value" : "Y"},
{"name" : "RMAN:DATABASE_PASSWORDS",
"value" : "welcome"},
{"name" : "RMAN:BACKUP_LOCATION",
"value" : "/oradbnas/backups/rman/"},
{"name" : "RMAN:USE_OFA",
"value" : "N"},
{"name" : "COMMON_DOMAIN_NAME",
"value" : "us.example.com"},
{"name":"CUSTOM_PRE_CREATE_SCRIPTS_URN",
"value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},,
{"name":"CUSTOM_POST_CREATE_SCRIPTS_URN",
"value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},,
{"name": "STANDBY_REQUIRED",
"value": "true"},
{"name": "STANDBY_DB_DETAILS",
"value": "",
"values": [
"pool=SI Databases Zone - Oracle 11g - Standby;databaseSIDPrefix=st;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
}
]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.8 RAC Database with Standby Using a DBCA Template Service Template .json File

{
"name": "Create RAC Db with Standby using DBCA Template - BofA -ASM",
"description": "Service Template for Non-CDB; 12cR1_2(12.1.0.2); RAC; ASM",
"serviceType": "DB",
"serviceTemplateTypeId": "61",
"rscProvAssocOption": [
"byRscProvInst"
],
"roles": [
"SSAUSERROLE"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"4C5795E605D71F59BAF9F6AD702E25E1"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:246E84D11ED13BD0E050F90AE5852BC8:0.1"
}
],
"configurations": [
{
"name": "REF_ZONE",
"value": "Clusters Zone - Oracle DB 12c"
},
{
"name": "REF_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_POOL",
"value": "RAC Databases Pool_Oracle_DB_12c"
},
{
"name": "DBCA_TEMPLATE:DB_STORAGE_TYPE",
"value": "ASM"
},
{
"name": "DBCA_TEMPLATE:REC_STORAGE_TYPE_SAME_AS_DB_FILES",
"value": "Y"
},
{
"name": "DBCA_TEMPLATE:ARCHIVE_LOG_MODE",
"value": "N"
},
{
"name": "DBCA_TEMPLATE:FLASH_RECOVERY_AREA_SIZE",
"value": "4038"
},
{
"name": "DBCA_TEMPLATE:DATA_FILE_LOCATION",
"value": "DATA"
},
{
"name": "DBCA_TEMPLATE:REDO_FILE_LOCATION",
"value": "DATA1"
},
{
"name": "DBCA_TEMPLATE:RECOVERY_FILE_LOCATION",
"value": "DATA1"
},
{
"name": "DATABASE_TYPE",
"value": "rac_database"
},
{
"name": "INSTANCE_COUNT",
"value": "2"
},
{
"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"
},
{
"name": "ORACLE.SYSMAN.SSA.PROVISIONING_TYPE",
"values": [
"DBCA_TEMPLATE"
]
},
{
"name": "ENTITY_TYPE",
"value": "USE_PROFILE"
},
{
"name": "REF_TGT",
"value": "xyz.example.com"
},
{
"name": "SID_OPTION",
"value": "prefix"
},
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:246E84D11ED13BD0E050F90AE5852BC8:0.1"
},
{
"name": "PROFILE_VERSION",
"value": "latest"
},
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY"
},
{
"name": "COMMON_DB_SID",
"value": "RFTDB"
},
{
"name": "INIT_PARAMS",
"subconfigurations": [
"sga_target=1073741824",
"pga_aggregate_target=1073741824"
]
},
{
"name": "SELECT_ORACLE_HOME_OPTION",
"value": "SELECT_ORACLE_HOME_AT_RUNTIME"
},
{
"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome1"
},
{
"name": "DB_ADMIN_PASSWORD_SAME",
"value": "true"
},
{
"name": "LISTENER_PORT",
"value": "1521"
},
{
"name": "STANDBY_REQUIRED",
"value": "true"
},
{
"name": "STANDBY_DB_DETAILS",
"value": "",
"values": [
"pool=SI Databases Zone - Oracle 11g - Standby;databaseSIDPrefix=st;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
},
{
"name": "DATABASE_SIZES",
"values": [
"Big",
"Small"
]
},
{
"name": "DEFAULT_DATABASE_SIZE",
"value": "Big"
}
]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.9 DNFS Based Database Service Template .json File

{
"name" : "DB Clones",
"description" : "This clones a database based on NFS.",
"serviceType" : "DB",
"serviceTemplateTypeId" : "81",
"rscProvAssocOption" : [ "byRscProvInst" ],
"resourceProvider" : {
"lookupCharacteristics" : [ {
"characteristics" : [ {
"name" : "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values" : [ "1898CF93BD39C19BF032672271BC4B44" ],
"targetType" : {
"targetType" : "oracle_cloud_zone",
"targetTypeName" : "Database Pool",
"parentTargetType" : "self_service_zone",
"parentTargetTypeName" : "PaaS Infrastructure Zone"
}
} ],
"purposeId" : 1
} ]
},
"payloads" : [ {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
} ],
"configurations" : [ {
"name" : "STAGE_LOCATION",
"value" : "/scratch/emga/backups/rman/"}
{"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"}
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name" : "REF_TGT",
"value" : "abc.example.com"}
{"name" : "REF_HOST",
"value" : "abc.example.com"}
{"name" : "REF_ZONE",
"value" : "Salt Lake City Zone"}
{"name" : "zoneTargetName",
"value" : "Salt Lake City Zone"}
{"name" : "REF_POOL",
"value" : "Databases Pool"}
{"name" : "DATABASE_TYPE",
"value" : "oracle_database"}
{"name" : "COMMON_DB_SYS_PASSWORD",
"value" : "welcome"}
{"name" : "LISTENER_PORT",
"value" : "1521"}
{"name" : "PROFILE_VERSION",
"value" : "latest"}
{"name" : "COMMON_DB_SID",
"value" : "db"}
{"name" : "TARGET_PROP_LIST",
"values" : [ "Contact:9980697299:false:false", "Location:null:false:false", "LifeCycle Status:null:false:false", "Department:null:false:false", "Comment:null:false:false", "Line of Business:null:false:false" ]}
{"name" : "USER_PRIVILEGES",
"value" : "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"}
{"name" : "DNFS.DATA_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/oradata"}
{"name" : "DNFS.REDO_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/fast_recovery_area"}
{"name" : "DNFS.RECOVERY_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/fast_recovery_area"}
{"name" : "DNFS.FRA_SIZE",
"value" : "4038"}
{"name" : "DNFS.USE_ARCHIVING",
"value" : "YES"}
{"name" : "DNFS.WORK_DIR_LOC",
"value" : "/tmp/work"}
{"name" : "DNFS.DB_ADMIN_PASSWORD_SAME",
"value" : "Y"}
{"name" : "DNFS.BACKUP_LOCATION",
"value" : "/scratch/emga/backups/rman_image/"}
{"name" : "DNFS.USE_OFA",
"value" : "N"}
{"name" : "COMMON_DOMAIN_NAME",
"value" : "us.example.com"} ]
}

Note:
In the JSON body mentioned above:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.10 Snap Clone Single Instance Database with Archiving Enabled Service Template .json File

{
"name" : "Create Snap Database using Snapshots",
"description" : "Creates Databases on SI hosts.",
"serviceType" : "DB",
"serviceTemplateTypeId" : "81",
"rscProvAssocOption" : [ "byRscProvInst" ],
"resourceProvider" : {
"lookupCharacteristics" : [ {
"characteristics" : [ {
"name" : "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values" : [ "503073C7912B1C65B66E240C433012A9" ],
"targetType" : {
"targetType" : "oracle_cloud_zone",
"targetTypeName" : "Database Pool",
"parentTargetType" : "self_service_zone",
"parentTargetTypeName" : "PaaS Infrastructure Zone"
}
} ],
"purposeId" : 1
} ]
},
"payloads" : [ {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:247BF4B378FF253FE053C075B10A794A:0.1"
} ],
"configurations" : [ {
"name" : "STAGE_LOCATION",
"value" : "/scratch/emga/backups/rman/"
}, {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:247BF4B378FF253FE053C075B10A794A:0.1"
}, {
"name" : "REF_TGT",
"value" : "xyz.example.com"
}, {
"name" : "REF_HOST",
"value" : "xyz.example.com"
}, {
"name" : "REF_ZONE",
"value" : "Single Instances Zone"
}, {
"name" : "zoneTargetName",
"value" : "Single Instances Zone"
}, {
"name" : "REF_POOL",
"value" : "SI Databases Pool - Version 11_2_0_4"
}, {
"name" : "DATABASE_TYPE",
"value" : "oracle_database"
}, {
"name" : "COMMON_DB_SYS_PASSWORD",
"value" : "welcome"
}, {
"name" : "LISTENER_PORT",
"value" : "1521"
}, {
"name" : "PROFILE_VERSION",
"value" : "latest"
}, {
"name" : "COMMON_DB_SID",
"value" : "db"
}, {
"name" : "TARGET_PROP_LIST",
"values" : [ "Contact:9980697299:false:false", "Location:null:false:false", "LifeCycle Status:null:false:false", "Department:null:false:false", "Comment:null:false:false", "Line of Business:null:false:false" ]
}, {
"name" : "USER_PRIVILEGES",
"value" : "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"
}, {
"name" : "THIN_PROVISIONING:LISTENER_PORT",
"value" : "1522"
}, {
"name" : "THIN_PROVISIONING:REDO_LOG_GROUP_COUNT",
"value" : "2"
}, {
"name" : "THIN_PROVISIONING:TEMP_TABLESPACE_SIZE",
"value" : "520"
}, {
"name" : "THIN_PROVISIONING:USE_ARCHIVING",
"value" : "YES"
}, {
"name" : "THIN_PROVISIONING:MOUNT_POINT_LIST",
"values" : [ "/hkdb" ]
}, {
"name" : "THIN_PROVISIONING:MOUNT_ADDL_SIZE_LIST",
"values" : [ "5.0" ]
}, {
"name" : "THIN_PROVISIONING:REDO_LOG_FILE_TYPE",
"value" : "Same as source"
}, {
"name" : "INIT_PARAMS",
"values" : [ "sga_target=1073741824", "pga_aggregate_target=1073741824" ]
}, {
"name" : "COMMON_DOMAIN_NAME",
"value" : "us.example.com"
} ]
}

Note:
In the JSON body mentioned above:

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

47.8.11 Schema Based Service Template .json File

{
"name":"TestSchaasTemplate3",
"serviceType":"SCHEMA",
"serviceFamily":"DBAAS",
"description":"This is a test schaas service template 1",
"poolIds":[ "9D3187DE6B1115791D71D2827FB98558" ],
"roles":[
{ "name":"SSA_USER_ROLE1" }
],
"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":"ABC_ZONE" },
{ "name":"REF_POOL","value":"SCH_POOL" },
{ "name":"REF_HOST","value":"abc.mycompany.com" },
{ "name":"REF_DB","value":"simple.us.example.com" },
{ "name":"CREATE_SCHEMA_OPTION","value":"EMPTY_SCHEMAS" },
{ "name":"SCHAAS_CUSTOM_PRE_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{ "name":"SCHAAS_CUSTOM_POST_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{
"name":"REMAP_TABLESPACE_LIST",
"value":"",
"values":["TBSP1","TBSP2","TBSP3"]
},
{
"name":"REMAP_TABLESPACE_INIT_SIZE_LIST",
"value":"",
"values":["TBSP1:0.1","TBSP2:0.2","TBSP3:0.3"]
},
{
"name":"REMAP_TABLESPACE_INCR_SIZE_LIST",
"value":"",
"values":["TBSP1:0.1","TBSP2:0.2","TBSP3:0.3"]
},
{
"name":"REMAP_TABLESPACE_MAX_SIZE_LIST",
"value":"",
"values":["TBSP1:50.0","TBSP2:30","TBSP3:20"]
},

{ "name":"CREATE_SCHEMA_OPTION","value":"EMPTY_SCHEMAS" },
{
"name":"WORKLOADS",
"subconfigurations":[
{
"name":"WORK_LOADS:1",
"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"   }
]
}
]
}
]
}
}

47.8.12 Pluggable Database Service Template .json File

{
"name":"TestPDbTemplate1",
"serviceType":"PDB",
"serviceFamily":"DBAAS",
"description":"This is a test pluggable database service template 1",
"poolIds":[ "FF394120842D8C71CC92BE6A4D5A488E" ],
"roles":[
{ "name":"SSA_USER_ROLE1" }
],
"serviceExecutableMeta":{
"type":"CDP",
"configurations":[
{
"name":"TABLESPACE_ENCRYPTION_ALGORITHM",
"subconfigurations":[
{  "name":"name", "value":"NONE" }
]
},
{  "name":"MAX_TABLESPACE_ALLOWED", "value":"2" },
{  "name":"PDB_SID_PREFIX", "value":"mypdb" },
{  "name":"ENFORCE_STORAGE_CONSTRAINT", "value":"NO_LIMIT" },
{  "name":"AUTO_EXTEND_BLOCK_SIZE","value":"1024" },
{  "name":"REF_DATA_ZONE", "value":"PDB_Zone" },
{  "name":"REF_DATA_TARGET", "value":"database" },
{  "name":"REF_DATA_TARGET_TYPE", "value":"oracle_database" },
{  "name":"REF_DATA_POOL","value":"PDB_POOL" },
{  "name":"REF_DATA_HOST", "value":"abc.mycompany.com" },
{  "name":"SELECT_TARGET_OPTION", "value":"SELECT_TARGET_FROM_REQUEST" },
{  "name":"CREATE_PDB_OPTION", "value":"EMPTY_PDB" },
{"name":"PDBAAS_CUSTOM_PRE_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{"name":"PDBAAS_CUSTOM_POST_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{  "name":"PRIVILEGES",
"value":"",
"values":["CREATE TYPE","CREATE VIEW","CREATE DIMENSION","CREATE SESSION","CREATE TRIGGER","CREATE OPERATOR","CREATE SYNONYM","CREATE TABLE","CREATE PROCEDURE","CREATE INDEXTYPE","CREATE SEQUENCE"]
},
{  "name":"ROLE_OPTION","value":"CUSTOM_NEW_ROLE" },
{
"name":"INIT_PARAMS",
"subconfigurations":[
{ "name":"INIT_PARAMS:1", "value":"*.cursor_sharing=EXACT" },
{ "name":"INIT_PARAMS:2", "value":"*.open_cursors=200"  }
]
},
{
"name":"WORKLOADS",
"subconfigurations":[
{
"name":"WORK_LOADS:1",
"subconfigurations":[
{ "name":"name", "value":"SmallPdb" },
{ "name":"description", "value":"small workload" },
{  "name":"default", "value":"N" },
{  "name":"CPU", "value":"2" },
{  "name":"Memory", "value":"2048" },
{  "name":"Storage", "value":"1024" },
{  "name":"Sessions", "value":"100" }
]
}
]
}
]
}
}

Note:
In the table above, the SELECT_TARGET_OPTION parameter defines if the SSA User has the option to select the Container Database (CDB) while requesting for a PDB. If the value for the parameter is set as SELECT_TARGET_FROM_REQUEST, then the SSA User has the option to choose the CDB. If no value is defined, or if the value is set to SELECT_TARGET_AT_RUNTIME, then the placement algorithm selects the CDB.

47.8.13 RAC Pluggable Database Using an Empty Pluggable Database Service Template .json File

{
"name": "Create RAC PDBs using empty PDB option",
"description": "Creates PDBs on cluster.",
"serviceType": "PDB",
"serviceTemplateTypeId": "94",
"rscProvAssocOption": [
"byRscProvInst"
],
"roles": [
"SSA_USER_ROLE"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.PDBAAS_POOL",
"values": [
"DFB8F2A53429AF99EF2020C56E11FEE9"
],
"targetType": {
"targetType": "pdbaas_pool",
"targetTypeName": "Pluggable Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "DBDELETE_PRESCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D511C1CFFE053C075B10AEF2D:0.1"
},
{
"name": "DBDELETE_POSTSCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D51201CFFE053C075B10AEF2D:0.1"
}
],
"characteristics": [
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName": "Department",
"value": "Development",
"required": true,
"editable": false,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName": "Location",
"values": "Bangalore",
"required": false,
"editable": true,
"visible": true
}
],
"configurations": [
{
"name": "REF_DATA_ZONE",
"value": "Single Instances Zone"
},
{
{
"name":SELECT_TARGET_OPTION"
"value":SELECT_TARGET_FROM_REQUEST"
},
"name": "CUSTOM_ROLE_NAME",
"value": "PDBAAS_NOV_13_2015_16_51_PM"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Site:null:false:false",
"Contact:null:false:false",
"Downtime Contact:null:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:Development:true:true",
"Comment:This is for testing:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "PDBAAS_CUSTOM_PRE_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7B4E34E053C075B10A74AD:0.2"
},
{
"name": "WORKLOADS",
"subvalues": [
{
"name": "Small",
"subvalues": [
{
"name": "name",
"value": "SmallPdb"
},
{
"name": "description",
"value": "small workload"
},
{
"name": "default",
"value": "N"
},
{
"name": "CPU",
"value": "2"
},
{
"name": "Memory",
"value": "2"
},
{
"name": "Storage",
"value": "5"
},
{
"name": "Sessions",
"value": "100"
}
]
}
]
},
{
"name": "PRIVILEGES",
"type": "VECTOR",
"description": "List of privileges of custom new role that will be applied on pluggable database administrator.",
"displayName": "PRIVILEGES",
"required": false,
"secret": false,
"values": [
"CREATE SESSION",
"ALTER SESSION",
"CREATE DIMENSION",
"CREATE INDEXTYPE",
"CREATE ANY OPERATOR",
"CREATE ANY PROCEDURE",
"CREATE ANY SEQUENCE",
"CREATE ANY INDEX",
"CREATE JOB",
"CREATE ANY MATERIALIZED VIEW",
"CREATE ANY TABLE",
"CREATE ANY TRIGGER",
"CREATE ANY TYPE",
"CREATE ANY VIEW",
"CREATE ANY SYNONYM",
"CREATE ANY DIRECTORY",
"SELECT ANY DICTIONARY",
"SELECT ANY TABLE"
]
},
{
"name": "REF_DATA_TARGET_TYPE",
"value": "rac_database"
},
{
"name": "REF_DATA_ZONE",
"value": "Clusters Zone - Oracle DB 12c"
},
{
"name": "REF_DATA_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_DATA_TARGET",
"value": "cdbfs"
},
{
"name": "REF_DATA_POOL",
"value": "RAC Pluggable DBs"
},
{
"name": "PDBAAS_CUSTOM_POST_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7F4E34E053C075B10A74AD:0.2"
},
{
"name": "SELECT_TARGET_OPTION",
"value": "SELECT_TARGET_AT_RUNTIME"
},
{
"name": "MAX_TABLESPACE_ALLOWED",
"value": "1"
},

{
"name": "ROLE_OPTION",
"value": "CUSTOM_NEW_ROLE"
},
{
"name": "CREATE_PDB_OPTION",
"value": "EMPTY_PDB"
},{
"name": "INIT_PARAMS",
"values": [
"*.cursor_sharing=EXACT",
"*.open_cursors=300"
]
}

]
}

Note:
In the table above, the SELECT_TARGET_OPTION parameter defines if the SSA User has the option to select the Container Database (CDB) while requesting for a PDB. If the value for the parameter is set as SELECT_TARGET_FROM_REQUEST, then the SSA User has the option to choose the CDB. If no value is defined, or if the value is set to SELECT_TARGET_AT_RUNTIME, then the placement algorithm selects the CDB.

47.8.14 RAC Pluggable Database Using a Profile Pluggable Database Service Template .json File

{
"name": "Create RAC PDBs using Profile PDB option",
"description": "Creates PDBs on cluster.",
"serviceType": "PDB",
"serviceTemplateTypeId": "94",
"rscProvAssocOption": [
"byRscProvInst"
],
"roles": [
"SSA_USER_ROLE"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.PDBAAS_POOL",
"values": [
"DFB8F2A53429AF99EF2020C56E11FEE9"
],
"targetType": {
"targetType": "pdbaas_pool",
"targetTypeName": "Pluggable Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "DBDELETE_PRESCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D511C1CFFE053C075B10AEF2D:0.1"
},
{
"name": "DBDELETE_POSTSCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D51201CFFE053C075B10AEF2D:0.1"
}
],
"characteristics": [
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT",
"displayName": "Contact",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER",
"displayName": "Cost Center",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName": "Department",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DOWNTIME_CONTACT",
"displayName": "Downtime Contact",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS",
"displayName": "Lifecycle Status",
"values": [
"Development",
"MissionCritical",
"Production",
"Stage",
"Test"
],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS",
"displayName": "Line of Business",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName": "Location",
"values": [],
"required": false,
"editable": true,
"visible": true
}
],
"configurations": [
{
"name": "REF_DATA_ZONE",
"value": "Single Instances Zone"
},
{
"name":SELECT_TARGET_OPTION"
"value":SELECT_TARGET_FROM_REQUEST"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Site:null:false:false",
"Contact:null:false:false",
"Downtime Contact:null:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:Development:true:true",
"Comment:This is for testing:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "PDBAAS_CUSTOM_PRE_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7B4E34E053C075B10A74AD:0.2"
},
{
"name": "WORKLOADS",
"subvalues": [
{
"name": "Small",
"subvalues": [
{
"name": "name",
"value": "SmallPdb"
},
{
"name": "description",
"value": "small workload"
},
{
"name": "default",
"value": "N"
},
{
"name": "CPU",
"value": "2"
},
{
"name": "Memory",
"value": "2"
},
{
"name": "Storage",
"value": "5"
},
{
"name": "Sessions",
"value": "100"
}
]
}
]
},
{
"name": "ROLE_OPTION",
"value": "CUSTOM_NEW_ROLE"
},
{
"name": "CUSTOM_ROLE_NAME",
"value": "PDBAAS_NOV_13_2015_16_51_PM"
},
{
"name": "CUSTOM_ROLE_DESC",
"value": "New db role to be assigned to pluggable database administrator."
},
{
"name": "PRIVILEGES",
"values": [
"CREATE SESSION",
"ALTER SESSION",
"CREATE DIMENSION",
"CREATE INDEXTYPE",
"CREATE ANY OPERATOR",
"CREATE ANY PROCEDURE",
"CREATE ANY SEQUENCE",
"CREATE ANY INDEX",
"CREATE JOB",
"CREATE ANY MATERIALIZED VIEW",
"CREATE ANY TABLE",
"CREATE ANY TRIGGER",
"CREATE ANY TYPE",
"CREATE ANY VIEW",
"CREATE ANY SYNONYM",
"CREATE ANY DIRECTORY",
"SELECT ANY DICTIONARY",
"SELECT ANY TABLE"
]
},
{
"name": "REF_DATA_TARGET_TYPE",
"value": "rac_database"
},
{
"name": "REF_DATA_ZONE",
"value": "Clusters Zone - Oracle DB 12c"
},
{
"name": "REF_DATA_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_DATA_TARGET",
"value": "cdbfs"
},
{
"name": "REF_DATA_POOL",
"value": "RAC Pluggable DBs"
},
{
"name": "PDBAAS_CUSTOM_POST_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7F4E34E053C075B10A74AD:0.2"
},
{
"name": "SELECT_TARGET_OPTION",
"value": "SELECT_TARGET_AT_RUNTIME"
},
{
"name": "MAX_TABLESPACE_ALLOWED",
"value": "1"
},
{
"name": "CREATE_PDB_OPTION",
"value": "PDB_FROM_PROFILE"
},
{
"name": "PROFILE_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:246C1E85296C29A1E053C075B10A7DFA:0.1"
},
{
"name": "SHARED_STAGE_LOCATION",
"value": "/u04/app/hhkaur/product/12.1.0/dbhome_2/rdbms/xml/schema"
},
{
"name": "TABLESPACE_SIZE",
"values": [
"0.7715",
"0.6152",
"0.0586",
"0.0049"
]
},
{
"name": "INIT_PARAMS",
"values": [
"*.cursor_sharing=EXACT",
"*.open_cursors=300"
]
},
{
"name": "PDB_SID_PREFIX",
"value": "prp"
}
]
}

Note:
In the table above, the SELECT_TARGET_OPTION parameter defines if the SSA User has the option to select the Container Database (CDB) while requesting for a PDB. If the value for the parameter is set as SELECT_TARGET_FROM_REQUEST, then the SSA User has the option to choose the CDB. If no value is defined, or if the value is set to SELECT_TARGET_AT_RUNTIME, then the placement algorithm selects the CDB.

47.8.15 Clone DB Based Service Template .json File

{
"type":"CDP",
"configurations":[
{ "name":"PROFILE_COMPONENT_URN", "value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:E9F67B964802DD32E040F20A60514EB5:0.1" },
{ "name":"DATABASE_TYPE","value":"oracle_database" },
{ "name":"COMMON_DB_SYSTEM_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_DBSNMP_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_SYS_PASSWORD","value":"welcome" },
{ "name":"COMMON_DB_SID","value":"norm" },
{ "name":"COMMON_DOMAIN_NAME","value":"us.example.com" },
{ "name":"LISTENER_PORT", "value":"1521"},
{ "name":"STAGE_LOCATION", "value":"/tmp/rman_backup/backup1383140909156"},
{ "name":"REF_ZONE", "value":"SLC01HZK_ZONE" },
{ "name":"SID_OPTION", "value":"ssauser  "},
{ "name":"COMMON_DB_SID","value":"mydb1" },
{ "name":"REF_POOL",   "value":"PRIMARY_DB2" },
{ "name":"REF_HOST", "value":"xyxy.example.com" },
{ "name":"REF_TGT","value":"xxxy.example.com" },
{ "name":"ROLE_NAME","value":"ROLE_Oct_31_2014_17_59_PM" },
{ "name":"ROLE_DESC","value":"New database role to be assigned to master account." },
{ "name":"USER_PRIVILEGES","value":"CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY" },
{ "name":"DEFAULT_DATABASE_SIZE","value":"small" },
{ "name":"DATABASE_SIZES","value":"","values":["small","medium"]},
{ "name":"ENTITY_TYPE","value":"USE_PROFILE"},
{ "name":"PROFILE_VERSION","value":"latest"},
{ "name":"TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false",
"Location:null:false:false",
"Comment:null:false:false",
"LifeCycle Status:null:false:false",
"Line of Business:null:false:false",
"Contact:null:false:false"]
},
{ "name":"CUSTOM_TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false
]
},
{ "name":"RMAN:DB_STORAGE_TYPE",  "value":"FS" },
{ "name":"RMAN:FRA_STORAGE_TYPE",  "value":"FS" },
{ "name":"RMAN:DATA_FILE_LOCATION","value":"/scratch/app/oracle/oradata" },
{ "name":"RMAN:RECOVERY_FILE_LOCATION","value":"/scratch/app/oracle/fra" },
{ "name":"RMAN:REDO_FILE_LOCATION", "value":"/scratch/app/oracle/fra"  },
{ "name":"RMAN:FRA_SIZE", "value":"5000" },
{ "name":"RMAN:REC_STORAGE_TYPE_SAME_AS_DB_FILES", "value":"Y" },
{ "name":"RMAN:ARCHIVE_LOG_MODE",  "value":"Y" },
{ "name":"RMAN:FLASH_RECOVERY_AREA_SIZE",  "value":"5000" },
{ "name":"CLONE_OR_FULL_DB", "value":"CLONE_DB" },
{ "name":"USER_INITIATED_BACKUP_LOCATION", "value":"/tmp" },
{ "name":"ALLOW_BACKUPS", "value":"true" },
{ "name":"MAX_BACKUPS_ALLOWED", "value":"7" },
{ "name":"STAGE_LOCATION", "value":"/tmp" },
{ "name":"RMAN:USE_ARCHIVING", "value":"Y" },
{
"name":"INIT_PARAMS",
"subconfigurations":[
{ "name":"INIT_PARAMS:1", "value":"sga_target=314572800" },
{ "name":"INIT_PARAMS:2", "value":"pga_aggregate_target=209715200"  },
{ "name":"INIT_PARAMS:3", "value":"*.control_files='/scratch/app/oracle/oradata/simple/control01.ctl','/scratch/app/oracle/fast_recovery_area/simple/control02.ctl'"  },
{ "name":"INIT_PARAMS:4", "value":"*.db_name='simple'"  }
]
}
]
}

47.8.16 Full Clone Using an RMAN Duplicate Service Template .json File

{
"type":"CDP",
"configurations":[
{ "name":"DATABASE_TYPE","value":"oracle_database" },
{ "name":"COMMON_DB_SYSTEM_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_DBSNMP_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_SYS_PASSWORD","value":"welcome" },
{ "name":"COMMON_DB_SID","value":"norm" },
{ "name":"COMMON_DOMAIN_NAME","value":"us.example.com" },
{ "name":"LISTENER_PORT", "value":"1521"},
{ "name":"STAGE_LOCATION", "value":"/tmp/rman_backup/backup1383140909156"},
{ "name":"REF_ZONE", "value":"SLC01HZK_ZONE" },
{ "name":"SID_OPTION", "value":"ssauser" },
{ "name":"COMMON_DB_SID","value":"mydb1" },
{ "name":"REF_POOL",   "value":"PRIMARY_DB2" },
{ "name":"REF_HOST", "value":"xyxy.example.com" },
{ "name":"REF_TGT","value":"xxxy.example.com" },
{ "name":"ROLE_NAME","value":"ROLE_Oct_31_2014_17_59_PM" },
{ "name":"ROLE_DESC","value":"New database role to be assigned to master account." },
{ "name":"USER_PRIVILEGES","value":"CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY" },
{ "name":"DEFAULT_DATABASE_SIZE","value":"small" },
{ "name":"DATABASE_SIZES","value":"","values":["small","medium"]},
{ "name":"LIVE_CLONE_DATABASE_GUID","value":"75D1AA10AE406B671F72A601AA8DC86F"},
{ "name":"ENTITY_TYPE","value":"USE_DATABASE"},
{ "name":"LIVE_CLONE_TYPE","value":"USE_FULLCLONE"},
{ "name":"SRC_HOST_CREDS","value":"CREDNAME:OWNER" },
{ "name":"SRC_DB_CREDS","value":"CREDNAME:OWNER" },
{ "name":"TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false",
"Location:null:false:false",
"Comment:null:false:false",
"LifeCycle Status:null:false:false",
"Line of Business:null:false:false",
"Contact:null:false:false"]
},
{ "name":"CUSTOM_TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false
]
},
{
"name":"INIT_PARAMS"
"subconfigurations":[
{ "name":"INIT_PARAMS:1", "value":"sga_target=314572800" },
{ "name":"INIT_PARAMS:2", "value":"pga_aggregate_target=209715200"  },
{ "name":"INIT_PARAMS:3", "value":"*.control_files='/scratch/app/oracle/oradata/simple/control01.ctl','/scratch/app/oracle/fast_recovery_area/simple/control02.ctl'"  },
{ "name":"INIT_PARAMS:4", "value":"*.db_name='simple'"  }
]
}
]
}

47.8.17 Snapclone Database Using Live Clone Template on EMC Storage Service Template .json File

{
"type":"CDP",
"configurations":[
{ "name":"DATABASE_TYPE","value":"oracle_database" },
{ "name":"COMMON_DB_SYSTEM_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_DBSNMP_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_SYS_PASSWORD","value":"welcome" },
{ "name":"COMMON_DB_SID","value":"norm" },
{ "name":"COMMON_DOMAIN_NAME","value":"us.example.com" },
{ "name":"LISTENER_PORT", "value":"1521"},
{ "name":"STAGE_LOCATION", "value":"/tmp/rman_backup/backup1383140909156"},
{ "name":"REF_ZONE", "value":"SLC01HZK_ZONE" },
{ "name":"SID_OPTION", "value":"ssauser" },
{ "name":"COMMON_DB_SID","value":"mydb1" },
{ "name":"REF_POOL",   "value":"PRIMARY_DB2" },
{ "name":"REF_HOST", "value":"xyxy.example.com" },
{ "name":"REF_TGT","value":"xxxy.example.com" },
{ "name":"ROLE_NAME","value":"ROLE_Oct_31_2014_17_59_PM" },
{ "name":"ROLE_DESC","value":"New database role to be assigned to master account." },
{ "name":"USER_PRIVILEGES","value":"CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY" },
{ "name":"DEFAULT_DATABASE_SIZE","value":"small" },
{ "name":"DATABASE_SIZES","value":"","values":["small","medium"]},
{ "name":"LIVE_CLONE_DATABASE_GUID","value":"75D1AA10AE406B671F72A601AA8DC86F"}
{ "name":"ENTITY_TYPE","value":"USE_DATABASE"},
{ "name":"LIVE_CLONE_TYPE","value":"USE_SNAPCLONE"},
{ "name":"SRC_HOST_CREDS","value":"CREDNAME:OWNER" },
{ "name":"SRC_DB_CREDS","value":"CREDNAME:OWNER" },
{ "name":"TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false",
"Location:null:false:false",
"Comment:null:false:false",
"LifeCycle Status:null:false:false",
"Line of Business:null:false:false",
"Contact:null:false:false"]
},
{ "name":"CUSTOM_TARGET_PROP_LIST","value":"",
"values":[
"Department:value:false:false
]
},
{
"name":"INIT_PARAMS",
"subconfigurations":[
{ "name":"INIT_PARAMS:1", "value":"sga_target=314572800" },
{ "name":"INIT_PARAMS:2", "value":"pga_aggregate_target=209715200"  },
{ "name":"INIT_PARAMS:3", "value":"*.control_files='/scratch/app/oracle/oradata/simple/control01.ctl','/scratch/app/oracle/fast_recovery_area/simple/control02.ctl'"  },
{ "name":"INIT_PARAMS:4", "value":"*.db_name='simple'"  }
]
}
]
}

47.9 Creating a Database Clone Using EM CLI Verbs

This section describes the procedure to create a database clone using EM CLI verbs.

Note:
The procedure to create a Test master database is the same as the procedure to be followed to create a database clone. However, the only difference is in the property file parameters used to create the clone when compared to the property file parameters for Test master database.

Figure 47-5 Creating a Database Clone Using EM CLI Verbs

Follow the steps below to create a database clone or a Test master database:

1. Create a template properties file from a procedure definition.
There are two approaches for creating a template properties file. Follow either method 1 or method 2 (given below).

- Method 1: Using Enterprise Manager UI to create a clone of a database and generate the properties file from it
To create a template properties file follow the steps below:

1. Create a database clone via the Enterprise Manger UI.
Note down the Deployment Procedure Instance Name while creating the clone.

For example, Deployment Procedure Instance Name = CloneDatabase_SYSMAN_12_24_2014_15_58_PM.

2. Use the instance name in the following command to generate a template properties file.

emcli get_instance_data
[-instance={instance_guid}]
[-exec={execution_guid}]
[-name={execution name}]
[-owner={execution owner}]

Sample:
emcli get_instance_data -name='CloneDatabase_SYSMAN_12_24_2014_15_58_PM' -owner='SYSMAN' > /tmp/create_clone.props

- Method 2: Generating the properties file using EM CLI verbs
To create a template properties file using EM CLI verbs, follow the steps below:

1. Retrieve the GUID or the name of the procedure. Run the following command to retrieve these.

emcli get_procedures
[-type={procedure type}]

Sample command:
emcli get_procedures -type=DBConfig

Sample output:
GUID                         Type      Name                        DisplayName             Version  Owner   Parent Procedure
0A15E9DC20772EF5E053E87BF00A6701  DBConfig  db_clone_eb_procedure       db_clone_eb_procedure   2.12     ORACLE
0A15E9DC20A12EF5E053E87BF00A6701  DBConfig  db_config_procedure         DB Snap Clone           2.2      ORACLE
0A15E9DC20422EF5E053E87BF00A6701  DBConfig  config_db_create_procedure  Create Oracle Database  1.5      ORACLE

2. Input the GUID or the name as an input value in the following command to generate a template properties file.

emcli describe_procedure_input
[-procedure={procedure GUID}]
[-name={procedure name or procedure configuration}]
[-owner={owner of the procedure or procedure configuration}]
[-parent_proc={procedure of the procedure configuration. This only applies to describe a procedure configuration with the same name}]

Sample command:
emcli describe_procedure_input -procedure=0A15E9DC20A12EF5E053E87BF00A6701 > /tmp/create_clone.props

2. Enter new values in the properties file.
Use an editor to edit the properties file. Enter the desired values for the variables and save the properties file.

The table below shows the properties file parameters used to create a database clone. To see the properties file parameters for creating a Test master database, see Table 47-19, "Sample Properties File for Creating a Test Master Database".

Table 47-18 Sample Properties File for Creating a Database Clone

Parameters

Sample values

Description

Mandatory Parameters

CLONE_TYPE

CLONE_TYPE=DUPLICATE

Type of clone. Valid values are DUPLICATE, SNAP, DNFS_PROFILE and RMAN_PROFILE.

SRC_DB_TARGET_NAME

SRC_DB_TARGET_NAME=xxyy.us.example.com

Source database target name.

SRC_DB_TARGET_TYPE

SRC_DB_TARGET_TYPE=oracle_database

Source database target type. Valid values are oracle_database and rac_database.

SRC_DB_CRED

SRC_DB_CRED=NC_CRED:SYSCO

Source database credentials in the format: <NAME:OWNER>.

SRC_HOST_NORMAL_NAMED_CRED

SRC_HOST_NORMAL_NAMED_CRED=NC_HOST_CRED:SYSCO

Source host credentials in the format: <NAME:OWNER>.

COMMON_GLOBAL_DB_NAME

COMMON_GLOBAL_DB_NAME=clonedb.example.com

Global database name of the clone database.

COMMON_DB_SID

COMMON_DB_SID=clonedb

SID of the clone database.

DB_TARGET_NAME

DB_TARGET_NAME=clonedb.xxy.example.com

Clone database target name.

DATABASE_TYPE

DATABASE_TYPE=dbTypeSI

Indicates the type of database. Accepted values are - dbTypeSI and dbTypeRAC.

TARGET_HOST_LIST

TARGET_HOST_LIST=desthost.example.com

Destination host name where the clone database will be created.

ORACLE_HOME_NAME

ORACLE_HOME_NAME=OraDB12Home2_29

Name of destination Oracle home.

ORACLE_HOME_LOC

ORACLE_HOME_LOC=/scratch/app/product/11.2.0./dbhome_1

Location of destination Oracle home.

ORACLE_BASE_LOC

ORACLE_BASE_LOC=/scratch/app

Location of destination Oracle base.

HOST_NORMAL_NAMED_CRED

HOST_NORMAL_NAMED_CRED=NC_HOST_CRED:SYSCO

Destination host credentials in the format: <NAME:OWNER>.

DB_STORAGE_TYPE

DB_STORAGE_TYPE=FS

Database files storage type. Valid values are FS and ASM.

DB_FILE_LOC

DB_FILE_LOC=/scratch/app/oradata

Location where database files will be created for the clone database..

FRA_STORAGE_TYPE

FRA_STORAGE_TYPE=FS

Fast Recovery Area storage type. Valid values are FS and ASM.

FLASH_REC_AREA

FLASH_REC_AREA=/scratch/user/app/fra

Location where recovery related files (archived redo logs, RMAN backups, and other related files) are created.

FRA_SIZE

FRA_SIZE=4395

Fast Recovery Area size.

ARCHIVE_LOG_MODE

ARCHIVE_LOG_MODE=NO

Whether the clone database should be in ARCHIVELOG mode. Accepted values are YES and NO.

DEST_LISTENER_SELECTION

DEST_LISTENER_SELECTION=DEST_DB_HOME

Indicates whether the listener specified is a Grid Home listener. Valid values are GRID_INFRA and DEST_DB_HOME.

LISTENER_PORT

LISTENER_PORT=1526

Port of the listener with which the clone database is to be registered.

ENABLE_LIVE_CLONE

ENABLE_LIVE_CLONE=true

Indicates if live clone is to be enabled. Accepted vaules are true and false.

DB_ADMIN_PASSWORD_SAME

DB_ADMIN_PASSWORD_SAME=true

Indicates if the passwords for SYSTEM, SYS and DBSNMP users are same or different. Accepted values are true or false.

DATABASE_PASSWORDS

DATABASE_PASSWORDS=right1

Common password of SYSTEM, SYS and DBSNMP users. This is applicable only when the parameter DB_ADMIN_PASSWORD_SAME=true.

DB_TEMPLATE_STAGE

DB_TEMPLATE_STAGE=/tmp

Temporary staging area used to store files transferred from source host.

Optional Parameters

CLUSTERNAME

CLUSTERNAME=cluster

Name of the destination cluster. This is applicable only if DATABASE_TYPE= dbTypeRAC.

RAC_CONFIG_TYPE

RAC_CONFIG_TYPE=ADMIN_MANAGED

Destination cluster database type. This is applicable only if DATABASE_TYPE= dbTypeRAC. Valid value is ADMIN_MANAGED.

RAC_NODE_LIST

RAC_NODE_LIST=node1,node2

List of RAC nodes where the clone database will be created. This is applicable only if DATABASE_TYPE= dbTypeRAC.

IS_RAC_ONE

IS_RAC_ONE=false

Indicates if it's a RAC One node. This is applicable only if DATABASE_TYPE= dbTypeRAC

SRC_HOST_NORMAL_PREF_CRED_SET_NAME

SRC_HOST_NORMAL_PREF_CRED_SET_NAME=HostCredsNormal

Source database preferred credentials.

ASMSYSPWD

ASMSYSPWD=String1

Source ASM password. This is applicable only if the source database is on ASM.

HOST_NORMAL_PREF_CRED_SET_NAME

HOST_NORMAL_PREF_CRED_SET_NAME= HostCredsNormal

Destination host preferred credentials.

HOST_PRIV_NAMED_CRED

HOST_PRIV_NAMED_CRED= HOST_PRIV_CRED:SYSCO

Destination host root credentials. This is applicable only if CLONE_TYPE=SNAP.

HOST_PRIV_PREF_CRED_SET_NAME

HOST_PRIV_PREF_CRED_SET_NAME=HostCredsPriv

Destination host preferred root credentials. This is applicable only if CLONE_TYPE=SNAP.

PROFILE_INTERNAL_PATH

Profile internal path of the backup. This is applicable only if a profile is used for clone.

PROFILE_VERSION_URN

Profile version URN of the backup. This is applicable only if a profile is used for clone.

BACKUP_LOCATION_NAME

BACKUP_LOCATION_NAME=/scratch/databkp

Database backups' location. This is applicable if it's not a live clone.

BACKUP_TAG

Datafiles tag of the RMAN legacy backup. This is applicable only if using non-profile based RMAN backups for clone.

CONTROL_FILE_TAG

Control files tag of the RMAN legacy backup. This is applicable only if using non-profile based RMAN backups for clone.

PIT_DATETIME

Point in time recovery using date and time. This is applicable if it's not a live clone.

PIT_SCN

Point in time recovery using SCN. This is applicable if it's not a live clone.

IS_SAVE_PROFILE

Indicates that a snapshot profile of the source database will be created. This is applicable only if CLONE_TYPE=SNAP.

COMMON_DOMAIN_NAME

COMMON_DOMAIN_NAME=xxy.example.com

Domain of clone database.

COMMON_DB_DBSNMP_PASSWORD

COMMON_DB_DBSNMP_PASSWORD=right

DBSNMP user password for the clone database. This is applicable only when the parameter DB_ADMIN_PASSWORD_SAME=false.

COMMON_DB_SYSTEM_PASSWORD

COMMON_DB_SYSTEM_PASSWORD=right

SYSTEM user password for the clone database. This is applicable only when the parameter DB_ADMIN_PASSWORD_SAME=false.

COMMON_DB_SYS_PASSWORD

COMMON_DB_SYS_PASSWORD=right

SYS user password for the clone database. This is applicable only when the parameter DB_ADMIN_PASSWORD_SAME=false.

MOUNT_POINT_PREFIX

MOUNT_POINT_PREFIX=/vol1/prefix

Mount point prefix. This parameter is applicable only if CLONE_TYPE=SNAP.

MOUNT_POINT_LIST

MOUNT_POINT_LIST=volname1

Storage Volume name. This parameter is applicable only if CLONE_TYPE=SNAP.

MOUNT_ADDL_SIZE_LIST

MOUNT_ADDL_SIZE_LIST=2

Writable space. This parameter is applicable only if CLONE_TYPE=SNAP.

USE_OFA

USE_OFA=false

Indicates if Oracle Flexible Architecture should be used for customizations of the database storage files locations. Valid values are true and false.

OFA_TEMP_FILE_LOCATION

OFA_TEMP_FILE_LOCATION=/scratch/user/app/oradata/temp

Location where temporary files are to be created. This parameter is applicable only if USE_OFA=true.

OFA_REDO_LOG_LOCATION

OFA_REDO_LOG_LOCATION==/scratch/user/app/oradata/rlog

Location where Redo log files are to be created. This parameter is applicable only if USE_OFA=true.

OFA_CONTROL_FILE_LOCATION

OFA_CONTROL_FILE_LOCATION==/scratch/user/app/control

Location where the control files are to be created. This parameter is applicable only if USE_OFA=true.

IS_SAVE_TARGET_PROFILE

IS_SAVE_TARGET_PROFILE=Y

Indicates if a profile of the clone database should be created. Valid values are Y and N.

NEW_PROFILE_LOCATION

NEW_PROFILE_LOCATION=Database Provisioning Profiles/12.1.0.1.0/Linuxx86_64

Location of the profile in software library. This parameter is applicable only if IS_SAVE_TARGET_PROFILE=Y.

NEW_PROFILE_NAME

NEW_PROFILE_NAME=Clone Profile

Name of the new DB Profile to be created. This parameter is applicable only if IS_SAVE_TARGET_PROFILE=Y

PROFILE_DESC

PROFILE_DESC=Database Reference Profile 24-12-2014 04:00 PM from orcl.xyc.example.com Version : 12.1.0.1.0

Description of the profile. This parameter is applicable only if IS_SAVE_TARGET_PROFILE=Y.

PROFILE_NOTES

PROFILE_NOTES=Host Name: xyz.example.com Database: orcl.xyz.example.com

Notes for the profile. This parameter is applicable only if IS_SAVE_TARGET_PROFILE=Y.

PROFILE_VENDOR

PROFILE_VENDOR=Oracle

Vendor of the profile. This parameter is applicable only if IS_SAVE_TARGET_PROFILE=Y

PROFILE_VERSION

PROFILE_VERSION=12.1.0.1.0

Version of the profile. This parameter is applicable only if IS_SAVE_TARGET_PROFILE=Y

DATA_CONTENT_MODE

DATA_CONTENT_MODE=RMAN

Data mode for the database profile. The accepted values are: RMAN, and DNFS. This parameter is applicable only if IS_SAVE_TARGET_PROFILE=Y.

RMAN_BACKUP_LOCATION

RMAN_BACKUP_LOCATION=/scratch/user/app/backup

Location where RMAN backup files will be created. This is applicable only if IS_SAVE_TARGET_PROFILE =Y and DATA_CONTENT_MODE is RMAN or DNFS.

BACKUP_FILE_TAG

BACKUP_FILE_TAG=data_backup_1419417051961

Tag to be associated with backup files. This parameter is mandatory if IS_SAVE_TARGET_PROFILE is set to Y and DATA_CONTENT_MODE is RMAN.

BACKUP_TYPE

BACKUP_TYPE=OFFLINE

Type of backup. It can be OFFLINE or ONLINE. The default is Offline. This parameter is applicable only if IS_SAVE_TARGET_PROFILE =Y.

PROFILE_PURGE_POLICY_TYPE

PROFILE_PURGE_POLICY_TYPE=SNAPSHOTS,

Profile purge policy type. Accepted values are SNAPSHOTS or DAYS. This parameter is applicable only if IS_SAVE_TARGET_PROFILE =Y.

PROFILE_PURGE_POLICY_VALUE

PROFILE_PURGE_POLICY_VALUE=1

Profile purge policy value. This parameter is applicable only if IS_SAVE_TARGET_PROFILE =Y

PROFILE_SCHEDULE

Schedule for profile creation.

IS_TESTMASTER_DATABASE

IS_TESTMASTER_DATABASE=N

Indicates your choice of creating the clone database as the Test master database. Accepted values are Y or N.

ENABLE_DATA_MASK

ENABLE_DATA_MASK=true

Indicates if data mask needs to be applied. Accepted values are true and false.

MASKING_DEFINITION_NAME

MASKING_DEFINITION_NAME=MASK_DEF_10

Name of the masking definition. This parameter is applicable only if ENABLE_DATA_MASK= true.

CUSTOM_PRE_SCRIPTS_URN

URN of the pre-cloning script in software library.

CUSTOM_POST_SCRIPTS_URN

URN of the post-cloning script in software library.

POST_SQL_SCRIPT_URN

URN of the post-cloning SQL script in software library.

RUN_AS_USER

RUN_AS_USER =sys

Name of the user to run post-cloning SQL script. This parameter is applicable only if POST_SQL_SCRIPT_URN is specified.

RUN_AS_USER_PWD

RUN_AS_USER_PWD =right

Password of the user to run post-cloning SQL script. This parameter is applicable only if POST_SQL_SCRIPT_URN is specified.

EXECUTION_MODE

EXECUTION_MODE = PROVISIONING

Mode of execution.

CONFIGURE_WITH_ORACLE_RESTART

CONFIGURE_WITH_ORACLE_RESTART=N

Indicates if the clone database should be configured with Oracle restart.

Table 47-19 Sample Properties File for Creating a Test Master Database

Parameters

Sample values

Description

Mandatory Parameters

CLONE_TYPE

CLONE_TYPE=DUPLICATE

Type of clone. The default value is DUPLICATE.

COMMON_DB_DBSNMP_PASSWORD

COMMON_DB_DBSNMP_PASSWORD=come

Password to be set for DBSNMP user in the clone database.

COMMON_DB_SID

COMMON_DB_SID=clonedb

SID of the clone database.

COMMON_DB_SYSTEM_PASSWORD

COMMON_DB_SYSTEM_PASSWORD=sysco

Password to be set for SYSTEM user in the clone database.

COMMON_DB_SYS_PASSWORD

COMMON_DB_SYS_PASSWORD=sysco

Password to be set for SYS user in the clone database.

DATABASE_PASSWORDS

DATABASE_PASSWORDS=Sysco1

Password of clone database.

COMMON_GLOBAL_DB_NAME

COMMON_GLOBAL_DB_NAME=clonedb.xyz.com

Global clone database name.

DB_ADMIN_PASSWORD_SAME

DB_ADMIN_PASSWORD_SAME=true

Whether the passwords for SYSTEM, SYS and DBSNMP users are same or different. Accepted values are true or false.

DEST_LISTENER_SELECTION

DEST_LISTENER_SELECTION=DEST_DB_HOME

Oracle home location of the destination.

HOST_NORMAL_NAMED_CRED

HOST_NORMAL_NAMED_CRED=HOST:SYSCO

Credentials of the host.

IS_TESTMASTER_DATABASE

IS_TESTMASTER_DATABASE=Y

Indicates if you want create the clone database as Test master database. Accepted values are Y or N. The default value is N.

USAGE_MODE

USAGE_MODE = testMaster

Mode of use of the clone database.

CLOUD_TARGET

CLOUD_TARGET = true

Indicates if the cloud target is allowed.

LISTENER_PORT

LISTENER_PORT=1526

Port of the listener with which the clone database is to be registered.

ORACLE_BASE_LOC

ORACLE_BASE_LOC=/scratch/app

Location of Oracle base.

ORACLE_HOME_LOC

ORACLE_HOME_LOC=/scratch/app/product/11.2.0./dbhome_1

Location of Oracle home.

EM_USER

EM_USER=sys

EM user name.

EM_PWD

EM_PWD=Sys1

EM password.

SRC_DB_CRED

SRC_DB_CRED=DB:SYSCO

Credentials of the source database.

SRC_DB_TARGET_NAME

SRC_DB_TARGET_NAME=orcl.xyz.com

Source database target name.

SRC_HOST_NORMAL_NAMED_CRED

SRC_HOST_NORMAL_NAMED_CRED=HOST:SYSCO

Credentials of the host database.

TARGET_HOST_LIST

TARGET_HOST_LIST=blr22.xyz.com

List of target hosts.

Optional Parameters

ARCHIVE_LOG_MODE

ARCHIVE_LOG_MODE=NO

Indicates if the clone database should be in archive log mode. The default value is NO.

BACKUP_FILE_TAG

BACKUP_FILE_TAG=data_backup_1419417051961

Tag to be associated with backup files. This parameter is mandatory if IS_SAVE_TARGET_PROFILE is set to Y and DATA_CONTENT_MODE is RMAN.

BACKUP_TYPE

BACKUP_TYPE=OFFLINE

Type of backup. Accepted values are OFFLINE or ONLINE. The default value is OFFLINE.

COMMON_DOMAIN_NAME

COMMON_DOMAIN_NAME=xxy.example.com

Domain of the clone database.

CONFIGURE_WITH_ORACLE_RESTART

CONFIGURE_WITH_ORACLE_RESTART=N

Indicates if you want to configure clone database with oracle restart. The default value is N.

DATABASE_TYPE

DATABASE_TYPE=dbTypeSI

Accepted values are - Single Instance Database, RAC Database and RAC One Node Database. The default value is Single Instance Database.

DATA_CONTENT_MODE

DATA_CONTENT_MODE=RMAN

Data mode for which the database profile needs to be submitted. It can have the following values: EXPORT, DBCA_TEMPLATE, RMAN, DNFS, and STORAGE_SNAPSHOT.

DB_FILE_LOC

DB_FILE_LOC=/scratch/app/oradata

Location where data files, tmp files, redo log files, and control files are created.

DB_STORAGE_TYPE

DB_STORAGE_TYPE=FS

Database storage type. Accepted values are File System (FS) and ASM. The default value is FS.

DB_TARGET_NAME

DB_TARGET_NAME=clonedb.xxy.example.com

Clone database target name.

DB_TEMPLATE_STAGE

DB_TEMPLATE_STAGE=/scratch/view_storage/emagent/gcagent/em_staging

Staging area used to store files transferred from source host.

ENABLE_LIVE_CLONE

ENABLE_LIVE_CLONE=true

Indicates if live clone is to be enabled. The default value is true.

IS_SAVE_TARGET_PROFILE

IS_SAVE_TARGET_PROFILE=Y

Indicates if you want to create a DB profile using the clone database. Accepted values are Y or N. The default value is N.

NEW_PROFILE_LOCATION

NEW_PROFILE_LOCATION=Database Provisioning Profiles/12.1.0.1.0/Linuxx86_64

Location of the profile in software library. This parameter is mandatory if IS_SAVE_TARGET_PROFILE is set to Y.

NEW_PROFILE_NAME

NEW_PROFILE_NAME=Clone Profile

Name of the new DB profile to be created. It is mandatory if IS_SAVE_TARGET_PROFILE is set to Y.

ORACLE_HOME_NAME

ORACLE_HOME_NAME=OraDB12Home2_29_idc.example.com

Name of Oracle home.

PDB_ADMIN_PASSWORD

Pluggable database admin password.

PROFILE_DESC

PROFILE_DESC=Database Reference Profile 24-12-2014 04:00 PM from orcl.xyc.example.com Version : 12.1.0.1.0

Description of the profile.

PROFILE_NOTES

PROFILE_NOTES=Host Name: xyz.example.com Database: orcl.xyz.example.comData Content: Structure and Data

Notes for the profile.

PROFILE_VENDOR

PROFILE_VENDOR=Oracle

Vendor of the profile. The default is Oracle.

PROFILE_VERSION

PROFILE_VERSION=12.1.0.1.0

Version of the profile. If no value is specified, the database version is used.

RMAN_BACKUP_LOCATION

RMAN_BACKUP_LOCATION=/scratch/app/backup

Location where RMAN backup files is to be created. This parameter is mandatory if IS_SAVE_TARGET_PROFILE is set to Y and DATA_CONTENT_MODE is RMAN or DNFS.

SRC_DB_TARGET_TYPE

SRC_DB_TARGET_TYPE=oracle_database

Type of source database.

MASKING_DEFINITION_NAME

MASKING_DEFINITION_NAME=MASK_DEF_10

Name of the masking definition to be applied after cloning the database.

ENABLE_DATA_MASK

ENABLE_DATA_MASK=true

Indicates if data mask is to be enabled. The default value is false.

PROFILE_PURGE_POLICY_TYPE

PROFILE_PURGE_POLICY_TYPE=SNAPSHOTS,

Profile purge policy type. Accepted values are SNAPSHOTS or DAYS. The default value is NONE.

PROFILE_PURGE_POLICY_VALUE

PROFILE_PURGE_POLICY_VALUE=1

Profile purge policy value.

PROFILE_SCHEDULE

Schedule for profile execution.

WORKING_DIRECTORY

WORKING_DIRECTORY=/tmp

The location where the files are staged.

FLASH_REC_AREA

Location where recovery related files (archived redo logs, RMAN backups, and other related files) are created. The storage type of Fast Recovery Area will be same as that of database files location.

FRA_STORAGE_TYPE

Is the same as Database storage type.

3. Execute the following EM CLI verb to create a database clone (or Test master), using the updated properties file as the input file.

emcli create_clone
-input_file="File containing properties required for cloning a database"

Sample:
emcli create_clone  -inputFile=/tmp/create_clone.props

Sample output:
Submitting clone database procedure... 0AF491A8D9FE29F2E0539878B10A6333 Deployment procedure submitted successfully

4. Verify the status of the database clone creation by executing the following EM CLI verb.

emcli get_instance_status
[-instance={instance guid}]
[-exe=execution guid]
[-xml]
[-details]
[-showJobOutput]
[-tailLength={last N characters}]]

Sample:
emcli get_instance_status -instance=0AF491A8D9FE29F2E0539878B10A6333

Sample output:
0AF491A8DA0529F2E0539878B10A6333, DBConfig, db_config_procedure 1419435633924, COMPLETED

To know the complete status of each of the steps in xml format, execute the following command.

emcli get_instance_status -instance=0AF491A8D9FE29F2E0539878B10A6333 -xml -details -showJobOutput

47.10 Refreshing a Database Using EM CLI Verbs

This section describes the procedure to refresh a database using EM CLI verbs.

Figure 47-6 Refreshing a Database Using EM CLI Verbs

Follow the steps below to refresh a database:

1. Refresh the database by executing the emcli refresh_database command mentioned below.
The EM CLI command requires a properties file as an input. The properties file details are mentioned in the table below.

Table 47-20 Sample Properties File for Refreshing a Database

Parameters

Sample values

Description

Mandatory Parameters

DB_TEMPLATE_STAGE

DB_TEMPLATE_STAGE=/tmp

Staging area used to store files transferred from source host.

COMMON_DB_SYSTEM_PASSWORD

COMMON_DB_SYSTEM_PASSWORD=come

Password to be set for SYSTEM user.

COMMON_DB_DBSNMP_PASSWORD

COMMON_DB_DBSNMP_PASSWORD=come

Password to be set for DBSNMP user.

COMMON_DB_SYS_PASSWORD

COMMON_DB_SYS_PASSWORD=come

Password to be set for SYS user.

ASMSYSPWD

ASMSYSPWD=come

ASM SYS password to login to ASM. This parameter is only applicable if database files are on ASM. Otherwise, it is not required.

CLONE_TYPE

CLONE_TYPE=RMAN_PROFILE

Type of clone.

Optional Parameters

TARGET_TYPE

TARGET_TYPE=rac_database

Type of target. Accepted values are oracle_database or rac_database.

ORACLE_HOME

ORACLE_HOME_LOC=/u01/user/app/user/product/11.2.0/dbhome_1

Location of Oracle home.

SRC_SYS_PWD

SRC_SYS_PWD=Come

Source SYS password.

SRC_SID

SRC_SID=orcl

Source database SID.

TARGET_NAME

Name of the target.

emcli refresh_database
-target_name="database target name"
-target_type="database target type"
-input_file=data:"file:path"
Sample:
emcli refresh_database -target_name="database" -target_type="oracle_database" -input_file=data:"/tmp/refr.txt"

Output:
Refresh Database deployment procedure has been submitted successfully with the instance
name:"RefreshDatabase_SYSMAN_06_23_2014_01_00_PM" and execution_guid='0AE6096550756B26E0539878B10A6FF5'

To know the status of the procedure in xml format, execute the following command.

emcli get_instance_status -exec=0AE6096550756B26E0539878B10A6FF5 -xml -details -showJobOutput

2. Verify the status of the database refresh by executing the following EM CLI verb.

emcli get_instance_status
[-instance={instance guid}]
[-exe=execution guid]
[-xml]
[-details]
[-showJobOutput]
[-tailLength={last N characters}]]

Sample:
emcli get_instance_status -exe=0AFDFE7D36525B18E0539878B10A39FB

Sample output:
00AFDFE7D36555B18E0539878B10A39FB, DBPROV, RefreshDatabase_SYSMAN_06_23_2014_01_00_PM, COMPLETED

To know the complete status of each of the steps in xml format, execute the following command.

emcli get_instance_status -exe=0AF491A8D9FE29F2E0539878B10A6333 -xml -details -showJobOutput

47.11 Deleting a Database Using EM CLI Verbs

This section describes the procedure to delete a database using EM CLI verbs.

Figure 47-7 Deleting a Database Using EM CLI Verbs

Follow the steps below to delete a database:

1. Delete the database with the emcli delete_database command mentioned below.
The EM CLI command requires a properties file as an input. The properties file details are mentioned in the table below.

Table 47-21 Sample Properties File for Deleting a Database

Parameters

Sample values

Description

Mandatory Parameters

HOST_CREDS

HOST_CREDS=sys:come,

Credentials of the host in <Credentials name>:<Credentials owner> format.

DB_TARGET_GUID

DB_TARGET_GUID=083B2D3F9B911BD3E0539878B10A3096

GUID of the target database.

Select the Target_GUID from mgmt$target, where target_name='MyDB.example.com' and target_type='rac_database'

DATABASE_TYPE

DATABASE_TYPE=dbTypeSI,

Type of database.

Permissible values are either dbTypeSI or dbTypeRAC.

DB_ORACLE_HOME_LOC

DB_ORACLE_HOME_LOC=/u01/oracle/product/dbhome,

Location of Oracle home.

DB_TARGET_NAME

DB_TARGET_NAME=m2.xyz.com,

Name of the target database.

DB_SID

DB_SID=clem

Database SID.

In case of a RAC database provide the same value as provided for DB_TARGET_NAME.

HOST_NAME

HOST_NAME=abc.example.com,

Name of the host in case of a SI database.

Incase of a RAC database enter the Cluster database target host name. To retrieve it, use the EM repository query (select host_name from mgmt$target where target_name='MyDB.example.com' and target_type='rac_database').

ORACLE_BASE

ORACLE_BASE=/u01/app/oracle

Oracle base location.

DBNAME

DBNAME=clem

Database name in case of SI database.

In case of a RAC database enter the Cluster database target 'DBName' Target property. To retrieve this property use the EM repository query (select property_value from mgmt$target_properties where target_name='MyDB.example.com' and target_type='rac_database' and property_name='DBName')

Optional Parameter

ROOT_CREDS

ROOT_CREDS=ABDCGA45268SDF

Privileged credentials GUID. This parameter is required if the target database is snapshot based and mounted on a volume.

emcli delete_database
-inputFile="File containing properties required for deleting a clone"

Sample:
emcli delete_database -inputFile=/u01/files/delete_clone.props

Output:
Submitting delete database procedure...
0AFDFE7D36525B18E0539878B10A39FB
Deployment procedure submitted successfully

2. Verify the status of the database deletion by executing the following EM CLI verb.

emcli get_instance_status
[-instance={instance guid}]
[-exe=execution guid]
[-xml
[-details]
[-showJobOutput]
[-tailLength={last N characters}]]

Sample:
emcli get_instance_status -instance=0AFDFE7D36525B18E0539878B10A39FB

Output:
0AFDFE7D36555B18E0539878B10A39FB, DBPROV, DB_CLEANUP_PROC 1419457116034, COMPLETED

To know the complete status of each of the steps in xml format, execute the following command.

emcli get_instance_status -instance=0AF491A8D9FE29F2E0539878B10A6333 -xml -details -showJobOutput

47.12 Database Fleet Maintenance EM CLI Verbs

The following table provides details of the verbs supported for Database fleet maintenance.

Note:
The EM CLI verb options mentioned in square brackets - [] are optional.

Table 47-22 Database Software Maintenance EM CLI Verbs

Verb

Description

Format

emcli db_software_maintenance -createSoftwareImage

Creates a new software image provided in the oracle home. The createSoftwareImage verb takes either data (a .txt file) or getInputVariableList from the command line.

- input_file- Path of the input file.

- getInputVariableList - Provides the list of variables to be specified in the input file.

Examples:

- To get the list of all the parameters to be passed inside the data file, run the following command:
emcli db_software_maintenance -createSoftwareImage -getInputVariableList=true

- To create a new image and a version, use the following example:
emcli createSoftwareImage -input_file="data:"/home/user/input_rac"

Where the contents of the input_rac file are:

- IMAGE_NAME=DbGoldImage

- IMAGE_DESCRIPTION=Gold Image for 11g db

- REF_TARGET_NAME=ORACLE_HOME

- IMAGE_SWLIB_LOC=Oracle Home Provisioning

- Profiles/11.2.0.3.0/linux_x64

- REF_HOST_CREDENTIALS=ZONE_CREDS:TESTSUPERADMIN

- WORKING_DIRECTORY=/tmp

- STORAGE_TYPE_FOR_SWLIB=OmsShared

- STORAGE_NAME_FOR_SWLIB=swlib

- VERSION_NAME=Version1

- To only create a new version into an existing image, see the following example:
emcli db_software_maintenance -createSoftwareImage -input_file="data:"/home/user/input_rac"

Where the contents of the input_rac file are:

- IMAGE_ID=01B5F14FD57D7B89E05313B2F00A739F

- REF_TARGET_NAME=ORACLE_HOME

- IMAGE_SWLIB_LOC=Oracle Home Provisioning

- Profiles/11.2.0.3.0/linux_x64

- REF_HOST_CREDENTIALS=ZONE_CREDS:TESTSUPERADMIN

- WORKING_DIRECTORY=/tmp

- STORAGE_TYPE_FOR_SWLIB=OmsShared

- STORAGE_NAME_FOR_SWLIB=swlib

- VERSION_NAME=Version1

- emcli db_software_maintenance
-createSoftwareImage

-getInputVariableList=true

- emcli createSoftwareImage
-input_file="data:"/home/user/input_rac"

emcli db_software_maintenance -createVersion

Creates a new version in an existing image using an existing software library component.

- version_name - Name of the version.

- image_id - Name of the image.

- external_id - External ID of the version. For example, the URN of the software library gold image.

- status - Status of the version. For example, DRAFT, ACTIVE, CURRENT, or RESTRICTED.

Example:

emcli db_software_maintenance -createVersion -version_name="Version1" -image_id="01B5F14FD57D7B89E05313B2F00A739F" -external_id="oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_OracleDB:0191172464DD36B6E05313B2F00AB90A:0.1" -status=CURRENT

emclu db_software_maintenance

-createVersion-version_name="Versionx"

-image_id="xxxx"

-external_id="yyyy"

-status="CURRENT"

emcli db_software_maintenance -subscribeTarget

Creates a new or modifies the existing target subscription.

- target_name - Name of the target.

- target_type - Target type.

- [parent_target_name] - Parent target name.

- [parent_target_type] - Parent target type.

- image_id - Name of the image.

Example:

emcli db_software_maintenance -subscribeTarget -target_name="POOL NAME" -target_type=oracle_cloud_zone -image_id=FE55AD7AB28974EFE04313B2F00AD4A0

emcli db_software_maintenance

-subscribeTarget -target_name="xxx"

-target_type="yyy"

-image_id=zzz

emcli db_software_maintenance -updateVersionStatus

Updates version of the image.

- version_id - Id of the version.

- status - Status of the version. For example, DRAFT, ACTIVE, CURRENT, or RESTRICTED.

Example:

emcli db_software_maintenance -updateVersionStatus -version_id=02A635AOD8D904A4E05362F3E40ADFD8 -status=CURRENT

emcli db_software_maintenance

-updateVersionStatus

-version_id="xxx"

-status="CURRENT"

emcli db_software_maintenance -getImageSubscriptions

Returns the list of subscribed targets.

- image_id- Name of the image.

Example:

emcli db_software_maintenance -getImageSubscriptions -image_id="01B5F14FD57D7B89E05313B2F00A739F"

emcli db_software_maintenance

-getImageSubscriptions

-image_id="xxx"

emcli db_software_maintenance -deleteImage

Deletes an image.

- image_id - Name of the image to be deleted.

- [force] - Deletes forcibly even if the image has subscribed targets.

Example:

emcli db_software_maintenance -deleteImage -image_id="01B5F14FD57D7B89E05313B2F00A739F"

emcli db_software_maintenance

-deleteImage

-image_id="xxxx"

emcli db_software_maintenance -unsubscribeTarget

Unsubscribes the target.

- target_name - Name of the target.

- target_type - Target type.

- image_id - Name of the image.

Example:

emcli db_software_maintenance -unsubscribeTarget -target_name="POOL NAME" -target_type=oracle_cloud_zone -image_id=FE55AD7AB28974EFE04313B2F00AD4A0

emcli db_software_maintenance

-unsubscribeTarget

-target_name="xxx"

-target_type=yyyy

-image_id=zzz

emcli db_software_maintenance -searchImage

Searches the image based on the provided filters. Use '%' for wildcard.

- [name_pattern] - Indicates the name pattern.

- [version_pattern] - Indicates the version pattern.

- [description_pattern] - Indicates the version pattern.

- [owner] - Indicates the owner name.

- [target_type] - Indicates the target type.

- [platform_id] - Indicates the platform ID. For example, 226 for Linux x86_64.

Examples:

- emcli db_software_maintenance -searchImage -name_pattern="%GI%"

- emcli db_software_maintenance -searchImage -platform_id="226"

emcli db_software_maintenence

-searchImage

-platform_id="xxx"

-[name_pattern= ”name_pattern”]

-[version_pattern= ”version_pattern”]

-[description_pattern= ”description_pattern”]

-[owner= ”owner”]

-[target_type= ”target_type”]

-[platform_id= ”platform_id”]

emcli db_software_maintenance -getTargetSubscriptions

Returns the list of subscriptions for the given target.

- target_name - Name of the target.

- target_type - Target type.

- image_type - Type of the image.

Example:

emcli db_software_maintenance -getTargetSubscriptions -target_name="POOL NAME" -target_type="oracle_cloud_zone"

emcli db_software_maintenance

-getTargetSubscriptions

-target_name="xxxx"

-target_type="yyyy"

-image_type="zzzz"

emcli db_software_maintenance -getVersions

Returns the list of the versions for the given image.

- image_id - Name of the image.

- [version_status] - Status filter for the version.

Example:

emcli db_software_maintenance -getVersions image_id="01B5F14FD57D7B89E05313B2F00A739F" -version_status=CURRENT

emcli db_software_maintenance

-getVersions

-image_id="xxxx"

-version_status=CURRENT

emcli db_software_maintenance -getImages

Returns the list of image present in the system.

Example:

emcli db_software_maintenance -getImages

emcli db_software_maintenence - getImages

emcli db_software_maintenance -getSubscriptionsForContainer

Return the subscriptions for the container target such as the database pool.

- image_id - Name of the image.

- target_name - Name of the target.

- target_type - Target type in EM.

Example:

emcli db_software_maintenance -getSubscriptionsForContainer -target_name="POOL NAME" -target_type=oracle_cloud_zone -image_id=FE55AD7AB28974EFE04313B2F00AD4A0

emcli db_software_maintenance

-getSubscriptionsForContainer

-target_name="xxxx"

-target_type="yyyy"

-image_id="zzzz"

emcli db_software_maintenance -activateSoftware

Activates a new software of the pool.

- pool_name - Name of the pool.

- pool_type - Type of the pool.

- [force] - Forcibly activates the new members.

Example:

emcli db_cloud_maintenance -activateSoftware -pool_name=POOL -pool_type=oracle_cloud_zone -force=true

emcli db_cloud_maintenance

-activateSoftware

-pool_name=xxxx

-pool_type="yyy"

-force="true"

emcli db_software_maintenance -performOperation

Creates a new cloud maintenance operation.

- name= ”name” - Name of the operation.

- description= ”description” - Description of the operation.

- purpose= ”purpose” - Purpose of the maintenance window.
The possible values are: UPDATE_DB, UPDATE_RACDB, UPDATE_GI, DEPLOY_DB_SOFTWARE, DEPLOY_GI_SOFTWARE, DEPLOY_RAC_SOFTWARE, ROLLBACK_DB, ROLLBACK_GI, ROLLBACK_RACDB, and CLEANUP_SOFTWARE.

- [start_schedule= ”start_schedule”] - Start Schedule. The input for start_schedule is of the format- yyyy-MM-dd HH:mm:ss. For example, start_schedule="2013-11-11 12:15:30". The default start time is - immediate.

- pool_name= ”pool_name” - Name of the pool.

- pool_type= ”pool_type” - Type of the pool.

- [input_file= ”data:input_file”] - Input data for the maintenance action. For example, input_file="data:~/input_files/data.

- [target_type= ”target_type”] - Target type. The default target type is identified based on the purpose. For example, if purpose is DEPLOY_DB, the default target type is oracle_home.

- [target_list= ”target_list”] - Comma separated target list.
The target list is the list of entities based on the target type that is selected. For example, target_type=rac_database target_list="rac1.example.com,rac2.example.com". The default target_list is based on the purpose. For example if the purpose is DEPLOY_DB, the default target list is the list of oracle homes present in the pool.

Example:

emcli db_cloud_maintenance -performOperation -name="Update RAC Database " -description="Update RAC database Instance" -purpose="UPDATE_RACDB" -start_schedule="start_time:2014/09/01 00:00" -pool_name="POOL NAME" -pool_type=oracle_cloud_zone -target_type=rac_database -target_list="rac1.example.com"

emcli db_cloud_maintenance

-performOperation

-name="update"

-description="Update RAC database Instance"

-purpose="UPDATE_RACDB"

-start_schedule="start_time:2014/09/01 00:00"

-pool_name="xxx"

-pool_type="yyy"

-target_type=rac_database

-target_list="rac1.example.com"

47.13 Database Request Handling EM CLI Verbs

The table below lists the supported verbs for database request handling.

Table 47-23 Force Cleanup EM CLI Verbs

Verb

Description

Format

cleanup_dbaas_requests

Cleans up a failed request from the host and EM.

Cleans up all failed requests from a pool. Optionally, it cleans up failed requests for a specific user.

The options -ids and -pool_name cannot be used together.

- ids - The request ID to be used for filtering cloud requests separated by semicolon(;).

- pool_name - The name of the pool from which requests have to be cleaned up.

- pool_type - The type of pool. The possible values are:

- For Database pools: database

- For Schema pools: schema

- For Pluggable database pools: pluggable_database

- user - User Name to be used for filtering requests for delete.

- all - Cleans up all requests - both successful and failed, cancels the requests that are in scheduled state, and leaves the "in progress" requests as is. If this option is not specified, cleanup will be performed on failed requests only.

Note:

The clean-up operation explained here can also be performed using a REST API. For details, see Section 51.7.2.4, "Clearing a Collection of Service Requests".

Example:

emcli cleanup_dbaas_requests -ids="10"
emcli cleanup_dbaas_requests -ids="10;11;12"
emcli cleanup_dbaas_requests -pool_name="database_pool" -pool_type="database"
emcli cleanup_dbaas_requests -pool_name="database_pool" -pool_type="database" –all
emcli cleanup_dbaas_requests -pool_name="database_pool" -pool_type="database" -all -user="SSA_USER"

Sample Output:

Service Template "My Schema Service Template" created successfully

emcli cleanup_dbaas_requests

[-ids="<request id>"]

[-pool_name="<pool name>" ]

[-pool_type="<database|schema|pluggable _database>"]

[-user="<SSA User name>"]

[-all]

47.14 Cloning a Pluggable Database

The EM CLI verb emcli pdb_clone_management creates a new clone of an existing pluggable database.

The details of the verb are as follows:

Table 47-24 Pluggable Database Cloning EM CLI Verb

Verb

Description

Format

emcli pdb_clone_management

Creates a new clone of an existing pluggable database.

- -input_file - Location of the file containing properties required for cloning the pluggable database. See Table 47-25 for details.

- [-cloneToOracleCloud] - Indicates that the destination container database (CDB) is on Oracle Cloud.

Example:

emcli pdb_clone_management -input_file=data:/u01/files/pdb_clone.props

emcli pdb_clone_management

-input_file

[-cloneToOracleCloud]

The table below explains the required parameters and values in the properties file that needs to be used as an input file for cloning a pluggable database. You can either have a full clone of the pluggable database or a snapshot clone. For details of full clone and snapshot clones see, Section 47.14.1, "Pluggable Database Full Clone Methods", and Section 47.14.2, "Pluggable Database Snapshot Clone Types".

Table 47-25 Sample Properties File for Cloning a Pluggable Database

Parameters

Sample values

Description

Mandatory Parameters

SRC_PDB_TARGET

SRC_PDB_TARGET=cdb_prod_PDB

Enterprise Manager (EM) target name of the source pluggable database (PDB).

SRC_HOST_CREDS

SRC_HOST_CREDS=NC_HOST_SHYSYSCO

Named credentials for the source target host.

SRC_CDB_CREDS

SRC_CDB_CREDS=NC_DB_SYS:SYSCO

Named credentials for the source CDB.

SRC_WORK_DIR

SRC_WORK_DIR=/tmp/source

Work directory at the source host where files are temporarily stored. If this parameter is not provided, the agent work directory is used.

DEST_HOST_CREDS

DEST_HOST_CREDS=NC_SLEO_SSH:SYSCO

Named credentials for the destination target host. If destination host is on Oracle Cloud, then the value for this parameter should be the host SSH credentials.

DEST_LOCATION

DEST_LOCATION=/scratch/app/cdb_tm/HR_TM_PDB6

Data file location in the destination where the new PDB should be hosted.

DEST_CDB_TARGET

DEST_CDB_TARGET=cdb_tm

EM target name of CDB where the new PDB should be cloned.

DEST_CDB_TYPE

DEST_CDB_TYPE=oracle_database

EM target type of the destination CDB.

DEST_CDB_CREDS

DEST_CDB_CREDS=NC_DB_SYS:SYSCO

Named credentials for the destination CDB.

DEST_PDB_NAME

DEST_PDB_NAME=HR_TM_PDB6

Name of the new PDB.

Optional Parameters

SRC_CDB_TARGET

SRC_CDB_TARGET=cdb_prodt_DB

EM target name of the CDB containing the source PDB.

SRC_CDB_TYPE

EM target type of the CDB containing the source PDB.

IS_SNAPSHOT_COPY

IS_SNAPSHOT_COPY=true

Indicates that the clone is a snapshot clone.

SRC_HOST

SRC_HOST=xyz.example.com

EM target name of the host containing the source CDB. If this value is not provided, it will be derived from the CDB.

DEST_HOST

DEST_HOST=xyz.example.com

EM target name of host containing the destination CDB. If this value is not provided, it will be derived from the CDB.

EXISTING_BACKUP

EXISTING_BACKUP=/user1/pdbbackup/app/PROD_PDB_Backup_14297779

Indicates the absolute location of the existing backup in the file system, and if it should be used to clone the new PDB.

EXISTING_BACKUP_METADATA

EXISTING_BACKUP_METADATA=/user1/pdbbackup

Absolute location of the metadata template of the backup. This parameter is required, if EXISTING_BACKUP is provided.

BACKUP_TYPE

BACKUP_TYPE=OSIMAGE

Indicates the backup type. The accepted values are TAR, OSIMAGE, and RMAN.

If an existing backup (EXISTING_BACKUP parameter) is provided, this parameter represents the type of the backup. If not, this parameter represents the type of backup that should be taken during job execution. If both, EXISTING_BACKUP and BACKUP_TYPE are not provided, the source PDB, will be unplugged, and copied over to the destination for creating a new clone. Once the datafiles are copied, the source PDB will be plugged back.

47.14.1 Pluggable Database Full Clone Methods

The different methods of full cloning that are possible with a pluggable database are mentioned below. The process of achieving them are by configuring certain parameters in the properties file, while using the emcli pdb_clone_management verb.

- Operating System (OS) Image backup (supported only for Oracle Cloud)
Takes a backup of the source PDB and creates a new PDB. The BACKUP_TYPE parameter should specify the type of backup. The EXISTING_BACKUP and EXISTING_BACKUP_METADATA parameters should not be provided.

- Existing backup (supported for on-premise PDBs and Oracle Cloud PDBs)
Uses an existing backup of the source PDB and creates a new PDB. The BACKUP_TYPE parameter should specify the type of backup. The EXISTING_BACKUP parameter should specify the location with the backup name and EXISTING_BACKUP_METADATA should specify the location and the metadata file name for the backup.

Note:
If the destination PDB and the source PDB are in different CDBs wherein, both the CDBs are on-premise (or on Oracle Cloud), then ensure that the source PDB is in read-write mode. This is necessary since a database link is created in the destination CDB for cloning the PDB, and a temporary user is created in the source PDB for using the database link. If there is an existing database link in the destination CDB that connects to the source PDB, then use the parameter EXISTING_DB_LINK_NAME to provide the database link name in the properties file.

- Unplug/plug (supported only for Oracle Cloud)
Unplugs the source PDB and creates a new PDB at the destination using the unplugged source, and then plugs the source back. Both, EXISTING_BACKUP and BACKUP_TYPE parameters should not be provided.

47.14.2 Pluggable Database Snapshot Clone Types

The different methods of snapshot cloning that are possible with a pluggable database on-premise are mentioned below. The process of achieving them are by configuring certain parameters in the properties file, while using the emcli pdb_clone_management verb.

Note:
For all the snapshot clone types, in addition to the mandatory parameters in Table 47-25, add the parameter IS_SNAPSHOT_COPY=true, to the properties file.

- Exadata sparse clone snapshot
The Exadata sparse clone snapshot will work only if the destination PDB data file location is in sparse ASM disk group in an Exadata machine, and the source and destination PDB data files share the same ASM instance.

Set the value of the DEST_LOCATION to create an Exadata sparse clone. The DEST_LOCATION should be the name of the ASM sparse disk group. For example, +SPARCEDG.

- ACFS (ASM cluster file system) snapshot
The ACFS snapshot will work only if the source and destination PDB data file location is in common ACFS file system.

- CLONEDB initialization parameter set to FALSE
When you create a snapshot clone of a source PDB and the CLONEDB initialization parameter of the destination host is set to FALSE, the underlying file system for the source PDB's files must support storage snapshots. Such file systems include Oracle Automatic Storage Management Cluster File System (Oracle ACFS) and Direct NFS Client storage.

- CLONEDB initialization parameter set to TRUE
When you create a clone of a source PDB and the CLONEDB initialization parameter of the destination host is set to TRUE, the underlying file system for the source PDB's files can be any local file system, network file system (NFS), or clustered file system that has Direct NFS enabled. However, the source PDB must remain in open read-only mode as long as any clones exist.

47.15 Creating a Test Master Pluggable Database

The EM CLI verb emcli pdb_clone_management creates a new clone of an existing pluggable database. The same verb is used to create a Test Master of a pluggable database. However, the properties file used for the verb is different. For details of the verb see Table 47-24. For details of the properties file used to create the Test Master see Table 47-26.

Table 47-26 Sample Properties File for Creating a Pluggable Database Test Master

Parameters

Sample values

Description

Mandatory Parameters to Create a Test Master

SRC_PDB_TARGET

SRC_PDB_TARGET=cdb_prod_PDB

Enterprise Manager (EM) target name of the source pluggable database (PDB).

SRC_HOST_CREDS

SRC_HOST_CREDS=NC_HOST_SAY:SYSCO

Named credentials for the source target host.

SRC_CDB_CREDS

SRC_CDB_CREDS=NC_DB_SYS:SYSCO

Named credentials for the source CDB.

SRC_WORK_DIR

SRC_WORK_DIR=/tmp/source

Work directory at the source host where files are temporarily stored. If this parameter is not provided, the agent work directory is used.

DEST_HOST_CREDS

DEST_HOST_CREDS=NC_SLO_SSH:SYSCO

Named credentials for the destination target host. If destination host is on Oracle Cloud, then the value for this parameter should be the host SSH credentials.

DEST_LOCATION

DEST_LOCATION=/scratch/app/cdb_tm/HR_TM_PDB6

Data file location in the destination where the new PDB should be hosted.

DEST_CDB_TARGET

DEST_CDB_TARGET=cdb_tm

EM target name of CDB where the new PDB should be cloned.

DEST_CDB_TYPE

DEST_CDB_TYPE=oracle_database

EM target type of the destination CDB.

DEST_CDB_CREDS

DEST_CDB_CREDS=NC_DB_SYS:SYSCO

Named credentials for the destination CDB.

DEST_PDB_NAME

DEST_PDB_NAME=HR_TM_PDB6

Name of the new PDB.

IS_CREATE_AS_TESTMASTER

IS_CREATE_AS_TESTMASTER=true

Flag to set the cloned PDB as a Test Master PDB in the EM.

Mandatory Parameters (along with the above) to Create a Test Master on Exadata ASM

ACL_DF_GROUP

ACL_DF_GROUP=oinstall

Group name to provide the permission to the Exadata ASM disk group data files of the cloned PDB.

ACL_DF_OWNER

ACL_DF_OWNER=oracle

Owner name to provide the required permission to the Exadata ASM disk group data files of the cloned PDB.

Optional Parameters

MASKING_DEFINITION_NAME

MASKING_DEFINITION_NAME=CRM_Masking_Defn

Name of the masking definition in EM that will be applied on the cloned PDB.

CUSTOM_PRE_SCRIPTS_URN

CUSTOM_PRE_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:14288BACD7BB765FE0533B79B10AA480:0.3

Software library URN of the script to be run before creating the clone PDB in the destination host.

CUSTOM_POST_SCRIPTS_URN

CUSTOM_POST_SCRIPTS_URN=oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:14288BACD7C1765FE0533B79B10AA480:0.3

Software library URN of the script to be run after creating the clone PDB in the destination host.

POST_SQL_SCRIPT_URN

POST_SQL_SCRIPT_URN=oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_Generic:142899134B2C25E8E0533B79B10A2D54:0.1

Software library URN of the SQL script to be run in the destination CDB after creating the clone PDB.

RUN_AS_USER

RUN_AS_USER=sys

User name to run the post SQL script.

RUN_AS_USER_PWD

RUN_AS_USER_PWD=gosad

Password to run the post SQL script.

ACL_DF_GROUP_PERM

ACL_DF_GROUP_PERM=read only

Level of permission to be given to the group for the Exadata ASM disk group data files of the cloned PDB.

ACL_DF_OWNER_PERM

ACL_DF_OWNER_PERM=read only

Level of permission to be given to the owner for the Exadata ASM disk group data files of the cloned PDB.

ACL_DF_OTHER_PERM

ACL_DF_OTHER_PERM=read only

Level of permission to be given to others for the Exadata ASM disk group data files of the cloned PDB.

SRC_CDB_TARGET

SRC_CDB_TARGET=cdb_prodt_DB

EM target name of the CDB containing the source PDB.

SRC_CDB_TYPE

EM target type of the CDB containing the source PDB.

SRC_HOST

SRC_HOST=xyz.example.com

EM target name of the host containing the source CDB. If this value is not provided, it will be derived from the CDB.

DEST_HOST

DEST_HOST=xyz.example.com

EM target name of host containing the destination CDB. If this value is not provided, it will be derived from the CDB.

EXISTING_BACKUP

EXISTING_BACKUP=/user1/pdbbackup/app/PROD_PDB_Backup_14297779

Indicates the absolute location of the existing backup in the file system, and if it should be used to clone the new PDB.

EXISTING_BACKUP_METADATA

EXISTING_BACKUP_METADATA=/user1/pdbbackup

Absolute location of the metadata template of the backup. This parameter is required, if EXISTING_BACKUP is provided.

BACKUP_TYPE

BACKUP_TYPE=OSIMAGE

Indicates the backup type. The accepted values are TAR, OSIMAGE, and RMAN.

If an existing backup (EXISTING_BACKUP parameter) is provided, this parameter represents the type of the backup. If not, this parameter represents the type of backup that should be taken during job execution. If both, EXISTING_BACKUP and BACKUP_TYPE are not provided, the source PDB, will be unplugged, and copied over to the destination for creating a new clone. Once the datafiles are copied, the source PDB will be plugged back.

47.16 Transferring Data Between Databases

The details of the EM CLI verb used to transfer data are as follows:

Table 47-27 Data Transfer EM CLI Verb

Verb

Description

Format

emcli data_transfer

Transfers data from the source database to the target database.

- -input_file - Location of the file containing the properties required for transferring data. See Table 47-28 for details.

Example:

emcli data_transfer -input_file=data:/u01/files/data_transfer.props

emcli data_transfer

-input_file

The table below explains the required parameters and values in the properties file that needs to be used as an input file for transferring data.

Table 47-28 Sample Properties File for Transferring Data

Parameters

Sample values

Description

Mandatory Parameters

SOURCE_LOCATION

SOURCE_LOCATION=/tmp/newp/PDB_Backup_1428003803938

Location of the data at the source host.

SRC_HOST

SRC_HOST=bl.example.com

The source host containing the data.

SRC_HOST_CREDS

SRC_HOST_CREDS=NC_HOST_SHY:SYS

Credentials for the host on which the data is located. If the source host is on Oracle Cloud, the value should be host SSH credentials.

DEST_HOST

DEST_HOST=slc0.example.com

The destination host where the data should be copied to.

DEST_HOST_CREDS

DEST_HOST_CREDS=NC_SLO_SSH

Credentials for the host where the data should be copied to. If the destination host is on Oracle Cloud, the value should be host SSH credentials.

DEST_LOCATION

DEST_LOCATION=/scratch/app3/oradata/migda

Location on the destination host where the data should be copied to.

47.17 Backing Up Datafiles and Metadata of a Pluggable Database

The details of the EM CLI verb used to backup datafiles and metadata of a pluggable database are as follows:

Table 47-29 EM CLI Verb for Datafile and Metadata Backup of Pluggable Databases

Verb

Description

Format

emcli pdb_backup

Takes a backup of datafiles and metadata xml of the specified pluggable database.

- -input_file - Location of the file containing the properties required for taking a backup of the PDB. See Table 47-30 for details.

Example:

emcli pdb_backup -input_file=data:/u01/files/pdb_backup.props

emcli pdb_backup

-input_file

The table below explains the required parameters and values in the properties file that needs to be used as an input file for backup of datafiles and metadata of a pluggable database.

Table 47-30 Sample Properties File for Datafile and Metadata Backup of a Pluggable Database

Parameters

Sample values

Description

Mandatory Parameters

TARGET_HOST_LIST

TARGET_HOST_LIST=xyz.abccorp.com

Host on which the target Container database (CDB)/Pluggable database (PDB) is hosted.

HOST_NORMAL_NAMED_CRED

HOST_NORMAL_NAMED_CRED=XYZ_CRED:CRED_OWNER

Host credentials.

SRC_CDB_NAMED_CRED

SRC_CDB_NAMED_CRED=CDB1_CRED:CRED_OWNER

SYSDBA credentials of the source CDB.

SRC_CDB_TARGET_NAME

SRC_CDB_TARGET_NAME=CDB1

The target name of the CDB which hosts the PDB.

SRC_CDB_TARGET_TYPE

SRC_CDB_TARGET_TYPE=oracle_database

CDB target type.

SRC_PDB_TARGET_NAME

SRC_PDB_TARGET_NAME=CDB1_PDB1

The target name of the PDB whose backup is required.

BACKUP_LOCATION

BACKUP_LOCATION=/scratch/pdbBackup

Path of the file system where the backup should be copied to.

WORK_DIR_LOCATION

WORK_DIR_LOCATION=/tmp

Temporary staging location on the source host.

ORACLE_HOME_LOC

ORACLE_HOME_LOC=/scratch/d121hmcasm/product/12.1.0/dbhome_1

Oracle home of the CDB.

47.18 Importing Data from Export Dumps to a Database

The details of the EM CLI verb used to import data from export dumps to a database are as follows:

Table 47-31 EM CLI Verb for Importing Data from Export Dumps to a Database

Verb

Description

Format

emcli dbimport

Imports data from export dumps to the specified database target.

- -input_file - Location of the file containing the properties required for importing data from export dumps. See Table 47-32 for details.

Example:

emcli dbimport -inputFile=data:/u01/files/dbimport.props

emcli dbimport

-input_file

The table below explains the required parameters and values in the properties file that needs to be used as an input file for importing data from export dumps to a database.

Table 47-32 Sample Properties File for Importing Data from Export Dumps to a Database

Parameters

Sample values

Description

Mandatory Parameters

DESTINATION_TARGET

DESTINATION_TARGET=SS_OPC_DB

Destination PDB target (or DB target) where the schema should be imported.

DESTINATION_TARGET_TYPE

DESTINATION_TARGET_TYPE=oracle_database

The destination target type.

DATABASE_CREDENTIAL

DATABASE_CREDENTIAL=SYSDBA:SYS

SYSDBA credentials of the target.

HOST_NAMED_CREDENTIAL

HOST_NAMED_CREDENTIAL=AE_NC:SYS

Credentials of the host where the destination target is hosted.

PROFILE_LOCATION

PROFILE_LOCATION=Database Provisioning Profiles/12.1.0.1.0/linux_x64/Export Dump of Sample schemas10

Location of the profile which is created during export.

REMAP_SCHEMA_LIST.(x)

REMAP_SCHEMA_LIST.0=HR:HR

REMAP_SCHEMA_LIST.1=OE:OE

REMAP_SCHEMA_LIST.2=PM:PM

REMAP_SCHEMA_LIST.3=IX:IX

REMAP_SCHEMA_LIST.4=SH:SH

REMAP_SCHEMA_LIST.5=BI:BI

List of schemas that needs to be imported.

REMAP_TABLESPACE_LIST.(x)

REMAP_TABLESPACE_LIST.0=EXAMPLE:MYTBSP1

REMAP_TABLESPACE_LIST.1=USERS:MYTBSP1

REMAP_TABLESPACE_LIST.2=SYSTEM:MYTBSP1

Schema corresponding tablespaces for the schema import.

DEGREE_OF_PARALLELISM

DEGREE_OF_PARALLELISM=1

Indicates if the data needs to imported in parallel.

DUMP_FILE_LIST.(x)

DUMP_FILE_LIST.0=/scratch/aime/dumpdir/samplschemas.dmp

Location of the dump file in the destination host.

IMPORT_LOG_FILE_DIRECTORY

IMPORT_LOG_FILE_DIRECTORY=DATA_PUMP_DIR

Location where the log files should be stored. This is a directory object inside the database.

FORWARDER_HOST

FORWARDER_HOST=slo.us.example.com

Indicates the forwarder host.

FORWARDER_CRED

FORWARDER_CRED=AIME_NC:SYSMAN

Indicates the forwarder host credentials.

WORKING_DIRECTORY

WORKING_DIRECTORY=/tmp

Temporary staging location on the source host.

47.19 Invoking a REST API Using EM CLI Verb

emcli invoke_ws is an EM CLI verb used to invoke a REST API to perform the action expected by the REST API. The medium however is Enterprise Manager command line interface.

Table 47-33 Invoking a REST API Using an EM CLI Verb

Verb

Description

Format

emcli invoke_ws

Invokes the Enterprise Manager Web service to act as per the REST API passed via this verb.

Options:

- -wsname - Indicates the URI of the resource.

- -method - Specifies of the REST method.

- -payload - Indicates the json/xml input payload.

- -accept - Payload type. These are standard REST API values.

- -type - Standard REST API response types.

- -param - This option is used to pass a form/query parameter value. For example, -param="name:value". More than one parameter can be specified. For example, -param="name:value" -param="zip:12345".
The parameter can be provided through a file. For example, the parameters can be specified in a text file with name file.txt and the command can have the options as: -param="name:tag" -input_file="tag:file.txt", wherein the parameter name will derive the value from the input file file.txt.

- -input_file - Use this option to pass in payload or param value from file.

Examples:

- emcli invoke_ws -wsname=/em/websvcs/restful/emws/core/v0/list/dataservice -method=get -param="name:Administrators"
Invokes list resource and sources all administrators

- emcli invoke_ws -wsname=/em/websvcs/restful/emws/core/v0/list/dataservice -method=get -param="name:tag" -input_file="tag:file.txt"
Invokes list resource and sources all administrators. The name parameter is read from file.txt.

emcli invoke_ws

-wsname=<WebService Name>

-method=<method name>

[-payload=<Payload>]

[-accept=<accept type>

[-type=response type]

[-param=Query Parameters]

[-input_file=<Input File for payload data>]

A sample of the contents of the file.txt is shown below.

Name:Administrators
Zip:23456

48 Database as a Service Administrator REST APIs

This chapter describes the resource models for the Administration flows of Database as a Service (DBaaS) REST APIs, and their responses. The following topics are covered in this chapter:

- Summary of Database as a Service Administrator REST APIs

- Creating a New DBaaS Cloud Setup Using REST APIs

- Database as a Service Administrator Operations REST APIs

- PaaS Zones and PaaS Zone REST APIs

- Software Pools and Software Pool REST APIs

- Database Request Settings REST APIs

- Database Quota REST APIs

- Service Template REST APIs

48.1 Summary of Database as a Service Administrator REST APIs

The table below shows a summary of all the DBaaS Administrator REST APIs covered in this chapter.

Table 48-1 Summary of Administrator DBaaS REST APIs

Resource

Data Model

GET

POST

PUT

DELETE

PaaS zones

Table 48-3

Section 48.3.1.3.1

Section 48.3.1.3.3

Section 48.3.1.3.4

Not supported

PaaS zone

Table 48-5

Section 48.3.1.3.2

Not supported

Not supported

Section 48.3.1.3.5

Software pools

Table 48-12

Section 48.3.2.3.1

- Database pool - Section 48.3.2.3.4;

- Schema pool - Section 48.3.2.3.6;

- Pluggable database pool - Section 48.3.2.3.8

- Database pool - Section 48.3.2.3.5

- Schema pool - Section 48.3.2.3.7

- Pluggable database pool - Section 48.3.2.3.9

Not supported

Software pool

Table 48-14

- Section 48.3.2.3.2

- Section 48.3.2.3.3

Not supported

Not supported

Section 48.3.2.3.10

DBaaS request settings

Table 48-26

Section 48.3.3.4.1

Section 48.3.3.4.2

Not supported

Not supported

DBaaS quota

Table 48-30

Section 48.3.4.4.1

Section 48.3.4.4.2

Section 48.3.4.4.3

Section 48.3.4.4.4

Service templates

Table 48-36

Section 48.3.5.3.1

Section 48.3.5.3

Not supported

Not supported

Service template

Table 48-38

Section 48.3.5.3.2

Not supported

Supported

Section 48.3.5.3.17

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

48.2 Creating a New DBaaS Cloud Setup Using REST APIs

The Cloud Administrator sets up the cloud infrastructure for DBaaS. The figure below illustrates the steps to be followed to setup the DBaaS cloud setup.

Figure 48-1 Creating a New DBaaS Cloud Resource

As an example, Table 48-2 illustrates a step-by-step process to create DBaaS using REST APIs and EM CLI verbs (where necessary).

Note:
The process below provides references to the REST APIs wherever possible. However, you can perform the same operations using EM CLI verbs. To know the corresponding EM CLI verbs refer to Chapter 10, EM CLI Verbs for Database as a Service Administrator.

Table 48-2 Creating DBaaS using REST APIs

Step

Action

1

Create a PaaS infrastructure zone.

Refer to Section 48.3.1.3.3, "Creating a PaaS Zone".

Note: To view the existing PaaS zones perform a GET operation. Refer to Section 48.3.1.3.1, "Viewing Details of the PaaS Zones Resource".

2

Create one of the following Database Pools:

- Database Pool - refer to Section 48.3.2.3.4, "Creating a Database Pool"

- Schema Pool - refer to Section 48.3.2.3.6, "Creating a Schema Pool"

- Pluggable Database Pool - refer to Section 48.3.2.3.8, "Creating a Pluggable Database Pool"

Note: To view the existing Database Pools perform a GET operation. Refer to Section 48.3.2.3.1, "Viewing Details of the Software Pools Resource"

3

Create DBaaS Request Settings for a user role. Refer to Section 48.3.3.4.2, "Creating Database Request Settings".

4

Create Quota for a user role. Refer to Section 48.3.4.4.2, "Creating DBaaS Quota for a Role".

Note: This step is optional.

5

Create a Profile to capture the source database information for provisioning. Refer to Chapter 47, "EM CLI Verbs for Database as a Service Administrator".

A profile can represent a complete database or a set of related schemas that form an application.

6

Create a Service Template for any one of the following based on the selected Database Pool:

- Database Pool - refer to:

- Section 48.3.5.3.3, "Creating a Service Template for DBCA Based Database"

- Section 48.3.5.3.4, "Creating a Service Template for RMAN Based Single Instance Database"

- Section 48.3.5.3.5, "Creating a Service Template for RMAN Based Single Instance Database With Single Instance Standby"

- Section 48.3.5.3.6, "Creating a Service Template for RMAN Based RAC One Node Database"

- Section 48.3.5.3.7, "Creating a Service Template for RMAN Based RAC One Node Database With Standby"

- Section 48.3.5.3.8, "Creating a Service Template for RMAN Based RAC Database With Standby"

- Section 48.3.5.3.10, "Creating a Service Template for DNFS Based Database"

- Schema Pool - refer to Section 48.3.5.3.13, "Creating a Service Template for a Schema"

- Pluggable Database Pool - refer to Section 48.3.5.3.14, "Creating a Service Template for a Pluggable Database"

The DBaaS cloud setup is ready to be administered.

48.3 Database as a Service Administrator Operations REST APIs

This section covers all the REST APIs for the Cloud Administrator flows. The REST APIs in this section are classified as follows:

- PaaS Zones and PaaS Zone REST APIs

- Software Pools and Software Pool REST APIs

- Database Request Settings REST APIs

- Database Quota REST APIs

- Service Template REST APIs

48.3.1 PaaS Zones and PaaS Zone REST APIs

The REST APIs in this section are categorized as PaaS zones REST APIs and PaaS zone REST APIs. PaaS zone represents a PaaS Infrastructure Zone whereas PaaS zones is a collection resource representing a Cloud Administrator's view of a group of all the accessible individual PaaS zone resources.

This section covers the following:

- PaaS Zones REST APIs

- PaaS Zone REST APIs

- PaaS Zones and PaaS Zone REST API Examples

48.3.1.1 PaaS Zones REST APIs

PaaS zones is a collective representation of all the individual PaaS zone resources. PaaS zones has the media type application/oracle.com.cloud.common.PaaSZones+json.

The following table describes the PaaS zones data model.

Table 48-3 PaaS Zones Data Model

Field

Type

Description

Occurs

Name

String

Displays name of this collection resource.

1

Type

String

Type of this collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

Count

Integer

Number of elements returned.

1

Items

Collection <PaaSZone>

List of PaaS zone resources. If there are no intances, the items will be present but will be empty.

1

totalCount

Integer

Total number of PaaS zone resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

48.3.1.1.1 Supported Request Methods for PaaS Zones

The following table lists all the operations that are supported on the PaaS zones resources.

Table 48-4 Supported Request Methods for PaaS Zones

GET

POST

PUT

DELETE

Yes

Yes

Yes

No

48.3.1.2 PaaS Zone REST APIs

This resource represents a PaaS Infrastructure Zone. PaaS zone has the media type application/oracle.com.cloud.common.PaaSZone+json.

The following table describes the PaaS zone data model.

Table 48-5 PaaS Zone Data Model

Field

Name

Description

Occurs

Name

String

A human readable name given to the PaaS zone. This field is non-editable.

1

displayName

String

Display name for the PaaS zone.

0..1

guid

String

Unique GUID of the PaaS zone that identifies the resource.

1

description

String

A brief description of the PaaS zone.

0..1

targetType

String

Target type of the PaaS zone to be created..

1

Members

Collection<members>

Members of PaaS zone. These must be added as EM targets in advance.

1

credentials

Collection <PaaSzone_Credential>

Credentials associated with the PaaS zone.

1

placementConstraints

Collection <EntityValueHolder>

Placement constraints for the PaaS zone that allows the cloud administrator to set a maximum ceilings for resource utilization.

0..1

characteristics

Collection <EntityValueHolder>

Characteristics associated with the PaaS zone.

1

canonicalLink

URI

A GET against this URI refreshes the client representation of the PaaS zone.

1

48.3.1.2.1 Supported Request Methods for PaaS Zone

The following table lists all the operations that are supported on the PaaS zone resources.

Table 48-6 Supported Request Methods for PaaS Zone

GET

POST

PUT

DELETE

Yes

No

No

Yes

48.3.1.3 PaaS Zones and PaaS Zone REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control 12.1.0.3 with Cloud Application plug-in 12.1.0.7 and higher. The following examples are covered:

- Viewing Details of the PaaS Zones Resource

- Viewing Details of the PaaS Zone Resource

- Creating a PaaS Zone

- Updating a PaaS Zone

- Deleting a PaaS Zone

48.3.1.3.1 Viewing Details of the PaaS Zones Resource

A GET request issued on the Resource Providers resource with the query parameter "type=self_service_zone" provides the details of all the individual PaaS zones which are already existing in the PaaS zones resource.

Table 48-7 GET Request Configuration for Viewing Details of the PaaS Zones Resource

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders?type=self_service_zone

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below:

{
"name": "Resource Providers",
"type": "Resource Provider",
"canonicalLink": {
"href": "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders"
},
"totalResults": 1,
"cfwItems": [
{
"id": "15",
"name": "pzone1",
"type": "self_service_zone",
"guid": "A3CF2D49CFF3F3E664D073303EA51F8E",
"canonicalLink": {
"href": "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/15"
}
},
{
"id": "16",
"name": "Test Zone 2",
"type": "self_service_zone",
"guid": "EF3830C71CC54B50B963376F9217AB95",
"canonicalLink": {
"href": "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/16"
}
},
{
"id": "17",
"name": "test paas zone",
"type": "self_service_zone",
"guid": "5D7548C1B879A51CFD894CEA8D5FB19B",
"canonicalLink": {
"href": "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/17"
}
},
{
"id": "18",
"name": "Test Zone",
"type": "self_service_zone",
"guid": "34405E0876B271E754B1A829BDFD06B9",
"canonicalLink": {
"href": "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/18"
}
}
]
}

48.3.1.3.2 Viewing Details of the PaaS Zone Resource

The GET request on the PaaS zone resource can be issued to retrieve its details. The configuration for GET to PaaS zone is as follows:

Table 48-8 GET Request Configuration for Viewing Details of the PaaS Zones Resource

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/23

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below:

{
"name": "My Test Zone",
"type": "self_service_zone",
"memberTargetType": "host",
"members": [
"example.com"
],
"credentials": [
{ "name": "normal_credential_guid",
"value": "NC_HOST_2015-10-09-095917"}
],
"placementConstraints": [
{"name": "MAX_CPU_UTILIZATION",
"value": [ "80" ] },
{"name": "MAX_MEMORY_ALLOCATION",
"value": [ "80" ]}
],
"memberConstraints": [],
"characteristics": [
{   "name": "ORACLE.SYSMAN.CFW.SELF_SERVICE_ZONE",
"value": [ "34405E0876B271E754B1A829BDFD06B9" ] },
{   "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT",
"value": [] },
{   "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER",
"value": [] },
{   "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"value": [] },
{   "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DOWNTIME_CONTACT",
"value": [] },
{   "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS",
"value": [] },
{   "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS",
"value": [] },
{   "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"value": [] }
],
"canonicalLink": {"href": "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/23"}
}

48.3.1.3.3 Creating a PaaS Zone

A PaaS zone is created with a POST request on the PaaS zones collection resource.

The configuration for POST to PaaS zones is as follows:

Table 48-9 POST Request Configuration for Creating a PaaS Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{   "useExistingTarget": false,
"name": "My Test Zone",
"type": "self_service_zone",
"credentials": [
{   "name": "normal_credential_guid",
"value": "MY_ZONE_CREDS0afb3e85-f" }
],
"memberTargetType": "host",
"members": [ "example.com" ],
"placementConstraints": [
{   "name": "MAX_CPU_UTILIZATION",
"value": "90"  }
] }

Request method

POST

A sample of the response received is shown below.

{
"message": "Resource provider with name \"My Test Zone\" and type \"self_service_zone\" created successfully.",
"canonicalLink": {
"href": "https://example.com:44533/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/23"
}
}

48.3.1.3.4 Updating a PaaS Zone

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

The configuration for PUT to PaaS zones is as follows:

Table 48-10 PUT Request Configuration for Updating a PaaS Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/23

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{   "memberTargetType": "host",
"credentials": [
{"name": "normal_credential_guid",
"value": "NC_HOST_2015-10-09-095917" }
],
"placementConstraints": [
{"name": "MAX_CPU_UTILIZATION",
"value": [ "92" ] }
] }

Request method

PUT

A sample of the response received is shown below.

{
"message": "Resource provider with ID \"23\" updated successfully."
}

48.3.1.3.5 Deleting a PaaS Zone

The DELETE request on the URI of the PaaS zone can be issued to delete a PaaS zone Instance.The configuration for deleting in PaaS zone is as follows:

Table 48-11 DELETE Request Configuration to delete a PaaS Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/23

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

{
"message": "Resource provider with ID \"23\" deleted successfully."
}

48.3.2 Software Pools and Software Pool REST APIs

This section covers the following:

- Software Pools

- Software Pool

- Software Pool REST API Examples

48.3.2.1 Software Pools

Software pools is a collection resource representing an SSA Administrator's view of all the accessible individual Software pool resources. Software pools has the media type application/oracle.com.cloud.commom.SoftwarePools+json.

The following table describes the Software pools data model.

Table 48-12 Software Pools Data Model

Field

Type

Description

Occurs

Name

String

Displays name of this collection resource.

1

Type

String

Type of this collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

Count

Integer

Number of elements returned.

1

Items

Collection <PaaSZone>

List of PaaS zone resources. If there are no intances, the items will be present but will be empty.

1

totalCount

Integer

Total number of PaaS zone resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

48.3.2.1.1 Supported Request Methods for Software Pools

The following table lists all the operations that are supported on the Software pools resources.

Table 48-13 Supported Request Methods for Software Pools

GET

POST

PUT

DELETE

Yes

Yes

Yes

No

48.3.2.2 Software Pool

A Software pool resource represents a collection of homogeneous servers or clusters that are used to service requests within a PaaS Infrastructure Zone. All members within a Software pool must be of the same type and must belong to the same PaaS Infrastructure Zone.Software pool has the media type application/oracle.com.cloud.common.SoftwarPool+json.

The following table describes the Software pool data model.

Table 48-14 Software Pool Data Model

Field

Type

Description

Occurs

Name

String

A human readable name given to the Software pool.

1

ID

String

Pool GUID that uniquely identifies the resource.

1

Description

String

As brief description given to the software pool.

0..1

poolTargetType

String

Target type of the Software Pool to be created. Example : "oracle_cloud_zone" for Database Pool, "schaas_pool" for Schema Pool, ”pdbaas_pool” for Pluggable Database Pool.

1

paasZone

String

Name of the PaaS zone associated with this Software Pool.

1

Members

Collection <String>

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

1

memberType

String

The 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.

1

Constraints

Collection <Entity Value Holder>

Placement Policy Constraints for a software pool allow the self service administrator to set maximum ceilings for resource utilization.

0..1

Filters

Collection <EntityValueHolder>

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

1

Properties

Collection <String>

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

1

membersToAdd

Collection <String>

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

0..1

membersToRemove

Collection <String>

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

0..1

canonicalLink

URI

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

1

48.3.2.2.1 Supported Request Methods for Software Pool

The following table lists all the operations that are supported on the Software pool resources.

Table 48-15 Supported Request Methods for Software Pool

GET

POST

PUT

DELETE

Yes

No

No

Yes

48.3.2.3 Software Pool REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control 12.1.0.3 with Cloud Application plug-in 12.1.0.7 and higher. The following examples are covered here:

- Viewing Details of the Software Pools Resource

- Viewing Details of a Software Pool Resource

- Viewing Details of a Software Pool Capacity

- Creating a Database Pool

- Updating a Database Pool

- Creating a Schema Pool

- Updating a Schema Pool

- Creating a Pluggable Database Pool

- Updating a Pluggable Database Pool

- Deleting a Database / Schema / Pluggable Database Pool

48.3.2.3.1 Viewing Details of the Software Pools Resource

Table 48-16 GET Request Configuration for Viewing Details of the Software Pools Resource

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Software Pools",
"type": "Software Pool",
"hasMore": false,
"count": 4,
"items": [
{
"name": "SI Databases Zone",
"type": "oracle_cloud_zone",
"id": "EF658526512C5CFEF593EB295D0CFAD5",
"zoneName": "Salt Lake City Zone",
"canonicalLink": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/EF658526512C5CFEF593EB295D0CFAD5"
},
{
"name": "Pluggable Databases Pool",
"type": "pdbaas_pool",
"id": "9FC634F035161C9260CD943970BAC1C8",
"zoneName": "Salt Lake City Zone",
"canonicalLink": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/9FC634F035161C9260CD943970BAC1C8"
},
{
"name": "Primary DB Pool",
"type": "oracle_cloud_zone",
"id": "B1E3A8872D1A503DA1F1756CD18207B4",
"zoneName": "Salt Lake City II",
"canonicalLink": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/B1E3A8872D1A503DA1F1756CD18207B4"
},
{
"name": "Standby DB Pool",
"type": "oracle_cloud_zone",
"id": "A5B6272EC680EFAB1B53842EC4256AAB",
"zoneName": "Salt Lake City II",
"canonicalLink": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/A5B6272EC680EFAB1B53842EC4256AAB"
}
],
"totalCount": 4,
"canonicalLink": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools",
"selfLink": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools"
}

48.3.2.3.2 Viewing Details of a Software Pool Resource

The GET request on the Software pool URI can be issued to retrieve its details.

The configuration for GET on Software pool is as follows:

Table 48-17 GET Request Configuration for Viewing Details of the Software Pool Resource

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name":"DB_POOL",
"description":"Database Pool of Oracle Homes",
"type":"Database Zone",
"id":"E827809080C16F75E040F20A60511EA2",
"zoneName":"SLC01MDR_ZONE",
"members":{
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/members",
"numberOfPoolMembers":"1"
},
"constraints":{
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/constraints",
"numberOfConstraints":"1"
},
"filters":{
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/filters",
"numberOfFilters":"3"
},
"properties":{
"canonicalLink":https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/properties",
"numberOfPropertiess":"0"
},
"createdOn":"2013-10-07 06:27:17",
"createdBy":null,
"modifiedOn":null,
"modifiedBy":null,
"owner":"SYSMAN",
"etag":null,
"lastModified":null,
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2",
"selfLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2"
}

48.3.2.3.3 Viewing Details of a Software Pool Capacity

The GET request on the Software pool capacity URI can be issued to retrieve its details.

In the table below, the URI to view the Software pool capacity is /em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/C0DE0DEB3A8195A4707704360463060B/capacity. However, it can be modified to add certain query parameters to view the desired output. The query parameters and their descriptions are given below:

- showUsageSummary: Includes resource utilization data at pool level. Values can be ”yes”, ”y”, or ”true” which are all case insensitive. If value is not provided or if the given value is other than the listed values, "usageSummary" will not be available in the response.

- showMemberLevelUsage: Includes resource utilization data at pool member level. Values can be ”yes”, ”y”, or ”true” which are all case insensitive. If value is not provided or if the given value is other than the listed values, "memberLevelUsage" will not be available in the response.

- diskGroups: Provides the list of ASM disk group names for storage computation. If the value is not provided, storage values will not be available in the response. Multiple values can be provided by using the format given below in the request URI:
diskGroups=<Value1>&diskGroups=<Value2>&...

- cpuMemAveUtilDays: Indicates the number of days to include the collected metrics for computing CPU and memory utilization. If no value is provided, the default value is taken as 7 days.

The configuration for GET on Software pool is as follows:

Table 48-18 GET Request Configuration for Viewing Details of the Software Pool Capacity

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E284FAAA7FBA6A06F7090115A3E07299/capacity?showMemberLevelUsage=y&showUsageSummary=true&diskGroups=RECOC1&diskGroups=DATAC1&cpuMemAveUtilDays=3

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{"name":"DB Pool 1",
"type":"oracle_cloud_zone",
"poolInfo":
{"poolName":"DB Pool 1",
"poolId":"C0DE0DEB3A8195A4707704360463060B",
"poolDescription":"Exadata hosts Oracle Home",
"dbConfiguration":"Cluster Database",
"dbVersion":"12.1.0.2.0",
"paasZone":"zone1"},                                                        "standByPools" :
[{"poolName":"Standby Pool 1",
"poolId":"6AF0F5A23BE120F4EAEC29236853D6B8",
"poolDescription":"Standby Oracle Home",
"dbConfiguration":"Cluster Database",
"dbVersion":"12.1.0.2.0",
"paasZone":"zone2"}],
"usageSummary":
{"numberOfDbs":"2",
"numberOfHosts":"2",
"cores":
{"total":"64",
"allocated":"8",
"available":"56",
"unit":"cores"},
"memory":
{"total":"504",
"allocated":"3.53",
"available":"500.47",
"unit":"GB"},
"storage":
{"total":"29073.24",
"allocated":"12765.99",
"available":"16307.25",
"unit":"GB"}},
"memberLevelUsage":
[{"host":"MyHost1.example.com",
"oracleHomeLocation":"/u01/app/oracle/product/12.1.0.2/dbhome_1",
"numberOfDbs":"1",
"cores":
{"total":"32",
"allocated":"4",
"available":"28",
"unit":"cores"},
"cpuUtilizationPercentage":"12.77",
"memory":
{"total":"251.99",
"allocated":"1.77",
"available":"250.23",
"unit":"GB"},
"memoryUtilizationPercentage":"59.66"},
{"host":"MyHost2.example.com",
"oracleHomeLocation":"/u01/app/oracle/product/12.1.0.2/dbhome_1",
"numberOfDbs":"1",
"cores":
{"total":"32",
"allocated":"4",
"available":"28",
"unit":"cores"},
"cpuUtilizationPercentage":"9.45",
"memory":
{"total":"251.99",
"allocated":"1.77",
"available":"250 .23",
"unit":"GB"},
"memoryUtilizationPercentage":"66.75"}],
"canonicalLink":"https://MyHost.example.com:4900/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/C0DE0DEB3A8195A4707704360463060B/capacity"}

48.3.2.3.4 Creating a Database Pool

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

The configuration for POST to Software pools is as follows:

Table 48-19 POST Request Configuration for Creating a Database Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "DB_POOL",
"poolTargetType": "oracle_cloud_zone",
"description": "Database Pool of Oracle Homes",
"paasZone": "SLC01MDR_ZONE",
"members": [
"OraDb11g_home1_2_slc01mdr"
],
"serviceFamily": "DBAAS",
"serviceType": "DBAAS",
"constraints": {
"items": [
{"name": "MAX_INSTANCES",
"value": "10"}
]
},
"filters": {
"items": [
{"name": "CONFIGURATION",
"value": "oracle_database"},
{"name": "VERSION",
"value": "11.2.0.2.0"},
{"name": "PLATFORM",
"value": "226"}
]
},
"properties": {
"items": [
{"name": "host_credential_guid",
"value": "E84E88308E46A725E040F20A605125DD"},
{"name": "root_credential_guid",
"value": "E84E88308E46A725E040F20A605125DD"},
{"name": "standby_pools",
"value": "DB_POOL1| DB_POOL2"}
]
}
}

Note:

- name: Indicates the name of the pool.

- poolTargetType: Indicates the target type for DBaaS pool. oracle_cloud_zone is the target type specific for DB OH pool.

- paasZone: Indicates the name of the PaaS infrastructure zone.

- members: Is a comma and string separated list of target names of Oracle homes, and members of the pool.

- constraints: Indicates the constraints on the pool. Allowed values is MAX_INSTANCES.

- filters: Indicates the filters applicable to define the version and type of the oracle homes of the pool, including VERSION, CONFIGURATION (oracle_database, rac_database) and PLATFORM (provide reference to list of code, for example, 226 for linux).

- properties: Indicates the collection resource to define properties of the pool like Host credential GUID, Root credential GUID, and Standby pools. To identify the Named credential GUID use the EM CLI verb emcli list_named_credential or emcli get_named_credential.

Request method

POST

A sample of the response received is shown below.

{
"name":"DB_POOL",
"description":"Database Pool of Oracle Homes",
"type":"Database Zone",
"id":"E827809080C16F75E040F20A60511EA2",
"zoneName":"SLC01MDR_ZONE",
"members":{
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/members",
"numberOfPoolMembers":"1"
},
"constraints":{
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/constraints",
"numberOfConstraints":"1"
},
"filters":{
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/filters",
"numberOfFilters":"3"
},
"properties":{
"canonicalLink":https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2/properties",
"numberOfPropertiess":"0"
},
"createdOn":"2013-10-07 06:27:17",
"createdBy":null,
"modifiedOn":null,
"modifiedBy":null,
"owner":"SYSMAN",
"etag":null,
"lastModified":null,
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2",
"selfLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E827809080C16F75E040F20A60511EA2"
}

48.3.2.3.5 Updating a Database Pool

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

The configuration for PUT to Software pools is as follows:

Table 48-20 PUT Request Configuration for Updating a Database Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "DB_POOL",
"poolTargetType": "oracle_cloud_zone",
"description": "Database Pool of Oracle Homes",
"membersToAdd": [
"OraDb11g_home1_2_abc"],
"membersToRemove": [
"OraDb11g_home1_2_abc"],
"constraints":
{"items": [{"name": "MAX_INSTANCES", "value": "8"}]},
"properties":
{"items": [
{"name": "host_credential_guid", "value": "E84E88308E46A725E040F20A605125DD"},
{"name": "root_credential_guid", "value": "E84E88308E46A725E040F20A605125DD"},
{"name": "standby_pools", "value": "DB_POOL"}
]}
}

Note: Ensure at least one member remains as a part of the pool while issuing the request. If all the members are added to the membersToRemove attribute, the PUT request may fail.

Request method

PUT

A sample of the response received is shown below.

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

48.3.2.3.6 Creating a Schema Pool

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

The configuration for POST to Software pools is as follows:

Table 48-21 POST Request Configuration for Creating a Schema Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "SCHEMA_POOL",
"poolTargetType": "schaas_pool",
"description": "Schema Service Pool",
"paasZone": "SLC01MDR_ZONE",
"members": ["simple.example.com"],
"serviceFamily":"DBAAS",
"serviceType":"SCHEMA",
"constraints":
{
"items": [
{"name": "MAX_SERVICES", "value": "20"},
{"name": "USE_WORKLOAD", "value": "true"},
{"name": "MAX_CPU_USAGE", "value": "90"},
{"name": "MAX_MEMORY_USAGE", "value": "90"},
{"name": "ENFORCE_CPU", "value": "true"}
]
},
"filters":
{
"items": [
{"name": "TARGET_TYPE","value": "oracle_database"},
{"name": "VERSION","value": "11.2.0.2.0"},
{"name": "PLATFORM","value": "226"}
]
}
}

Request method

POST

A sample of the response received is shown below.

Status 201 Created
Content-Type: application/json
{
"name":"SCHEMA_POOL",
"description":"Schema Service Pool",
"type":"Schema Pool",
"id":"2CFF36A9E92AAD533253871374857D8C",
"zoneName":"SLC01MDR_ZONE",
"members":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/2CFF36A9E92AAD533253871374857D8C/members",
"numberOfPoolMembers":"1"},
"constraints":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/2CFF36A9E92AAD533253871374857D8C/constraints",
"numberOfConstraints":"5"},
"filters":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/2CFF36A9E92AAD533253871374857D8C/filters",
"numberOfFilters":"3"},
"properties":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/2CFF36A9E92AAD533253871374857D8C/properties",
"numberOfPropertiess":"0"},
"createdOn":"2013-10-07 08:13:48",
"createdBy":null,
"modifiedOn":null,
"modifiedBy":null,
"owner":"SYSMAN",
"etag":null,
"lastModified":null,
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/2CFF36A9E92AAD533253871374857D8C",
"selfLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/2CFF36A9E92AAD533253871374857D8C"
}

48.3.2.3.7 Updating a Schema Pool

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

The configuration for PUT to Software pools is as follows:

Table 48-22 PUT Request Configuration for Updating a Schema Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "SCHEMA_POOL",
"poolTargetType": "schaas_pool",
"description": "Schema Service Pool",
"membersToAdd": [
"xyxy.example.com"],
"membersToRemove": [
"simple.us.example.com"],
"constraints":
{
"items": [
{"name": "MAX_SERVICES", "value": "10"},
{"name": "USE_WORKLOAD", "value": "false"},
{"name": "MAX_CPU_USAGE", "value": "90"},
{"name": "MAX_MEMORY_USAGE", "value": "90"},
{"name": "ENFORCE_CPU", "value": "false"}
]
},
}

Note: Ensure at least one member remains as a part of the pool while issuing the request. If all the members are added to the membersToRemove attribute, the PUT request may fail.

Request method

PUT

A sample of the response received is shown below.

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

48.3.2.3.8 Creating a Pluggable Database Pool

A POST operation is issued on Software Pools collection resource to create a Software Pool.The configuration for POST to Software pools is as follows:

Table 48-23 POST Request Configuration for Creating a Pluggable Database Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "PDB_POOL",
"poolTargetType": "pdbaas_pool",
"description": "Pluggable Database Pool",
"paasZone": "PDB_ZONE",
"members": ["database"],
"serviceFamily":"DBAAS",
"serviceType":"PDB",
"constraints":
{
"items": [
{"name": "MAX_PDB_SERVICES", "value": "20"},
{"name": "PDBS_USE_WORKLOAD", "value": "true"},
{"name": "MAX_CPU_USAGE_BY_PDBS", "value": "90"},
{"name": "MAX_MEMORY_USAGE_BY_PDBS", "value": "90"},
{"name": "PDBS_ENFORCE_CPU", "value": "true"}
]
},
"filters":
{
"items": [
{"name": "TARGET_TYPE_CDB","value": "oracle_database"},
{"name": "VERSION_CDB","value": "12.1.0.1.0"},
{"name": "PLATFORM_CDB","value": "226"}
]
}
}

Request method

POST

A sample of the response received is shown below.

Status 201 Created
Content-Type: application/json
{
"name":"PDB_POOL",
"description":"Pluggable Database Pool",
"type":"Pdb Pool",
"id":"E82952BD4C94D443E040F20A605114E6",
"zoneName":"PDB_ZONE",
"members":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E82952BD4C94D443E040F20A605114E6/members",
"numberOfPoolMembers":"1"
},
"constraints":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E82952BD4C94D443E040F20A605114E6/constraints",
"numberOfConstraints":"5"
},
"filters":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E82952BD4C94D443E040F20A605114E6/filters",
"numberOfFilters":"3"
},
"properties":{
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E82952BD4C94D443E040F20A605114E6/properties",
"numberOfPropertiess":"0"},
"createdOn":"2013-10-07 08:29:51",
"createdBy":null,
"modifiedOn":null,
"modifiedBy":null,
"owner":"SYSMAN",
"etag":null,
"lastModified":null,
"canonicalLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E82952BD4C94D443E040F20A605114E6",
"selfLink":"https://xyxy.example.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/E82952BD4C94D443E040F20A605114E6"
}

48.3.2.3.9 Updating a Pluggable Database Pool

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

The configuration for PUT to Software pools is as follows:

Table 48-24 PUT Request Configuration for Updating a Pluggable Database Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "PDB_POOL",
"poolTargetType": "pdbaas_pool",
"description": "Pluggable Database Pool",
"membersToAdd": [
"simple.us.example.com"],
"membersToRemove": [
"simple1.us.example.com"],
"constraints":
{
"items": [
{"name": "MAX_PDB_SERVICES", "value": "10"},
{"name": "PDBS_USE_WORKLOAD", "value": "false"},
{"name": "MAX_CPU_USAGE_BY_PDBS", "value": "90"},
{"name": "MAX_MEMORY_USAGE_BY_PDBS", "value": "90"},
{"name": "PDBS_ENFORCE_CPU", "value": "false"}
]
},
}

Note: Ensure at least one member remains as a part of the pool while issuing the request. If all the members are added to the membersToRemove attribute, the PUT request may fail.

Request method

PUT

A sample of the response received is shown below.

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

48.3.2.3.10 Deleting a Database / Schema / Pluggable Database Pool

To delete a SoftwrePool Instance raise the DELETE request on the URI of the Database pool.The configuration for deleting a Software pool is as follows:

Table 48-25 DELETE Request Configuration for Deleting a Database/Schema/Pluggable Database Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

A sample of the response received is shown below.

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

48.3.3 Database Request Settings REST APIs

This section describes the REST request/response interactions for Database Request Settings.

Note:
Request Settings REST APIs are only supported by the Oracle Cloud Application plug-in version 12.1.0.7.0 and higher.

The topics covered in this section are:

- Database Request Settings Resource Model

- Dbaas Request Settings Resource

- Supported Operations for Dbaas Request Settings

- Dbaas Request Settings REST API Examples

48.3.3.1 Database Request Settings Resource Model

Cloud resources are organized by common service entities, and specific services (for example, Database Request Settings) provide resources by extending these common service entities. The Database Request Settings is a cloud resource for which instance does not exist.The following sections describe the resources that are supported by the Database Request Settings REST APIs and provide examples of supported operations.

48.3.3.2 Dbaas Request Settings Resource

The Dbaas Request Settings extends the cloud resource. It describes the database request settings related to service instances. Dbaas Request Settings has media type - application/oracle.com.cloud.common.DbaasRequestSettings+json.

The following table describes the Dbaas Request Settings data model.

Table 48-26 DBaaS Request Settings Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the template.

1

description

String

A brief description given to the template

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

media_type

String

The media type of the service template.

1

service_family_type

String

Dbaas

1

canonicalLink

URI

Can be used to perform cloud interactions like GET and POST.

1

RequestSettings

String

The current database request settings.

1

48.3.3.3 Supported Operations for Dbaas Request Settings

The following table lists all the operations that are supported on the database quota service resources.

Table 48-27 Supported Operations for DBaas Request Settings

GET

POST

PUT

DELETE

Yes

Yes

Yes

Yes

48.3.3.4 Dbaas Request Settings REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control 12.1.0.3 with Cloud Application plug-in 12.1.0.7 and higher. The following examples are covered:

- Viewing Details of the Dbaas Request Settings Resource

- Creating Database Request Settings

48.3.3.4.1 Viewing Details of the Dbaas Request Settings Resource

The table below shows the REST API configuration for viewing details of the DBaaS request setting resource.k

Table 48-28 GET Request Configuration for Viewing Details of the DBaaS Request Setting Resource

Feature

Description

URI

em/cloud/dbaas/requestsettings

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/requestsettings" ,
"name" : "Dbaas Request Settings" ,
"description" : "Dbaas Request settings" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.common.DbaasRequestSettings+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/requestsettings" ,
"Request Settings" :     {
"futureReservationLength" : "No Reservation" ,
"defaultRetirementPeriod" : "No Reservation" ,
"maximumArchiveDuration" : "No Reservation"
}
}

48.3.3.4.2 Creating Database Request Settings

This section describes how to create the request settings using the cloud resources.

The configuration for POST to DbaasRequestSettings is as follows:

Table 48-29 POST Request Configuration for Creating DBaaS Request Settings

Feature

Description

URI

em/cloud/dbaas/requestsettings

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbaasRequestSettings+json

Accept: application/oracle.com.cloud.common.DbaasRequestSettings+json

Body

{
"future_reservation_length" : "2 Months",
"maximum_archive_duration" : "10 Weeks",
"default_retirement_period" : "No Reservation"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/requestsettings" ,
"name" : "Dbaas Request Settings" ,
"description" : "Dbaas Request settings" ,
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"date" : "2013-08-27T09:13:03+0000" ,
"text" : "Request settings have been updated."
}
]
} ,
"media_type" : "application/oracle.com.cloud.common.DbaasRequestSettings+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/requestsettings"
}

48.3.4 Database Quota REST APIs

This section describes the REST request/response interactions for setting up Quota.

Note:
Quota REST APIs are only supported by the Oracle Cloud Application plug-in version 12.1.0.7.0 and higher.

The topics covered in this section are:

- Database Quota Resource Model

- Dbaas Quota Resource

- Supported Operations for DbaaS Quota

- Database Quota REST API Examples

48.3.4.1 Database Quota Resource Model

Cloud resources are organized by common service entities, and specific services (for example, Database Quota) provide resources by extending these common service entities. The Database Quota is a cloud resource for which an instance does not exist.

The following sections describe the resources that are supported by the Database Quota REST APIs and provide examples of supported operations.

48.3.4.2 Dbaas Quota Resource

The Dbaas Quota extends the cloud resource. It describes the quota settings for all roles. Dbaas Quota has the media type application/oracle.com.cloud.common.DbaasQuota+json.

The following table describes the Dbaas Quota data model.

Table 48-30 Dbaas Quota Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the template.

1

description

String

A brief description given to the template

1

resource_state

String

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

media_type

String

The media type of the service template that. this type represents

1

service_family_type

String

Dbaas

1

canonicalLink

URI

Can be used to perform cloud interactions like GET and POST.

1

databases

String

The databases usage report.

1

schema_services

String

The schema services usage report.

1

pluggable_databases

String

The pluggable databases usage report.

1

memory

String

The memory usage report.

1

storage

String

The storage usage report.

1

Quota

String

The Quota setup details for a role.

1

48.3.4.3 Supported Operations for DbaaS Quota

The following table lists all the operations that are supported on the Database quota resources.

Table 48-31 Supported Operations for DbaaS Quota

GET

POST

PUT

DELETE

Yes

Yes

Yes

Yes

48.3.4.4 Database Quota REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control 12.1.0.3 with Cloud Application plug-in 12.1.0.7 and higher. The following examples are covered:

- Viewing Details of the DBaas Quota Resource

- Creating DBaaS Quota for a Role

- Updating DBaaS Quota for a Role

- Deleting DBaaS Quota for a Role

48.3.4.4.1 Viewing Details of the DBaas Quota Resource

Table 48-32 GET Request Configuration for Viewing Details of the DBaaS Quota Resource

Feature

Description

URI

em/cloud/dbaas/quota

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/quota" ,
"name" : "Dbaas User Quota" ,
"description" : "User Quota for the user" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.common.DbaasQuota+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/quota" ,
"databases" :     {
"quota" : "Unlimited" ,
"used" : "1" ,
"unit" : "Instance"
} ,
"schema_services" :     {
"quota" : "Unlimited" ,
"used" : "1" ,
"unit" : "Instance"
} ,
"pluggable_databases" :     {
"quota" : "Unlimited" ,
"used" : "1" ,
"unit" : "Instance"
} ,
"memory" :     {
"quota" : "Unlimited" ,
"used" : "0.79" ,
"unit" : "GB"
} ,
"storage" :     {
"quota" : "Unlimited" ,
"used" : "3.38" ,
"unit" : "GB"
} ,
"Quotas" :
[
{
"Role Name" : "DBAAS_ROLE" ,
"Memory(GB)" : "99" ,
"Storage(GB)" : "99" ,
"Number of Database Requests" : "99" ,
"Number of Schema Service Requests" : "99" ,
"Number of Pluggable database Service Requests" : "99"
}
]
}

48.3.4.4.2 Creating DBaaS Quota for a Role

This section describes how to create/setup a quota for a role using the Cloud resources.

The configuration for POST to Dbaas Quota is as follows:

Table 48-33 POST Request Configuration for Creating a DBaaS Quota for a Role

Feature

Description

URI

em/cloud/dbaas/quota

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbaasQuota+json

Accept: application/oracle.com.cloud.common.DbaasQuota+json

Body

{
"role_name" : "DBAAS_ROLE",
"databases" : "10",
"schema_services" : "21",
"pluggable_databases" : "22",
"storage" : "99",
"memory" : "99"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/quota" ,
"name" : "Dbaas User Quota" ,
"description" : "User Quota for the user" ,
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"date" : "2013-08-27T08:58:48+0000" ,
"text" : "Quota for Role DBAAS_ROLE setup successfully."
}
]
} ,
"media_type" : "application/oracle.com.cloud.common.DbaasQuota+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/quota"
}

48.3.4.4.3 Updating DBaaS Quota for a Role

This section describes how update the quota already setup for a role using the Cloud resources.The configuration for PUT to DBaas Quota is as shown in the table below.

Table 48-34 PUT Request Configuration for Updating a DBaaS Quota for a Role

Feature

Description

URI

em/cloud/dbaas/quota

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbaasQuota+json

Accept: application/oracle.com.cloud.common.DbaasQuota+json

Body

{
"role_name" : "DBAAS_ROLE",
"databases" : "10",
"schema_services" : "21",
"pluggable_databases" : "22",
"storage" : "99",
"memory" : "99"

Request method

PUT

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/quota" ,
"name" : "Dbaas User Quota" ,
"description" : "User Quota for the user" ,
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"date" : "2013-08-27T09:01:56+0000" ,
"text" : "Quota for Role DBAAS_ROLE updated successfully."
}
]
} ,
"media_type" : "application/oracle.com.cloud.common.DbaasQuota+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/quota"
}

48.3.4.4.4 Deleting DBaaS Quota for a Role

This section describes how delete the quota setup for a role using the Cloud resources.The configuration for deleting in DBaas Quota is as follows:

Table 48-35 DELETE Request Configuration for Deleting a DBaaS Quota for a Role

Feature

Description

URI

em/cloud/dbaas/quota

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbaasQuota+json

Accept: application/oracle.com.cloud.common.DbaasQuota+json

Body

{
"role_name" : "SSA_USER_ROLE"
}

Request method

DELETE

A sample of the response received is shown below.

{
"uri": "/em/cloud/dbaas/quota",
"name": "Dbaas User Quota",
"description": "User Quota for the user",
"resource_state": {
"state": "READY",
"messages": [
{
"text": "Quota for Role SSA_USER_ROLE deleted successfully.",
"date": "2015-12-08T07:18:08+0000"
}
]
},
"media_type": "application/oracle.com.cloud.common.DbaasQuota+json",
"service_family_type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/quota"
}

48.3.5 Service Template REST APIs

This section covers the following:

- Service Templates Resource

- Service Template Resource

- Service Templates and Service Template REST API Examples

48.3.5.1 Service Templates Resource

Service Templates is a collection resource representing a Cloud Administrator's view of all the accessible service template resources. Service Templates has the media type application/oracle.com.cloud.common.ServiceTemplates+json.

The following table describes the Service Templates data model.

Table 48-36 Service Templates Data Model

Field

Type

Description

Occurs

Name

String

Displays name of this collection resource.

1

Type

String

Type of this collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

Count

Integer

Number of elements returned.

1

Items

Collection <ServiceTemplate>

The elements of this collection.

1

totalCount

Integer

Total number of PaaS zone resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

48.3.5.1.1 Supported Operations for Service Templates

The following table lists all the operations that are supported on the Service Templates resource.

Table 48-37 Supported Operations for Service Templates

GET

POST

PUT

DELETE

Yes

Yes

No

No

48.3.5.2 Service Template Resource

A service template is a standardized service definition that can be used by self service users to provision a service instance. Service Template has the media type application/oracle.com.cloud.common.ServiceTemplate+json.

The following table describes the Service Template data model.

Table 48-38 Service Template Data Model

Field

Type

Description

Occurs

Name

String

A human readable name given to the ServiceTemplate.

1

ID

String

Service Template ID that uniquely identifies the resource.

1

Description

String

As brief description given to the zone.

0..1

canonicalLink

URI

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

1

serviceFamily

String

Service family

1

serviceType

String

Service type.

1

Roles

Collection <Role>

SSA roles that can access this service template.

0..1

poolIds

Collection <String>

Software Pool Ids associated with this service template.

1

createdOn

String(Date/Time)

Time when the resource was created.

0..1

createdBy

String

The user who created the resource.

1

modifiedOn

String(Date/Time)

Time when the resource was last modified.

0..1

rolesToRemove

Collection <String>

SSA roles to be deleted while editing a PaaS zone.

0..1

48.3.5.2.1 Supported Operations for Service Template

The following table lists all the operations that are supported on the Service Template resource.

Table 48-39 Supported Operations for Service Template

GET

POST

PUT

DELETE

Yes

No

Yes

Yes

48.3.5.3 Service Templates and Service Template REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control 12.1.0.3 with Cloud Application plug-in 12.1.0.7 and higher. The following examples are covered:

- Viewing Details of the Service Templates Resource

- Viewing Details of the ServiceTemplate Resource

- Creating a Service Template for DBCA Based Database

- Creating a Service Template for RMAN Based Single Instance Database

- Creating a Service Template for RMAN Based Single Instance Database With Single Instance Standby

- Creating a Service Template for RMAN Based RAC One Node Database

- Creating a Service Template for RMAN Based RAC One Node Database With Standby

- Creating a Service Template for RMAN Based RAC Database With Standby

- Creating a Service Template for RAC Database with Standby Using a DBCA Template

- Creating a Service Template for DNFS Based Database

- Creating a Service Template for Snap Clone Single Instance Database (with Archiving Enabled)

- Creating a Service Template for Snap Clone Single Instance Database (without Archiving Enabled)

- Creating a Service Template for a Schema

- Creating a Service Template for a Pluggable Database

- Creating a Service Template for RAC Pluggable Database Using an Empty Pluggable Database

- Creating a Service Template for RAC Pluggable Database Using a Profile Pluggable Database

- Deleting a Database / Schema / Pluggable Database Service Template

48.3.5.3.1 Viewing Details of the Service Templates Resource

The configuration for GET request is shown in the table below.

Table 48-40 GET Request Configuration for Viewing Details of the Service Templates Resource

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Service Templates",
"type": "Service Template",
"totalResults": 5,
"cfwItems": [
{
"id": "1",
"name": "Database Creation on Individual Hosts",
"guid": "203D5C842C2C17C3E053C075B10A73E3",
"canonicalLink": {
"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/1"
}
},
{
"id": "21",
"name": "Create Databases on 12_1_0_1_x",
"guid": "204E31F679D421E8E053C075B10A409A",
"canonicalLink": {
"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/21"
}
},
{
"id": "81",
"name": "Create Databases on Clusters - Based on DB Template",
"guid": "2068CDF3C0200D7CE053C075B10A7811",
"canonicalLink": {
"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/81"
}
},
{
"id": "61",
"name": "RMAN ST",
"guid": "205046BB4D38762EE053C075B10AF091",
"canonicalLink": {
"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/61"
}
},
{
"id": "41",
"name": "Database Creation on Cluster",
"guid": "204F067E22C12CFDE053C075B10A8A26",
"canonicalLink": {
"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/41"
}
}
],
"canonicalLink": {
"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates"
}
}

48.3.5.3.2 Viewing Details of the ServiceTemplate Resource

The GET request on the ServiceTemplate URI can be issued to retrieve its details.The configuration for GET to ServiceTemplate is as follows:

Table 48-41 GET Request Configuration for Viewing Details of the Service Template Resource

Feature

Description

URI

/em/websvcs/restful/extws/ cloudservices/admin/cfw/v2/servicetemplates/61

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"id": "61",
"guid": "205046BB4D38762EE053C075B10AF091",
"name": "RMAN ST",
"displayName": "RMAN ST",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"createdOn": "2015-09-22T05:32:07Z",
"createdBy": "SYSMAN",
"modifiedOn": "2015-09-22T05:32:07Z",
"owner": "SYSMAN",
"lastModified": "2015-09-22T05:32:07Z",
"payloads": [
{ "name": "SERVICE_TEMPLATE_PROV_SOURCE",
"value": null,
"required": null},
{"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:204D498A85D42C6AE053C075B10A6B09:0.1",
"required": null},
{"name": "DBDELETE_PRESCRIPT",
"value": null,
"required": null},
{"name": "DBDELETE_POSTSCRIPT",
"value": null,
"required": null}
],
"characteristics": [
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT",
"displayName": "Contact",
"values": [],
"required": false,
"editable": true,
"visible": true},
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER",
"displayName": "Cost Center",
"values": [],
"required": false,
"editable": true,
"visible": true},
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName": "Department",
"values": [],
"required": false,
"editable": true,
"visible": true},
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DOWNTIME_CONTACT",
"displayName": "Downtime Contact",
"values": [],
"required": false,
"editable": true,
"visible": true},
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS",
"displayName": "Lifecycle Status",
"values": [
"Development",
"MissionCritical",
"Production",
"Stage",
"Test"
],
"required": false,
"editable": true,
"visible": true},
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS",
"displayName": "Line of Business",
"values": [],
"required": false,
"editable": true,
"visible": true},
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName": "Location",
"values": [],
"required": false,
"editable": true,
"visible": true},
{ "name": "ORACLE.SYSMAN.SSA.PROVISIONING_TYPE",
"displayName": "Provisioning Type",
"values": ["RMAN"],
"required": false,
"editable": false,
"visible": false}
],
"resourceProvider": {
"lookupCharacteristics": [
{
"purposeId": 1,
"characteristics": [
{ "name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"displayName": "oracle.sysman.ssa.oracle_cloud_zone",
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"},
"targets": [
{ "guid": "0CAF930826EDE90D8072E4E3ACA8072A",
"displayName": "RAC Databases Pool _11_2_0_4" }
]
}
]
}
]
},
"configurations": [
{ "name": "ssaUser",
"type": "STRING",
"value": "",
"displayName": "ssaUser",
"required": false,
"secret": false},
{ "name": "STANDBY_WORK_DIR",
"type": "STRING",
"value": "",
"displayName": "STANDBY_WORK_DIR",
"required": false,
"secret": false},
{ "name": "SID_OPTION",
"type": "STRING",
"description": "Database SID Option to be used. values are ssauser/prefix",
"value": "prefix",
"displayName": "Database SID Option",
"required": false,
"secret": false},
{ "name": "PROFILE_VERSION",
"type": "STRING",
"description": "Profile version to use",
"value": "latest",
"displayName": "Profile version",
"required": false,
"secret": false},
{ "name": "DB_TARGET_DISPLAY_NAME",
"type": "STRING",
"value": "",
"displayName": "DB_TARGET_DISPLAY_NAME",
"required": false,
"secret": false},
{ "name": "REF_TGT",
"type": "STRING",
"value": "xxy.example.com",
"displayName": "REF_TGT",
"required": false,
"secret": false},
{ "name": "USER_PRIVILEGES",
"type": "STRING",
"description": "Comma Seperated List of privileges that will be applied on role assigned to the master account.",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY",
"displayName": "User Privileges",
"required": false,
"secret": false},
{ "name": "COMMON_DB_SID",
"type": "STRING",
"description": "Database SID Prefix",
"value": "rmanri",
"displayName": "Database SID Prefix",
"required": false,
"secret": false},
{ "name": "DBAAS_SSA_STANDBY_CUSTOM_PRE_SCRIPTS_URN",
"type": "STRING",
"description": "Urn of the software library component which has the standby custom post sql script",
"value": "",
"displayName": "URN of the standby pre sql custom script",
"required": false,
"secret": false},
{ "name": "DBAAS_SSA_STANDBY_CUSTOM_POST_SCRIPTS_URN",
"type": "STRING",
"description": "Urn of the software library component which has the standby custom post sql script",
"value": "",
"displayName": "URN of the standby post sql custom script",
"required": false,
"secret": false},
{ "name": "ssaTargetName",
"type": "STRING",
"value": "",
"displayName": "ssaTargetName",
"required": false,
"secret": false},
{ "name": "DB_USER_NAMES",
"type": "STRING",
"description": "Database users from source",
"value": "",
"displayName": "Database Users from source",
"required": false,
"secret": false},
{ "name": "ssaTargetType",
"type": "STRING",
"value": "",
"displayName": "ssaTargetType",
"required": false,
"secret": false},
{ "name": "RAC_ONE_SERVICE_NAME",
"type": "STRING",
"description": "The name of service for RAC One Node database.",
"value": "",
"displayName": "RAC One Service Name",
"required": false,
"secret": false},
{ "name": "RUN_AS_USER",
"type": "STRING",
"value": "sys",
"displayName": "RUN_AS_USER",
"required": false,
"secret": false},
{ "name": "NONADMIN_SSA_ACC_DB_USER_NAMES",
"type": "STRING",
"description": "Database users from source",
"value": "OUTLN,ORACLE_OCM,APPQOSSYS,WMSYS,EXFSYS,CTXSYS,XDB,ORDSYS,ORDDATA,ORDPLUGINS,SI_INFORMTN_SCHEMA,MDSYS,OLAPSYS,SYSMAN,APEX_030200,FLOWS_FILES,SCOTT,OWBSYS_AUDIT,OWBSYS",
"displayName": "Database Users from source",
"required": false,
"secret": false},
{ "name": "INIT_PARAMS",
"type": "VECTOR",
"description": "The list of initialization values that are as paramName=paramValue",
"displayName": "INIT_PARAMS",
"required": false,
"secret": false,
"values": [
"*.db_block_size=8192",
"*.audit_trail='db'",
"*.db_name='mdb00008'",
"*.cpu_count=0",
"myracdb1.__sga_target=1275068416",
"*.diagnostic_dest='/u01/app/emga/11.2.0.4'",
"*.control_files='/oradbnas/mdb00008/controlfile/control01.ctl','/oradbnas//mdb00008/controlfile/control02.ctl'",
"*.audit_file_dest='/u01/app/emga/11.2.0.4/admin/mdb00008/adump'",
"*.pga_aggregate_target=423624704",
"*.processes=150",
"*.db_create_file_dest='/oradbnas/mdb00008'",
"*.db_recovery_file_dest='/oradbnas//mdb00008'",
"*.log_archive_format='%t_%s_%r.dbf'",
"*.compatible='11.2.0.4.0'",
"*.db_recovery_file_dest_size=2097152000",
"*.open_cursors=300",
"*.remote_login_passwordfile='exclusive'",
"*.undo_tablespace='UNDOTBS01'",
"*.db_domain=''"
]},
{ "name": "COMMON_DB_DBSNMP_PASSWORD",
"type": "STRING",
"description": "DBSNMP Account password",
"value": "welcome1",
"displayName": "DBSNMP Account password",
"required": false,
"secret": true},
{ "name": "DB_ADMIN_PASSWORD_SAME",
"type": "STRING",
"description": "Use the same passwords for SYS, SYSTEM and DBSNMP account",
"value": "true",
"displayName": "Use the same passwords for SYS, SYSTEM and DBSNMP account",
"required": false,
"secret": false},
{ "name": "DEFAULT_DATABASE_SIZE",
"type": "STRING",
"value": "",
"displayName": "DEFAULT_DATABASE_SIZE",
"required": false,
"secret": false},
{ "name": "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN",
"type": "STRING",
"description": "Urn of the software library component which has the custom post sql script",
"value": "",
"displayName": "URN of the pre sql custom script",
"required": false,
"secret": false},
{ "name": "RUN_AS_USER_PWD",
"type": "STRING",
"value": "",
"displayName": "RUN_AS_USER_PWD",
"required": false,
"secret": false},
{ "name": "IS_RAC_ONE",
"type": "STRING",
"description": "Boolean value to show RAC One Target Type, (true/false)",
"value": "N",
"displayName": "RAC One Target Type",
"required": false,
"secret": false},
{ "name": "PROFILE_VERSION_URN",
"type": "STRING",
"description": "Profile Version Selected by user for creating database.",
"value": "",
"displayName": "Profile Version Selected",
"required": false,
"secret": false},
{ "name": "HOSTS_FOR_PLACEMENT",
"type": "STRING",
"description": "Comma separated value of the name of hosts which will be used for the custom placement of the requested database instance. This list of hosts should have their database homes present in the selected zone and pool of the service template.",
"value": "",
"displayName": "Host(s) name to be selected in the DB pool for custom placement",
"required": false,
"secret": false},
{ "name": "PROVISIONING_TYPE",
"type": "STRING",
"value": "",
"displayName": "PROVISIONING_TYPE",
"required": false,
"secret": false},
{ "name": "STANDBY_REQUIRED_LOCK",
"type": "STRING",
"value": "",
"displayName": "STANDBY_REQUIRED_LOCK",
"required": false,
"secret": false},
{ "name": "LOCK_DOMAIN_NAME",
"type": "STRING",
"description": "Accepts Database Domain Name from SSA user",
"value": "false",
"displayName": "Accepts the database Domain Name from SSA user ",
"required": false,
"secret": false},
{ "name": "ROLE_NAME",
"type": "STRING",
"description": "Name of the database role which will assigned to the master account.",
"value": "ROLE_Sep_22_2015_11_01_AM",
"displayName": "Database Role Name",
"required": false,
"secret": false},
{ "name": "STANDBY_DATABASE_MASTER",
"type": "STRING",
"value": "",
"displayName": "STANDBY_DATABASE_MASTER",
"required": false,
"secret": false},
{ "name": "ASM_DSKGRP_PREFIX",
"type": "STRING",
"description": "ASM Diskgroup prefix to be used for all the new diskgroups to be created",
"value": "",
"displayName": "ASM Diskgroup Prefix for all new diskgroups",
"required": false,
"secret": false},
{ "name": "DB_USER_PASSWORDS",
"type": "STRING",
"description": "Passwords for Database users from source",
"displayName": "Passwords for Database Users from source",
"required": false,
"secret": true},
{ "name": "ASM_OPTION",
"type": "STRING",
"description": "ASM Diskgroup Option to be used. values are ssauser/prefix",
"value": "",
"displayName": "ASM Diskgroup Option",
"required": false,
"secret": false},
{ "name": "SELECT_ORACLE_HOME_OPTION",
"type": "STRING",
"description": "Option for selecting the DB Oracle Home that includes runtime selection or user selection. Possible values are SELECT_ORACLE_HOME_AT_RUNTIME or SELECT_ORACLE_HOME_FROM_REQUEST",
"value": "SELECT_ORACLE_HOME_AT_RUNTIME",
"displayName": "Option for selecting the DB Oracle home",
"required": false,
"secret": false},
{ "name": "LISTENER_PORT",
"type": "STRING",
"description": "Listener Port (required only for Single Instance Database)",
"value": "1524",
"displayName": "Listener Port",
"required": false,
"secret": false},
{ "name": "STANDBY_DB_MASTER_DETAILS",
"type": "VECTOR",
"displayName": "STANDBY_DB_MASTER_DETAILS",
"required": false,
"secret": false,
"values": []},
{ "name": "COMMON_DOMAIN_NAME",
"type": "STRING",
"description": "Database Domain Name",
"value": "us.example.com",
"displayName": "Database Domain Name",
"required": false,
"secret": false},
{ "name": "WORKLOADS",
"type": "VECTOR",
"displayName": "WORKLOADS",
"required": false,
"secret": false},
{ "name": "STANDBY_COMMON_DB_SID",
"type": "STRING",
"value": "",
"displayName": "STANDBY_COMMON_DB_SID",
"required": false,
"secret": false},
{ "name": "LIVE_CLONE_DATABASE_GUID",
"type": "STRING",
"description": "Database Guid to be cloned",
"value": "",
"displayName": "Database Guid to be cloned",
"required": false,
"secret": false},
{ "name": "COMMON_DB_SYSTEM_PASSWORD",
"type": "STRING",
"description": "SYSTEM Account password",
"value": "welcome1",
"displayName": "SYSTEM Account password",
"required": false,
"secret": true},
{ "name": "USER_INITIATED_BACKUP_LOCATION",
"type": "STRING",
"value": "",
"displayName": "USER_INITIATED_BACKUP_LOCATION",
"required": false,
"secret": false},
{ "name": "ssaRequestId",
"type": "STRING",
"value": "",
"displayName": "ssaRequestId",
"required": false,
"secret": false},
{ "name": "TARGET_PROP_LIST",
"type": "VECTOR",
"description": "The list of initialization values that are as paramName=paramValue",
"displayName": "TARGET_PROP_LIST",
"required": false,
"secret": false,
"values": [
"Site:null:false:false",
"Contact:null:false:false",
"Downtime Contact:null:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]},
{ "name": "LIVE_CLONE_TYPE",
"type": "STRING",
"description": "Live Clone Type USE_FULLCLONE/USE_SNAPCLONE",
"value": "",
"displayName": "Type of Live Clone",
"required": false,
"secret": false},
{ "name": "REF_HOST",
"type": "STRING",
"value": "xxy.example.com",
"displayName": "REF_HOST",
"required": false,
"secret": false},
{ "name": "CUSTOM_TARGET_PROP_LIST",
"type": "VECTOR",
"description": "The list of initialization values that are as paramName=paramValue",
"displayName": "CUSTOM_TARGET_PROP_LIST",
"required": false,
"secret": false,
"values": []},
{ "name": "STANDBY_LISTENER_PORT",
"type": "STRING",
"value": "",
"displayName": "STANDBY_LISTENER_PORT",
"required": false,
"secret": false},
{ "name": "CLONE_OR_FULL_DB",
"type": "STRING",
"value": "",
"displayName": "CLONE_OR_FULL_DB",
"required": false,
"secret": false},
{ "name": "DATABASE_TYPE",
"type": "STRING",
"description": "Database Type (oracle_database/rac_database)",
"value": "rac_database",
"displayName": "Database Type",
"required": false,
"secret": false},
{ "name": "PROFILE_COMPONENT_URN",
"type": "STRING",
"description": "URN of the Profile component in software library with which the Database will be created",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:204D498A85D42C6AE053C075B10A6B09:0.1",
"displayName": "URN of the Profile Component to be used for Database Creation",
"required": false,
"secret": false},
{ "name": "VALIDATION_SQL",
"type": "STRING",
"description": "Sql script for primary database validation",
"value": "",
"displayName": "Sql script for primary database validation",
"required": false,
"secret": false},
{ "name": "REFRESH_DATABASE",
"type": "STRING",
"value": "",
"displayName": "REFRESH_DATABASE",
"required": false,
"secret": false},
{ "name": "REF_ZONE",
"type": "STRING",
"value": "Salt Lake City Zone",
"displayName": "REF_ZONE",
"required": false,
"secret": false},
{ "name": "STANDBY_DELAY_DATABASE_MASTER",
"type": "STRING",
"value": "",
"displayName": "STANDBY_DELAY_DATABASE_MASTER",
"required": false,
"secret": false},
{ "name": "zoneTargetName",
"type": "STRING",
"value": "",
"displayName": "zoneTargetName",
"required": false,
"secret": false},
{ "name": "PRIMARY_PROTECTION_MODE",
"type": "STRING",
"value": "",
"displayName": "PRIMARY_PROTECTION_MODE",
"required": false,
"secret": false},
{ "name": "INSTANCE_COUNT",
"type": "STRING",
"description": "Number of RAC Database instances required",
"value": "2",
"displayName": "Number of RAC instances",
"required": false,
"secret": false},
{ "name": "USER_PASSWORD",
"type": "STRING",
"description": "User Password to login to the given User Name database account",
"displayName": "User Password",
"required": true,
"secret": true},
{ "name": "MAX_BACKUPS_ALLOWED",
"type": "STRING",
"description": "The number of backups enabled for the Database",
"value": "",
"displayName": "Number of Backups allowed for the Database",
"required": false,
"secret": false},
{ "name": "ENTITY_TYPE",
"type": "STRING",
"description": "Entity TYpe USE_PROFILE/USE_DATABASE",
"value": "USE_PROFILE",
"displayName": "Entity Type",
"required": false,
"secret": false},
{ "name": "DBCREATE_POST_SQL_SCRIPT",
"type": "STRING",
"value": "",
"displayName": "DBCREATE_POST_SQL_SCRIPT",
"required": false,
"secret": false},
{ "name": "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN",
"type": "STRING",
"description": "Urn of the software library component which has the custom post sql script",
"value": "",
"displayName": "URN of the post sql custom script",
"required": false,
"secret": false},
{ "name": "USER_NAME",
"type": "STRING",
"description": "User Name (cannot be any of Oracle default accounts) used to login to the requested database",
"value": "",
"displayName": "User Name (cannot be any of Oracle default accounts)",
"required": true,
"secret": false},
{ "name": "DATABASE_SIZES",
"type": "VECTOR",
"displayName": "DATABASE_SIZES",
"required": false,
"secret": false,
"values": []},
{ "name": "ALLOW_BACKUPS",
"type": "STRING",
"description": "Should the backup be enabled for the Database",
"value": "",
"displayName": "Enable Backups for the Database",
"required": false,
"secret": false},
{ "name": "zoneTargetType",
"type": "STRING",
"value": "",
"displayName": "zoneTargetType",
"required": false,
"secret": false},
{ "name": "STANDBY_REQUIRED",
"type": "STRING",
"value": "false",
"displayName": "STANDBY_REQUIRED",
"required": false,
"secret": false},
{ "name": "STANDBY_DB_DETAILS",
"type": "VECTOR",
"displayName": "STANDBY_DB_DETAILS",
"required": false,
"secret": false,
"values": []},
{ "name": "COMMON_DB_SYS_PASSWORD",
"type": "STRING",
"description": "SYS Account password",
"value": "welcome1",
"displayName": "SYS Account password",
"required": false,
"secret": true},
{ "name": "REF_POOL",
"type": "STRING",
"value": "RAC Databases Pool _11_2_0_4",
"displayName": "REF_POOL",
"required": false,
"secret": false}
],
"canonicalLink": {"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/61"},
"selfLink": {"href": "https://xyz.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/61"},
"active": true
}

48.3.5.3.3 Creating a Service Template for DBCA Based Database

A POST operation is issued on Service Templates collection resource to create a DBCA based Database Service Template.The configuration for POST to Service Templates is as follows:

Table 48-42 POST Request Configuration for Creating a Service Template for DBCA Based Database

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "Create ST for SI Db using DBCA Template - ASM Subh_2",
"description": "Creates Single Instance DB",
"roles": [ "SSA_USER_ROLE" ],
"serviceType": "DB",
"serviceTemplateTypeId": "61",
"rscProvAssocOption": [ "byRscProvInst" ],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [ "137F74D7A8359A60762ED550341A5F47" ],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [ { "name": "PROFILE_COMPONENT_URN", "value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:269BA6C90E6A5000E053C075B10A51A3:0.1" } ],
"configurations": [
{ "name": "REF_ZONE", "value": "Salt Lake City Zone" },
{ "name": "REF_POOL", "value": "SI Databases Pool_Oracle_DB_11g" },
{ "name": "REF_HOST", "value": "xyz.example.com" },
{ "name": "REF_TGT", "value": "xyz.example.com" },
{ "name": "DBCA_TEMPLATE:DB_STORAGE_TYPE", "value": "ASM" },
{ "name": "DBCA_TEMPLATE:REC_STORAGE_TYPE_SAME_AS_DB_FILES", "value": "Y" },
{ "name": "DBCA_TEMPLATE:FLASH_RECOVERY_AREA_SIZE", "value": "4038" },
{ "name": "DBCA_TEMPLATE:DATA_FILE_LOCATION", "value": "DATA" },
{ "name": "DBCA_TEMPLATE:REDO_FILE_LOCATION", "value": "RECO" },
{ "name": "DBCA_TEMPLATE:ARCHIVE_LOG_MODE", "value": "Y" },
{ "name": "DBCA_TEMPLATE:RECOVERY_FILE_LOCATION", "value": "RECO" },
{ "name": "DATABASE_TYPE", "value": "oracle_database" },
{ "name": "COMMON_DOMAIN_NAME", "value": "us.example.com" },
{ "name": "ORACLE.SYSMAN.SSA.PROVISIONING_TYPE", "values": [ "DBCA_TEMPLATE" ] },
{ "name": "ENTITY_TYPE", "value": "USE_PROFILE" },
{ "name": "PROFILE_COMPONENT_URN", "value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:269BA6C90E6A5000E053C075B10A51A3:0.1" },
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY"
},
{ "name": "SID_OPTION", "value": "ssauser" },
{ "name": "SELECT_ORACLE_HOME_OPTION", "value": "SELECT_ORACLE_HOME_AT_RUNTIME"},
{ "name": "COMMON_DB_SYS_PASSWORD", "value": "welcome"},
{ "name": "DB_ADMIN_PASSWORD_SAME", "value": "true" },
{ "name": "INIT_PARAMS", "values": [
"sga_target=1073741824",
"pga_aggregate_target=1073741824"
]
},
{ "name": "LISTENER_PORT", "value": "1521" },
{ "name": "TARGET_PROP_LIST",
"values": [
"Site:null:false:false",
"Contact:xxxx:false:true",
"Downtime Contact:null:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:Testing:false:true",
"Line of Business:null:false:false"
]
}
]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

Note:
In the REST API body mentioned above:

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

A sample of the response received is shown below.

{
"message": "Service template with ID \"1C39F32393A709C3E053C075B10AEE15\" created successfully."
}

48.3.5.3.4 Creating a Service Template for RMAN Based Single Instance Database

A POST operation is issued on Service Templates collection resource to create a RMAN based Single Instance Database Service Template.The configuration for POST to Service Templates is as follows:

Table 48-43 POST Request Configuration for Creating a Service Template for RMAN Based Single Instance Database

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "Database Service - RMAN Based with archiving",
"description": "This creates Database Archiving log mode.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"1898CF93BD39C19BF032672271BC4B44"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
}
],
"configurations": [
{
"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
},
{
"name": "SELECT_ORACLE_HOME_OPTION",
"value": "SELECT_ORACLE_HOME_FROM_REQUEST"
},
{
"name": "REF_TGT",
"value": "sxy.us.example.com"
},
{
"name": "REF_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_ZONE",
"value": "Salt Lake City Zone"
},
{
"name": "zoneTargetName",
"value": "Salt Lake City Zone"
},
{
"name": "REF_POOL",
"value": "Databases Pool"
},
{
"name": "DATABASE_TYPE",
"value": "oracle_database"
},
{
"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"
},
{
"name": "LISTENER_PORT",
"value": "1521"
},
{
"name": "PROFILE_VERSION",
"value": "latest"
},
{
"name": "COMMON_DB_SID",
"value": "db"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"
},
{
"name": "RMAN.DB_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_SIZE",
"value": "4038"
},
{
"name": "RMAN.USE_ARCHIVING",
"value": "YES"
},
{
"name": "RMAN.DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"
},
{
"name": "RMAN.REDO_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.RECOVERY_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.WORK_DIR_LOC",
"value": "/tmp/work"
},
{
"name": "RMAN.DB_ADMIN_PASSWORD_SAME",
"value": "Y"
},
{
"name": "RMAN.DATABASE_PASSWORDS",
"value": "welcome"
},
{
"name": "RMAN.BACKUP_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "RMAN.USE_OFA",
"value": "N"
},
{
"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"
},
{
"name": "CUSTOM_PRE_CREATE_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"
},
{
"name": "CUSTOM_POST_CREATE_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"
}
]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

Note:
In the REST API body mentioned above:

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

A sample of the response received is shown below.

{
"message": "Service template with ID \"1C39F32393A709C3E053C075B10AEE15\" created successfully."
}

48.3.5.3.5 Creating a Service Template for RMAN Based Single Instance Database With Single Instance Standby

A POST operation is issued on Service Templates collection resource to create a RMAN based Single Instance Database with Single Instance standby Service Template.The configuration for POST to Service Templates is as follows:

Table 48-44 POST Request Configuration for Creating a Service Template for RMAN Based Single Instance Database With Single Instance Standby

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "Database Service - RMAN Based with archiving with SI Standby",
"description": "This creates Database Archiving log mode.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"1898CF93BD39C19BF032672271BC4B44"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
}
],
"configurations": [
{
"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
},
{
"name": "SELECT_ORACLE_HOME_OPTION",
"value": "SELECT_ORACLE_HOME_FROM_REQUEST"
},
{
"name": "REF_TGT",
"value": "xyz.example.com"
},
{
"name": "REF_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_ZONE",
"value": "Salt Lake City Zone"
},
{
"name": "zoneTargetName",
"value": "Salt Lake City Zone"
},
{
"name": "REF_POOL",
"value": "Databases Pool"
},
{
"name": "DATABASE_TYPE",
"value": "oracle_database"
},
{
"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"
},
{
"name": "LISTENER_PORT",
"value": "1521"
},
{
"name": "PROFILE_VERSION",
"value": "latest"
},
{
"name": "COMMON_DB_SID",
"value": "db"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"
},
{
"name": "RMAN.DB_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_STORAGE_TYPE",
"value": "FS"
},
{
"name": "RMAN.FRA_SIZE",
"value": "4038"
},
{
"name": "RMAN.USE_ARCHIVING",
"value": "YES"
},
{
"name": "RMAN.DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"
},
{
"name": "RMAN.REDO_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.RECOVERY_FILE_LOCATION",
"value": "/scratch/emga/app/emga/fast_recovery_area"
},
{
"name": "RMAN.WORK_DIR_LOC",
"value": "/tmp/work"
},
{
"name": "RMAN.DB_ADMIN_PASSWORD_SAME",
"value": "Y"
},
{
"name": "RMAN.DATABASE_PASSWORDS",
"value": "welcome"
},
{
"name": "RMAN.BACKUP_LOCATION",
"value": "/scratch/emga/backups/rman/"
},
{
"name": "RMAN.USE_OFA",
"value": "N"
},
{
"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"
},
{
"name": "STANDBY_DB_DETAILS",
"values": [
"pool=Near DR Pool;databaseSIDPrefix=;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
}
]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

Note:
In the REST API body mentioned above:

- REF_ZONE indicates the reference zone among the zones to be associated with the template.

- REF_POOL indicates the reference pool among the pools to be associated with the template.

- REF_HOST indicates the host of the reference target from the pool targets.

- REF_TGT indicates the reference target from the pool targets.

- SELECT_ORACLE_HOME_OPTION allows the Oracle home to be automatically selected by entering the value as SELECT_ORACLE_HOME_AT_RUNTIME, or to be selected by the SSA user by entering the value as SELECT_ORACLE_HOME_FROM_REQUEST.

These parameters are mandatory and are required to identify the reference target to create the database.

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxx\" created successfully."
}

48.3.5.3.6 Creating a Service Template for RMAN Based RAC One Node Database

A POST operation is issued on Service Templates collection resource to create a RMAN based RAC One Node Database Service Template.The configuration for POST to Service Templates is as follows:

Table 48-45 POST Request Configuration for Creating a Service Template for RMAN Based RAC One Node Database

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "Create Databases on RAC One database",
"description": "Creates Databases on RAC.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"647E8750A1C3835557165B499B269FB3"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"
}
],
"configurations": [
{"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"},
{"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"},
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name": "REF_TGT",
"value": "abc.example.com"},
{"name": "REF_HOST",
"value": "adc.example.com"},
{"name": "REF_ZONE",
"value": "Salt Lake City Zone"},
{"name": "zoneTargetName",
"value": "Salt Lake City Zone"},
{"name": "REF_POOL",
"value": "RAC Databases Pool"},
{"name": "DATABASE_TYPE",
"value": "rac_database"},
{"name": "IS_RAC_ONE",
"value": "Y"},
{"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"},
{"name": "LISTENER_PORT",
"value": "1521"},
{"name": "PROFILE_VERSION",
"value": "latest"},
{"name": "COMMON_DB_SID",
"value": "db"},
{"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"},
{"name": "RMAN:DB_STORAGE_TYPE",
"value": "FS"},
{"name": "RMAN:FRA_SIZE",
"value": "4038"},
{"name": "RMAN:USE_ARCHIVING",
"value": "NO"},
{"name": "RMAN:DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"},
{"name": "RMAN:WORK_DIR_LOC",
"value": "/tmp/work"},
{"name": "RMAN:DB_ADMIN_PASSWORD_SAME",
"value": "Y"},
{"name": "RMAN:DATABASE_PASSWORDS",
"value": "welcome"},
{"name": "RMAN:BACKUP_LOCATION",
"value": "/oradbnas/backups/rman/"},
{"name": "RMAN:USE_OFA",
"value": "N"},
{"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"}
]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxx\" created successfully."
}

48.3.5.3.7 Creating a Service Template for RMAN Based RAC One Node Database With Standby

A POST operation is issued on Service Templates collection resource to create a RMAN based RAC One Node Database with Standby Service Template.

In the example shown below there are two standbys created, one standby RAC one node database is a Near DR (disaster recovery) created on the same pool as the primary RAC one node database, and the other standby Far DR database is a single instance database created on a different pool. This setup is essential for a disaster recovery setup wherein two standby databases are created for data protection. The POST body shown below can be modified to have only one standby database (either SI or RAC one node) as well.

The configuration is as follows:

Table 48-46 POST Request Configuration for Creating a Service Template for RMAN Based RAC One Node Database With Standby

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "RAC One Database Provisioning with RAC One Standby and SI Standby",
"description": "Creates RAC One Databases with RAC One Standby and SI Standby.",
"serviceType": "DB",
"serviceTemplateTypeId": "81",
"rscProvAssocOption": [
"byRscProvInst"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"647E8750A1C3835557165B499B269FB3"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"}
],
"configurations": [
{"name": "STAGE_LOCATION",
"value": "/scratch/emga/backups/rman/"},
{"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"},
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name": "REF_TGT",
"value": "adc.example.com"},
{"name": "REF_HOST",
"value": "adc.example.com"},
{"name": "REF_ZONE",
"value": "Salt Lake City Zone"},
{"name": "zoneTargetName",
"value": "Salt Lake City Zone"},
{"name": "REF_POOL",
"value": "RAC Databases Pool"},
{"name": "DATABASE_TYPE",
"value": "rac_database"},
{"name": "IS_RAC_ONE",
"value": "Y"},
{"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome"},
{"name": "LISTENER_PORT",
"value": "1521"},
{"name": "PROFILE_VERSION",
"value": "latest"},
{"name": "COMMON_DB_SID",
"value": "db"},
{"name": "TARGET_PROP_LIST",
"values": [
"Contact:9980697299:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:null:false:false",
"Comment:null:false:false",
"Line of Business:null:false:false"
]
},
{"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"},
{"name": "RMAN:DB_STORAGE_TYPE",
"value": "FS"},
{"name": "RMAN:FRA_SIZE",
"value": "4038"},
{"name": "RMAN:USE_ARCHIVING",
"value": "NO"},
{"name": "RMAN:DATA_FILE_LOCATION",
"value": "/scratch/emga/app/emga/oradata"},
{"name": "RMAN:WORK_DIR_LOC",
"value": "/tmp/work"},
{"name": "RMAN:DB_ADMIN_PASSWORD_SAME",
"value": "Y"},
{"name": "RMAN:DATABASE_PASSWORDS",
"value": "welcome"},
{"name": "RMAN:BACKUP_LOCATION",
"value": "/oradbnas/backups/rman/"},,
{"name": "RMAN:USE_OFA",
"value": "N"},
{"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"},
{"name": "STANDBY_REQUIRED",
"value": "true"},
{"name": "STANDBY_DB_DETAILS",
"value": "",
"values": [
"pool=SI Databases Zone - Oracle 11g - Standby;databaseSIDPrefix=st;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
}
]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxx\" created successfully."
}

48.3.5.3.8 Creating a Service Template for RMAN Based RAC Database With Standby

A POST operation is issued on Service Templates collection resource to create a RMAN based RAC Database with Standby Service Template.

The configuration to create a RAC database with single instance standby database is similar to the configuration for a RAC database with a RAC one node standby. The only difference in the payloads to create different standbys is defined by the configuration parameter STANDBY_DB_DETAILS.

The sample value for the STANDBY_DB_DETAILS parameter for creating a RAC database with RAC one node standby is:

"pool=Near RAC DR Pool;databaseSIDPrefix=;databaseType=rac_database;isRACOne=Y;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com

Whereas, the sample value for the STANDBY_DB_DETAILS parameter for creating a RAC database with single instance standby is:

"pool=Near DR Pool;databaseSIDPrefix=;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"

The sample POST configuration shown below is for a RAC database with single instance standby Service Template. Apply the required value for the STANDBY_DB_DETAILS parameter in the sample shown below:

Table 48-47 POST Request Configuration for Creating a Service Template for RMAN Based RAC Database With Single Instance Standby

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name" : "Create Databases on RAC with SI  Standby",
"description" : "Creates Databases on RAC.",
"serviceType" : "DB",
"serviceTemplateTypeId" : "81",
"rscProvAssocOption" : [ "byRscProvInst" ],
"resourceProvider" : {
"lookupCharacteristics" : [ {
"characteristics" : [ {
"name" : "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values" : [ "647E8750A1C3835557165B499B269FB3" ],
"targetType" : {
"targetType" : "oracle_cloud_zone",
"targetTypeName" : "Database Pool",
"parentTargetType" : "self_service_zone",
"parentTargetTypeName" : "PaaS Infrastructure Zone"
}
} ],
"purposeId" : 1
} ]
},
"payloads" : [ {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"
} ],
"configurations" : [ {
"name" : "STAGE_LOCATION",
"value" : "/scratch/emga/backups/rman/"},
{"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1E4F60D72C912160E053C075B10A29F5:0.1"}
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name" : "REF_TGT",
"value" : "adc.us.example.com"},
{"name" : "REF_HOST",
"value" : "adc.us.example.com"},
{"name" : "REF_ZONE",
"value" : "Salt Lake City Zone"},
{"name" : "zoneTargetName",
"value" : "Salt Lake City Zone"},
{"name" : "REF_POOL",
"value" : "RAC Databases Pool"},
{"name" : "DATABASE_TYPE",
"value" : "oracle_database"},
{"name" : "COMMON_DB_SYS_PASSWORD",
"value" : "welcome"},
{"name" : "LISTENER_PORT",
"value" : "1521"},
{"name" : "PROFILE_VERSION",
"value" : "latest"},
{"name" : "COMMON_DB_SID",
"value" : "db"},
{"name" : "TARGET_PROP_LIST",
"values" : [ "Contact:9980697299:false:false", "Location:null:false:false", "LifeCycle Status:null:false:false", "Department:null:false:false", "Comment:null:false:false", "Line of Business:null:false:false" ]},
{"name" : "USER_PRIVILEGES",
"value" : "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"},
{"name" : "RMAN:DB_STORAGE_TYPE",
"value" : "FS"},
{"name" : "RMAN:FRA_SIZE",
"value" : "4038"},
{"name" : "RMAN:USE_ARCHIVING",
"value" : "NO"},
{"name" : "RMAN:DATA_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/oradata"},
{"name" : "RMAN:WORK_DIR_LOC",
"value" : "/tmp/work"},
{"name" : "RMAN:DB_ADMIN_PASSWORD_SAME",
"value" : "Y"},
{"name" : "RMAN:DATABASE_PASSWORDS",
"value" : "welcome"},
{"name" : "RMAN:BACKUP_LOCATION",
"value" : "/oradbnas/backups/rman/"},
{"name" : "RMAN:USE_OFA",
"value" : "N"},
{"name" : "COMMON_DOMAIN_NAME",
"value" : "us.example.com"},
{"name":"CUSTOM_PRE_CREATE_SCRIPTS_URN",
"value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},,
{"name":"CUSTOM_POST_CREATE_SCRIPTS_URN",
"value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},,
{"name": "STANDBY_REQUIRED",
"value": "true"},
{"name": "STANDBY_DB_DETAILS",
"value": "",
"values": [
"pool=SI Databases Zone - Oracle 11g - Standby;databaseSIDPrefix=st;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
}
]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxx\" created successfully."
}

48.3.5.3.9 Creating a Service Template for RAC Database with Standby Using a DBCA Template

A POST operation is issued on ServiceTemplates Collection resource to create a ServiceTemplate for a RAC database with standby using a DBCA template.The configuration for POST to ServiceTemplates is as follows:

Table 48-48 POST Request Configuration for Creating a Service Template for RAC Database with Standby Using a DBCA Template

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "Create RAC Db with Standby using DBCA Template - BofA -ASM",
"description": "Service Template for Non-CDB; 12cR1_2(12.1.0.2); RAC; ASM",
"serviceType": "DB",
"serviceTemplateTypeId": "61",
"rscProvAssocOption": [
"byRscProvInst"
],
"roles": [
"SSAUSERROLE"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values": [
"4C5795E605D71F59BAF9F6AD702E25E1"
],
"targetType": {
"targetType": "oracle_cloud_zone",
"targetTypeName": "Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:246E84D11ED13BD0E050F90AE5852BC8:0.1"
}
],
"configurations": [
{
"name": "REF_ZONE",
"value": "Clusters Zone - Oracle DB 12c"
},
{
"name": "REF_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_POOL",
"value": "RAC Databases Pool_Oracle_DB_12c"
},
{
"name": "DBCA_TEMPLATE:DB_STORAGE_TYPE",
"value": "ASM"
},
{
"name": "DBCA_TEMPLATE:REC_STORAGE_TYPE_SAME_AS_DB_FILES",
"value": "Y"
},
{
"name": "DBCA_TEMPLATE:ARCHIVE_LOG_MODE",
"value": "N"
},
{
"name": "DBCA_TEMPLATE:FLASH_RECOVERY_AREA_SIZE",
"value": "4038"
},
{
"name": "DBCA_TEMPLATE:DATA_FILE_LOCATION",
"value": "DATA"
},
{
"name": "DBCA_TEMPLATE:REDO_FILE_LOCATION",
"value": "DATA1"
},
{
"name": "DBCA_TEMPLATE:RECOVERY_FILE_LOCATION",
"value": "DATA1"
},
{
"name": "DATABASE_TYPE",
"value": "rac_database"
},
{
"name": "INSTANCE_COUNT",
"value": "2"
},
{
"name": "COMMON_DOMAIN_NAME",
"value": "us.example.com"
},
{
"name": "ORACLE.SYSMAN.SSA.PROVISIONING_TYPE",
"values": [
"DBCA_TEMPLATE"
]
},
{
"name": "ENTITY_TYPE",
"value": "USE_PROFILE"
},
{
"name": "REF_TGT",
"value": "xyz.example.com"
},
{
"name": "SID_OPTION",
"value": "prefix"
},
{
"name": "PROFILE_COMPONENT_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:246E84D11ED13BD0E050F90AE5852BC8:0.1"
},
{
"name": "PROFILE_VERSION",
"value": "latest"
},
{
"name": "USER_PRIVILEGES",
"value": "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE, CREATE ANY SEQUENCE, CREATE ANY INDEX, CREATE JOB, CREATE ANY MATERIALIZED VIEW, CREATE ANY TABLE, CREATE ANY TRIGGER, CREATE ANY TYPE, CREATE ANY VIEW, CREATE ANY SYNONYM, CREATE ANY DIRECTORY, SELECT ANY DICTIONARY"
},
{
"name": "COMMON_DB_SID",
"value": "RFTDB"
},
{
"name": "INIT_PARAMS",
"subconfigurations": [
"sga_target=1073741824",
"pga_aggregate_target=1073741824"
]
},
{
"name": "SELECT_ORACLE_HOME_OPTION",
"value": "SELECT_ORACLE_HOME_AT_RUNTIME"
},
{
"name": "COMMON_DB_SYS_PASSWORD",
"value": "welcome1"
},
{
"name": "DB_ADMIN_PASSWORD_SAME",
"value": "true"
},
{
"name": "LISTENER_PORT",
"value": "1521"
},
{
"name": "STANDBY_REQUIRED",
"value": "true"
},
{
"name": "STANDBY_DB_DETAILS",
"value": "",
"values": [
"pool=SI Databases Zone - Oracle 11g - Standby;databaseSIDPrefix=st;databaseType=oracle_database;standbyConfigName=Near DR;redoMode=ASYNC;realtimeQuery=false;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"
]
},
{
"name": "DATABASE_SIZES",
"values": [
"Big",
"Small"
]
},
{
"name": "DEFAULT_DATABASE_SIZE",
"value": "Big"
}
]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxxx\" created successfully."
}

48.3.5.3.10 Creating a Service Template for DNFS Based Database

A POST operation is issued on Service Templates collection resource to create a DNFS based database Service Template.

The sample POST configuration is shown below:

Table 48-49 POST Request Configuration for Creating a Service Template for DNFS Based Database

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name" : "DB Clones",
"description" : "This clones a database based on NFS.",
"serviceType" : "DB",
"serviceTemplateTypeId" : "81",
"rscProvAssocOption" : [ "byRscProvInst" ],
"resourceProvider" : {
"lookupCharacteristics" : [ {
"characteristics" : [ {
"name" : "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values" : [ "1898CF93BD39C19BF032672271BC4B44" ],
"targetType" : {
"targetType" : "oracle_cloud_zone",
"targetTypeName" : "Database Pool",
"parentTargetType" : "self_service_zone",
"parentTargetTypeName" : "PaaS Infrastructure Zone"
}
} ],
"purposeId" : 1
} ]
},
"payloads" : [ {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"
} ],
"configurations" : [ {
"name" : "STAGE_LOCATION",
"value" : "/scratch/emga/backups/rman/"}
{"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:1C14BB2B2E127E23E053C075B10AE31F:0.1"}
{"name":"SELECT_ORACLE_HOME_OPTION",
"value":"SELECT_ORACLE_HOME_FROM_REQUEST"},
{"name" : "REF_TGT",
"value" : "abc.example.com"}
{"name" : "REF_HOST",
"value" : "abc.example.com"}
{"name" : "REF_ZONE",
"value" : "Salt Lake City Zone"}
{"name" : "zoneTargetName",
"value" : "Salt Lake City Zone"}
{"name" : "REF_POOL",
"value" : "Databases Pool"}
{"name" : "DATABASE_TYPE",
"value" : "oracle_database"}
{"name" : "COMMON_DB_SYS_PASSWORD",
"value" : "welcome"}
{"name" : "LISTENER_PORT",
"value" : "1521"}
{"name" : "PROFILE_VERSION",
"value" : "latest"}
{"name" : "COMMON_DB_SID",
"value" : "db"}
{"name" : "TARGET_PROP_LIST",
"values" : [ "Contact:9980697299:false:false", "Location:null:false:false", "LifeCycle Status:null:false:false", "Department:null:false:false", "Comment:null:false:false", "Line of Business:null:false:false" ]}
{"name" : "USER_PRIVILEGES",
"value" : "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"}
{"name" : "DNFS.DATA_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/oradata"}
{"name" : "DNFS.REDO_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/fast_recovery_area"}
{"name" : "DNFS.RECOVERY_FILE_LOCATION",
"value" : "/scratch/emga/app/emga/fast_recovery_area"}
{"name" : "DNFS.FRA_SIZE",
"value" : "4038"}
{"name" : "DNFS.USE_ARCHIVING",
"value" : "YES"}
{"name" : "DNFS.WORK_DIR_LOC",
"value" : "/tmp/work"}
{"name" : "DNFS.DB_ADMIN_PASSWORD_SAME",
"value" : "Y"}
{"name" : "DNFS.BACKUP_LOCATION",
"value" : "/scratch/emga/backups/rman_image/"}
{"name" : "DNFS.USE_OFA",
"value" : "N"}
{"name" : "COMMON_DOMAIN_NAME",
"value" : "us.example.com"} ]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxx\" created successfully."
}

48.3.5.3.11 Creating a Service Template for Snap Clone Single Instance Database (with Archiving Enabled)

A POST operation is issued on Service Templates collection resource to create a Snap Clone single instance database (with archiving enabled) Service Template.

The sample POST configuration is shown below:

Table 48-50 POST Request Configuration for Creating a Service Template for Snap Clone Single Instance Database (with Archiving Enabled)

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name" : "Create Snap Database using Snapshots",
"description" : "Creates Databases on SI hosts.",
"serviceType" : "DB",
"serviceTemplateTypeId" : "81",
"rscProvAssocOption" : [ "byRscProvInst" ],
"resourceProvider" : {
"lookupCharacteristics" : [ {
"characteristics" : [ {
"name" : "ORACLE.SYSMAN.SSA.ORACLE_CLOUD_ZONE",
"values" : [ "503073C7912B1C65B66E240C433012A9" ],
"targetType" : {
"targetType" : "oracle_cloud_zone",
"targetTypeName" : "Database Pool",
"parentTargetType" : "self_service_zone",
"parentTargetTypeName" : "PaaS Infrastructure Zone"
}
} ],
"purposeId" : 1
} ]
},
"payloads" : [ {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:247BF4B378FF253FE053C075B10A794A:0.1"
} ],
"configurations" : [ {
"name" : "STAGE_LOCATION",
"value" : "/scratch/emga/backups/rman/"
}, {
"name" : "PROFILE_COMPONENT_URN",
"value" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:247BF4B378FF253FE053C075B10A794A:0.1"
}, {
"name" : "REF_TGT",
"value" : "xyz.example.com"
}, {
"name" : "REF_HOST",
"value" : "xyz.example.com"
}, {
"name" : "REF_ZONE",
"value" : "Single Instances Zone"
}, {
"name" : "zoneTargetName",
"value" : "Single Instances Zone"
}, {
"name" : "REF_POOL",
"value" : "SI Databases Pool - Version 11_2_0_4"
}, {
"name" : "DATABASE_TYPE",
"value" : "oracle_database"
}, {
"name" : "COMMON_DB_SYS_PASSWORD",
"value" : "welcome"
}, {
"name" : "LISTENER_PORT",
"value" : "1521"
}, {
"name" : "PROFILE_VERSION",
"value" : "latest"
}, {
"name" : "COMMON_DB_SID",
"value" : "db"
}, {
"name" : "TARGET_PROP_LIST",
"values" : [ "Contact:9980697299:false:false", "Location:null:false:false", "LifeCycle Status:null:false:false", "Department:null:false:false", "Comment:null:false:false", "Line of Business:null:false:false" ]
}, {
"name" : "USER_PRIVILEGES",
"value" : "CREATE SESSION, ALTER SESSION, CREATE INDEXTYPE, CREATE ANY OPERATOR, CREATE ANY PROCEDURE"
}, {
"name" : "THIN_PROVISIONING:LISTENER_PORT",
"value" : "1522"
}, {
"name" : "THIN_PROVISIONING:REDO_LOG_GROUP_COUNT",
"value" : "2"
}, {
"name" : "THIN_PROVISIONING:TEMP_TABLESPACE_SIZE",
"value" : "520"
}, {
"name" : "THIN_PROVISIONING:USE_ARCHIVING",
"value" : "YES"
}, {
"name" : "THIN_PROVISIONING:MOUNT_POINT_LIST",
"values" : [ "/hkdb" ]
}, {
"name" : "THIN_PROVISIONING:MOUNT_ADDL_SIZE_LIST",
"values" : [ "5.0" ]
}, {
"name" : "THIN_PROVISIONING:REDO_LOG_FILE_TYPE",
"value" : "Same as source"
}, {
"name" : "INIT_PARAMS",
"values" : [ "sga_target=1073741824", "pga_aggregate_target=1073741824" ]
}, {
"name" : "COMMON_DOMAIN_NAME",
"value" : "us.example.com"
} ]
}

Note:

- To get the software library ID of the "DBAAS_SSA_CUSTOM_PRE_SCRIPTS_URN" and "DBAAS_SSA_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

- To derive the serviceTemplateTypeId value, perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes and locate serviceType:DB in the JSON response. Note the serviceTemplateTypeId under serviceType:DB and use the value in the POST body shown above.

Request method

POST

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxx\" created successfully."
}

48.3.5.3.12 Creating a Service Template for Snap Clone Single Instance Database (without Archiving Enabled)

A POST operation is issued on Service Templates collection resource to create a Snap Clone single instance database (without archiving enabled) Service Template.

All the configuration values for the REST API for Snap Clone without archiving would remain the same as in the REST API for Snap Clone with archiving, except for the THIN_PROVISIONING:USE_ARCHIVING parameter. Ensure that the configuration value for "name" : "THIN_PROVISIONING:USE_ARCHIVING" in the body is set to "value" : "No" in the Table 48-50, "POST Request Configuration for Creating a Service Template for Snap Clone Single Instance Database (with Archiving Enabled)" for creating a Snap Clone single instance database (without Archiving enabled) Service template.

48.3.5.3.13 Creating a Service Template for a Schema

A POST operation is issued on Service Templates Collection resource to create a Schema Service Template.The configuration for POST to ServiceTemplates is as follows:

Table 48-51 POST Request Configuration for Creating a Service Template for a Schema

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name":"TestSchaasTemplate3",
"serviceType":"SCHEMA",
"serviceFamily":"DBAAS",
"description":"This is a test schaas service template 1",
"poolIds":[ "9D3187DE6B1115791D71D2827FB98558" ],
"roles":[
{ "name":"SSA_USER_ROLE1" }
],
"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":"ABC_ZONE" },
{ "name":"REF_POOL","value":"SCH_POOL" },
{ "name":"REF_HOST","value":"abc.mycompany.com" },
{ "name":"REF_DB","value":"simple.us.example.com" },
{ "name":"CREATE_SCHEMA_OPTION","value":"EMPTY_SCHEMAS" },
{ "name":"SCHAAS_CUSTOM_PRE_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{ "name":"SCHAAS_CUSTOM_POST_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{
"name":"REMAP_TABLESPACE_LIST",
"value":"",
"values":["TBSP1","TBSP2","TBSP3"]
},
{
"name":"REMAP_TABLESPACE_INIT_SIZE_LIST",
"value":"",
"values":["TBSP1:0.1","TBSP2:0.2","TBSP3:0.3"]
},
{
"name":"REMAP_TABLESPACE_INCR_SIZE_LIST",
"value":"",
"values":["TBSP1:0.1","TBSP2:0.2","TBSP3:0.3"]
},
{
"name":"REMAP_TABLESPACE_MAX_SIZE_LIST",
"value":"",
"values":["TBSP1:50.0","TBSP2:30","TBSP3:20"]
},

{ "name":"CREATE_SCHEMA_OPTION","value":"EMPTY_SCHEMAS" },
{
"name":"WORKLOADS",
"subconfigurations":[
{
"name":"WORK_LOADS:1",
"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"   }
]
}
]
}
]
}
}

Note:

To get the software library ID of the "SCHAAS_CUSTOM_PRE_SCRIPTS_URN" and "SCHAAS_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

Request method

POST

A sample of the response received is shown below.

{
"name": "TestSchaasTemplate3",
"serviceFamily": "DBAAS",
"serviceType": "SCHEMA",
"type": "Service Template",
"description": "This is a test schaas service template 1",
"id": "E87A364660A25B39E040F20A60510FDD",
"pools": [
{
"name": "SCH_POOL",
"id": "9D3187DE6B1115791D71D2827FB98558",
"type": "schaas_pool",
"zone": {
"id": "2F1E72A95EC21F8F666451B5413FF99A",
"name": "ABC_ZONE"
}
}
],
"roles": [
{
"name": "SSA_USER_ROLE1",
"description": null
}
],
"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": "2"
},
{
"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": "TestSchaasTemplate3_Oct_11_"
},
{
"id": "SCHEMA_PRIVILEGES",
"name": "Schema Privileges",
"value": "",
"values": [
"CREATE TYPE",
"CREATE SEQUENCE",
"CREATE DIMENSION",
"CREATE INDEXTYPE",
"CREATE SESSION",
"CREATE SYNONYM",
"CREATE OPERATOR",
"CREATE VIEW",
"CREATE TABLE",
"CREATE TRIGGER",
"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://abc.mycompany.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/E87A364660A25B39E040F20A60510FDD",
"selfLink": "https://abc.mycompany.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/E87A364660A25B39E040F20A60510FDD"
}

48.3.5.3.14 Creating a Service Template for a Pluggable Database

A POST operation is issued on ServiceTemplates Collection resource to create a Pluggable Database ServiceTemplate.The configuration for POST to ServiceTemplates is as follows:

Table 48-52 POST Request Configuration for Creating a Service Template for a Pluggable Database

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name":"TestPDbTemplate1",
"serviceType":"PDB",
"serviceFamily":"DBAAS",
"description":"This is a test pluggable database service template 1",
"poolIds":[ "FF394120842D8C71CC92BE6A4D5A488E" ],
"roles":[
{ "name":"SSA_USER_ROLE1" }
],
"serviceExecutableMeta":{
"type":"CDP",
"configurations":[
{
"name":"TABLESPACE_ENCRYPTION_ALGORITHM",
"subconfigurations":[
{  "name":"name", "value":"NONE" }
]
},
{  "name":"MAX_TABLESPACE_ALLOWED", "value":"2" },
{  "name":"PDB_SID_PREFIX", "value":"mypdb" },
{  "name":"ENFORCE_STORAGE_CONSTRAINT", "value":"NO_LIMIT" },
{  "name":"AUTO_EXTEND_BLOCK_SIZE","value":"1024" },
{  "name":"REF_DATA_ZONE", "value":"PDB_Zone" },
{  "name":"REF_DATA_TARGET", "value":"database" },
{  "name":"REF_DATA_TARGET_TYPE", "value":"oracle_database" },
{  "name":"REF_DATA_POOL","value":"PDB_POOL" },
{  "name":"REF_DATA_HOST", "value":"abc.mycompany.com" },
{  "name":"SELECT_TARGET_OPTION", "value":"SELECT_TARGET_FROM_REQUEST" },
{  "name":"CREATE_PDB_OPTION", "value":"EMPTY_PDB" },
{"name":"PDBAAS_CUSTOM_PRE_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{"name":"PDBAAS_CUSTOM_POST_SCRIPTS_URN","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1"},
{  "name":"PRIVILEGES",
"value":"",
"values":["CREATE TYPE","CREATE VIEW","CREATE DIMENSION","CREATE SESSION","CREATE TRIGGER","CREATE OPERATOR","CREATE SYNONYM","CREATE TABLE","CREATE PROCEDURE","CREATE INDEXTYPE","CREATE SEQUENCE"]
},
{  "name":"ROLE_OPTION","value":"CUSTOM_NEW_ROLE" },
{
"name":"INIT_PARAMS",
"subconfigurations":[
{ "name":"INIT_PARAMS:1", "value":"*.cursor_sharing=EXACT" },
{ "name":"INIT_PARAMS:2", "value":"*.open_cursors=200"  }
]
},
{
"name":"WORKLOADS",
"subconfigurations":[
{
"name":"WORK_LOADS:1",
"subconfigurations":[
{ "name":"name", "value":"SmallPdb" },
{ "name":"description", "value":"small workload" },
{  "name":"default", "value":"N" },
{  "name":"CPU", "value":"2" },
{  "name":"Memory", "value":"2048" },
{  "name":"Storage", "value":"1024" },
{  "name":"Sessions", "value":"100" }
]
}
]
}
]
}
}

Note:

To get the software library ID of the "PDBAAS_CUSTOM_PRE_SCRIPTS_URN" and "PDBAAS_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

Request method

POST

Note:
In the table above, the SELECT_TARGET_OPTION parameter defines if the SSA User has the option to select the Container Database (CDB) while requesting for a PDB. If the value for the parameter is set as SELECT_TARGET_FROM_REQUEST, then the SSA User has the option to choose the CDB. If no value is defined, or if the value is set to SELECT_TARGET_AT_RUNTIME, then the placement algorithm selects the CDB.

A sample of the response received is shown below.

{
"name":"TestPDbTemplate1",
"serviceFamily":"DBAAS",
"serviceType":"PDB",
"type":"Service Template",
"description":"This is a test pluggable database service template 1",
"id":"E8887DEEE424BEAEE040F20A605118CE",
"pools":[
{
"name":"PDB_POOL",
"id":"FF394120842D8C71CC92BE6A4D5A488E",
"type":"pdbaas_pool",
"zone":{"id":"B60C4DA1398F41BEBC862D5A10A0C713",
"name":"PDB_Zone"}
}
],
"roles":[
{"name":"SSA_USER_ROLE1","description":null}
],
"serviceExecutableMeta":{
"type":"CDP",
"configurations":[
{"id":"CREATE_PDB_OPTION","name":"Option for creating Pluggable Database","value":"EMPTY_PDB"},
{"id":"PROFILE_URN","name":"Profile Component's URN","value":""},
{"id":"MAX_TABLESPACE_ALLOWED","name":"Maximum number of Tablespaces","value":"2"},
{"id":"ENFORCE_STORAGE_CONSTRAINT","name":"Enforce Storage Constraint","value":"false"},
{"id":"TABLESPACE_ENCRYPTION_ALGORITHM","name":"Tablespace Encryption","value":"","values":["NONE"]},
{"id":"TABLESPACE_SIZE","name":"Tablespace Size","value":"","values":[]},
{"id":"SHARED_STAGE_LOCATION","name":"Staging Location","value":""},
{"id":"WORKING_DIRECTORY","name":"Working Directory","value":""},
{"id":"PDBAAS_CUSTOM_PRE_SCRIPTS_URN","name":"URN of the pre sql custom script","value":""},
{"id":"PDBAAS_CUSTOM_POST_SCRIPTS_URN","name":"URN of the post sql custom script","value":""},
{"id":"PDB_SID_PREFIX","name":"Pluggable Database SID Prefix","value":"mypdb"},
{"id":"PDB_ADMIN_USER_NAME","name":"Pluggable Database Administrator","value":""},
{"id":"PDB_ADMIN_PASSWORD","name":"Pluggable Administrator Password"},
{"id":"PDB_SERVICE_NAME_PREFIX","name":"Pluggable Database Service Name Prefix","value":""},
{"id":"PDBSERVICE_NAME","name":"Pluggable Database Service Name","value":""},
{"id":"ROLE_OPTION","name":"Role Option Custom New Role/ Existing Roles","value":"CUSTOM_NEW_ROLE"},
{"id":"INIT_PARAMS","name":"Initialization parameter values passed as list","value":"","values":["*.open_cursors=200","*.cursor_sharing=EXACT"]},
{"id":"CUSTOM_ROLE_NAME","name":"Database Role Name","value":"PDBAAS_OCT_12_2013_02_13_AM"},
{"id":"CUSTOM_ROLE_DESC","name":"Database Role Description","value":"New db role to be assigned to pluggable database administrator."},
{"id":"PRIVILEGES","name":"Custom Role Privileges","value":"","values":["CREATE ANY SYNONYM","CREATE ANY OPERATOR","CREATE SESSION","CREATE JOB","CREATE ANY TYPE","CREATE INDEXTYPE","SELECT ANY DICTIONARY","CREATE ANY SEQUENCE","CREATE DIMENSION","CREATE ANY DIRECTORY","CREATE ANY INDEX","CREATE ANY TABLE","CREATE ANY PROCEDURE","ALTER SESSION","CREATE ANY MATERIALIZED VIEW","CREATE ANY TRIGGER","CREATE ANY VIEW"]},
{"id":"ROLES","name":"List of roles selected from reference database","value":"","values":[]}
]
},
"createdOn":null,
"createdBy":null,
"modifiedOn":null,
"modifiedBy":null,
"owner":"SYSMAN",
"etag":null,
"lastModified":null,
"canonicalLink":"https://abc.mycompany.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/E8887DEEE424BEAEE040F20A605118CE",
"selfLink":"https://abc.mycompany.com:11180/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/servicetemplates/E8887DEEE424BEAEE040F20A605118CE"
}

48.3.5.3.15 Creating a Service Template for RAC Pluggable Database Using an Empty Pluggable Database

A POST operation is issued on ServiceTemplates Collection resource to create a ServiceTemplate for a RAC Pluggable database using an empty Pluggable database.The configuration for POST to ServiceTemplates is as follows:

Table 48-53 POST Request Configuration for Creating a Service Template for RAC Pluggable Database Using an Empty Pluggable Database

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "Create RAC PDBs using empty PDB option",
"description": "Creates PDBs on cluster.",
"serviceType": "PDB",
"serviceTemplateTypeId": "94",
"rscProvAssocOption": [
"byRscProvInst"
],
"roles": [
"SSA_USER_ROLE"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.PDBAAS_POOL",
"values": [
"DFB8F2A53429AF99EF2020C56E11FEE9"
],
"targetType": {
"targetType": "pdbaas_pool",
"targetTypeName": "Pluggable Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "DBDELETE_PRESCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D511C1CFFE053C075B10AEF2D:0.1"
},
{
"name": "DBDELETE_POSTSCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D51201CFFE053C075B10AEF2D:0.1"
}
],
"characteristics": [
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName": "Department",
"value": "Development",
"required": true,
"editable": false,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName": "Location",
"values": "Bangalore",
"required": false,
"editable": true,
"visible": true
}
],
"configurations": [
{
"name": "REF_DATA_ZONE",
"value": "Single Instances Zone"
},
{
{
"name":SELECT_TARGET_OPTION"
"value":SELECT_TARGET_FROM_REQUEST"
},
"name": "CUSTOM_ROLE_NAME",
"value": "PDBAAS_NOV_13_2015_16_51_PM"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Site:null:false:false",
"Contact:null:false:false",
"Downtime Contact:null:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:Development:true:true",
"Comment:This is for testing:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "PDBAAS_CUSTOM_PRE_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7B4E34E053C075B10A74AD:0.2"
},
{
"name": "WORKLOADS",
"subvalues": [
{
"name": "Small",
"subvalues": [
{
"name": "name",
"value": "SmallPdb"
},
{
"name": "description",
"value": "small workload"
},
{
"name": "default",
"value": "N"
},
{
"name": "CPU",
"value": "2"
},
{
"name": "Memory",
"value": "2"
},
{
"name": "Storage",
"value": "5"
},
{
"name": "Sessions",
"value": "100"
}
]
}
]
},
{
"name": "PRIVILEGES",
"type": "VECTOR",
"description": "List of privileges of custom new role that will be applied on pluggable database administrator.",
"displayName": "PRIVILEGES",
"required": false,
"secret": false,
"values": [
"CREATE SESSION",
"ALTER SESSION",
"CREATE DIMENSION",
"CREATE INDEXTYPE",
"CREATE ANY OPERATOR",
"CREATE ANY PROCEDURE",
"CREATE ANY SEQUENCE",
"CREATE ANY INDEX",
"CREATE JOB",
"CREATE ANY MATERIALIZED VIEW",
"CREATE ANY TABLE",
"CREATE ANY TRIGGER",
"CREATE ANY TYPE",
"CREATE ANY VIEW",
"CREATE ANY SYNONYM",
"CREATE ANY DIRECTORY",
"SELECT ANY DICTIONARY",
"SELECT ANY TABLE"
]
},
{
"name": "REF_DATA_TARGET_TYPE",
"value": "rac_database"
},
{
"name": "REF_DATA_ZONE",
"value": "Clusters Zone - Oracle DB 12c"
},
{
"name": "REF_DATA_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_DATA_TARGET",
"value": "cdbfs"
},
{
"name": "REF_DATA_POOL",
"value": "RAC Pluggable DBs"
},
{
"name": "PDBAAS_CUSTOM_POST_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7F4E34E053C075B10A74AD:0.2"
},
{
"name": "SELECT_TARGET_OPTION",
"value": "SELECT_TARGET_AT_RUNTIME"
},
{
"name": "MAX_TABLESPACE_ALLOWED",
"value": "1"
},

{
"name": "ROLE_OPTION",
"value": "CUSTOM_NEW_ROLE"
},
{
"name": "CREATE_PDB_OPTION",
"value": "EMPTY_PDB"
},{
"name": "INIT_PARAMS",
"values": [
"*.cursor_sharing=EXACT",
"*.open_cursors=300"
]
}

]
}

Note:

To get the software library ID of the "PDBAAS_CUSTOM_PRE_SCRIPTS_URN" and "PDBAAS_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

Request method

POST

Note:
In the table above, the SELECT_TARGET_OPTION parameter defines if the SSA User has the option to select the Container Database (CDB) while requesting for a PDB. If the value for the parameter is set as SELECT_TARGET_FROM_REQUEST, then the SSA User has the option to choose the CDB. If no value is defined, or if the value is set to SELECT_TARGET_AT_RUNTIME, then the placement algorithm selects the CDB.

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxxx\" created successfully."
}

48.3.5.3.16 Creating a Service Template for RAC Pluggable Database Using a Profile Pluggable Database

A POST operation is issued on ServiceTemplates Collection resource to create a ServiceTemplate for a RAC Pluggable database using a profile Pluggable database.The configuration for POST to ServiceTemplates is as follows:

Table 48-54 POST Request Configuration for Creating a Service Template for RAC Pluggable Database Using a Profile Pluggable Database

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "Create RAC PDBs using Profile PDB option",
"description": "Creates PDBs on cluster.",
"serviceType": "PDB",
"serviceTemplateTypeId": "94",
"rscProvAssocOption": [
"byRscProvInst"
],
"roles": [
"SSA_USER_ROLE"
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SSA.PDBAAS_POOL",
"values": [
"DFB8F2A53429AF99EF2020C56E11FEE9"
],
"targetType": {
"targetType": "pdbaas_pool",
"targetTypeName": "Pluggable Database Pool",
"parentTargetType": "self_service_zone",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
},
"payloads": [
{
"name": "DBDELETE_PRESCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D511C1CFFE053C075B10AEF2D:0.1"
},
{
"name": "DBDELETE_POSTSCRIPT",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:246A484D51201CFFE053C075B10AEF2D:0.1"
}
],
"characteristics": [
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT",
"displayName": "Contact",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER",
"displayName": "Cost Center",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName": "Department",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DOWNTIME_CONTACT",
"displayName": "Downtime Contact",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS",
"displayName": "Lifecycle Status",
"values": [
"Development",
"MissionCritical",
"Production",
"Stage",
"Test"
],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS",
"displayName": "Line of Business",
"values": [],
"required": false,
"editable": true,
"visible": true
},
{
"name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName": "Location",
"values": [],
"required": false,
"editable": true,
"visible": true
}
],
"configurations": [
{
"name": "REF_DATA_ZONE",
"value": "Single Instances Zone"
},
{
"name":SELECT_TARGET_OPTION"
"value":SELECT_TARGET_FROM_REQUEST"
},
{
"name": "TARGET_PROP_LIST",
"values": [
"Site:null:false:false",
"Contact:null:false:false",
"Downtime Contact:null:false:false",
"Location:null:false:false",
"LifeCycle Status:null:false:false",
"Department:Development:true:true",
"Comment:This is for testing:false:false",
"Line of Business:null:false:false"
]
},
{
"name": "PDBAAS_CUSTOM_PRE_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7B4E34E053C075B10A74AD:0.2"
},
{
"name": "WORKLOADS",
"subvalues": [
{
"name": "Small",
"subvalues": [
{
"name": "name",
"value": "SmallPdb"
},
{
"name": "description",
"value": "small workload"
},
{
"name": "default",
"value": "N"
},
{
"name": "CPU",
"value": "2"
},
{
"name": "Memory",
"value": "2"
},
{
"name": "Storage",
"value": "5"
},
{
"name": "Sessions",
"value": "100"
}
]
}
]
},
{
"name": "ROLE_OPTION",
"value": "CUSTOM_NEW_ROLE"
},
{
"name": "CUSTOM_ROLE_NAME",
"value": "PDBAAS_NOV_13_2015_16_51_PM"
},
{
"name": "CUSTOM_ROLE_DESC",
"value": "New db role to be assigned to pluggable database administrator."
},
{
"name": "PRIVILEGES",
"values": [
"CREATE SESSION",
"ALTER SESSION",
"CREATE DIMENSION",
"CREATE INDEXTYPE",
"CREATE ANY OPERATOR",
"CREATE ANY PROCEDURE",
"CREATE ANY SEQUENCE",
"CREATE ANY INDEX",
"CREATE JOB",
"CREATE ANY MATERIALIZED VIEW",
"CREATE ANY TABLE",
"CREATE ANY TRIGGER",
"CREATE ANY TYPE",
"CREATE ANY VIEW",
"CREATE ANY SYNONYM",
"CREATE ANY DIRECTORY",
"SELECT ANY DICTIONARY",
"SELECT ANY TABLE"
]
},
{
"name": "REF_DATA_TARGET_TYPE",
"value": "rac_database"
},
{
"name": "REF_DATA_ZONE",
"value": "Clusters Zone - Oracle DB 12c"
},
{
"name": "REF_DATA_HOST",
"value": "xyz.example.com"
},
{
"name": "REF_DATA_TARGET",
"value": "cdbfs"
},
{
"name": "REF_DATA_POOL",
"value": "RAC Pluggable DBs"
},
{
"name": "PDBAAS_CUSTOM_POST_SCRIPTS_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:2469CA4C8C7F4E34E053C075B10A74AD:0.2"
},
{
"name": "SELECT_TARGET_OPTION",
"value": "SELECT_TARGET_AT_RUNTIME"
},
{
"name": "MAX_TABLESPACE_ALLOWED",
"value": "1"
},
{
"name": "CREATE_PDB_OPTION",
"value": "PDB_FROM_PROFILE"
},
{
"name": "PROFILE_URN",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:246C1E85296C29A1E053C075B10A7DFA:0.1"
},
{
"name": "SHARED_STAGE_LOCATION",
"value": "/u04/app/hhkaur/product/12.1.0/dbhome_2/rdbms/xml/schema"
},
{
"name": "TABLESPACE_SIZE",
"values": [
"0.7715",
"0.6152",
"0.0586",
"0.0049"
]
},
{
"name": "INIT_PARAMS",
"values": [
"*.cursor_sharing=EXACT",
"*.open_cursors=300"
]
},
{
"name": "PDB_SID_PREFIX",
"value": "prp"
}
]
}

Note:

To get the software library ID of the "PDBAAS_CUSTOM_PRE_SCRIPTS_URN" and "PDBAAS_CUSTOM_POST_SCRIPTS_URN" run the EM CLI command emcli list_swlib_entities -name="<Pre or Post Standby Database Script>" -show_entity_rev_id. The ID is provided at the end of the output. For example, in the output shown below, oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1 is the ID.

Pre or Post Standby Database Script,0.1,Pre or Post Standby Database Script,Ready,Directives,,Production,ORACLE,,,oracle:defaultService:em:provisioning:1:cmp:COMP_Directives:none:01AB6F25F31B7671E0537850B10A9B85:0.1

Request method

POST

Note:
In the table above, the SELECT_TARGET_OPTION parameter defines if the SSA User has the option to select the Container Database (CDB) while requesting for a PDB. If the value for the parameter is set as SELECT_TARGET_FROM_REQUEST, then the SSA User has the option to choose the CDB. If no value is defined, or if the value is set to SELECT_TARGET_AT_RUNTIME, then the placement algorithm selects the CDB.

A sample of the response received is shown below.

{
"message": "Service template with ID \"xxxxx\" created successfully."
}

48.3.5.3.17 Deleting a Database / Schema / Pluggable Database Service Template

The DELETE request on the URI of the Service Template can be issued to delete a ServiceTemplate Instance. The configuration for deleting in ServiceTemplate is as follows:

Table 48-55 DELETE Request Configuration for Deleting a Database/Schema/Pluggable Database Service Template

Feature

Description

URI

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

Note: For Database Service Templates the URI is em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/61

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"message": "Service Template \"E87A364660A25B39E040F20A60510FDD\" deleted successfully."
}

49 Database as a Service SSA User REST APIs

This chapter describes the resource models of Database as a Service (DBaaS) REST APIs for SSA user, and their responses.

The REST APIs for the SSA user are classified based on the database type. The first section in this chapter provides a summary of all the REST APIs in this chapter whereas the following sections cover the REST APIs based on the database type. The sections in this chapter are as follows:

- Summary of Database as a Service SSA User REST APIs

- Database as a Service

- DB Zone

- DB Platform Template

- DB Platform Instance

- Schema as a Service

- Schema Platform Template

- Schema Platform Instance

- Pluggable Database as a Service

- Pluggable DB Platform Template

- Pluggable DB Platform Instance

49.1 Summary of Database as a Service SSA User REST APIs

The table below shows a summary of all the DBaaS SSA user REST APIs covered in this chapter.

Table 49-1 Summary of DBaaS SSA User REST APIs

Resource

Data Model

GET

POST

PUT

DELETE

Cloud

Not applicable

- Section 49.2.3.1

- Section 49.2.3.2

Not supported

Not supported

Not supported

Service family type

Not applicable

Section 49.2.3.3

Not supported

Not supported

Not supported

Service instance type

Not applicable

Section 49.2.3.4

Not supported

Not supported

Not supported

Service request

Not applicable

Section 49.2.3.5

Not supported

Not supported

Not supported

Database zone

Table 49-2

Section 49.2.3.6

- Section 49.2.3.8.1

- Section 49.3.3.2.1

- Section 49.4.3.2.1

Not supported

Not supported

Database platform template

Table 49-3

Section 49.2.3.7

Section 49.2.3.8.2

Not supported

Not supported

Database platform instance

Table 49-4

Section 49.2.3.9

- Section 49.2.3.10

- Section 49.2.3.12

- Section 49.2.3.13

Not supported

Section 49.2.3.11

Schema platform template

Table 49-30

Section 49.3.3.1

Section 49.3.3.2.2

Not supported

Not supported

Schema platform instance

Table 49-31

Section 49.3.3.3

Section 49.3.3.5

Not supported

Section 49.3.3.4

Pluggable database platform template

Table 49-43

Section 49.4.3.1

Section 49.4.3.2.2

Not supported

Not supported

Pluggable database platform instance

Table 49-44

Section 49.4.3.3

Section 49.4.3.5

Not supported

Section 49.4.3.4

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

49.2 Database as a Service

This section describes the resource model for Database as a Service (DBaaS) REST APIs, and the REST request or response interactions.

This section contains the following topics:

- Database as a Service Resource Model

- Supported Operations for Database as a Service Resources

- Database as a Service REST API Examples

Note:
DBaaS REST APIs are only supported by the Oracle Cloud Application plug-in versions:

- 12.1.0.4.0 with patch # 16085618

- 12.1.0.5.0 and higher

49.2.1 Database as a Service Resource Model

Cloud resources are organized by common service entities and specific services (for example, Database as a Service) provide resources by extending these common service entities. Figure 49-1 shows the DBaaS resource model:

Figure 49-1 Database as a Service Resource Model

The following sections describe the resources that are supported by the Database as a Service family type and provide examples of supported operations.

The resource models are:

- DB Zone

- DB Platform Template

- DB Platform Instance

49.2.1.1 DB Zone

DB Zone extends application/oracle.com.cloud.common.Zone. This resource represents the view of a PaaS Infrastructure Zone that supports DBaaS resources. DB Zone has the media type application/oracle.com.cloud.common.DbZone+json, and the URI format is /em/cloud/dbaas/zone/<zone id>.

The following table describes the DB Zone data model.

Table 49-2 DB Zone Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the Zone definition to this user.

1

name

String

Name of the Zone. SHALL be a UNICODE string to support different languages.

1

description

String

Human readable description of the Zone. SHALL be a UNICODE string to support different languages.

0..1

resource_state

ResourceState

The resource state of the resource.

1

service_family_type

String

The name of the service family type that this zone is associated with.

It is "dbaas" for this.

1

templates

Collection <ServiceTemplate>

Collection of the service templates that this zone supports and can be deployed into. Currently, DBPlatformTemplate is the only supported type.

1

service_instances

Collection <ServiceInstance>

Collection of the service instances that are created in this zone.

1

media_type

String

The media type of the resource.

1

type

String

The type of the zone which is ”self_service_zone” by default.

1

context_id

String

Zone GUID

1

canonicalLink

URI

Can be used to perform cloud interactions like GET and POST.

1

default_db_size_name

String

Selected default database size.

1

db_sizes

List<Object>

List of available database sizes.

1

49.2.1.2 DB Platform Template

The DB Platform Template extends the Service Template resource. This resource represents service templates created for creating databases. The databases may be created using profiles which are created using database templates, rman backups, and SnapClone. It is permissible to accept the Service Template media type on an instance of DB Platform Template. It is a preconfigured deployable service that realizes a DB Platform Instance resource. DB Platform Template has the media type application/oracle.com.cloud.common.DbPlatformTemplate+json, and the URI format is /em/cloud/dbaas/dbplatformtemplate/<template id>.

The following table describes the DB Platform Template data model.

Table 49-3 DB Platform Template Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the template.

1

description

String

A brief description given to the template

0..1

created

Timestamp

Date and time, in ISO 8601 format, when the template was created/last modified.

1

zones

Collection <DbZone>

List of all zones on which this service template is published

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

service_family_type

String

Denotes the type of Service Template. For example, "dbaas".

1

service_instances

Collection <DBPlatformInstance>

All service instances created based on this DBPlatformTemplate.

1

media_type

String

The media type of the service template that this type represents.

1

db_type

String

Type of the Database when provisioned. It can have one of the two values: "oracle_database" and "rac_database".

1

instance_configurable_params

String[]

List of parameters required to provision a DbPlatformInstance from this template. Username, Password, SID and Service name in this case.

1

deployment_params

List<Object>

Description of the parameters which are required while creating a service instance.

1

type

String

The type of the service template which is "dbaas" by default.

1

subtype

String

The sub type of the instance created based on this template.

It has a value "db" in this case.

1

node_count

Number of Nodes. Implicit 1 for SI DB and explicit count for the RAC Db types.

0..1

db_version

String

Version of the database which can be created using this template.

0..1

context_id

URI

The unique id of the template.

1

canonicalLink

URI

Can be used to perform cloud interactions like GET and POST.

1

sid_option

String

Option for the ssa user to specify database SID while requesting DB. This field can have either of the following values:

- 'ssauser' - SSA user needs to specify SID

- 'prefix' - SSA user need not to specify SID

1

standby_enabled

String

Indicates whether standby is enabled in the template.

1

standbydbs

List<Object>

List of standby database configurations.

1

standby_protection_mode

String

Indicates the protection mode of the standby database.

1

db_sizes

List<Object>

List of available database sizes.

1

default_db_size_name

String

Selected default database size.

1

49.2.1.3 DB Platform Instance

The DB Platform Instance extends the Service Instance resource. It is linked to an Oracle Database Instance or Cluster Database target in Enterprise Manager Cloud Control. DB Platform Instance has the media type application/oracle.com.cloud.common.DbPlatformInstance+json, and the URI format is /em/cloud/dbaas/dbplatforminstance/byrequest/<request id>.

The following table describes the DB Platform Instance Data Model.

Table 49-4 DB Platform Instance Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the instance.

[POST]

1

destination_zone

Zone

The Zone to which the instance is deployed.

[POST]

1

media_type

String

Indicates the additional media type that clients can use to perform a GET.

1

available_space

Float

Available space for this database instance.

0..1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

based_on

DbPlatformTemplate

The db platform template on which this instance is published.

1

connect_string

String

Connect String required to establish a connection to this database instance.

0..1

created

String

Time of creation.

1

target_type

String

Indicates the type of the database: "oracle_database" for Single Instance database and "rac_database" for RAC database.

1

status

String

Status of the Database instance.

1

db_version

String

Version of the Database.

0..1

last_backup

Timestamp

Time at which the last backup of this database was taken.

0..1

load

Float

Current average active sessions of this instance.

0..1

master_username

String

Name of the master user of this database.

1

total_sessions

Integer

Total number of sessions for this database

0..1

total_sga^

Float

Total SGA for this database.

0..1

up_time^

Integer

Total number of hours since when this database is up.

1

context_id

String

The request id of this instance.

1

canonicalLink

URI

Can be used to perform cloud interactions like GET and DELETE for this instance.

1

instances

List<Object>

List all the node level details of the database instance (exists only when the type is "rac_database").

0..1

measurable_attributes

List<Object>

List of all the attributes with their units which can be measured.

1

total_memory*^

String

Total memory used by the instance (node).

0..1

active_sessions*

Float

Current average active sessions for this instance (node).

0..1

cpu_utilization*^

Percentage

CPU utilization of this instance (node).

0..1

db_time*^

Float

Database time of this instance (node).

0..1

cpu_count*^

Integer

Number of CPU cores on the host on which the instance (node) is deployed.

0..1

allocated_sessions*

Integer

Number of sessions currently allocated.

0..1

name*

String

Name of the node (exists as an field in the list of "instances" field).

0..1

standby_databases

List<Object>

List of standby databases configured for this instance.

1

standby_database_configured

String

Indicates if standby database is configured for this service instance.

1

Note:

* In case of database instance type "oracle_database", the above fields exist as it is in the DBPlatformInstance Data model. In case of type "rac_database", these fields exist as part of "instances" field and occur for each node of the cluster database.

^ - These attributes can be measured in units and so are represented as Json Objects (like a map) having "name" (as the name of the attribute), "value" (as the value of the attribute) and "units" (as the unit of the attribute). Each such field is a list element of "measurable_attributes" field (which exists at instance level for oracle_database and at RAC node level in case of rac_database).

49.2.2 Supported Operations for Database as a Service Resources

The following table lists all the operations that are supported on the various Database as a Service resources.

Table 49-5 Supported Operations for DBaaS Resources

Resource

GET

POST

PUT

DELETE

Cloud

Yes

No

No

No

Service Family Type

Yes

No

No

No

DB Zone

Yes

Yes

No

No

DB Platform Template [Service Template]

Yes

Yes

No

No

DB Platform Instance [Service Instance]

Yes

Yes

No

Yes

49.2.3 Database as a Service REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control with Cloud Application plug-in 12.1.0.4 and higher. The following examples are covered:

- Viewing Details of All the Cloud Resources

- Filtering Output for Specific Resource Attributes

- Viewing Details of the Service Family Type Resource

- Viewing Details of the Service Instance Type Resource

- Viewing Details of the DB Zone

- Viewing Details of the DB Platform Template Resource

- Creating a Database Instance

- Creating a Database by Passing a Request on the DB Zone

- Creating a Database by Passing a Request on the DB Platform Template

- Viewing the Database Creation Details

- Updating a Database

- Deleting a Database Instance

- Lifecycle operations on a Database Instance

- Shutting down a Database

- Starting up a Database

- Scheduling a Backup of the Database

- Restoring a Database from a Backup

- Adding a Standby Database

- Removing a Standby Database

- Refreshing a Database

- Lifecycle operations on a Snap clone Database Instance

- Creating a Snapshot

- Restoring from a Snapshot List

- Deleting a Snapshot

49.2.3.1 Viewing Details of All the Cloud Resources

Use the top level /em/cloud to introspect the Cloud resource. The operation explained herein lists all the resources accessible to the user.

Table 49-6 GET Request Configuration for Viewing Details of All the Cloud Resources

Feature

Description

URI

/em/cloud

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

X-specification-Version: 10001

Body

None

Request method

GET

A sample of the Cloud resource is shown below.

{
"uri": "/em/cloud",
"name": "Oracle Cloud by Enterprise Manager",
"description": "This represents the Cloud resource of the Oracle Enterprise Manager Cloud Management solution",
"resource_state": {
"state": "READY"
},
"media_type": "application/oracle.com.cloud.common.Cloud+json",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud",
"zones": {
"media_type": "application/oracle.com.cloud.common.Zone+json",
"total": "4",
"elements": [
{
"uri": "/em/cloud/jaas/zone/9708491651C090AB4B847C2F3CD177DE",
"name": "SLC00ECXY_ZONE",
"media_type": "application/oracle.com.cloud.jaas.Zone+json",
"service_family_type": "jaas",
"type": "jaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/zone/9708491651C090AB4B847C2F3CD177DE"
},
{
"uri": "/em/cloud/jaas/zone/B329742A13BE0D63703BF0C0E4F98FB9",
"name": "SLC01NBV_ZONE",
"media_type": "application/oracle.com.cloud.jaas.Zone+json",
"service_family_type": "jaas",
"type": "jaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/zone/B329742A13BE0D63703BF0C0E4F98FB9"
},
{
"uri": "/em/cloud/dbaas/zone/9708491651C090AB4B847C2F3CD177DE",
"name": "SLC00ECXY_ZONE",
"description": "",
"media_type": "application/oracle.com.cloud.common.DbZone+json",
"service_family_type": "dbaas",
"type": "self_service_zone",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/9708491651C090AB4B847C2F3CD177DE"
},
{
"uri": "/em/cloud/dbaas/zone/B329742A13BE0D63703BF0C0E4F98FB9",
"name": "SLC01NBV_ZONE",
"description": "SLC01NBV_ZONE",
"media_type": "application/oracle.com.cloud.common.DbZone+json",
"service_family_type": "dbaas",
"type": "self_service_zone",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/B329742A13BE0D63703BF0C0E4F98FB9"
}
]
},
"service_templates": {
"media_type": "application/oracle.com.cloud.common.ServiceTemplate+json",
"total": "2",
"elements": [
{
"uri": "/em/cloud/dbaas/dbplatformtemplate/DEC94FE6D49DAA21E040F20A60511D14",
"name": "SLC01NBV_SNAPCLONE_ST",
"description": "",
"media_type": "application/oracle.com.cloud.common.DbPlatformTemplate+json",
"service_family_type": "dbaas",
"type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatformtemplate/DEC94FE6D49DAA21E040F20A60511D14"
},
{
"uri": "/em/cloud/dbaas/dbplatformtemplate/DECCA0E18357F28DE040F20A60514D49",
"name": "SLC00ECXY_DBCA_ST",
"description": "",
"media_type": "application/oracle.com.cloud.common.DbPlatformTemplate+json",
"service_family_type": "dbaas",
"type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatformtemplate/DECCA0E18357F28DE040F20A60514D49"
}
]
},
"service_family_types": {
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"total": "4",
"elements": [
{
"uri": "/em/cloud/service_family_type/jaas",
"name": "jaas",
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"type": "jaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/jaas"
},
{
"uri": "/em/cloud/service_family_type/dbaas",
"name": "dbaas",
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/dbaas"
},
{
"uri": "/em/cloud/service_family_type/opc",
"name": "opc",
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"type": "opc",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/opc"
},
{
"uri": "/em/cloud/service_family_type/iaas",
"name": "iaas",
"media_type": "application/oracle.com.cloud.iaas.IaasServiceFamilyType+json",
"type": "iaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/iaas"
}
]
},
"service_requests": {
"media_type": "application/oracle.com.cloud.common.Request+json",
"total": "1",
"elements": [
{
"uri": "/em/cloud/request/DEC87CE5B1DA175DE040F20A605150F8",
"name": "SLC01NBV_DBCA_ST - Mon Jun 10 00:20:08 PDT 2013_CREATE_20_25",
"media_type": "application/oracle.com.cloud.common.Request+json",
"status": "SUCCESS",
"lifecycle_type": "CREATE",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/request/DEC87CE5B1DA175DE040F20A605150F8"
}
]
}
}

Note:
Even though the Accept type was not specified, the Web service still unambiguously returns the cloud resource as the "/em/cloud" address uniquely identifies the cloud as the default resource to be returned.

49.2.3.2 Filtering Output for Specific Resource Attributes

The following description indicates the interaction with the cloud resource for identifying specific attributes (service family type in this case):

Table 49-7 GET Request Configuration for Filtering Specific Resource Attributes

Feature

Description

URI

em/cloud?service_family_types,name

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Oracle Cloud by Enterprise Manager",
"service_family_types": {
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"total": "4",
"elements": [
{
"uri": "/em/cloud/service_family_type/jaas",
"name": "jaas",
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"type": "jaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/jaas"
},
{
"uri": "/em/cloud/service_family_type/dbaas",
"name": "dbaas",
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/dbaas"
},
{
"uri": "/em/cloud/service_family_type/opc",
"name": "opc",
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"type": "opc",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/opc"
},
{
"uri": "/em/cloud/service_family_type/iaas",
"name": "iaas",
"media_type": "application/oracle.com.cloud.iaas.IaasServiceFamilyType+json",
"type": "iaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/iaas"
}
]
}
}

This feature, where only selective attributes are gathered and returned to the client, is supported on all the common resources.

49.2.3.3 Viewing Details of the Service Family Type Resource

The GET operation on the Service Family Type resource lists all the DBaaS resources accessible to a user. The configuration for the Service Family Type resource is as follows:

Table 49-8 GET Request Configuration for Viewing Details of the Service Family Type Resource

Feature

Description

URI

em/cloud/service_family_types/dbaas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

X-specification-version: 10001
Content-Type: application/oracle.com.cloud.common.ServiceFamilyType+json; charset=ISO-8859-1
{
"uri": "/em/cloud/service_family_type/dbaas",
"name": "dbaas",
"resource_state": {
"state": "READY"
},
"media_type": "application/oracle.com.cloud.common.ServiceFamilyType+json",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/dbaas",
"type": "dbaas",
"service_templates": {
"media_type": "application/oracle.com.cloud.common.ServiceTemplate+json",
"total": "2",
"elements": [
{
"uri": "/em/cloud/dbaas/dbplatformtemplate/DEC94FE6D49DAA21E040F20A60511D14",
"name": "SLC01NBV_SNAPCLONE_ST",
"description": "",
"media_type": "application/oracle.com.cloud.common.DbPlatformTemplate+json",
"service_family_type": "dbaas",
"type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatformtemplate/DEC94FE6D49DAA21E040F20A60511D14"
},
{
"uri": "/em/cloud/dbaas/dbplatformtemplate/DECCA0E18357F28DE040F20A60514D49",
"name": "SLC00ECXY_DBCA_ST",
"description": "",
"media_type": "application/oracle.com.cloud.common.DbPlatformTemplate+json",
"service_family_type": "dbaas",
"type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatformtemplate/DECCA0E18357F28DE040F20A60514D49"
}
]
},
"zones": {
"media_type": "application/oracle.com.cloud.common.Zone+json",
"total": "2",
"elements": [
{
"uri": "/em/cloud/dbaas/zone/9708491651C090AB4B847C2F3CD177DE",
"name": "SLC00ECXY_ZONE",
"description": "",
"media_type": "application/oracle.com.cloud.common.DbZone+json",
"service_family_type": "dbaas",
"type": "self_service_zone",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/9708491651C090AB4B847C2F3CD177DE"
},
{
"uri": "/em/cloud/dbaas/zone/B329742A13BE0D63703BF0C0E4F98FB9",
"name": "SLC01NBV_ZONE",
"description": "SLC01NBV_ZONE",
"media_type": "application/oracle.com.cloud.common.DbZone+json",
"service_family_type": "dbaas",
"type": "self_service_zone",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/B329742A13BE0D63703BF0C0E4F98FB9"
}
]
},
"instance_types": {
"media_type": "application/oracle.com.cloud.common.InstanceType+json",
"total": "1",
"elements": [
{
"uri": "/em/cloud/instance_type/dbPlatformInstance%40dbaas",
"name": "dbPlatformInstance",
"description": "Db Instance",
"media_type": "application/oracle.com.cloud.common.InstanceType+json",
"instance_media_type": "application/oracle.com.cloud.common.DbPlatformInstance+json",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/instance_type/dbPlatformInstance%40dbaas"
}
]
},
"service_requests": {
"media_type": "application/oracle.com.cloud.common.Request+json",
"total": "1",
"elements": [
{
"uri": "/em/cloud/request/DEC87CE5B1DA175DE040F20A605150F8",
"name": "SLC01NBV_DBCA_ST - Mon Jun 10 00:20:08 PDT 2013_CREATE_20_25",
"media_type": "application/oracle.com.cloud.common.Request+json",
"status": "SUCCESS",
"lifecycle_type": "CREATE",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/request/DEC87CE5B1DA175DE040F20A605150F8"
}
]
}
}

The media type application/oracle.com.cloud.common.ServiceFamilyType+json is returned automatically as the most detailed resource.

49.2.3.4 Viewing Details of the Service Instance Type Resource

A GET request on a Service Instance Type resource list all the supported services that are provided by a particular service family type.

Table 49-9 GET Request Configuration for Viewing Details of the Service Instance Type Resource

Feature

Description

URI

em/cloud/instance_type/dbPlatformInstance%40dbaas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud/instance_type/dbPlatformInstance%40dbaas" ,
"name" : "dbPlatformInstance" ,
"description" : "Db Instance" ,
"media_type" : "application/oracle.com.cloud.common.InstanceType+json" ,
"instance_media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" , ,
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/instance_type/dbPlatformInstance%40dbaas"
}

49.2.3.5 Viewing Details of a Service Requests Resource

A GET request on a Service Requests resource lists the details of a service request.

Table 49-10 GET Request Configuration for Viewing Details of a Service Request Resource

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/<request_id>

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"id": "21",
"name": "Request a RAC One Database_CREATE_43_47#21",
"status": "SUCCESS",
"serviceType": "DB",
"serviceFamily": "DBAAS",
"actionName": "Create Database",
"startDate": "2015-07-21T17:13:47Z",
"createdOn": "2015-07-21T17:13:47Z",
"createdBy": "SYSMAN",
"owner": "SYSMAN",
"canonicalLink":
{
"href": "https://blr.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/21"
},
"description": "Create Database for "Request a RAC One Database".",
"executionLogs": "https://blr.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/21/logs"
}

49.2.3.6 Viewing Details of the DB Zone

A GET request on a zone lists all the resources available in the zone. The DB zone resource configuration is as follows:

Table 49-11 GET Request Configuration for Viewing Details of the DB Zone

Feature

Description

URI

em/cloud/dbaas/zone/82CF1C28FA20A183C99D138FF8065F19

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/zone/B49F86387B81DAED9A3D672D722CF29D" ,
"name" : "RAC SSAZONE" ,
"description" : "SSA Zone with RAC Nodes" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "B49F86387B81DAED9A3D672D722CF29D" ,
"media_type" : "application/oracle.com.cloud.common.DbZone+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/B49F86387B81DAED9A3D672D722CF29D" ,
"type" : "self_service_zone" ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"name" : "db000000.mycompany.com" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"type" : "rac_database"
}
]
} ,
"templates" :     {
"media_type" : "application/oracle.com.cloud.common.DbPlatformTemplate+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/dbaas/dbplatformtemplate/DE039DAC33FFEA6FE040E80A687848A6" ,
"name" : "12101_RACFileSystem_ServiceTemplate" ,
"description" : "12101 RAC FileSystem Service Template" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformTemplate+json" ,
"service_family_type" : "dbaas" ,
"type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatformtemplate/DE039DAC33FFEA6FE040E80A687848A6"
}
]
}
}

49.2.3.7 Viewing Details of the DB Platform Template Resource

A GET request on the DB Platform Template resource provides details of a DB Service Template.

As shown in previous examples, the elements in the collection shown all have media_type as an attribute to clearly indicate what its resource type is.

Table 49-12 GET Request Configuration for Viewing Details of the DB Platform Template Resource

Feature

Description

URI

em/cloud/dbaas/dbplatformtemplate/CC3BBB665A6BC6FFE040F00AEF252456

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatformtemplate/F985CAE9AB916591E043A4BBF00A235D" ,
"name" : "Platinum - Star Hotel Application on 2-node RAC Database with Multiple Standbys" ,
"description" : "Provisions Star Hotel Application on 2-node 11.2.0.4 RAC Database with RAC & SI Standbys" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformTemplate+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatformtemplate/F985CAE9AB916591E043A4BBF00A235D" ,
"type" : "dbaas" ,
"created" : "2014-05-16T13:57:22+0000" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.DbZone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/dbaas/zone/F985A268D9175B9FE043A4BBF00A3573" ,
"name" : "Salt Lake City DC" ,
"description" : "" ,
"context_id" : "F985A268D9175B9FE043A4BBF00A3573" ,
"media_type" : "application/oracle.com.cloud.common.DbZone+json" ,
"service_family_type" : "dbaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/F985A268D9175B9FE043A4BBF00A3573" ,
"type" : "self_service_zone"
"clusters_for_placement" :
[
{
"clusterName" : "cluster1" ,
"hostsInCluster" :
[
"abc.mycompany.com" ,
"def.mycompany.com" ,
"ghi.mycompany.com"
]
} ,
{
"clusterName" : "cluster2" ,
"hostsInCluster" :
[
"xyz.mycompany.com" ,
"pqr.mycompany.com"
]
}
]
}
]
} ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"name" : "xxyy.example.com" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"target_type" : "rac_database"
}
]
} ,
"deployment_params" :
[
{
"name" : "username" ,
"description" : "Master account Username" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "false"
} ,
{
"name" : "password" ,
"description" : "Password for the Master account" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "true"
} ,
{
"name" : "database_sid" ,
"description" : "Database SID. Required only if sid_option is ssauser." ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "false"
} ,
{
"name" : "service_name" ,
"description" : "Database Service Name" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "false"
} ,
{
"name" : "database_host_name" ,
"description" : "Name of the host(s) to be chosen for creating the database instance. For RAC database instance, multiple host names can be provided as comma separated values." ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "standbydbs" ,
"description" : "List of the standby databases. Required only if standby database is enabled and required" ,
"type" : "LIST" ,
"defaultValue" :
[
{
"name" : "standbydb_name" ,
"description" : "Name of the standby database, specified in the standbydbs list" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "false"
} ,
{
"name" : "standbydb_sid" ,
"description" : "SID of the standby database" ,
"type" : "STRING" ,
"require" : "true" ,
"sensitive" : "false"
}
] ,
"require" : "false" ,
"sensitive" : "false"
}
{
"name" : "db_size_name" ,
"description" : "DB Size name to be associated with the request" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
] ,
"subtype" : "db" ,
"db_type" : "rac_database" ,
"node_count" : "2" ,
"sid_option" : "ssauser" ,
"standbydbs" :
[
{
"standbydb_name" : "Near DR" ,
"standbydb_type" : "rac_database"
} ,
{
"standbydb_name" : "Far DR" ,
"standbydb_type" : "oracle_database"
}
] ,
"standby_enabled" : "true" ,
"placement_option" : "SELECT_ORACLE_HOME_FROM_REQUEST" ,
"standby_protection_mode" : "MAXIMIZE AVAILABILITY" ,
"instance_configurable_params" :     {
"username" : "" ,
"password" : "" ,
"database_sid" : "" ,
"service_name" : ""
}
}
"db_sizes" :
[
{
"name" : "Large" ,
"description" : "Large size database" ,
"attributes" :
[
{
"name" : "CPU" ,
"value" : "0" ,
"units" : "cores"
} ,
{
"name" : "Memory" ,
"value" : "8" ,
"units" : "GB"
} ,
{
"name" : "Storage" ,
"value" : "500" ,
"units" : "GB"
}
]
} ,
{
"name" : "Medium" ,
"description" : "Medium size database" ,
"attributes" :
[
{
"name" : "CPU" ,
"value" : "4" ,
"units" : "cores"
} ,
{
"name" : "Memory" ,
"value" : "6" ,
"units" : "GB"
} ,
{
"name" : "Storage" ,
"value" : "100" ,
"units" : "GB"
}
]
} ,
{
"name" : "Small" ,
"description" : "Small size database" ,
"attributes" :
[
{
"name" : "CPU" ,
"value" : "2" ,
"units" : "cores"
} ,
{
"name" : "Memory" ,
"value" : "4" ,
"units" : "GB"
} ,
{
"name" : "Storage" ,
"value" : "50" ,
"units" : "GB"
}
]
}
] ,
"default_db_size_name" : "Small" ,
}

Note:
In the sample output shown above, the GET on the service template configured for a single instance database shows hosts_for_placement parameter instead of clusters_for_placement.

49.2.3.8 Creating a Database Instance

This section describes how to create a service instance using Cloud resources. As DB is a service instance in the service family type dbaas, you need to identify the zone of the same family type to create the database. There are two approaches to creating a database:

1. By issuing a POST request on the DB Zone on which the database is to reside.

2. By issuing a POST request on the DB Platform Template of which the database is to be based on.

Note the attributes in the submitted body for the POST. The pattern is the same for other service instance creations. Since the intention is clear, the zone attribute is not required while performing POST on the DB Zone. Similarly, the based_on attribute is not needed when performing POST on the DB Platform Template.

The two approaches to create a database are described in the following sections:

- Creating a Database by Passing a Request on the DB Zone

- Creating a Database by Passing a Request on the DB Platform Template

49.2.3.8.1 Creating a Database by Passing a Request on the DB Zone

The configuration for performing POST to the Db Zone is as follows:

Table 49-13 POST Request Configuration for Creating a Database by Passing a Request on the DB Zone

Feature

Description

URI

/em/cloud/dbaas/zone/82CF1C28FA20A183C99D138FF8065F19

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"based_on": "/em/cloud/dbaas/dbplatformtemplate/CC3BBB665A6BC6FFE040F00AEF252456",
"name": "<Request name>",
"description": "<Request Description>",
"start_date": "2013-08-02T14:20:00ZAsia/Calcutta",
"end_date": "2013-08-02T17:20:00ZAsia/Calcutta",
"standby_required" : "true",
"params":
{
"username": "Master Account username for the DB",
"password": "Password for the Master Account on the DB" ,
"database_sid" : "Database SID" ,
"service_name" : "Name of the additional service to be created",
"db_size_name": "Medium",
"standbydbs":
[
{
"standbydb_name":"STBY2",
"standbydb_sid":"stio62"
}
]
"database_profile_version": "RMAN_06_27_2014_14_18_PM"
}
}

Request method

POST

Note:
In the body above start_date indicates the time, time zone and date when the request is scheduled to create the database and end_date indicates when the database should be deleted. These parameters are optional.

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/21" ,
"name" : "Test_create_intance" ,
"resource_state" :     {
"state" : "INITIATED"
"messages" :
[
{
"date" : "2014-11-25T09:52:49+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"text" : "Delete Request ID is : 22"
}
]
} ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"status" : "SCHEDULED"
}

49.2.3.8.2 Creating a Database by Passing a Request on the DB Platform Template

The configuration for performing POST to the DbPlatformTemplate is as follows:

Table 49-14 POST Request Configuration for Creating a Database by Passing a Request on the DB Platform Template

Feature

Description

URI

/em/cloud/dbaas/dbplatformtemplate/CC3BBB665A6BC6FFE040F00AEF252456

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"zone": "/em/cloud/dbaas/zone/82CF1C28FA20A183C99D138FF8065F19",
"name": "<Request name>",
"description": "<Request Description>",
"standby_required" : "true",
"params":
{
"username": "Master Account username for the DB",
"password": "Password for the Master Account on the DB",
"database_sid" : "Database SID" ,
"service_name" : "Name of the additional service to be created",
"database_host_name": "abc.mycompany.com,def.mycompany.com"
" db_size_name": "Medium",
"standbydbs":
[
{
"standbydb_name":"STBY2",
"standbydb_sid":"stio62"
}
]
"database_profile_version": "RMAN_06_27_2014_14_18_PM"
}
}

Request method

POST

Note:

- database_host_name parameter is mandatory if the service template is configured for custom placement.

- The value for the database_host_name parameter should be a host present in the same zone.

- For a SI database provide only one host name. For a RAC database the number of hosts provided should be equal to the number of nodes in the node_count, within the same zone that is specified, and in a single cluster.

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"name" : "Test_create_intance" ,
"resource_state" :     {
"state" : "INITIATED"
} ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/23" ,
"status" : "SCHEDULED"
}

The response shown above is the same as the previous version. If the zone is not specified, then it is not possible for the web service to determine where the DB should be deployed.

49.2.3.9 Viewing the Database Creation Details

After the POST is performed for the database creation, you can perform the GET operation on the resource identified by the return URI to keep track of the status.

Table 49-15 GET Request Configuration for Viewing the Database Creation Details

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "/em/cloud/dbaas/dbplatforminstance/byrequest/22",
"name": "Test_create_intance_CREATE_55_42",
"description": "Create Database for test.",
"resource_state":
{
"state": "CREATING"
},
"context_id": "22",
"media_type": "application/oracle.com.cloud.common.DbPlatformInstance+json",
"status": "IN_PROGRESS",
"created": "2013-06-07 23:09:04" ,
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/22"
}

Note that the resource_state attribute shows CREATING state to indicate that the database is being created. If the GET operation is performed after the database is created, the response displays the database resource in READY state, as shown below:

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"name" : "db000000.mycompany.com" ,
"resource_state" :     {
"state" : "READY"
"messages" :
[
{
"date" : "2014-11-25T09:52:49+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"text" : "Delete Request ID is : 22"
}
]
} ,
"context_id" : "22" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"status" : "RUNNING" ,
"created" : "2013-08-03 02:23:04" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E300FBE134EAB347E040F10A58535F16" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=cluster_name)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=db000000.mycompany.com)))" ,
"target_type" : "rac_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/B49F86387B81DAED9A3D672D722CF29D" ,
"total_sessions" : "165" ,
"last_backup" : "null" ,
"master_username" : "InstanceUser1" ,
"db_version" : "12.1.0.1.0" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "4778.555" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "699.813" ,
"units" : "MB"
}
] ,
"instances" :
[
{
"name" : "db000000. mycompany.com_db0000001" ,
"average_active_sessions" : ".031" ,
"allocated_sessions" : "70" ,
"measurable_attributes" :
[
{
"name" : "cpu_utilization" ,
"value" : "0.199" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "2723.867" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "3.103" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "6" ,
"units" : "Cores"
}
]
} ,
{
"name" : "db000000. mycompany.com_db0000002" ,
"average_active_sessions" : ".007" ,
"allocated_sessions" : "69" ,
"measurable_attributes" :
[
{
"name" : "cpu_utilization" ,
"value" : "0.049" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "2705.378" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : ".663" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "6" ,
"units" : "Cores"
}
]
},
"standby_databases" :
[
{
"Target Name" : "xyxy.example.com" ,
"Target Type" : "oracle_database" ,
"Open Mode" : "MOUNTED"
} ,
{
"Target Name" : "xxxy.example.com" ,
"Target Type" : "rac_database" ,
"Open Mode" : "READ ONLY"
}
] ,
"standby_database_configured" : "true"
]
}

The output in case of a single instance database (type:oracle_database) is as below:

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/81" ,
"name" : "sidb0001.host1.mycompany.com" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "81" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/81" ,
"status" : "RUNNING" ,
"created" : "2013-08-05 18:06:52" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E33736E8238CE06BE040F20A54666216" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= host1.mycompany.com)(PORT=1521)))(CONNECT_DATA=(SID=sidb0001)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/E33720BF45C45E24E040F20A54666214" ,
"total_sessions" : "43" ,
"last_backup" : "null" ,
"master_username" : "InstanceUser1" ,
"db_version" : "11.2.0.1.0" ,
"average_active_sessions" : ".118" ,
"allocated_sessions" : "42" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "982.063" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "11.206" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "533.485" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "11.822" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "1" ,
"units" : "Cores"
}
],
"standby_databases" :
[
{
"Target Name" : "xyxy.example.com" ,
"Target Type" : "oracle_database" ,
"Open Mode" : "MOUNTED"
}
] ,
"standby_database_configured" : "true"
}

49.2.3.10 Updating a Database

A database can be updated immediately or scheduled at a later date. To schedule an update at a later date, provide the time at which backups need to be scheduled. The time and date should be in the YYYY-MM-DDTHH:MM:SSZFullTimeZonename format.For example, to schedule in PST time enter:

"2013-08-27T12:34:45ZAmerica/Los_Angeles"

However, providing the time zone is optional. If you do not want to specify the time zone provide the time and date as shown in the following example:

"2013-08-27T12:34:45Z"

To update a database immediately, the update_schedule field should be left blank in the payload of the REST API. See, Table 49-17, "POST Request Configuration for Updating a Database Immediately".

Table 49-16 POST Request Configuration for Scheduling a Database Update

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/21

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+jsonAccept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "UPDATE_DATABASE",
"update_schedule" : "2013-08-27T12:34:45ZAsia/Calcutta"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"name" : "xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/21" ,
"date" : "2014-11-25T09:52:49+0000" ,
"text" : "Successfully submitted UPDATE_DATABASE operation on service instance. Request id - 21."
}
]
} ,
"context_id" : "1" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"status" : "RUNNING" ,
"created" : "2014-11-25 13:41:04.0" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/08AAF405CD4B42E7E0535978B10ADF9F" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxy.example)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=dbca1s.us.example.com)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/715C91005BF1195AA6BFBC70654415E7" ,
"total_sessions" : "52" ,
"last_backup" : "null" ,
"master_username" : "ssauser1" ,
"db_version" : "11.2.0.3.0" ,
"average_active_sessions" : ".003" ,
"allocated_sessions" : "42" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "2" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "509.703" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "118.25" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "0.171" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "668.698" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : ".278" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
] ,
"standby_databases" :
[  ] ,
"standby_database_configured" : "false"
}

To update a database immediately, issue the REST API configuration shown in the table below.

Table 49-17 POST Request Configuration for Updating a Database Immediately

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/21

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+jsonAccept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "UPDATE_DATABASE",
"update_schedule" : ""
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"name" : "db000000.us.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"date" : "2014-11-25T09:56:50+0000" ,
"text" : "Successfully submitted UPDATE_DATABASE operation on service instance. Request id - 22."
}
]
} ,
"context_id" : "1" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/1" ,
"status" : "RUNNING" ,
"created" : "2014-11-25 13:41:04.0" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/08AAF405CD4B42E7E0535978B10ADF9F" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=slc00dpu.us.example.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=dbca1s.us.example.com)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/715C91005BF1195AA6BFBC70654415E7" ,
"total_sessions" : "56" ,
"last_backup" : "null" ,
"master_username" : "ssauser1" ,
"db_version" : "11.2.0.3.0" ,
"average_active_sessions" : ".001" ,
"allocated_sessions" : "44" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "2" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "509.703" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "118.25" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "0.092" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "674.077" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : ".105" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
] ,
"standby_databases" :
[  ] ,
"standby_database_configured" : "false"
}

49.2.3.11 Deleting a Database Instance

The DELETE operation on the URI of the resource can be run to delete a DB Service Instance. The configuration values for the DELETE operation are:

Table 49-18 DELETE Request Configuration for Deleting a Database Instance

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"name" : "db000000.mycompany.com" ,
"resource_state" :     {
"state" : "DESTROYING" ,
"messages" :
[
{
"text" : "Submit 'DELETE' operation on 'application/oracle.com.cloud.common.DbPlatformInstance+json' 'db000000.mycompany.com'.  The process has job id '41'" ,
"date" : "2013-06-07T23:16:20+0000"
}
]
} ,
"context_id" : "22" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/22" ,
"type" : "rac_database"
}

After a few minutes, the GET operation on the database URI will result in the following interaction:

Table 49-19 GET Request Configuration for Viewing the Database Creation Details

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

The web service responds with the following details:

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/23" ,
"name" : "sidb0001.host1.mycompany.com" ,
"resource_state" :     {
"state" : "DESTROYING"
} ,
"context_id" : "23" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/23" ,
"status" : "RUNNING" ,
"created" : "2013-06-09 07:56:57" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/DEB2BDE2F773E356E040E50AD2E56BE9" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1.mycompany.com)(PORT=1521)))(CONNECT_DATA=(SID=sidb0001)))" ,
"type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/DEB2E2920C20D2E1E040E50AD2E56BEF" ,
"up_time" : "0" ,
"load" : "0.156456056384199" ,
"total_sessions" : "46" ,
"total_sga" : "398.203125" ,
"available_space" : "0.19097900390625" ,
"last_backup" : "null" ,
"master_username" : "InstanceUser1" ,
"db_version" : "11.2.0.1.0" ,
"active_sessions" : ".156" ,
"cpu_utilization" : "5.35" ,
"db_time" : "15.646" ,
"cpu_count" : "1" ,
"allocated_sessions" : "39" ,
"total_memory" : "524.384 MB"
}

The database status indicates DELETED after the database is deleted.

49.2.3.12 Lifecycle operations on a Database Instance

The POST request on the URI of the resource can be issued to perform an operation on a database.

You can perform the following operations using a POST request:

- Shutting down a Database

- Starting up a Database

- Scheduling a Backup of the Database

- Restoring a Database from a Backup

- Adding a Standby Database

- Removing a Standby Database

- Refreshing a Database

49.2.3.12.1 Shutting down a Database

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-20 POST Request Configuration for Shutting Down a Database

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "SHUTDOWN"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:12:30+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/127" ,
"text" : "Successfully submitted SHUTDOWN operation on service instance. Request id - 127."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "62" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : ".01" ,
"allocated_sessions" : "50" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "19" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "0.506" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "604.652" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "1.041" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

49.2.3.12.2 Starting up a Database

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-21 POST Request Configuration for Starting a Database

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "STARTUP"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:16:52+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/128" ,
"text" : "Successfully submitted STARTUP operation on service instance. Request id - 128."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "STOPPED" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "null" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "null" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "null" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "null" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "null" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "null" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "null" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "null" ,
"units" : "Cores"
}
]
}

49.2.3.12.3 Scheduling a Backup of the Database

For scheduling, the backup user has to provide the time at which backups needs to scheduled. This should be in the YYYY-MM-DDTHH:MM:SSZFullTimeZonename format.

For example to schedule in PST time user should enter 2013-08-27T12:34:45ZAmerica/Los_Angeles.

The time zone portion is optional. If you do not want to provide the time zone, then enter 2013-08-27T12:34:45Z.

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-22 POST Request Configuration for Scheduling a Backup of the Database

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "BACKUP",
"backup_schedule" : "2013-08-27T12:34:45ZAsia/Calcutta"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/129" ,
"text" : "Successfully submitted BACKUP operation on service instance. Request id - 129."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xyxy.example.com)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

After the backup is completed, the GET operation yields the response shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=slc01lxj.us.example.com)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "64" ,
"last_backup" : "2013-08-27 07:24:04.0" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : ".027" ,
"allocated_sessions" : "50" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "0.496" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "578.12" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "2.736" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
] ,
"RMAN_backup_list" :
[
{
"Key" : "1" ,
"Tag" : "ORA$OEM_LEVEL_0" ,
"Completed Time" : "Aug 27, 2013 12:24:02 AM" ,
"Contents" : "SPFILE,CONTROLFILE" ,
"Status" : "AVAILABLE"
}
]
}

49.2.3.12.4 Restoring a Database from a Backup

To restore a database from a backup, the user has to provide the point-in-time when the database is to be restored. The time mentioned should be in the YYYY-MM-DDTHH:MM:SSZFullTimeZonename format.

For example, to schedule in PST time you should enter 2013-08-27T12:34:45ZAmerica/Los_Angeles. Time zone is optional. If you do not want to provide the time zone, enter 2013-08-27T12:34:45Z.

The restore time is based on the backups available. Refer to RMAN_backup_list section in the output of the GET request.

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-23 POST Request Configuration for Restoring Database from a Backup

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "RESTORE",
"restore_date" : "2013-08-27T12:34:45Z"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/129" ,
"text" : "Successfully submitted RESTORE operation on service instance. Request id - 130."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

49.2.3.12.5 Adding a Standby Database

To add standby databases, input the standby databases which are configured in the service template. If the SID option in the service template is set as ”Specified by user at request time”, then provide the SID value.

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-24 POST Request Configuration for Adding a Standby Database

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "ADD_STANDBY",
"standbydbs":
[
{
"standbydb_name":"STBY1",
"standbydb_sid":"stiq41"
}
]
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.abc.mycompany.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/129" ,
"text" : "Successfully submitted ADD_STANDBY operation on service instance. Request id - 130."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

49.2.3.12.6 Removing a Standby Database

To delete standby databases, input the standby databases which are created.

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-25 POST Request Configuration for Adding a Standby Database

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "DELETE_STANDBY",
"standbydbs":
[
{
"standbydb_name":"xyxy.example.com",
"standbydb_type":"oracle_database"
}
]
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.abc.mycompany.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/129" ,
"text" : "Successfully submitted DELETE_STANDBY operation on service instance. Request id - 130."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

49.2.3.12.7 Refreshing a Database

The database can be refreshed to a new version of the profile by providing the name of the profile version.

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-26 POST Request Configuration for Adding a Standby Database

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "REFRESH_DATABASE",
"database_profile_version": "RMAN_06_27_2014_13_18_PM"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.abc.mycompany.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/129" ,
"text" : "Successfully submitted REFRESH_DATABASE operation on service instance. Request id - 130."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

49.2.3.13 Lifecycle operations on a Snap clone Database Instance

The POST request on the URI of the resource can be run to perform an operation on a database. The following operations can be performed by using POST.

- Creating a Snapshott

- Restoring from a Snapshot List

- Deleting a Snapshot

49.2.3.13.1 Creating a Snapshot

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-27 POST Request Configuration for Creating a Snapshot

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "CREATE_PROFILE",
"snapshot_name" : "test_API_export",
"snapshot_desc" : "testing export option from APIs"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/129" ,
"text" : "Successfully submitted CREATE_PROFILE operation on service instance. Request id - 130."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

After the snapshot is created, the response of a GET operations yields the result shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/143" ,
"text" : "Successfully submitted CREATE_PROFILE operation on service instance. Request id - 143."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
"snapclone_profile_list" :
[
{
"Name" : "test_API_export" ,
"Description" : "testing export option from APIs" ,
"URN" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:E4E9E7EE230BF965E040F20A60517256:0.1" ,
"Submission Guid" : "DD269BBA774E0159E040F20A60513010" ,
"Creation Date" : "Mon Aug 20 05:54:03 PDT 2013" ,
"Status" : "Ready"
}
]
}

49.2.3.13.2 Restoring from a Snapshot List

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-28 POST Request Configuration for Restoring from a Snapshot List

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : "RESTORE_PROFILE",
"snapshot_urn" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:DECAD7B3145E6808E040F20A605130A2:0.1"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/144" ,
"text" : "Successfully submitted RESTORE_PROFILE operation on service instance. Request id - 144."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

49.2.3.13.3 Deleting a Snapshot

The configurations for the POST on a DbPlatformInstance is as follows:

Table 49-29 POST Request Configuration for Restoring from a Snapshot List

Feature

Description

URI

/em/cloud/dbaas/dbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"operation" : " DELETE_PROFILE",
"snapshot_urn" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:DECAD7B3145E6808E040F20A605130A2:0.1"   }

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"name" : "dbc00000.xyxy.example.com" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:17:56+0000" ,
"uri" : "/em/cloud/dbaas/dbplatforminstance/byrequest/148" ,
"text" : "Successfully submitted DELETE_PROFILE operation on service instance. Request id - 148."
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/dbplatforminstance/byrequest/101" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 05:09:13" ,
"based_on" : "/em/cloud/dbaas/dbplatformtemplate/E4D9626BC260F517E040F20A605152CD" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SID=dbc00000)))" ,
"target_type" : "oracle_database" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"total_sessions" : "0" ,
"last_backup" : "null" ,
"master_username" : "test" ,
"db_version" : "11.2.0.2.0" ,
"average_active_sessions" : "null" ,
"allocated_sessions" : "46" ,
"measurable_attributes" :
[
{
"name" : "up_time" ,
"value" : "0" ,
"units" : "Hours"
} ,
{
"name" : "total_sga" ,
"value" : "398.203" ,
"units" : "MB"
} ,
{
"name" : "available_space" ,
"value" : "537.172" ,
"units" : "MB"
} ,
{
"name" : "cpu_utilization" ,
"value" : "null" ,
"units" : "%"
} ,
{
"name" : "total_memory" ,
"value" : "575.043" ,
"units" : "MB"
} ,
{
"name" : "db_time" ,
"value" : "null" ,
"units" : "CentiSeconds Per Second"
} ,
{
"name" : "cpu_count" ,
"value" : "2" ,
"units" : "Cores"
}
]
}

49.3 Schema as a Service

This section describes the resource model for Schema as a Service (SchaaS) REST API and the REST request/response interactions.

Note:
SchaaS REST APIs are only supported by the Oracle Cloud Application plug-in version 12.1.0.6.0 and higher

This section contains the following topics:

- Schema as a Service Resource Model

- Supported Operations for Schema as a Service Resources

- Schema as a Service REST API Examples

49.3.1 Schema as a Service Resource Model

Cloud resources are organized by common service entities, and specific services (for example, Schema as a Service) provide resources by extending these common service entities. The figure below shows the SchaaS resource model.

Figure 49-2 Schema as a Service Resource Model

The following sections describe the resources that are supported by the Schema as a Service REST APIs and provide examples of supported operations. Schema as a Service uses the same Cloud, Service Family, and DB Zone resources as described in Section 49.2.1, "Database as a Service Resource Model".

. The following resource models are described:

- Schema Platform Template

- Schema Platform Instance

49.3.1.1 Schema Platform Template

The Schema Platform Template extends the Service Template resource. It represents the service template created for Schema Service creation. It can be a template for creating a schema service using profile based schemas (schema with data) or for creating a schemas service containing empty schemas.

It is permissible to accept the Service Template media type on an instance of Schema Platform Template. It is a preconfigured deployable service that realizes a Schema Platform Instance resource. Schema Platform Template has the media type application/oracle.com.cloud.common.SchemaPlatformTemplate and URI format /em/cloud/dbaas/schemaplatformtemplate/<template id>.

The following table describes the Schema Platform Template Data Model.

Table 49-30 Schema Platform Template Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the template.

1

description

String

A brief description given to the template.

0..1

created

Timestamp

Date and time, in ISO 8601 format, when the template was created/last modified.

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

zones

Collection <DbZone>

List of all zones configured for this template.

0..1

service_instances

Collection <SchemaPlatformInstance>

All service instances created based on this SchemaPlatformTemplate.

0..1

media_type

String

The media type of the service template that this type represents.

1

params

Object

List of parameters required to provision a Schema Platform Instance from this template.

1

deployment_params

List<Object>

Description of the parameters which are required while creating a service instance.

1

type

String

The type of the service template which is "dbaas" by default.

1

subtype

String

The sub type of the instance created based on this template.

It has a value "schema" in this case.

1

template_type

String

Type of this template based on how the template got created. It can have any of two values : "EMPTY_SCHEMAS" or "SCHEMAS_FROM_PROFILE".

1

max_number_of_schemas

Integer

Maximum number of schemas that can be created in a single instance request. This field exists only if template_type is "EMPTY_SCHEMAS".

0..1

workloads

List<Object>

List all the workloads defined for this template and list the attributes for each one of them.

0..1

canonicalLink

URI

Can be used to perform cloud interactions like GET and POST.

1

tablespace_list

List<Object>

List of tablespaces in schema.

1

49.3.1.2 Schema Platform Instance

The Schema Platform Instance extends the Service Instance resource. It is linked to Oracle Database Service target in Enterprise Manager Cloud Control. Schema Platform Instance has the media type application/oracle.com.cloud.common.SchemaPlatformInstance and URI /em/cloud/dbaas/schemaplatforminstance/byrequest/<request id>.

The following table describes the Schema Platform Instance data model:

Table 49-31 Schema Platform Instance Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the database service[POST]

1

destination_zone

Zone

The Zone to which the database service is deployed

[POST]

1

created

Timestamp

Date and time, in ISO 8601 format, when the template was created/last modified.

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

based_on

SchemaPlatformTemplate

The schema platform template on which this database service is published.

1

media_type

String

Indicates the additional media type that clients can use to perform a GET.

1

canonicalLink

URI

Can be used to perform cloud interactions like GET and POST.

1

type

String

Type of the database service. It has the default value "oracle_dbsvc".

1

connect_string

String

Connect String required to establish a connection to this database service.

0..1

status

String

Status of the database service.

1

db_version

String

Version of the database on which this service is running.

0..1

context_id

String

The request id of this database service.

1

49.3.2 Supported Operations for Schema as a Service Resources

The following table lists all the operations that are supported on the various Schema as a Service resources.

Table 49-32 Supported Operations

Resource

Operations (GET, POST, PUT, and DELETE)

POST

PUT

DELETE

Cloud

Yes

No

No

No

Service Family Type

Yes

No

No

No

DB Zone

Yes

Yes

No

No

Schema Platform Template [Service Template]

Yes

Yes

No

No

Schema Platform Instance [Service Instance]

Yes

Yes

No

Yes

49.3.3 Schema as a Service REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control with Cloud Application plug-in 12.1.0.6 and higher. The examples for GET on cloud, GET on dbaas family type and GET on Db Zone are covered in the Dbaas REST APIs section. The following examples are covered:

- Viewing Details of the Schema Platform Template Resource

- Creating a Schema Service

- Creating a Schema by Passing a Request on the DB Zone

- Creating a Schema by Passing a Request on the Schema Platform Template

- Viewing Details of the Schema Service Creation

- Deleting a Schema Service

- Life Cycle Operations of a Schema Service

- Exporting a Schema

- Restoring a Schema from Exported Schema Dumps

- Deleting the Exported Schema Dumps

- Changing Schema Passwords

49.3.3.1 Viewing Details of the Schema Platform Template Resource

A GET request on the Schema Platform Template resource provides the details of the resource.

Table 49-33 GET Request Configuration for Viewing Details of the Schema Platform Template Resource

Feature

Description

URI

/em/cloud/dbaas/schemaplatformtemplate/DE3F8D882F132F45E040F00AAA2330C5

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"max_number_of_schemas" : "" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformTemplate+json" ,
"resource_state" :     {
"state" : "READY"
} ,
"tablespace_list" :
[
"DUMPTBSP1" ,
"DUMPTBSP2"
] ,
"params" :     {
"schema" :
[
{
"username" : "" ,
"password" : "" ,
"original_name" : "SCHEMA_USER_1"
} ,
{
"username" : "" ,
"password" : "" ,
"original_name" : "SCHEMA_USER_2"
}
] ,
"service_name_prefix" : "" ,
"workload_name" : "" ,
"tablespaces" :
[
{
"old_tablespace_name" : "DUMPTBSP1" ,
"new_tablespace_name" : ""
} ,
{
"old_tablespace_name" : "DUMPTBSP2" ,
"new_tablespace_name" : ""
}
]
} ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatformtemplate/FADFFB8A434244F1E043797EF00A63AE" ,
"template_type" : "SCHEMAS_FROM_PROFILE" ,
"type" : "dbaas" ,
"zones" :     {
"total" : "1" ,
"media_type" : "application/oracle.com.cloud.common.DbZone+json" ,
"elements" :
[
{
"media_type" : "application/oracle.com.cloud.common.DbZone+json" ,
"context_id" : "2348838861AFF7BC02912C402605D49F" ,
"description" : "SSA Zone with SI Nodes" ,
"service_family_type" : "dbaas" ,
"name" : "SI SSAZONE" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/2348838861AFF7BC02912C402605D49F" ,
"type" : "self_service_zone" ,
"uri" : "/em/cloud/dbaas/zone/2348838861AFF7BC02912C402605D49F"
}
]
} ,
"uri" : "/em/cloud/dbaas/schemaplatformtemplate/FADFFB8A434244F1E043797EF00A63AE" ,
"service_instances" :     {
"total" : "1" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"elements" :
[
{
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"name" : "SIFSDifftbspc" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/1" ,
"target_type" : "oracle_dbsvc" ,
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/1"
}
]
} ,
"created" : "2014-06-02T19:38:04+0000" ,
"description" : "11204 SIDB FileSystem Schema Service Template - Import Schema - Different TableSpace for Each Schema" ,
"name" : "11204_SIFS_SCHEMATEMPLATE_IMPORTSCHEMA_DIFFTBSPC" ,
"subtype" : "schema" ,
"workloads" :
[
{
"description" : "LARGE" ,
"name" : "LARGE" ,
"attributes" :
[
{
"name" : "CPU" ,
"value" : "1" ,
"units" : "cores"
} ,
{
"name" : "Memory" ,
"value" : "1" ,
"units" : "GB"
} ,
{
"name" : "Storage" ,
"value" : "10" ,
"units" : "GB"
}
]
} ,
{
"description" : "MEDIUM" ,
"name" : "MEDIUM" ,
"attributes" :
[
{
"name" : "CPU" ,
"value" : "0.5" ,
"units" : "cores"
} ,
{
"name" : "Memory" ,
"value" : "0.5" ,
"units" : "GB"
} ,
{
"name" : "Storage" ,
"value" : "5" ,
"units" : "GB"
}
]
} ,
{
"description" : "SMALL" ,
"name" : "SMALL" ,
"attributes" :
[
{
"name" : "CPU" ,
"value" : "0.3" ,
"units" : "cores"
} ,
{
"name" : "Memory" ,
"value" : "0.3" ,
"units" : "GB"
} ,
{
"name" : "Storage" ,
"value" : "3" ,
"units" : "GB"
}
]
}
] ,
"schema_list" :
[
"SCHEMA_USER_1" ,
"SCHEMA_USER_2"
] ,
"deployment_params" :
[
{
"description" : "Master account schema. Not Required for the SCHEMAS_FROM_PROFILE Schema templates" ,
"name" : "masterAccount" ,
"require" : "false" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"description" : "Prefix for the service name instances" ,
"name" : "service_name_prefix" ,
"require" : "true" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"description" : "WorkLoad name to be associated with the request" ,
"name" : "workload_name" ,
"require" : "true" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"description" : "Common password for all schema users." ,
"name" : "common_password" ,
"require" : "false" ,
"type" : "STRING" ,
"sensitive" : "true"
} ,
{
"description" : "List of schema to be created" ,
"name" : "schema" ,
"require" : "true" ,
"defaultValue" :
[
{
"description" : "New schema name" ,
"name" : "username" ,
"require" : "true" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"description" : "Original schema name. Required only for the SCHEMAS_FROM_PROFILE Schema templates" ,
"name" : "original_name" ,
"require" : "false" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"description" : "Password for the schema. Required only if common_password is not specified." ,
"name" : "password" ,
"require" : "false" ,
"type" : "STRING" ,
"sensitive" : "true"
}
] ,
"type" : "LIST" ,
"sensitive" : "false"
} ,
{
"description" : "List of tablespaces remap. Required only for the SCHEMAS_FROM_PROFILE Schema templates." ,
"name" : "tablespaces" ,
"require" : "false" ,
"defaultValue" :
[
{
"description" : "New tablespace name." ,
"name" : "new_tablespace_name" ,
"require" : "true" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"description" : "Original tablespace name." ,
"name" : "old_tablespace_name" ,
"require" : "true" ,
"type" : "STRING" ,
"sensitive" : "false"
}
] ,
"type" : "LIST" ,
"sensitive" : "false"
}
]
}

49.3.3.2 Creating a Schema Service

This section describes how to create a database service using the Cloud resources. As Database service is also a service instance in the service family type dbaas, you need to identify the zone of the same family type in which to create the database service. There are two approaches to creating a database service:

- By passing a POST request on the DB Zone on which DB service is to be created

- By passing a POST request on the Schema Platform Template resource of which the database service is to be based on

Note the attributes in the submitted body for the POST. The pattern is the same for other service instance creations. Since the intention is clear, the zone attribute is not required while performing the POST operation to the Db Zone. Similarly, the based_on attribute is not needed when performing the POST operation to the SchemaPlatformTemplate.

The following operations are described in this section:

- Creating a Schema by Passing a Request on the DB Zone

- Creating a Schema by Passing a Request on the Schema Platform Template

49.3.3.2.1 Creating a Schema by Passing a Request on the DB Zone

The configuration for performing POST to DB Zone is as follows:

Table 49-34 POST Request Configuration for Creating a Schema by Passing a Request on the DB Zone

Feature

Description

URI

/em/cloud/dbaas/zone/82CF1C28FA20A183C99D138FF8065F19

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body for a profile based schema template for multiple schemas

{
"name" : "TestService0" ,
"start_date": "2013-08-02T14:20:00ZAsia/Calcutta",
"end_date": "2013-08-02T17:20:00ZAsia/Calcutta",
"params" :     {
"schema" :
[
{
"username" : "Schema_User11_01" ,
"password" : "Schema_User1" ,
"tablespace_name" : "tbsp01"
} ,
{
"username" : "Schema_User11_02" ,
"password" : "Schema_User1" ,
"tablespace_name" : "tbsp02"
} ,
{
"username" : "Schema_User11_03" ,
"password" : "Schema_User1" ,
"tablespace_name" : "tbsp03"
} ,
{
"username" : "Schema_User11_04" ,
"password" : "Schema_User1" ,
"tablespace_name" : "tbsp04"
}
] ,
"workload_name" : "default_workload" ,
"service_name" : "TestService0" ,
"masterAccount" : "Schema_User11_01"
} ,
"based_on" : "/em/cloud/dbaas/schemaplatformtemplate/DE3F8D882F132F45E040F00AAA2330C5"
}

Body for a profile based schema template for a single schema

{
"name" : "TestService0" ,
"start_date": "2013-08-02T14:20:00ZAsia/Calcutta",
"end_date": "2013-08-02T17:20:00ZAsia/Calcutta",
"params" :     {
"schema" :
[
{
"username" : "Schema_User11_01" ,
"password" : "Schema_User1" ,
"tablespace_name" : "tbsp01"
} ,
"workload_name" : "default_workload" ,
"service_name" : "TestService0" ,
"masterAccount" : "Schema_User11_01"
} ,
"based_on" : "/em/cloud/dbaas/schemaplatformtemplate/DE3F8D882F132F45E040F00AAA2330C5"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/22" ,
"name" : "TestRequest" ,
"resource_state" :     {
"state" : "INITIATED"
"messages" :
[
{
"date" : "2014-11-25T09:52:49+0000" ,
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/22" ,
"text" : "Delete Request ID is : 22"
}
]
} ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/22" ,
"status" : "SCHEDULED"
}

49.3.3.2.2 Creating a Schema by Passing a Request on the Schema Platform Template

The configurations for performing POST to the Schema Platform Template is as follows:

Table 49-35 POST Request Configuration for Creating a Schema by Passing a Request on the Schema Platform Template

Feature

Description

URI

/em/cloud/dbaas/schemaplatformtemplate/CC3BBB665A6BC6FFE040F00AEF252456

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body

{
"based_on" : "/em/cloud/dbaas/schemaplatformtemplate/FADFFB8A434244F1E043797EF00A63AE" ,
"name" : "Test Service" ,
"params" :     {
"schema" :
[
{
"username" : "Schaas_API_User_1" ,
"original_name" : "SCHEMA_USER_1" ,
"password" : "sunset1"
} ,
{
"username" : "Schaas_API_User_2" ,
"original_name" : "SCHEMA_USER_2" ,
"password" : "sunset1"
}
] ,
"workload_name" : "SMALL" ,
"service_name" : "TestService" ,
"masterAccount" : "Schema_User11_01",
"tablespaces" :
[
{
"old_tablespace_name" : "DUMPTBSP2" ,
"new_tablespace_name" : "tablespace2"
} ,
{
"old_tablespace_name" : "DUMPTBSP1" ,
"new_tablespace_name" : "tablespace1"
}
]
}
"zone":"/em/cloud/dbaas/zone/9A71CBEABCA367D0D425697DC39B3AF9
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/23" ,
"name" : "TestRequest" ,
"resource_state" :     {
"state" : "INITIATED"
} ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/23" ,
"status" : "SCHEDULED"
}

The response shown above is the same as the previous version. If the zone is not specified, then it is not possible for the web service to determine where the database service should be deployed.

49.3.3.3 Viewing Details of the Schema Service Creation

After the database service creation has been performed by performing the POST operation, you can perform the GET operation to get the resource identified by the return URI to keep track of the status.

Table 49-36 GET Request Configuration for Viewing Details of the Schema Service Creation

Feature

Description

URI

/em/cloud/dbaas/schemaplatforminstance/byrequest/22

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "/em/cloud/dbaas/schemaplatforminstance/byrequest/22",
"name": "TestRequest_CREATE_55_42",
"description": "Create Service for test.",
"resource_state":
{
"state": "CREATING"
},
"context_id": "22",
"media_type": "application/oracle.com.cloud.common.SchemaPlatformInstance+json",
"status": "IN_PROGRESS",
"created": "2013-06-07 23:09:04" ,
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/22"
}

Note that the resource_state attribute shows CREATING to indicate that the database service is being created. After the database service is created, the GET operation returns the database service resource with READY state, as shown below:

{
"uri": "/em/cloud/dbaas/schemaplatforminstance/byrequest/22",
"name": "Service_1_35E576F22E97E",
"resource_state": {
"state": "READY"
"messages" :
[
{
"date" : "2014-11-25T09:52:49+0000" ,
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/22" ,
"text" : "Delete Request ID is : 22"
}
]
},
"context_id": "22",
"media_type": "application/oracle.com.cloud.common.SchemaPlatformInstance+json",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/22",
"status": "RUNNING",
"created": "2013-06-10 02:45:32",
"based_on": "/em/cloud/dbaas/schemaplatformtemplate/DECA1100F797EF10E040F00AFBB123E7",
"target_type": "oracle_dbsvc",
"connect_string": "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=abc.mycompany.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=Service_1_35E576F22E97E.mycompany.com)))",
"destination_zone": "/em/cloud/dbaas/zone/34C1FC23A7503E1CC9C490C9670635F9",
"db_version": "11.2.0.3.0"
}

49.3.3.4 Deleting a Schema Service

The DELETE request can be issued on the URI of the resource to delete a database service. The configuration for the DELETE request is as follows:

Table 49-37 DELETE Request Configuration for Deleting a Schema Service

Feature

Description

URI

/em/cloud/dbaas/schemaplatforminstance/byrequest/22

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/22" ,
"name" : "Service_1_35E576F22E97E" ,
"resource_state" :     {
"state" : "DESTROYING" ,
"messages" :
[
{
"text" : "Submit 'DELETE' operation on 'application/oracle.com.cloud.common.SchemaPlatformInstance+json' 'Service_1_35E576F22E97E'.  The process has job id '41'" ,
"date" : "2013-06-07T23:16:20+0000"
}
]
} ,
"context_id" : "22" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance +json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/22" ,
"type" : "oracle_dbsvc"
}

After some time, a GET request on the database service URI results in the following interaction:

Table 49-38 GET Request Configuration for Viewing the Status of the Schema Service

Feature

Description

URI

/em/cloud/dbaas/schemaplatforminstance/byrequest/22

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "/em/cloud/dbaas/schemaplatforminstance/byrequest/22",
"name": "Service_1_35E576F22E97E",
"resource_state": {
"state": "DESTROYING"
},
"context_id": "2",
"media_type": "application/oracle.com.cloud.common.SchemaPlatformInstance+json",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/2",
"status": "RUNNING",
"created": "2013-06-10 02:45:32",
"based_on": "/em/cloud/dbaas/schemaplatformtemplate/DECA1100F797EF10E040F00AFBB123E7",
"type": "oracle_dbsvc",
"connect_string": "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1.mycompany.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=Service_1_35E576F22E97E.mycompany.com)))",
"destination_zone": "/em/cloud/dbaas/zone/34C1FC23A7503E1CC9C490C9670635F9",
"db_version": "11.2.0.3.0"
}

The status of the database service shows DELETED after the schema service is deleted.

49.3.3.5 Life Cycle Operations of a Schema Service

The POST request can be issued on the URI of the resource to perform an operation on a schema service.

The following life cycle operations can be performed using the POST request:

- Exporting a Schema

- Restoring a Schema from Exported Schema Dumps

- Deleting the Exported Schema Dumps

- Changing Schema Passwords

49.3.3.5.1 Exporting a Schema

For exporting schema, the user can optionally provide the date at which the export should be taken. The date and time should be in the YYYY-MM-DDTHH:MM:SSZFullTimeZonename format.

For example to schedule in PST time user should enter 2013-08-27T12:34:45ZAmerica/Los_Angeles.

However, the time zone is optional. If you do not want to provide the time zone, then enter: 2013-08-27T12:34:45Z.

The configurations for the POST on a SchemaPlatformInstance is described below:

Table 49-39 POST Request Configuration for Exporting a Schema

Feature

Description

URI

/em/cloud/dbaas/schemaplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.SchemaPlatformInstance +json

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body

{
"operation" : "EXPORT",
"profile_name" : "test_API_export",
"profile_desc" : "testing export option from APIs",
"export_schedule" : "2013-07-31T02:10:45ZAsia/Calcutta   "
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"name" : "Service_8E958EC718B11" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:34:43+0000" ,
"text" : "Successfully submitted EXPORT operation on schema instance. Request id - 130." ,
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/130"
}
]
} ,
"context_id" : "123" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"target_type" : "oracle_dbsvc"
}

After the export operation is completed, a GET operation on schema service yields below output

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"name" : "Service_8E958EC718B11" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "123" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 23:49:30" ,
"based_on" : "/em/cloud/dbaas/schemaplatformtemplate/E4D9626BC252F517E040F20A605152CD" ,
"target_type" : "oracle_dbsvc" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=Service_8E958EC718B11.us.example.com)))" ,
"destination_zone" : "/em/cloud/dbaas/zone/675B859C36772FB7856771B1D57F79F8" ,
"schema_list" :
[
{
"service_name_prefix" : "" ,
"workload_name" : "" ,
"schema" :
[
{
"username" : "" ,
"original_name" : "schema200" ,
"password" : ""
}
]
}
] ,
"db_version" : "11.2.0.2.0" ,
"export_dump_list" :
[
{
"name" : "test_API_export" ,
"description" : "testing export option from APIs" ,
"URN" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:E4E9E7EE230BF965E040F20A60517256:0.1" ,
"status" : "Ready"
}
]
}

49.3.3.5.2 Restoring a Schema from Exported Schema Dumps

The restore schema from dump activity is based on the available export dumps. Refer to export_dump_list section in the output of the GET request to view the URN of the dump.

The configurations for the POST on a SchemaPlatformInstance are described below:

Table 49-40 POST Request Configuration for Restoring a Schema from the Exported Schema Dumps

Feature

Description

URI

/em/cloud/dbaas/schemaplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.SchemaPlatformInstance +json

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body

{
"operation" : "IMPORT",
"profile_urn" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:DECB2AAA09CCD711E040F20A60514F92:0.1"
}

Request method

POST

A sample of the response from the above interaction is shown below.

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"name" : "Service_8E958EC718B11" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:34:43+0000" ,
"text" : "Successfully submitted IMPORT operation on schema instance. Request id - 132." ,
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/132"
}
]
} ,
"context_id" : "123" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"target_type" : "oracle_dbsvc"
}

49.3.3.5.3 Deleting the Exported Schema Dumps

Deleting the export dump depends on the available export dumps. Refer to export_dump_list section in the output of the GET request to view the URN of the dump.

The configuration for the POST on a SchemaPlatformInstance is as follows:

Table 49-41 POST Request Configuration for Deleting the Exported Schema Dumps

Feature

Description

URI

/em/cloud/dbaas/schemaplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.SchemaPlatformInstance +json

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body

{
"operation" : "DELETE_EXPORT",
"profile_urn" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:DECB2AAA09CCD711E040F20A60514F92:0.1"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"name" : "Service_8E958EC718B11" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:34:43+0000" ,
"text" : "Successfully submitted DELETE_EXPORT operation on schema instance. Request id - 135." ,
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/135"
}
]
} ,
"context_id" : "123" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"target_type" : "oracle_dbsvc"
}

49.3.3.5.4 Changing Schema Passwords

The configuration for the POST on a SchemaPlatformInstance is as follows:

Table 49-42 POST Request Configuration for Changing the Schema Passwords

Feature

Description

URI

/em/cloud/dbaas/schemaplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.SchemaPlatformInstance +json

Accept: application/oracle.com.cloud.common.SchemaPlatformInstance+json

Body

{
"operation" : "CHANGE_PWD",
"schema_name" : "schema1",
"new_password" : "welcome"
}

Request method

POST

A sample of the response from the above interaction is shown below.

{
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"name" : "Service_8E958EC718B11" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:34:43+0000" ,
"text" : "Successfully submitted CHANGE_PWD operation on schema instance. Request id - 136." ,
"uri" : "/em/cloud/dbaas/schemaplatforminstance/byrequest/136"
}
]
} ,
"context_id" : "123" ,
"media_type" : "application/oracle.com.cloud.common.SchemaPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/schemaplatforminstance/byrequest/123" ,
"target_type" : "oracle_dbsvc"
}

49.4 Pluggable Database as a Service

This section describes the resource model for Pluggable Database as a Service (PdbaaS) REST API and the REST request/response interactions.

Note:
PdbaaS REST APIs are only supported by the Oracle Cloud Application plug-in version 12.1.0.7.0 and above.

- Pluggable Database as a Service Resource Model

- Supported Operations for Pluggable Database Resources

- Pluggable Database as a Service REST API Examples

49.4.1 Pluggable Database as a Service Resource Model

Cloud resources are organized by common service entities, and specific services (for example, Pluggable Database as a Service) provide resources by extending these common service entities. The figure below shows the PdbaaS resource model.

Figure 49-3 Pluggable Database as a Service Resource Model

The following sections describe the resources that are supported by the Pluggable Database as a Service REST APIs and provide examples of supported operations. Pluggable Database as a Service uses the same Cloud, Service Family, and DB Zone resources as described in Section 49.2.1, "Database as a Service Resource Model".

The following resource models are described in this section:

- Pluggable DB Platform Template

- Pluggable DB Platform Instance

49.4.1.1 Pluggable DB Platform Template

The Pluggable Db Platform Template extends the Service Template resource. It represents the service template created for Pluggable Database creation. It can be a template for creating a pluggable database using profile based pluggable database (pdb with data) or for creating an empty pluggable database. It is permissible to accept the ServiceTemplate media type on an instance of Pluggable Db Platform Template. It is a preconfigured deployable service that realizes a Pluggable Db Platform Instance resource. Pluggable Db Platform Template has the media type application/oracle.com.cloud.common.PluggableDbPlatformTemplate+json and URI format /em/cloud/dbaas/pluggabledbplatformtemplate/<template id>.

The following table describes the Schema Platform Template Data Model.

Table 49-43 Pluggable DB Platform Template Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the template.

1

description

String

A brief description given to the template.

0..1

created

Timestamp

Date and time, in ISO 8601 format, when the template was created/last modified.

1

zones

Collection <DbZone>

List of all zones configured for this template.

0..1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

service_instances

Collection <SchemaPlatformInstance>

All service instances created based on this SchemaPlatformTemplate.

0..1

media_type

String

The media type of the service template that this type represents.

1

params

Object

List of parameters required to provision a Schema Platform Instance from this template.

1

deployment_params

List<Object>

Description of the parameters which are required while creating a service instance.

1

type

String

The type of the service template which is "dbaas" by default.

1

subtype

String

The sub type of the instance created based on this template.

It has a value "schema" in this case.

1

template_type

String

Type of this template based on how the template got created. It can have any of two values : "EMPTY_SCHEMAS" or "SCHEMAS_FROM_PROFILE".

1

workloads

List<Object>

List all the workloads defined for this template and list the attributes for each one of them.

0..1

canonicalLink

URI

Can be used to perform cloud interactions like GET and POST.

1

number_of_tablespaces

String

Number of tablespaces.

1

49.4.1.2 Pluggable DB Platform Instance

The Pluggable Db Platform Instance extends the Service Instance resource. It is linked to Pluggable Database target in Enterprise Manager Cloud Control. Pluggable Db Platform Instance has the media type application/oracle.com.cloud.common.PluggableDbPlatformInstance+json and URI format /em/cloud/dbaas/pluggabledbplatforminstance/byrequest/<request id>.

The following table describes the Schema Platform Instance Data Model:

Table 49-44 Pluggable DB Platform Instance Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given given to the pluggable database

1

destination_zone

Zone

The Zone to which the pluggable database is deployed

1

media_type

String

Indicates the additional media type that clients can use to perform a GET.

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

based_on

PluggableDbPlatformTemplate

The pluggable db platform template on which this database service is published.

1

connect_string

String

Connect String required to establish a connection to this database service.

0..1

created

Timestamp

Date and time, in ISO 8601 format, when the template was created/last modified.

1

target_type

String

Target type of this service instance. It has the default value oracle_pdb

1

status

String

Status of the pluggable database.

1

db_version

String

Version of the database on which pluggable db is running.

0..1

context_id

String

The request id of this pluggable database.

1

canonicalLink

URI

Can be used to perform cloud interactions like GET and DELETE.

1

49.4.2 Supported Operations for Pluggable Database Resources

The following table lists all the operations that are supported on the various Pluggable Database as Service resources.

Table 49-45 Supported Operations

Resource

GET

POST

PUT

DELETE

Cloud

Yes

No

No

No

Service Family Type

Yes

No

No

No

DB Zone

Yes

Yes

No

No

PluggableDb Platform Template [Service Template]

Yes

Yes

No

No

PluggableDb Platform Instance [Service Instance]

Yes

Yes

No

Yes

49.4.3 Pluggable Database as a Service REST API Examples

The following sections provide examples of interaction with Enterprise Manager Cloud Control with Cloud Application plug-in 12.1.0.7 and higher. The examples for GET on cloud, GET on dbaas family type and GET on Db Zone are covered in the Dbaas REST APIs section. The following examples are covered:

- Viewing Details of the Pluggable Db Platform Template Resource

- Creating a Pluggable Database

- Creating a Pluggable Database by Passing a Request on the DB Zone

- Creating a Pluggable Database by Passing a Request on the Pluggable DB Platform Template

- Viewing Details of the Pluggable Database Creation

- Deleting a Pluggable Database Instance

- Lifecycle operations on a Pluggable Database Instance

- Shutting Down a Pluggable Database

- Starting up a Pluggable Database

- Scheduling a Backup for a Pluggable Database

- Restoring a Pluggable Database from a Backup

49.4.3.1 Viewing Details of the Pluggable Db Platform Template Resource

A GET request on a Pluggable Db Platform Template provides the details about a Pluggable DB service template.

Table 49-46 GET Request Configuration for Viewing Details of the Pluggable DB Platform Template Resource

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatformtemplate/E32F474628FCCE5AE040E50ACA84603A

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "/em/cloud/dbaas/pluggabledbplatformtemplate/E32F474628FCCE5AE040E50ACA84603A",
"name": "Sample PDB template",
"description": "Sample PDB template",
"resource_state": {
"state": "READY"
},
"media_type": "application/oracle.com.cloud.common.PluggableDbPlatformTemplate+json",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatformtemplate/E32F474628FCCE5AE040E50ACA84603A",
"type": "dbaas",
"created": "2013-08-05T07:34:10+0000",
"zones": {
"media_type": "application/oracle.com.cloud.common.DbZone+json",
"total": "1",
"elements": [
{
"uri": "/em/cloud/dbaas/zone/76663B316DCB26E6836822224C7881E3",
"name": "Ssa_zone1",
"description": "Ssa_zone1",
"context_id": "76663B316DCB26E6836822224C7881E3",
"media_type": "application/oracle.com.cloud.common.DbZone+json",
"service_family_type": "dbaas",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/76663B316DCB26E6836822224C7881E3",
"type": "self_service_zone"
"target_nodes_for_placement":
[              "xyz.mycompany.com"            ]
}
]
},
"service_instances": {
"media_type": "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json",
"total": "1",
"elements": [
{
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"name" : "database_MYPDB_000" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7" ,
"target_type" : "oracle_pdb" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7"
}
]
},
"number_of_tablespaces" : "1" ,
"deployment_params": [
{
"description" : "Name of the additional service created as part of the pdb service request" ,
"name" : "service_name" ,
"require" : "true" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"name": "workload_name",
"description": "WorkLoad name to be associated with the request",
"type": "STRING",
"require": "true",
"sensitive": "false"
},
{
"name": "username",
"description": "Pluggable database admin username",
"type": "STRING",
"require": "true",
"sensitive": "false"
},
{
"name": "password",
"description": "Pluggable database admin user password",
"type": "STRING",
"require": "true",
"sensitive": "true"
},
{
"name" : "target_nodes_for_placement" ,
"description" : "List of available Container Database(s) to be chosen for creating the Pluggable database instance." ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"description" : "Name of Pluggable database" ,
"name" : "pdb_name" ,
"require" : "true" ,
"type" : "STRING" ,
"sensitive" : "false"
} ,
{
"description" : "List of tablespace names. Required only for EMPTY_PDB templates" ,
"name" : "tablespaces" ,
"require" : "false" ,
"type" : "LIST" ,
"sensitive" : "false"
},
{
"name": "target_name",
"description": "Target cdb name to be chosen for installing the pdb",
"type": "STRING",
"require": "false",
"sensitive": "true"
},
],
"subtype": "pdb",
"template_type": "PDB_FROM_PROFILE",
"workloads": [
{
"name": "wl1",
"description": "null",
"attributes": [
{
"name": "CPU",
"value": "1",
"units": "cores"
},
{
"name": "Memory",
"value": "1",
"units": "GB"
},
{
"name": "Storage",
"value": "1",
"units": "GB"
}
]
}
],
"params": {
"workload_name": "",
"placement_option" : "SELECT_TARGET_FROM_REQUEST" ,
"username": "",
"password": "",
"pdb_name" : "" ,
"service_name" : "" ,
"tablespaces" :
[      ]
}
}

49.4.3.2 Creating a Pluggable Database

This section describes how to create a pluggable database using the Cloud resources.

As Pluggable Database is also a service instance in the service family type "dbaas", you need to identify the zone of the same family type in which to create the pluggable database. There are two approaches to create a pluggable database:

- Creating a Pluggable Database by Passing a Request on the DB Zone

- Creating a Pluggable Database by Passing a Request on the Pluggable DB Platform Template

Note the attributes in the submitted body for the POST. The pattern is the same for other service instance creations. Because the intention is clear, the "zone" attribute is not required while POSTing to the Db Zone. Similarly, the "based_on" attribute is not needed when POSTing to the PluggableDbPlatformTemplate.

49.4.3.2.1 Creating a Pluggable Database by Passing a Request on the DB Zone

The following shows the configuration for POSTing to Db Zone:

Table 49-47 POST Request Configuration for Creating a Pluggable Database by Passing a Request on the DB Zone

Feature

Description

URI

/em/cloud/dbaas/zone/82CF1C28FA20A183C99D138FF8065F19

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

{
"based_on" : "/em/cloud/dbaas/pluggabledbplatformtemplate/FADF7229EB960330E043E176F00ADE61" ,
"name" : "Test Service" ,
"start_date": "2013-08-02T14:20:00ZAsia/Calcutta",
"end_date": "2013-08-02T17:20:00ZAsia/Calcutta",
"params" :     {
"username" : "Pdbaas_API_User" ,
"pdb_name" : "pdb_lrgemg880" ,
"workload_name" : "Small" ,
"service_name" : "TestService" ,
"password" : "welcome1" ,
"tablespaces" :
[
"tbsp1"
]
"target_name " : "test_cdb"
}
}

Request method

POST

A sample of the response received is shown below.

{
"uri": "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/31",
"name": "Test Service",
"resource_state": {
"state": "INITIATED"
"messages" :
[
{
"date" : "2014-11-25T09:52:49+0000" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/22",
"text" : "Delete Request ID is : 22"
}
]
},
"media_type": "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json",
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/31",
"status": "SCHEDULED"
}

49.4.3.2.2 Creating a Pluggable Database by Passing a Request on the Pluggable DB Platform Template

The following describes the configurations for POSTing to the PluggableDbPlatformTemplate:

Table 49-48 POST Request Configuration for Creating a Pluggable Database by Passing a Request on the Pluggable DB Platform Template

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatformtemplate/CC3BBB665A6BC6FFE040F00AEF252456

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

{
"zone": "/em/cloud/dbaas/zone/E125CDA8B810BB2F8ECE9867AFC25903",
"name" : "Request for an Empty PDB BA",
"end_date": "2015-11-20T17:20:00ZAsia/Calcutta",
"params" :     {
"username" : "TestUser",
"password" : "welcome1",
"workload_name": "SmallPdb",
"pdb_name" : "BoAPDB",
"service_name" : "BoAPDB_Service" ,
"tablespaces" : [ "pdb_tbs1", "pdb_tbs2" ] },
"instance_target_properties": [
{ "name": "Department", "value": "Development" },
{ "name": "Comment", "value": "BofA testing" }
]
}

Request method

POST

Note:
The target_name property is a mandatory property if the custom placement option (SELECT_TARGET_OPTION) is set to "SELECT_TARGET_FROM_REQUEST" in the PDB service template. Also, the CDB name provided should be available in the chosen zone.

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/122" ,
"name" : "Request for an Empty PDB BofA" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/123" ,
"text" : "Delete Request ID is : 123" ,
"date" : "2015-11-19T10:41:38+0000"
}
]
} ,
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/122" ,
"status" : "SCHEDULED"
}

49.4.3.3 Viewing Details of the Pluggable Database Creation

A GET request on a Pluggable DB Platform Instance provides the status and other information about the resource.

Table 49-49 GET Request Configuration for Viewing Details of the Pluggable Database Creation

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/31

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/31",
"name": "Test Service_CREATE_11_53",
"description": "Create Database for \"Test Service\".",
"resource_state":
{
"state": "CREATING"
},
"context_id": "31",
"media_type": "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json",
"status": "IN_PROGRESS",
"created": "2013-06-07 23:09:04" ,
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/31"
}

Note that the resource_state attribute shows CREATING state which indicates that the pluggable database is being created. After the pluggable database is created, the GET operation returns the pluggable database resource with READY state, as shown below:

{
"destination_zone" : "/em/cloud/dbaas/zone/9A71CBEABCA367D0D425697DC39B3AF9" ,
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"db_version" : "12.1.0.1.0" ,
"resource_state" :     {
"state" : "READY"
"messages" :
[
{
"date" : "2014-11-25T09:52:49+0000" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/22",
"text" : "Delete Request ID is : 22"
}
]
} ,
"status" : "RUNNING" ,
"based_on" : "/em/cloud/dbaas/pluggabledbplatformtemplate/E33799E249513428E040F50A994210F5" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/31" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=MYPDB_000)(INSTANCE_NAME=t105kfv)(UR=A)(SERVER=DEDICATED)))" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/31" ,
"context_id" : "31" ,
"created" : "2013-08-05 17:30:30" ,
"name" : "database_MYPDB_000" ,
"target_type" : "oracle_pdb"
}

49.4.3.4 Deleting a Pluggable Database Instance

The DELETE request on the URI of the resource can be issued to delete a pluggable database. For example, the following DELETE request is issued:

Table 49-50 DELETE Request Configuration for Deleting a Pluggable Database Instance

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"context_id" : "7" ,
"resource_state" :     {
"state" : "DESTROYING" ,
"messages" :
[
{
"text" : "Submit 'DELETE' operation on 'application/oracle.com.cloud.common.PluggableDbPlatformInstance+json' 'database_MYPDB_000'.  The process has job id '24'" ,
"date" : "2013-08-05T17:35:56+0000"
}
]
} ,
"name" : "database_MYPDB_000" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7" ,
"target_type" : "oracle_pdb" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7"
}

After some time, the GET request on the database service URI will result in the following interaction:

Table 49-51 GET Request Configuration for Viewing Status of the DELETE Request

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/22

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"destination_zone" : "/em/cloud/dbaas/zone/9A71CBEABCA367D0D425697DC39B3AF9" ,
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"db_version" : "12.1.0.1.0" ,
"resource_state" :     {
"state" : "READY"
} ,
"status" : "DESTROYING" ,
"based_on" : "/em/cloud/dbaas/pluggabledbplatformtemplate/E33799E249513428E040F50A994210F5" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=MYPDB_000)(INSTANCE_NAME=t105kfv)(UR=A)(SERVER=DEDICATED)))" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7" ,
"context_id" : "7" ,
"created" : "2013-08-05 17:30:30" ,
"name" : "database_MYPDB_000" ,
"target_type" : "oracle_pdb"
}

Note that the status of the pluggable database will be "DELETED" once the pluggable database instance is deleted.

49.4.3.5 Lifecycle operations on a Pluggable Database Instance

The POST request on the URI of the resource can be issued to perform an operation on a pluggable database.

You can perform the following tasks using POST request:

- Shutting Down a Pluggable Database

- Starting up a Pluggable Database

- Scheduling a Backup for a Pluggable Database

- Restoring a Pluggable Database from a Backup

49.4.3.5.1 Shutting Down a Pluggable Database

The following describes the configurations for the POST on a PluggableDbPlatformInstance:

Table 49-52 POST Request Configuration for Shutting Down a Pluggable Database

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

{
"operation" : "SHUTDOWN"
}

Request method

POST

A sample of the response received is from the above interaction is shown below.

{
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"name" : "database_PDBSERVICE_000" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T06:56:25+0000" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/124" ,
"text" : "Successfully submitted SHUTDOWN operation on service instance. Request id - 124."
}
]
} ,
"context_id" : "81" ,
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 04:19:14" ,
"based_on" : "/em/cloud/dbaas/pluggabledbplatformtemplate/E49AA1BAC2DBA0ECE040F20A60517942" ,
"target_type" : "oracle_pdb" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= host1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PDB_000)(INSTANCE_NAME=tbugt)(UR=A)(SERVER=DEDICATED)))" ,
"destination_zone" : "/em/cloud/dbaas/zone/0129A72DB32D4199B59ABFA64085EAB3" ,
"db_version" : "12.1.0.1.0"
}

49.4.3.5.2 Starting up a Pluggable Database

Table 49-53 POST Request Configuration for Shutting Down a Pluggable Database

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

{
"operation" : "STARTUP"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"name" : "database_PDBSERVICE_000" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T06:58:58+0000" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/125" ,
"text" : "Successfully submitted STARTUP operation on service instance. Request id - 125."
}
]
} ,
"context_id" : "81" ,
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"status" : "STOPPED" ,
"created" : "2013-08-26 04:19:14" ,
"based_on" : "/em/cloud/dbaas/pluggabledbplatformtemplate/E49AA1BAC2DBA0ECE040F20A60517942" ,
"target_type" : "oracle_pdb" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= host1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PDB_000)(INSTANCE_NAME=tbugt)(UR=A)(SERVER=DEDICATED)))" ,
"destination_zone" : "/em/cloud/dbaas/zone/0129A72DB32D4199B59ABFA64085EAB3" ,
"db_version" : "12.1.0.1.0"
}

49.4.3.5.3 Scheduling a Backup for a Pluggable Database

The following describes the configurations for the POST on a PluggableDbPlatformInstance:

For scheduling backup user has to provide the time at which backups needs to scheduled. This should in format of YYYY-MM-DDTHH:MM:SSZFullTimeZonename.

For example to schedule in PST time user should give 2013-08-27T12:34:45ZAmerica/Los_Angeles

However timezone part is optional. If you do not want to provide it, you can do as follows: 2013-08-27T12:34:45Z

Table 49-54 POST Request Configuration for Scheduling a Backup for a Pluggable Database

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

{
"operation" : "BACKUP",
"backup_schedule" : "2013-08-27T12:34:45ZAsia/Calcutta"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"name" : "database_PDBSERVICE_000" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:01:15+0000" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/126" ,
"text" : "Successfully submitted BACKUP operation on service instance. Request id - 126."
}
]
} ,
"context_id" : "81" ,
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 04:19:14" ,
"based_on" : "/em/cloud/dbaas/pluggabledbplatformtemplate/E49AA1BAC2DBA0ECE040F20A60517942" ,
"target_type" : "oracle_pdb" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PDB_000)(INSTANCE_NAME=tbugt)(UR=A)(SERVER=DEDICATED)))" ,
"destination_zone" : "/em/cloud/dbaas/zone/0129A72DB32D4199B59ABFA64085EAB3" ,
"db_version" : "12.1.0.1.0"
"RMAN_backup_list" :
[
{
"Key" : "1" ,
"Tag" : "ORA$OEM_LEVEL_0" ,
"Completed Time" : "Aug 27, 2013 12:24:02 AM" ,
"Contents" : "SPFILE,CONTROLFILE" ,
"Status" : "AVAILABLE"
}
]
}

49.4.3.5.4 Restoring a Pluggable Database from a Backup

The following describes the configurations for the POST on a PluggableDbPlatformInstance:

For restorting from backup ,the user has to provide the point-in-time to which database is to be restored. This should in format of YYYY-MM-DDTHH:MM:SSZFullTimeZonename.

For example to schedule in PST time user should give 2013-08-27T12:34:45ZAmerica/Los_Angeles

However timezone part is optional. If you do not want to provide it, you can do as follows: 2013-08-27T12:34:45Z

The restore time is based on backups available, please refer to RMAN_backup_list section in the output of GET request

Table 49-55 POST Request Configuration for Restoring a Pluggable Database from a Backup

Feature

Description

URI

/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/7

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Accept: application/oracle.com.cloud.common.PluggableDbPlatformInstance+json

Body

{
"operation" : "RESTORE",
"restore_date" : "2013-08-27T12:34:45Z"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"name" : "database_PDBSERVICE_000" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2013-08-27T07:01:15+0000" ,
"uri" : "/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/146" ,
"text" : "Successfully submitted RESTORE operation on service instance. Request id - 146."
}
]
} ,
"context_id" : "81" ,
"media_type" : "application/oracle.com.cloud.common.PluggableDbPlatformInstance+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/pluggabledbplatforminstance/byrequest/81" ,
"status" : "RUNNING" ,
"created" : "2013-08-26 04:20:14" ,
"based_on" : "/em/cloud/dbaas/pluggabledbplatformtemplate/E49AA1BAC2DBA0ECE040F20A60517942" ,
"target_type" : "oracle_pdb" ,
"connect_string" : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PDB_000)(INSTANCE_NAME=tbugt)(UR=A)(SERVER=DEDICATED)))" ,
"destination_zone" : "/em/cloud/dbaas/zone/0129A72DB32D4199B59ABFA64085EAB3" ,
"db_version" : "12.1.0.1.0"
}

50 DBaaS REST APIs and EM CLI Verbs Based Use Cases

This chapter describes the procedure for different DBaaS use cases supported in this release. It contains the following sections:

- Getting Started with DBaaS With REST APIs and EM CLI Verbs

- Creating Databases Using Database Template With REST APIs and EM CLI Verbs

- Creating Empty Schemas and Schemas Based on Profile With REST APIs and EM CLI Verbs

- Creating Empty PDBs and PDBs Based on Profile With REST APIs and EM CLI Verbs

- Migrating/Transferring Data from One Database to Another

- Creating Databases Using Snap Clone With REST APIs and EM CLI Verbs

- Creating Full Database Clones Using RMAN With REST APIs and EM CLI Verbs

- Configuring Custom Database Placement Option Using REST APIs

- Service Catalog of Database as a Service

50.1 Getting Started with DBaaS With REST APIs and EM CLI Verbs

The following figure provides an overview of the different flavors of Enterprise Manager DBaaS.

Figure 50-1 DBaaS Use Cases

This table lists the DBaaS use cases that are supported in this release and lists the different methods (EMCLI, and REST API) that can be used to run these use cases.

Table 50-1 DBaaS Use Cases

Service Type

Service Offering

See

New

Creating databases using a database template.

Section 50.2, "Creating Databases Using Database Template With REST APIs and EM CLI Verbs"

New

Schema:

- Creating an empty schema

- Creating a schema based on profile

Section 50.3, "Creating Empty Schemas and Schemas Based on Profile With REST APIs and EM CLI Verbs"

New

Pluggable Database:

- Creating an empty pluggable database

- Creating a pluggable database based on profile

Section 50.4, "Creating Empty PDBs and PDBs Based on Profile With REST APIs and EM CLI Verbs"

Migrating or transferring data from one database to another.

Section 50.5, "Migrating/Transferring Data from One Database to Another"

Snap Clone

- Software Solution:

- Sun ZFS

- Clone DB

- Hardware Solution:

- ZFS file system

- NetApp

- EMC

Section 50.6, "Creating Databases Using Snap Clone With REST APIs and EM CLI Verbs"

Clone

Full Clone:

- Cloning databases using RMAN backup

- Cloning databases using RMAN duplicate

Section 50.7, "Creating Full Database Clones Using RMAN With REST APIs and EM CLI Verbs"

New DBaaS setup

Multi-Datacenter DBaaS setup

Section 50.9.1, "Multi-Datacenter DBaaS Setup"

50.2 Creating Databases Using Database Template With REST APIs and EM CLI Verbs

The DBCA template supports both structure plus data and structure only types. This database provisioning profile is created from the production or source database registered with Enterprise Manager. It supports both structure plus data and structure only types. This option is recommended if the database size being created is less than 10 GB.

The table below shows the list of tasks that are involved in creating a database using the database template based profile.

You can create single instance and cluster databases using database template based profiles.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-2 Creating Databases Using Database Template with REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

See Section 12.1, "Getting Started"

2

Create resource providers.

- Create one or more PaaS Infrastructure Zones.

- Create one or more database pools.

See:

- Section 48.3.1.3.3, "Creating a PaaS Zone"

- Section 48.3.2.3.4, "Creating a Database Pool"

See:

- Section 47.1, "PaaS Zone EM CLI Verbs"

- Section 47.2, "Software Pool EM CLI Verbs"

6

Create a DBCA template based database provisioning profile.

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

4

Create the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

5

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

7

Create a service template based on the profile you have created.

See Section 48.3.5.3, "Service Templates and Service Template REST API Examples"

See Section 47.7, "Service Template EM CLI Verbs"

8

Configure the Chargeback Service.

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

9

While deploying a database, select the service template (associated with the database template based profile) you have created.

See Section 49.2.3.8, "Creating a Database Instance"

See Section 49.2.3.8, "Creating a Database Instance"

50.2.1 Creating Standby Databases With REST APIs and EM CLI Verbs

A data guard configuration consists of one primary database and one or more standby databases. The databases in a Data Guard configuration are connected by Oracle Net and may be dispersed geographically. There are no restrictions on where the databases are located, provided they can communicate with each other.

Oracle Data Guard ensures high availability, data protection, and disaster recovery for enterprise data. It provides a comprehensive set of services that create, maintain, manage, and monitor one or more standby databases to enable production Oracle databases to survive disasters and data corruptions. Oracle Data Guard maintains these standby databases as copies of the production database. If the production database becomes unavailable due to a planned or an unplanned outage, the Oracle Data Guard can switch any standby database to the production role, minimizing the downtime associated with the outage.

The production database, also referred to as the primary database an be either a single-instance Oracle database or an Oracle Real Application Clusters (RAC) database. A standby database is a transaction-wise consistent copy of the primary database. Using a backup copy of the primary database, you can create one or more standby databases and incorporate them in a Data Guard configuration. Using Enterprise Manager Database as a Service, users with the EM_SSA_ADMINISTRATOR role can setup the DBaaS Cloud with single instance of RAC standby databases.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-3 Creating Standby Databases with REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

See Section 12.1, "Getting Started"

2

Set up one or more PaaS Infrastructure Zones.

See Section 48.3.1.3.3, "Creating a PaaS Zone"

See Section 47.1, "PaaS Zone EM CLI Verbs"

3

Define a database pool for provisioning standby databases.

See Section 48.3.2.3.4, "Creating a Database Pool"

See Section 47.2, "Software Pool EM CLI Verbs"

4

Configure the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

5

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

6

Create either of the following types of profiles:

- DBCA template based database provisioning profile.

- RMAN Backup based database provisioning profile.

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

7

Create a service template based on the profile you have created.

See Section 48.3.5.3, "Service Templates and Service Template REST API Examples"

See Section 47.7, "Service Template EM CLI Verbs"

8

Configure the Chargeback Service.

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

9

While deploying a database, select the service template (associated with the DBCA template based profile) you have created. Additionally, you can also specify the standby database information while requesting the database.

See Section 49.2.3.8, "Creating a Database Instance"

See Section 49.2.3.8, "Creating a Database Instance"

50.3 Creating Empty Schemas and Schemas Based on Profile With REST APIs and EM CLI Verbs

The data content of a database provisioning profile is compiled from an export dump. You can choose to export Schema objects (structure only) or the Schema with data (structure and data).

The table below shows the list of tasks that are involved in creating an empty schema or a schema based on profile.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-4 Creating Schemas with REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

See Section 12.1, "Getting Started"

2

Set up one or more PaaS Infrastructure Zones.

See Section 48.3.1.3.3, "Creating a PaaS Zone"

See Section 47.1, "PaaS Zone EM CLI Verbs"

3

Define a database pool for schema as a service.

See Section 48.3.2.3.6, "Creating a Schema Pool"

See Section 47.2, "Software Pool EM CLI Verbs"

4

Configure the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

5

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

6

Create a database provisioning profile. This step is optional and is required if you are importing schemas from a profile.

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

7

Create a service template based on:

- User Defined Schema: In this case, the service template is created with an empty schema.

- Schema from a Profile: In this case, you can import schemas from a database provisioning profile. You can select this option for applications with data such as eBusiness applications.

See Section 48.3.5.3.13, "Creating a Service Template for a Schema"

See Section 47.7, "Service Template EM CLI Verbs"

8

Configure the Chargeback Service.

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

9

Create the schema based on the service template.

See Section 49.3.3.2, "Creating a Schema Service"

See Section 49.3.3.2, "Creating a Schema Service"

50.4 Creating Empty PDBs and PDBs Based on Profile With REST APIs and EM CLI Verbs

An Oracle Database can contain a portable collection of schemas, schema objects, and non-schema objects, that appear to an Oracle Net client as a separate database. This self-contained collection is called a pluggable database (PDB). A multi-tenant container database (CDB) is a database that includes one or more PDBs. Oracle Database 12c Release 1 (12.1) and later versions allow you to create many PDBs within a single CDB.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-5 Creating Pluggable Databases with REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

See Section 12.1, "Getting Started"

2

Set up one or more PaaS Infrastructure Zones.

See Section 48.3.1.3.3, "Creating a PaaS Zone"

See Section 47.1, "PaaS Zone EM CLI Verbs"

3

Create a database pool for PDB as a service.

See Section 48.3.2.3.8, "Creating a Pluggable Database Pool"

See Section 47.2, "Software Pool EM CLI Verbs"

4

Configure the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

5

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

6

Create a database provisioning profile. This step is optional and is not required if you are creating an empty pluggable database.

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

7

Create a service template. A service template can contain:

- Empty Pluggable Database: In this case, the service template is created with an empty schema.

- Pluggable Database from a Profile: In this case, you can import schemas from a database provisioning profile. You can select this option for applications with data such as eBusiness applications.

See Section 48.3.5.3.14, "Creating a Service Template for a Pluggable Database"

See Section 47.7, "Service Template EM CLI Verbs"

8

Configure the Chargeback Service.

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

9

While deploying a database, select the service template that you have created.

See Section 49.4.3.2, "Creating a Pluggable Database"

See Section 49.4.3.2, "Creating a Pluggable Database"

50.5 Migrating/Transferring Data from One Database to Another

To migrate data from one database to another using EM CLI verbs, follow the steps below:

1. Enter the EM CLI verb emcli describe_dbprofile_input -data_mode=EXPORT. The output provides all profile creation input variables.

Note:
Export is supported only for database whereas import is supported for both database and PDBs. This indicates that the source should always be a database and the destination can be either a database or a PDB.

2. Use the input variables to create a properties file with values for all the variables.

3. Export data from the source database by creating a database profile. To do so, enter the verb emcli create_dbprofile - input_file=data:<properties file name along with path>.

Note:
Use the properties file created in the previous step for this verb.

For the verb details see Section 47.6.2, "Creating Provisioning Profiles using EM CLI".

4. Enter the verb to transfer data: emcli data_transfer -input_file=data:/u01/files/data_trans.props.
For the verb and properties file details see Section 47.16, "Transferring Data Between Databases".

5. Enter the verb to import data in to the destination database: emcli dbimport -input_file=data:/u01/files/dbimport.props.
For the verb and properties file details see Section 47.18, "Importing Data from Export Dumps to a Database".

50.6 Creating Databases Using Snap Clone With REST APIs and EM CLI Verbs

Snap Clone is a Self-Service-Application (SSA) way of creating fast and space-saver clones of huge databases. Clones of the production database are often required for test and development purposes, and it is difficult and time consuming to create these clones, especially if the databases are huge.

Enterprise Manager offers Snap Clone as a way to address this issue, so that thin clones can be created from production databases by using the copy on write technology available in some storage systems. This means that these clones take up little space initially (about 2 GB of writable space required for a thin clone of a multi-terabyte database), and will grow as inserts, updates and deletes are performed. Enterprise Manager offers two solutions with snap clone:

- Hardware Solution: Vendor specific hardware solution which supports NetApps, Oracle Sun ZFS storage appliance, EMC VMAX, and VNX.

- Software Solution: Storage agnostic software solution that supports all NAS and SAN storage devices. This is supported through use of the ZFS file system, and the CloneDB feature.

The main features of snap clone are:

- Self Service Driven Approach: Empowers the self service user to clone databases as required on an ad-hoc basis.

- Rapid Cloning: Databases can be cloned in minutes and not in days or weeks.

- Space Efficient: This features allows users to significantly reduce the storage footprint.

50.6.1 Creating a Snap Clone Using a Profile With REST APIs and EM CLI Verbs

This table below lists the steps involved in creating a snap clone using a snapshot or an RMAN Image profile.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-6 Creating a Snap Clone Database Using a Profile with REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable Snap Clone.

See Section 12.1, "Getting Started"

See Section 12.1, "Getting Started"

2

Register storage servers.

- NetApp and Sun ZFS Storage Server

- Solaris File System (ZFS)

- EMC Storage Server

- Section 12.7.4.1, "Registering a NetApp or a Sun ZFS Storage Server"

- Section 12.7.4.2, "Registering a Solaris File System (ZFS) Storage Server"

- Section 12.7.4.3, "Registering an EMC Storage Server"

- Section 12.7.4.1, "Registering a NetApp or a Sun ZFS Storage Server"

- Section 12.7.4.2, "Registering a Solaris File System (ZFS) Storage Server"

- Section 12.7.4.3, "Registering an EMC Storage Server"

3

Set up one or more PaaS Infrastructure Zones.

See Section 48.3.1.3.3, "Creating a PaaS Zone"

See Section 47.1, "PaaS Zone EM CLI Verbs"

4

Create a database pool.

See Section 48.3.2.3.4, "Creating a Database Pool"

See Section 47.2, "Software Pool EM CLI Verbs"

5

Configure the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

6

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

7

Set up the Test Master Database and enable snap clone.

See Section 20.4.7, "Enabling the Test Master for Snap Clone"

See Section 20.4.7, "Enabling the Test Master for Snap Clone"

8

Depending on the snap clone solution you are using, do either of the following:

- Hardware Solution: Create a snap clone based profile.

- Software Solution: Create an RMAN Image profile.

Create a database provisioning profile using a snap clone.

- Hardware Solution: See Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots"

- Software Solution: See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

- Hardware Solution: See Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots"

- Software Solution: See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

9

Create a service template based on the profile you have created.

- Hardware Solution: See Section 20.4.9, "Creating Service Template Using Snap Clone Profile"

- Software Solution: See Section 48.3.5.3, "Service Templates and Service Template REST API Examples"

- Hardware Solution: See Section 20.4.9, "Creating Service Template Using Snap Clone Profile"

- Software Solution: See Section 47.7, "Service Template EM CLI Verbs"

10

Configure the Chargeback Service. (this step is optional)

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

11

While deploying a database, select the service template you have created.

See Section 49.2.3.8, "Creating a Database Instance"

See Section 49.2.3.8, "Creating a Database Instance"

50.6.2 Creating a Snap Clone Using Live Database With REST APIs and EM CLI Verbs

This table below lists the steps involved in creating a snap clone using a live standby database.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-7 Creating Snap Clone Using Live Database With REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable Snap Clone.

See Section 12.1, "Getting Started".

See Section 12.1, "Getting Started".

2

Register storage servers.

- NetApp and Sun ZFS Storage Server

- Solaris File System (ZFS)

- EMC Storage Server

See:

- Section 12.7.4.1, "Registering a NetApp or a Sun ZFS Storage Server"

- Section 12.7.4.2, "Registering a Solaris File System (ZFS) Storage Server"

- Section 12.7.4.3, "Registering an EMC Storage Server"

See:

- Section 12.7.4.1, "Registering a NetApp or a Sun ZFS Storage Server"

- Section 12.7.4.2, "Registering a Solaris File System (ZFS) Storage Server"

- Section 12.7.4.3, "Registering an EMC Storage Server"

3

Set up one or more PaaS Infrastructure Zones.

See Section 48.3.1.3.3, "Creating a PaaS Zone"

See Section 47.1, "PaaS Zone EM CLI Verbs"

4

Create a database pool.

See Section 48.3.2.3.4, "Creating a Database Pool"

See Section 47.2, "Software Pool EM CLI Verbs"

5

Configure the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

6

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

7

Set up the Test Master Database using a live standby database.

See Section 20.4.6, "Using a Physical Standby Database as a Test Master"

See Section 20.4.6, "Using a Physical Standby Database as a Test Master"

9

Create a service template.

See Section 48.3.5.3, "Service Templates and Service Template REST API Examples"

See Section 47.7, "Service Template EM CLI Verbs"

10

Configure the Chargeback Service. (this step is optional)

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

11

While deploying a database, select the service template you have created.

See Section 49.2.3.8, "Creating a Database Instance"

See Section 49.2.3.8, "Creating a Database Instance"

50.6.3 Continuous Sync

A continuous sync setup has a production database and a standby database which is on a filer (NAS storage). The standby database gets continuous/live data from the primary.

To set up a continuous sync database setup, follow the steps below:

Table 50-8 Creating a Continuous Sync Setup Using EM CLI Verbs

Step

Task

EM CLI Verb

1

Add an existing standby database.Currently, this task can be accomplished only via the UI screen.

Not available

2

Create a new Test master from a standby database.

Section 47.6.5, "Creating a Database Profile Using EM CLI Verbs"

3

Create a clone.

Section 47.9, "Creating a Database Clone Using EM CLI Verbs"

4

Promote the clone as the Test master.

Currently, this task can be accomplished only via the UI screen.

Not available

50.7 Creating Full Database Clones Using RMAN With REST APIs and EM CLI Verbs

There are two ways of cloning full databases using RMAN. They are:

- Creating a Full Database Clone Using RMAN Backup

- Creating a Full Database Clone Using RMAN Duplication (Live Cloning)

- Discrete Sync

50.7.1 Creating a Full Database Clone Using RMAN Backup

Database backups created by RMAN (Recovery Manager) are stored as image copies or backup sets. You can create profiles using these backups and use these profiles to create full database clones.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-9 Cloning Databases Using RMAN Backup Profile with REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

See Section 12.1, "Getting Started"

2

Set up one or more PaaS Infrastructure Zones.

See Section 48.3.1.3.3, "Creating a PaaS Zone"

See Section 47.1, "PaaS Zone EM CLI Verbs"

3

Create a database pool.

See Section 48.3.2.3.4, "Creating a Database Pool"

See Section 47.2, "Software Pool EM CLI Verbs"

4

Configure the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

5

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

6

Create one of the following database provisioning profiles:

- RMAN Backup

- Existing RMAN Backup

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

See Section 47.6.2, "Creating Provisioning Profiles using EM CLI"

7

Set up the Test Master database.

See Section 20.4.7, "Enabling the Test Master for Snap Clone"

See Section 20.4.7, "Enabling the Test Master for Snap Clone"

8

Create a service template based on the profile you have created.

See Section 48.3.5.3.11, "Creating a Service Template for Snap Clone Single Instance Database (with Archiving Enabled)"

See Section 47.7, "Service Template EM CLI Verbs"

9

Configure the Chargeback Service.

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

10

While deploying a database, select the service template you have created.

See Section 49.2.3.8, "Creating a Database Instance"

See Section 49.2.3.8, "Creating a Database Instance"

50.7.2 Creating a Full Database Clone Using RMAN Duplication (Live Cloning)

Database backups created by RMAN (Recovery Manager) are stored as image copies or backup sets. You can create profiles using these backups and use these profiles to create full database clones.

Note:
In the table below, wherever REST APIs are not available for any steps EM CLI verbs are provided, and vice-versa.

Table 50-10 Creating a Full Database Clone Using RMAN Backup WIth REST APIs and EM CLI Verbs

Step

Task

REST APIs

EM CLI Verbs

1

Follow the steps in the Getting Started section to enable DBaaS.

See Section 12.1, "Getting Started"

See Section 12.1, "Getting Started"

2

Set up one or more PaaS Infrastructure Zones.

See Section 48.3.1.3.3, "Creating a PaaS Zone"

See Section 47.1, "PaaS Zone EM CLI Verbs"

3

Create a database pool.

See Section 48.3.2.3.4, "Creating a Database Pool"

See Section 47.2, "Software Pool EM CLI Verbs"

4

Create the test master by using a live standby database.

See Section 20.4.6, "Using a Physical Standby Database as a Test Master"

See Section 20.4.6, "Using a Physical Standby Database as a Test Master"

5

Configure the request settings.

See Section 48.3.3.4.2, "Creating Database Request Settings"

See Section 47.4, "Database Request Settings EM CLI Verbs"

6

Define quotas for each self service user.

See Section 48.3.4.4.2, "Creating DBaaS Quota for a Role"

See Section 47.3, "Database Quota EM CLI Verbs"

7

Create a service template based on the test master.

See Section 48.3.5.3.9, "Creating a Service Template for RAC Database with Standby Using a DBCA Template"

See Section 47.7, "Service Template EM CLI Verbs"

8

Configure the Chargeback Service.

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

See Section 56.1, "Performing UI Equivalent Chargeback Operations"

9

While deploying a database, select the service template you have created.

See Section 49.2.3.8, "Creating a Database Instance"

See Section 49.2.3.8, "Creating a Database Instance"

50.7.3 Discrete Sync

A discrete sync setup has a production database which is not available for direct cloning operations and thereby with no standby database. The administrator schedules periodic backups on the production database and uses the backups to create the Test master database.

To set up a discrete sync database setup, follow the steps below:

Table 50-11 Creating a Discrete Sync Setup Using EM CLI Verbs

Step

Task

EM CLI Verb

1

Create a Test master database.

Section 47.9, "Creating a Database Clone Using EM CLI Verbs"

2

Create a full backup.

Section 47.6.5, "Creating a Database Profile Using EM CLI Verbs"

3

Create a thin backup.

Section 47.6.5, "Creating a Database Profile Using EM CLI Verbs"

4

Create a clone.

Section 47.9, "Creating a Database Clone Using EM CLI Verbs"

5

Refresh Test master or clones.

Section 47.10, "Refreshing a Database Using EM CLI Verbs"

50.8 Configuring Custom Database Placement Option Using REST APIs

This section describes the custom database placement feature using REST APIs. See the following sections for further details:

- Custom Database Placement Option for Databases Using REST APIs

- Custom Database Placement Option for Pluggable Databases Using REST APIs

50.8.1 Custom Database Placement Option for Databases Using REST APIs

With the custom database placement option, an SSA user has the option of choosing the host on which the database instance is created. This option has to be enabled in the service template by the SSA Administrator while creating the service template. The SELECT_ORACLE_HOME_OPTION parameter in the JSON body of the service template defines if the SSA User has the option to select the host while requesting for a database instance. If SELECT_ORACLE_HOME_OPTION is set with the value "SELECT_ORACLE_HOME_FROM_REQUEST" the SSA User has the option to choose the database host while requesting the database. If the parameter is not defined, or if the value for the parameter is not set, or if the value is set to "SELECT_ORACLE_HOME_AT_RUNTIME", then the SSA User will not have the option of choosing the database host and the database instance will be created on the host selected by the placement algorithm during the execution of the request.

After the option is set in the service template, the SSA User can perform a GET operation on the service template URI to view the available hosts. The "hosts_for_placement" parameter (in the case of a SI database), and "clusters_for_placement" and "hostsInCluster" parameters (in case of a RAC database) provide the details of the available hosts to the SSA User. The SSA User is then required to define the host name for placing the database in the "database_host_name" parameter in the POST operation for requesting a database instance.

The "database_host_name" parameter is a mandatory parameter if the custom placement option is set in the service template. Note that multiple values for database_host_name request parameter can be provided as comma separated values. For a RAC database request, the number of hosts specified in this parameter should match with the number of nodes configured in the service template, and all of the hosts provided should belong to the same cluster and should be present in the selected zone.

50.8.2 Custom Database Placement Option for Pluggable Databases Using REST APIs

With the custom database placement option, an SSA user has the option of choosing the Container Database (CDB) on which the Pluggable Database (PDB) instance is created. This option has to be enabled in the service template by the SSA Administrator while creating the service template.

The SELECT_TARGET_OPTION parameter in the JSON body of the PDB service template defines if the SSA User has the option to select the host while requesting for a database instance. If SELECT_ORACLE_HOME_OPTION is set with the value "SELECT_TARGET_FROM_REQUEST" the SSA User has the option to choose the CDB while requesting the database. If the parameter is not defined, or if the value for the parameter is not set, or if the value is set to "SELECT_TARGET_AT_RUNTIME", then the SSA User will not have the option of choosing the CDB and the PDB instance will be created on the CDB selected by the placement algorithm during the execution of the request.

After the option is set in the PDB service template, the SSA User can perform a GET operation on the service template URI to view the available CDBs. The "target_nodes_for_placement" parameter provides the details of the available CDBs to the SSA User. The SSA User is then required to define the CDB target name for placing the PDB in the "target_name" parameter in the POST operation for requesting a PDB instance.

The "target_name" parameter is a mandatory parameter if the custom placement option is set in the service template. The CDB target name specified in this parameter should be present in the selected zone.

50.9 Service Catalog of Database as a Service

Service catalog is a collection of pre-approved database configurations available to selected consumers for on demand, self service provisioning. It enforces consistency and automation, and helps reduce the database management overhead.

Service catalog offers:

- Self-service provisioning which provides IT agility

- Enterprise-wide service catalog which provides standardization and compliance

- Database cloning using snap clone which saves time and storage space

- Metering, chargeback and quota which ensures service governance

- Performance and lifecycle management which guarantees service levels

- Patching, upgrading and configuration automation which lowers operational costs

For more information on service catalog watch the video at - https://apex.oracle.com/pls/apex/f?p=44785:24:0::::P24_CONTENT_ID,P24_PREV_PAGE:9590,1.

The following section explains the REST APIs required for setting up a sample multi-datacenter DBaaS.

50.9.1 Multi-Datacenter DBaaS Setup

Multi-datacenter DBaaS setup is the best possible structure of DBaaS configuration in an enterprise with multiple data centers where all aspects related to data safety, recovery and backup are considered at the highest levels.

Figure 50-2 Multi-Datacenter DBaaS Setup

Multi-datacenter DBaaS setup requires creating a Primary RAC software pool and two Standby software pools. Of the two standby software pools, the near disaster recovery (DR) pool is a RAC software pool and the other, which is the far DR is a single instance software pool. After the software pools are created, the service template is created to establish the relation between the software pools. This setup is offered as a Multi-datacenter DBaaS setup to the SSA user.

The topics covered under this section are:

- Administrator Steps for Creating the Multi-Datacenter DBaaS Setup

- SSA User REST API Request for Using the Multi-Datacenter DBaaS Setup

50.9.1.1 Administrator Steps for Creating the Multi-Datacenter DBaaS Setup

This section explains the steps to setup the Multi-datacenter DBaaS using REST APIs. For the EM CLI verb equivalent of the REST APIs run the emcli invoke_ws command for each of the REST APIs in the steps below. For details on emcli invoke_ws command, refer to Chapter 47, "EM CLI Verbs for Database as a Service Administrator".

Follow the steps below to setup the Multi-datacenter DBaaS:

1. Create a PaaS zone for the data center with the single instance software pool (Far DR).
To create a PaaS zone, issue the REST API request given below.

Table 50-12 Request Configuration to Create a PaaS Zone

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name":"DATACENTER_2",
"description":"This is a TestZone",
"credential":"NCAIME",
"memberType":"host",
"members":[
"www.example.com"
],
"constraint":[
{
"name":"MAX_CPU_UTILIZATION",
"value":"85"
},
{
"name":"MAX_MEMORY_ALLOCATION",
"value":"95"
}
],
"roles":[
"SSACOREROLE1",
"SSACOREROLE2"
],

}

Request method

POST

2. Create a standby single instance software pool in DATACENTER_2.
To create a standby single instance software pool, issue the REST API request given below.

Table 50-13 Configuration to Create a Standby Single Instance Software Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "DB_POOL2",
"poolTargetType": "oracle_cloud_zone",
"description": "Database Pool of Oracle Homes",
"paasZone": "DATACENTER_2",
"members": ["OraDb11g_home1_2_example.com"],
"serviceFamily":"DBAAS",
"serviceType":"DBAAS",
"constraints": {"items": [{"name": "MAX_INSTANCES", "value": "10"}]},
"filters":
{"items": [
{"name": "CONFIGURATION","value": "oracle_database"},
{"name": "VERSION","value": "11.2.0.4.0"},
{"name": "PLATFORM","value": "226"}
]
} ,
"properties":
{"items": [
{"name": "host_credential_guid", "value": "FF7A82CE961672E6E0437850B10ABF4E"}
]
}
}

Request method

POST

3. Create a PaaS zone for the data center with the primary database and the standby RAC database (Near DR).
To create a PaaS zone, issue the REST API request given below.

Table 50-14 Request Configuration to Create a PaaS Zone

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name":"DATACENTER_1",
"description":"This is a TestZone",
"credential":"NCAIME",
"memberType":"host",
"members":[
"www.example.com"
],
"constraint":[
{
"name":"MAX_CPU_UTILIZATION",
"value":"85"
},
{
"name":"MAX_MEMORY_ALLOCATION",
"value":"95"
}
],
"roles":[
"SSACOREROLE1",
"SSACOREROLE2"
],

}

Request method

POST

4. Create a standby RAC software pool in DATACENTER_1.
To create a standby RAC software pool, issue the REST API request shown below.

Table 50-15 Configuration to Create a Standby RAC Software Pool

Feature

Description

URI

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

oftwarepools

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "DB_POOL3",
"poolTargetType": "oracle_cloud_zone",
"description": "Database Pool of Oracle Homes",
"paasZone": "DATACENTER_1",
"members": ["OraDb11g_home2_11_www.example.com","OraDb11g_home2_11_www.example.com"],
"serviceFamily":"DBAAS",
"serviceType":"DBAAS",
"constraints": {"items": [{"name": "MAX_INSTANCES", "value": "10"}]},
"filters":
{"items": [
{"name": "CONFIGURATION","value": "rac_database"},
{"name": "VERSION","value": "11.2.0.4.0"},
{"name": "PLATFORM","value": "226"}
]
} ,
"properties":
{"items": [
{"name": "host_credential_guid", "value": "FF7A82CE961672E6E0437850B10ABF4E"}
]
}
}

Request method

POST

5. Create a primary RAC software pool in DATACENTER_1.
To create a primary RAC software pool, issue the REST API request shown below.

Table 50-16 Configuration to Create a Primary RAC Software Pool

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "DB_POOL1",
"poolTargetType": "oracle_cloud_zone",
"description": "Database Pool of Oracle Homes",
"paasZone": "DATACENTER_1",
"members": ["OraDb11g_home1_2_www.example.com","OraDb11g_home1_2_www.example.com"],
"serviceFamily":"DBAAS",
"serviceType":"DBAAS",
"constraints": {"items": [{"name": "MAX_INSTANCES", "value": "10"}]},
"filters":
{"items": [
{"name": "CONFIGURATION","value": "rac_database"},
{"name": "VERSION","value": "11.2.0.4.0"},
{"name": "PLATFORM","value": "226"}
]
} ,
"properties":
{"items": [
{"name": "host_credential_guid", "value": "FF7A82CE961672E6E0437850B10ABF4E"},
{"name": "standby_pools", "value": "DB_POOL2|DB_POOL3"}
]
}
}

Request method

POST

6. Create DBaaS Request Settings for a user role.
To create DBaaS request settings, issue the REST API request shown below.

Table 50-17 Configuration to Create DBaaS Request Settings

Feature

Description

URI

/em/cloud/dbaas/requestsetttings

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Accept: application/oracle.com.cloud.common.DbaasRequestSettings+json

Body

{
"future_reservation_length" : "2 Months",
"maximum_archive_duration" : "10 Weeks",
"default_retirement_period" : "No Reservation"
}

Request method

POST

7. Create Quota for a user role.
To create quota, issue the REST API request shown below.

Table 50-18 Configuration to Create a Quota

Feature

Description

URI

/em/cloud/dbaas/quota

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Accept: application/oracle.com.cloud.common.DbaasRequestSettings+json

Body

{
"role_name" : "DBAAS_ROLE",
"databases" : "10",
"schema_services" : "21",
"pluggable_databases" : "22",
"storage" : "99",
"memory" : "99"
}

Request method

POST

8. Create a Profile to capture the source database information for provisioning. Refer to Chapter 47, "EM CLI Verbs for Database as a Service Administrator".

9. Create a database service template.
To create a database service template, issue the REST API request shown below.

Table 50-19 Configuration to Create a Database Service Template

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name":"TestDbTemplate1",
"serviceType":"DB",
"serviceFamily":"DBAAS",
"description":"This is a test database standby service template 1",
"poolIds":[ "00829096124B0CC3E0537850B10A9E88" ],
"serviceExecutableMeta":{
"type":"CDP",
"configurations":[
{ "name":"PROFILE_COMPONENT_URN", "value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_DbProfile:0008FDF6A8BD706BE0537850B10A5E7A:0.1" },
{ "name":"DATABASE_TYPE","value":"rac_database" },
{ "name":"COMMON_DB_SYSTEM_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_DBSNMP_PASSWORD", "value":"welcome" },
{ "name":"COMMON_DB_SYS_PASSWORD","value":"welcome" },
{ "name":"DB_ADMIN_PASSWORD_SAME", "value":"true" },
{ "name":"INSTANCE_COUNT","value":"2" },
{ "name":"SID_OPTION", "value":"ssauser  "},
{ "name":"COMMON_DB_SID","value":"mydb1" },
{ "name":"COMMON_DOMAIN_NAME",  "value":"www.example.com" },
{ "name":"LISTENER_PORT", "value":"1521"},
{ "name":"STAGE_LOCATION", "value":"/scratch" },
{ "name":"REF_ZONE", "value":"DATACENTER_1" },
{ "name":"REF_POOL",   "value":"DB_POOL1" },
{ "name":"REF_HOST", "value":"www.example.com" },
{ "name":"REF_TGT","value":"www.example.com" },
{ "name":"DBCA_TEMPLATE:DB_STORAGE_TYPE",  "value":"ASM" },
{ "name":"DBCA_TEMPLATE:DATA_FILE_LOCATION","value":"DATA" },
{ "name":"DBCA_TEMPLATE:REC_STORAGE_TYPE_SAME_AS_DB_FILES", "value":"Y" },
{ "name":"DBCA_TEMPLATE:ARCHIVE_LOG_MODE", "value":"Y" },
{ "name":"DBCA_TEMPLATE:FLASH_RECOVERY_AREA_SIZE", "value":"5000" },
{ "name":"DBCA_TEMPLATE:RECOVERY_FILE_LOCATION","value":"RECO" },
{ "name":"DBCA_TEMPLATE:REDO_FILE_LOCATION", "value":"RECO"  },
{
"name":"INIT_PARAMS",
"subconfigurations":[
{ "name":"INIT_PARAMS:1", "value":"sga_target=1073741824" },
{ "name":"INIT_PARAMS:2", "value":"pga_aggregate_target=1073741824"  }
]
},
{ "name":"STANDBY_REQUIRED","value":"true" },
{ "name":"STANDBY_REQUIRED_LOCK","value":"false" },
{ "name":"STANDBY_WORK_DIR","value":"/tmp" },
{ "name":"PRIMARY_PROTECTION_MODE","value":"MAXIMIZE AVAILABILITY" },
{ "name":"DBAAS_SSA_STANDBY_CUSTOM_PRE_SCRIPTS_URN","value":"" },
{ "name":"DBAAS_SSA_STANDBY_CUSTOM_POST_SCRIPTS_URN","value":"" },
{ "name":"STANDBY_DB_DETAILS","value":"","values":[
"pool=DB_POOL3;databaseSIDPrefix=;databaseType=rac_database;standbyConfigName=Near DR;redoMode=SYNC;realtimeQuery=true;databaseRACInstanceCount=2;databaseDelay=30;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com",
"pool=DB_POOL2;databaseSIDPrefix=;databaseType=oracle_database;standbyConfigName=Far DR;redoMode=ASYNC;realtimeQuery=false;databaseRACInstanceCount=2;databaseDelay=60;databaseUniqueName=;standbyStorageType=FS;standbyStorageLocation=;standbyFRAType=FS;standbyFRALocation=;standbyFRASize=;standbyLsnrPort=;domainName=us.example.com"]}

]
}
}

Request method

POST

The platinum DBaaS setup is ready to be administered.

50.9.1.2 SSA User REST API Request for Using the Multi-Datacenter DBaaS Setup

To request a multi-datacenter DBaaS setup with a near DR and a far DR, issue the REST API request shown below.

Table 50-20 Configuration to Create a Database with Two Standby Databases

Feature

Description

URI

/em/cloud/dbaas/zone/82CF1C28FA20A183C99D13

8FF8065F19

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.DbPlatformInstance+json

Accept: application/oracle.com.cloud.common.DbPlatformInstance+json

Body

{
"based_on": "/em/cloud/dbaas/dbplatformtemplate/CC3BBB665A6BC6FFE040F00AEF252456",
"name": "Platinum1",
"description": "Create Database with 1 Standby RAC database & 1 Standby SI database",
"start_date": "2014-08-13T14:20:00ZAsia/Calcutta",
"end_date": "2014-08-13T17:20:00ZAsia/Calcutta",
"params":
{
"username": "Master Account username for the DB",
"password": "Master Account Password for the  DB",
"database_sid" : "platinum1" ,
"service_name" : "Name of the additional service to be created",
"standbydbs":
[
{
"standbydb_name":"Near DR",
"standbydb_sid":"NR1"
},
{
"standbydb_name":"Far DR",
"standbydb_sid":"FR1"
}
]
}
}

Request method

POST

51 SSA Administration REST APIs

This chapter provides details of the Cloud REST APIs and Service Template REST APIs for SSA Administration functions. REST APIs for PaasZone management, and SoftwarePool management, along with other REST APIs used to fetch the REST API catalog, REST API output, and metadata and expansion of a resource are described in this chapter.

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.

Note:
For the SSA Plug-in release 12.1.0.9, a new framework is introduced for the REST APIs which is referred to as the v2 framework. The new framework consists of a different approach and signatures, as a result of which the REST APIs also differ when compared to the earlier framework. The earlier framework (v1) is deprecated and users are suggested to move to the v2 REST APIs and EM CLI verbs.
Unique EM CLI verbs for v2 are restricted to those actions which do not have an REST API equivalent. For every REST API in the v2 framework, an equivalent EM CLI verb in the form of emcli invoke_ws exists. For details see Section 51.18.2, "EM CLI Verbs for SSA Operations for V2".

In v2, REST APIs for the Self Service Portal application are generally used by the SSA users. These REST APIs are generally in the .../ssa/... format. For example, /em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/. REST APIs for administrative functions (i.e., .../admin/... format) are REST APIs that configure the SSA Portal setup, such as creating zones, templates, etc., which are generally performed by Cloud or SSA Administrators. The Admin REST APIs are covered in this chapter.

This chapter covers the following sections:

- Summary of SSA Administration REST APIs for V2

- Summary of SSA Administration REST APIs for V1

- Catalog APIs for V1 and V2

- Resource Provider for V2

- Resource Providers - Collection Resource for V2

- Resource Provider - Singular Resource for V2

- Service Templates - Collection Resource for V2

- Service Types for V2

- Service Requests for V2

- Service Instances for V2

- Request Settings for V2

- VM Adapters for V2

- SSA Admin Resources for V1

- PaasZones for V1

- PaasZone for V1

- SoftwarePools for V1

- SoftwarePool for V1

- Composite Resource Attributes for V1

- ValueDescriptor for V1

- ValueEntity for V1

- EntityValueHolder for V1

- PoolEntityCapacity for V1

- ResourceTypeCapacity for V1

- Service Template Management for V1

- Service Templates for V1

- Service Template for V1

- ServiceTemplateUpdate for V1

- ServiceExecutableMetaEntity for V1

- Template Configuration Parameters for V1

- PayloadDescriptor for V1

- ServiceTemplate Metadata for V1

- PayloadMetaData for V1

- ServiceTemplate MetaData for V1

- EM CLI Verbs for Self Service Applications

- EM CLI Verbs for SSA Operations for V2

- EM CLI Verbs for SSA Operations for V1

51.1 Summary of SSA Administration REST APIs for V2

The table below shows a summary of all the User preference and Request scheduling REST APIs covered in this chapter for the v2 framework.

Table 51-1 Summary of SSA Administration REST APIs for V2

Resource

Data Model

GET

POST

PUT

DELETE

Catalog API

Table 51-3

- Section 51.3.1.1

- Section 51.3.1.3

- Section 51.3.1.5

- Section 51.3.1.6

Not supported

Not supported

Not supported

Resource Provider

Table 51-10

- Section 51.4.4.1

- Section 51.4.4.2

- Section 51.4.4.8

- Section 51.4.4.9

- Section 51.4.4.10

- Section 51.4.4.11

- Section 51.4.4.14

- Section 51.4.4.15

- Section 51.4.4.3

- Section 51.4.4.4

- Section 51.4.4.5

- Section 51.4.4.6

- Section 51.4.4.7

- Section 51.4.4.16

- Section 51.4.4.18

Section 51.4.4.12

- Section 51.4.4.13

- Section 51.4.4.17

Service Templates

Table 51-36

- Section 51.5.2.1

- Section 51.5.2.2

- Section 51.5.2.3

- Section 51.5.2.4

- Section 51.5.2.5

- Section 51.5.2.8

- Section 51.5.2.9

Section 51.5.2.6

Section 51.5.2.7

Section 51.5.2.10

Service Types

Table 51-57

Section 51.6.1.1

Not available

Not available

Not available

Service Requests

Table 51-59

- Section 51.7.2.1

- Section 51.7.2.2

Not supported

Section 51.7.2.3

- Section 51.7.2.5

- Section 51.7.2.6

Service Instances

Table 51-67

- Section 51.8.2.1

- Section 51.8.2.2

Not supported

- Section 51.8.2.3

- Section 51.8.2.4

- Section 51.8.2.5

- Section 51.8.2.6

- Section 51.8.2.7

- Section 51.8.2.8

Not supported

Request Settings

Table 51-77

- Section 51.9.3.1

- Section 51.9.3.3

- Section 51.9.3.5

- Section 51.9.3.8

- Section 51.9.3.10

- Section 51.9.3.12

- Section 51.9.3.15

- Section 51.9.3.17

- Section 51.9.3.19

- Section 51.9.3.4

- Section 51.9.3.11

- Section 51.9.3.18

- Section 51.9.3.2

- Section 51.9.3.6

- Section 51.9.3.9

- Section 51.9.3.13

- Section 51.9.3.16

- Section 51.9.3.20

- Section 51.9.3.7

- Section 51.9.3.14

- Section 51.9.3.21

VM Adapters

Table 51-100

- Section 51.10.3.1

- Section 51.10.3.2

- Section 51.10.3.3

Section 51.10.3.4

Not supported

Not supported

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

51.2 Summary of SSA Administration REST APIs for V1

The table below shows a summary of all the User preference and Request scheduling REST APIs covered in this chapter for the v2 framework.

Table 51-2 Summary of SSA Administration REST APIs for V1

Resource

Data Model

GET

POST

PUT

DELETE

Catalog API

Table 51-3

- Section 51.3.1.2

- Section 51.3.1.4

Not supported

Not supported

Not supported

API Entry Point Resource

Table 51-106

Section 51.11.1

Not supported

Not supported

Not supported

PaaS Zones

Table 51-108

- Section 51.12.1.1

- Section 51.12.1.2

Not supported

Not supported

Not supported

PaaS Zone

Table 51-112

- Section 51.13.1.4

- Section 51.13.1.5

Section 51.13.1.1

Section 51.13.1.2

Section 51.13.1.3

Software Pools

Table 51-119

- Section 51.14.1.1

- Section 51.14.1.2

Not supported

Not supported

Not supported

Software Pool

Table 51-123

- Section 51.15.1.4

- Section 51.15.1.5

Section 51.15.1.1

Section 51.15.1.2

Section 51.15.1.3

Software Pool Metadata

Table 51-129

Section 51.15.2.1

Not supported

Not supported

Not supported

Software Pool Filtered Targets

Table 51-131

Section 51.15.3.1

Not supported

Not supported

Not supported

Software Pool Capacity

Table 51-133

Section 51.15.4.1

Not supported

Not supported

Not supported

Composite Resource Attributes

Section 51.16

Not supported

Not supported

Not supported

Not supported

Service Templates

Section 51.17.1

Section 51.17.10.5

Section 51.17.10.6

Not supported

Not supported

Service Template

Section 51.17.2

Section 51.17.10.4

Section 51.17.10.1

Section 51.17.10.2

Section 51.17.10.3

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

51.3 Catalog APIs for V1 and V2

Catalog APIs provide an overview of all the REST APIs existing in the cfw plugin. All of these are GET REST APIs which contain description and information about each REST API.

The REST APIs have been broadly categorized into v1 and v2 REST APIs. The v1 REST APIs refer to the existing v1 catalog REST API. The v2 REST API provides a summarized overview on both SSA user and Administrator REST APIs.

Table 51-3 Cfw API Catalog Collection Data Model

Field

Type

Description

Occurs

name

String

Display name of this collection resource.

1

type

String

Type of collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

count

Integer

Number of elements returned.

1

items

Collection <CfwRestAPICatalog>

List of Cfw API catalog resources.In case no instance exist, the items field will be empty.

1

totalResults

Integer

Total number of Cfw API catalog resources.

1

canonicalLink

URI

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

1

51.3.1 CFW API Catalog REST API Examples

This sections describes the REST APIs for the Cfw API catalog resource. The following operations are described in this section:

- Viewing the High Level Catalog APIs for V1 and V2

- Viewing the V1 Catalog APIs

- Viewing the V2 Catalog APIs

- Viewing the V1 Catalog APIs for SSA Portal

- Viewing the V2 Catalog User APIs

- Viewing the V2 Catalog Admin APIs

51.3.1.1 Viewing the High Level Catalog APIs for V1 and V2

The GET request configuration to view the high level catalog APIs is shown below.

Table 51-4 GET Request Configuration for Viewing High Level Catalog APIs

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/cfw/API

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
"items":[
{
"href":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/cfw/API/v1",
"description":"API Summary for version V1"
},
{
"href":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/cfw/API/v2",
"description":"API Summary for version V2"
}
],
"totalResults":2
}

51.3.1.2 Viewing the V1 Catalog APIs

The GET request configuration to view the v1 catalog APIs is shown below.

Table 51-5 GET Request Configuration for Viewing V1 Catalog APIs

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/cfw/API/v1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
"items":[
{
"href":"cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/API",
"description":"APIs for Self Service Application for version V1",
"type":"SSA"
},
{
"href":"cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/API",
"description":"APIs for Administrative functions for version V1",
"type":"Admin"
}
],
"goBack":"cloudcompany.com/em/websvcs/restful/extws/cloudservices/cfw/API",
"totalResults":2
}

51.3.1.3 Viewing the V2 Catalog APIs

The GET request configuration to view the v2 catalog APIs is shown below.

Table 51-6 GET Request Configuration for Viewing V2 Catalog APIs

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/API/v2

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
"items":[{
"href":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/API",
"description":"APIs for Self Service Application for version V2",
"type":"SSA"
},
{
"href":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/API",
"description":"APIs for administrative functions for version V2",
"type":"Admin"
} ],
"goBack":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/cfw/API",
"totalResults":2
}

51.3.1.4 Viewing the V1 Catalog APIs for SSA Portal

The GET request configuration to view the v1 catalog APIs for SSA portal is shown below.

Table 51-7 GET Request Configuration for Viewing V1 Catalog APIs for SSA Portal

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/API/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
"v1":{
"canonicalLink":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1",
"serviceRequests":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1
/servicerequests",
"userPreferences":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1
/mypreferences"
}
}

51.3.1.5 Viewing the V2 Catalog User APIs

The v2 endpoint provides further refined overview of v2 side user REST APIs grouped according to entities. For example, all the Service instance related REST APIs are listed together for entity=serviceinstances.

REST APIs with variable inputs, are marked with attribute ”templated” and curly brackets.

The GET request configuration to view the v2 catalog user APIs is shown below.

Table 51-8 GET Request Configuration for Viewing V2 Catalog User APIs

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/user/ssa/v2/API

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"totalResults": 5,
"resource": "services",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services",
"method": "GET",
"description": "Get all the service offerings"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services",
"method": "POST",
"description": "Create a service"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{
id}",
"method": "GET",
"templated": true,
"description": "Get details of a service"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{
id}/metadata",
"method": "GET",
"templated": true,
"description": "Get the metadata for a service"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{
id}/metrics",
"method": "PUT",
"templated": true,
"description": "Get the metrics for a service"
}
]
},
{
"totalResults": 11,
"resource": "userpreferences",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences",
"method": "GET"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/general",
"method": "GET",
"description": "Get the general user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/general/metadata",
"method": "GET",
"description": "Get the metadata for general user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services",
"method": "GET",
"description": "Get the service user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}",
"method": "GET",
"templated": true,
"description": "Get the user preferences for a service family"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/metadata",
"method": "GET",
"templated": true,
"description": "Get the metadata for user preference at family level"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/{service-type}",
"method": "GET",
"templated": true,
"description": "Get the user preferences for a service type"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/{service-type}/metadata",
"method": "GET",
"templated": true,
"description": "Get the metadata for user preference at service type level"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/general",
"method": "PUT",
"description": "Update general user preference"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{service-family}",
"method": "PUT",
"templated": true,
"description": "Update family level user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/{service-type}",
"method": "PUT",
"templated": true,
"description": "Update service type level user preferences"
}
]
},
{
"totalResults": 4,
"resource": "servicerequests",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests",
"method": "GET",
"description": "Get service requests"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests/{id}",
"method": "PUT",
"templated": true,
"description": "Reschedule the request"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests/{id}",
"method": "GET",
"templated": true,
"description": "Get the details of request"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests/{id}",
"method": "DELETE",
"templated": true,
"description": "Delete the request"
}
]
},
{
"totalResults": 5,
"resource": "serviceinstances",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances",
"method": "GET",
"description": "Get the service instances"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}",
"method": "GET",
"templated": true,
"description": "Get details of a service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}/actions",
"method": "GET",
"templated": true,
"description": "Get actions for a service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}/actions/{action-id}",
"method": "GET",
"templated": true,
"description": "Get metadata details of action"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}/actions/{action-id}",
"method": "PUT",
"templated": true,
"description": "Perform the action on the service instance"
}
]
}
],
"goBack": "https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/API",
"totalResults": 4
}

51.3.1.6 Viewing the V2 Catalog Admin APIs

The v2 endpoint provides further refined overview of v2 side admin REST APIs grouped according to entities. For example, all the Service instance related REST APIs are listed together for entity=serviceinstances.

REST APIs with variable inputs, are marked with attribute ”templated” and curly brackets.

The GET request configuration to view the v2 catalog admin APIs is shown below.

Table 51-9 GET Request Configuration for Viewing V2 Catalog Admin APIs

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/API

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"totalResults": 6,
"resource": "resourceproviders",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resource
providers",
"method": "GET",
"description": "Get all the resource providers"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resource
providers",
"method": "POST",
"description": "Create/Add a resource provider"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resource
providers/{id}",
"method": "GET",
"templated": true,
"description": "Get details of a resource provider"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resource
providers/{id}",
"method": "DELETE",
"templated": true,
"description": "Delete/Remove a resource provider"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resource
providers/{id}",
"method": "PUT",
"templated": true,
"description": "Edit a resource provider"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resource
providers/{id}/metrics",
"method": "GET",
"templated": true,
"description": "Get metrics for a resource provider"
}
]
},
{
"totalResults": 3,
"resource": "servicetemplates",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicet
emplates",
"method": "GET",
"description": "Get all service templates"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicet
emplates",
"method": "POST",
"description": "Create a service template"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicet
emplates/{id}",
"method": "PUT",
"templated": true,
"description": "Edit a service template"
}
]
},
{
"totalResults": 4,
"resource": "settings",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/settings
/general",
"method": "GET",
"description": "Get all general settings"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/settings
/general",
"method": "PUT",
"description": "Update general settings"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/settings
/service/{service-type}",
"method": "GET",
"templated": true,
"description": "Get all settings for a service type"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/settings
/service/{service-type}",
"method": "PUT",
"templated": true,
"description": "Update settings for a service type"
}
]
},
{
"totalResults": 5,
"resource": "instancesizes",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/instance
sizes",
"method": "GET",
"description": "Get all instance sizes"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/instance
sizes/service/{service-type}",
"method": "GET",
"templated": true,
"description": "Get all instance sizes for a service type"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/instance
sizes/service/{service-type}/metadata",
"method": "GET",
"templated": true,
"description": "Get metada for instance sizes for a service type"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/instance
sizes/service/{service-type}/{instance-name}",
"method": "GET",
"templated": true,
"description": "Get details of an instance size"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/instance
sizes/service/{service-type}/{instance-name}",
"method": "PUT",
"templated": true
}
]
},
{
"totalResults": 5,
"resource": "servicerequests",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicer
equests",
"method": "GET",
"description": "Get all requests"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicer
equests/{id}",
"method": "PUT",
"templated": true,
"description": "Reschedule a request"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicer
equests/{id}",
"method": "GET",
"templated": true,
"description": "Get details of a request"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicer
equests/{id}",
"method": "DELETE",
"templated": true,
"description": "Delete a request"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicer
equests",
"method": "DELETE",
"description": "Delete bulk requests"
}
]
},
{
"totalResults": 12,
"resource": "serviceinstances",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances",
"method": "GET",
"description": "Get all service instances"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/{id}",
"method": "GET",
"templated": true,
"description": "Get details of a service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/{id}/actions",
"method": "GET",
"templated": true,
"description": "Get all the actions on a service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/{id}/actions/{action-id}",
"method": "GET",
"templated": true,
"description": "Get the details of action"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/{id}/actions/{action-id}",
"method": "PUT",
"templated": true,
"description": "Perform the action on the service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/{id}/start",
"method": "PUT",
"templated": true,
"description": "Start the service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/{id}/stop",
"method": "PUT",
"templated": true,
"description": "Stop the service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/{id}/delete",
"method": "PUT",
"templated": true,
"description": "Delete the service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances",
"method": "DELETE",
"description": "Delete service instances"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/start",
"method": "PUT",
"description": "Start multiple service instances"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/stop",
"method": "PUT",
"description": "Stop multiple service instances"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicei
nstances/delete",
"method": "PUT",
"description": "Delete multiple service instances"
}
]
}
],
"goBack": "https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/API",
"totalResults": 6
}

51.4 Resource Provider for V2

A Resource Provider provides the grouping of resources for easier administration and management.

A resource provider is a composite target that represents the type of resources required to provision a service instance of a service type. For example, a Database service type needs oracle_home targets in its resource provider and a schema service type needs oracle_database, and oracle_rac targets in its resource provider.

51.4.1 Resource Providers - Collection Resource for V2

Resource Providers is a collection resource representing a Cloud Administrator's view of all the accessible Resource Provider resources. The following table describes the Resource Providers data model.

Table 51-10 Resource Providers Data Model

Field

Type

Description

Occurs

name

String

Display name of this collection resource.

1

type

String

Type of collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

count

Integer

Number of elements returned.

1

items

Collection <ResourceProvider>

List of Resource Provider resources.In case no instance exist, the items field will be empty.

1

totalCount

Integer

Total number of Resource Provider resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

51.4.2 Resource Provider - Singular Resource for V2

A Resource Provider cloud resource represents an instance of a Resource provider. The following table describes the Resource Provider data model.

Table 51-11 Resource Provider Data Model

Field

Type

Description

Occurs

name

String

A human readable name given to the Resource Provider. This field is non-editable.

1

displayName

String

Display name for the Resource Provider.

0..1

guid

String

Unique GUID of the Resource Provider that identifies the resource.

1

description

String

A brief description of the resource.

0..1

targetType

String

Target type of the Resource Provider to be created. Example: ”cfw_samplexaas_rsrc_provider” for sample xaas Resource Provider.

1

Members

Members of Resource Provider. These must be added as EM targets in advance.

1

credentials

Collection<ResourceProviderCredential>

Credentials associated with the Resource Provider.

1

placementConstraints

Collection<EntityValueHolder>

Placement constraints for a Resource Provider that allows the cloud administrator to set a maximum ceilings for resource utilization.

0..1

characteristics

Collection<EntityValueHolder>

Characteristics associated with the Resource Provider.

1

canonicalLink

URI

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

1

51.4.3 Supported Methods for Resource Provider Resource

The table below lists the supported methods for the Resource Provider singular resource.

Table 51-12 Supported Methods for Resource Provider

Request Method

Canonical Link

Description

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Returns list of Resource Providers.

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/types

Returns Resource Provider types.

POST

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Creates an instance of Resource Provider.

POST

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/filteredtargets

Returns filtered targets.

See,Table 51-13, "Filtered Targets Request Data Model" and Table 51-14, "Filtered Targets Response Data Model".

GET

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/types/{resourceprovidertype}

Returns the Resource Provider type metadata.

See,Table 51-15, "Resource Provider Metadata Data Model"

GET

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}

Returns details of the specified Resource Provider.

See,Table 51-16, "Credential Data Model" and Table 51-17, "CFW Simple Value Entity Data Model".

PUT

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}

Updates the specified Resource Provider.

DELETE

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}

Deletes the specified Resource Provider.

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceprovderid}/configuration

Returns the Resource Provider's saved configuration.

GET

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}/metrics

Returns the metric of the specified Resource Provider.

POST

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}/members

Provisions resources.

DELETE

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}/members

De-provisions resources.

POST

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}/members/metadata

Returns the provisioning metadata required to provision resources.

The table below shows the filtered targets request data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/filteredtargets in the v2 framework.

Table 51-13 Filtered Targets Request Data Model

Field

Type

Description

Occur

type

String

Type of resource provider.

1

membertargetType

String

Target type of the member.

0..1

parentResourceProviderId

String

Type of parent resource provider.

0..1

The table below shows the filtered targets response data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/filteredtargets in the v2 framework.

Table 51-14 Filtered Targets Response Data Model

Field

Type

Description

membertargetType

String

Target type of the member.

List<String>

String

List of targets.

The table below shows the resource provider metadata data model supported for the GET request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/types/{resourceprovidertype} in the v2 framework.

Table 51-15 Resource Provider Metadata Data Model

Field

Type

Description

type

String

Type of Resource provider.

memberTargetTypes

List<String>

List of member target types.

parentResourceProviderType

String

Parent resource provider type.

isInfrastructureProvider

Boolean

If infrastructure provider exists.

placementPolicyName

String

Indicates the placement policy.

credentials

List<Credential>

Indicates the credentials.

placementConstraints

List<CfwSimpleValueEntity>

Indicates the placement constraints.

characteristics

List<CfwSimpleValueEntity>

Indicates the characteristics.

The table below shows the credentials data model supported for the GET request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid} in the v2 framework.

Table 51-16 Credential Data Model

Field

Type

Description

name

String

Name of credential.

value

String

Type of credential.

The table below shows the CFW simple value entity data model supported for the GET request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid} in the v2 framework.

Table 51-17 CFW Simple Value Entity Data Model

Field

Type

Description

name

String

Name.

value

List<String>

List of strings.

51.4.4 Resource Provider REST API Examples

This section describes the operations on the Resource Provider. The following operations are covered in this section:

- Viewing all the Resource Providers

- Viewing all the Types of Resource Providers

- Creating a Resource Provider

- Creating a PaaS Infrastructure Zone Resource Provider

- Creating a Database Schema Pool

- Creating an Adapter Instance

- Filtering Resource Provider Targets

- Viewing the Resource Provider Type Metadata

- Viewing the Metadata for Creating a PaaS Infrastructure Zone

- Viewing the Metadata for Creating a Schema Pool

- Viewing Details of the Resource Provider

- Updating a Resource Provider

- Deleting a Resource Provider

- Viewing Configuration of a Resource Provider

- Viewing Metric of a Resource Provider

- Provisioning a Resource via a Sample Adapter

- De-provisioning a Resource

- Viewing the Metadata Required to Provision a Resource Provider

51.4.4.1 Viewing all the Resource Providers

A GET operation is issued to view all the Resource Providers.

Table 51-18 GET Request Configuration for Viewing all the Resource Providers

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Resource Providers",
"type": "Resource Provider",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/"
},
"cfwItems": [
{
"id": "1",
"name": "MyPaasZone",
"type": "self_service_zone",
"guid": "AC3D1D12E0A0AB1B28C377ED691E9E98",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/1"
}
},
{
"id": "2",
"name": "MyXaasProvider",
"type": "cfw_samplexaas_rsrc_provider",
"guid": "20CC7F446482F477BED8336489852A4B",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/2"
}
},
{
"id": "3",
"name": "MyXaasPool",
"type": "cfw_samplexaas_rsrc_pool",
"guid": "FEF39B5F2A0C518283F7A5E781EE8C8B",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/3"
}
},
{
"id": "4",
"name": "MyWebLogicProvider",
"type": "mwaas_zone",
"guid": "425AA08582AD7AE95D52C24662867315",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/4"
}
},
{
"id": "21",
"name": "MySchemaPool",
"type": "schaas_pool",
"guid": "446AD900E64F525149A3B1D79E0037AC",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/21"
}
}
],
"totalResults": 5
}

51.4.4.2 Viewing all the Types of Resource Providers

A GET operation is issued to view all the Types of Resource Providers.

Table 51-19 GET Request Configuration for Viewing all the Types of Resource Providers

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/types

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "Resource Provider Types",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s"
},
"cfwItems" : [ {
"type" : "cfw_samplexaas_rsrc_pool",
"displayName" : "CFW XaaS Test Rsrc Pool",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/cfw_samplexaas_rsrc_pool"
}
}, {
"type" : "cfw_samplexaas_rsrc_provider",
"displayName" : "CFW XaaS Test Rsrc Provider",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/cfw_samplexaas_rsrc_provider"
}
}, {
"type" : "cfw_samplexaas_rsrcprov_no_member",
"displayName" : "CFW XaaS Test Rsrc With No Member",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/cfw_samplexaas_rsrcprov_no_member"
}
}, {
"type" : "mwaas_zone",
"displayName" : "Middleware Pool",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/mwaas_zone"
}
}, {
"type" : "oracle_cloud_zone",
"displayName" : "Database Pool",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/oracle_cloud_zone"
}
}, {
"type" : "oracle_nimbula_site",
"displayName" : "Oracle Nimbula Site",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
5.6 67
s/oracle_nimbula_site"
}
}, {
"type" : "pdbaas_pool",
"displayName" : "Pluggable Database Pool",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/pdbaas_pool"
}
}, {
"type" : "schaas_pool",
"displayName" : "Schema Pool",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/schaas_pool"
}
}, {
"type" : "self_service_zone",
"displayName" : "PaaS Infrastructure Zone",
"canonicalLink" : {
"href" :
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/type
s/self_service_zone"
}
} ],
"totalResults" : 0
}

51.4.4.3 Creating a Resource Provider

The table below shows the POST configuration to create a Resource Provider.

Table 51-20 POST Request Configuration for Creating a Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "My Xaas Provider_200",
"characteristics": [
{
"name": "example.sysman.cfw.samplexaas.storagetype",
"value": [
"file",
"db"
]
}
],
"memberTargetType": "cfw_samplexaas_rsrc",
"members": [
"Sample7"
],
"placementConstraints": [
{
"name": "NUMBER_OF_SERVICE_INSTANCES",
"value": "20"
}
],
"type": "cfw_samplexaas_rsrc_provider",
"useExistingTarget": false,
"memberConstraints": [
{
"name": "ORACLE.SYSMAN.CFW.LOCATION",
"values": [
"us-east"
]
},
{
"name": "ORACLE.SYSMAN.SAMPLEXAAS.STORAGETYPE",
"values": [
"file"
]
}
]
}

Request method

POST

A sample of the response received is shown below.

{
"message": "Resource Provider with name \"My Xaas Provider_200\" and type
\"cfw_samplexaas_rsrc_provider\" created successfully.",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/24"
}
}

51.4.4.4 Creating a PaaS Infrastructure Zone Resource Provider

The table below shows the POST configuration to create a PaaS Infrastructure zone Resource Provider.

Table 51-21 POST Request Configuration for Creating a PaaS Infrastructure Zone Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{ "useExistingTarget" :false,
"name" :"MyPaasZone02",
"type" :"self_service_zone",
"memberTargetType" :"host",
"members": [ "myhost1.idc.oracle.com" ],
"credentials": [ { "name": "normal_credential_guid", "value": "VGSINGH" } ],
"placementConstraints": [ { "name": "MAX_CPU_UTILIZATION",
"value": [ "80" ] }, { "name": "MAX_MEMORY_ALLOCATION",
"value": [ "80" ] } ], "memberConstraints": [] }

Request method

POST

A sample of the response received is shown below.

{ "message" : "ResourceProvider with name \"MyPaasZone02\" and type \"self_service_zone\" created successfully.",
"canonicalLink" : { "href" : "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/41" }}

51.4.4.5 Creating a Database Schema Pool

The table below shows the POST configuration to create a Database Schema Pool.

Table 51-22 POST Request Configuration for Creating a Database Schema Pool

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{ "name" : "MyDBSchemaPool",
"useExistingTarget" : false,
"type" : "schaas_pool",
"description" : "MyDatabaseSchemaPool",
"memberTargetType" : "oracle_database",
"members" : [ "Oemrep_Database" ],
"parentResourceProviderId" : "1",
"credentials" : [ { "name" : "host_credential_guid", "value" : "VGSINGH" } ],
"placementConstraints" :
[ { "name" : "MAX_SERVICES", "value" : [ "100" ] }, { "name" : "MAX_CPU_USAGE", "value" : [ "0" ] },
{ "name" : "MAX_MEMORY_USAGE", "value" : [ "0" ] }, { "name" : "USE_WORKLOAD", "value" : [ "false" ] },
{ "name" : "ENFORCE_CPU", "value" : [ "false" ] } ],
"memberConstraints" : [ { "name" : "ORACLE.SYSMAN.SSA.CONFIGURATION", "value" : [ "oracle_database" ] },
{ "name" : "ORACLE.SYSMAN.CFW.PLATFORM", "value" : [ "226" ] },
{ "name" : "ORACLE.SYSMAN.CFW.VERSION", "value" : [ "11.2.0.3.0" ] } ],
"characteristics" : [ { "name" : "ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT", "value" : [ "admin@cloudcompany.com" ] },
{ "name" : "ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER", "value" : [ "GTB" ] },
{ "name" : "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT", "value" : [ "ST" ] },
{ "name" : "ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS", "value" : [ "Development" ] },
{ "name" : "ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS", "value" : [ "LOB" ] },
{ "name" : "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION", "value" : [ "EAST" ] },
{ "name" : "ORACLE.SYSMAN.CFW.ORCL_GTP_SITE", "value" : [ "LOCAL" ] } ]}

Request method

POST

A sample of the response received is shown below.

{ "message" : "ResourceProvider with name \"MyDBSchemaPool\" and type \"schaas_pool\" created successfully.",
"canonicalLink" : { "href" : "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/61" }}

51.4.4.6 Creating an Adapter Instance

The table below shows the POST configuration to create a sample Adapter Instance.

Table 51-23 POST Request Configuration for Creating an Adapter Instance

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{ name" : "MySmplVMAdapter_0409123048",
"type" : "iaas_adapter",
"placementConstraints" : [ { "name" : "MAX_VM_INSTANCES", "value" : "10" } ],
"vmadapter" : { "name" : "SAMPLEADAPTER", "paaszone" : "MyPaasZone", "connection" : { "endpoints" : [ { "purpose" : "login_url", "url" : "/login_url/example", "username" : "ssa_user", "password" : "ssa_passwd", "domain" : "domain", "custom" : [ { "name" : "CloudType", "value" : "CloudTypeVal" }, { "name" : "custom_param1", "value" : "custom_param1Val" } ] } ],
"virtualizationContainers" : [ { "name" : "Zone" } ] }, "useproxies" : [ "testnm" ], "stagingservers" : { "location" : "script/location", "credentialGuid" : "25D30ADD427484310DBC8CF6211A383B" } }}

Request method

POST

A sample of the response received is shown below.

{ "message" : "ResourceProvider with name \"MySmplVMAdapter_0409123047\" and type \"iaas_adapter\" created successfully.",
"canonicalLink" : { "href" : "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/63" }}

51.4.4.7 Filtering Resource Provider Targets

A POST operation is issued on Resource Providers collection resource to filter Resource Provider targets in the system.

Table 51-24 POST Request Configuration for Filtering Resource Provider Targets

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/filteredtargets

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"type": "self_service_zone",
"memberTargetType": "cfw_samplexaas_rsrc"
}

Request method

POST

A sample of the response received is shown below.

{
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/filt
eredtargets"
},
"targets": [
"Sample10",
"Sample1",
"Sample3",
"Sample2",
"Sample5",
"Sample4",
"Sample7",
"Sample6",
"Sample9",
"Sample8"
],
"memberTargetType": "cfw_samplexaas_rsrc"
}

51.4.4.8 Viewing the Resource Provider Type Metadata

A GET operation is issued to view the Resource Provider type metadata.

Table 51-25 GET Request Configuration for Viewing the Resource Provider Type Metadata

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/types/{resourceprovidertype}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"type" : "mwaas_zone",
"memberTargetTypes" : [ "host" ],
"parentResourceProviderType" : "self_service_zone",
"placementPolicyName" : "First_Pick",
"placementConstraints" : [ {
"name" : "MAX_INSTANCES",
"displayName" : "Maximum Number of WebLogic Servers (per host)",
"description" : "Maximum Number of WebLogic Servers (per host)",
"valueType" : "INTEGER",
"operator" : "eq"
} ],
"characteristics" : [ {
"name" : "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.BASEINSTALLDIR",
"displayName" : "Middleware Home Base Directory",
"description" : "All Oracle Homes would be created from this Base Install Directory.",
"isComposite" : false,
"possibleValues" : [ ],
"isMandatory" : false,
"isUnique" : false
}, {
"name" : "EXAMPLE.SYSMAN.CFW.ORCL_GTP_CONTACT",
"displayName" : "Contact",
"description" : null,
"isComposite" : false,
"possibleValues" : [ ],
"isMandatory" : false,
"isUnique" : true
}, {
"name" : "EXAMPLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER",
"displayName" : "Cost Center",
"description" : null,
"isComposite" : false,
"possibleValues" : [ ],
"isMandatory" : false,
"isUnique" : true
}, {
"name" : "EXAMPLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName" : "Department",
"description" : null,
"isComposite" : false,
"possibleValues" : [ ],
"isMandatory" : false,
"isUnique" : true
}, {
"name" : "EXAMPLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS",
"displayName" : "Lifecycle Status",
"description" : null,
"isComposite" : false,
"possibleValues" : [ "Development", "MissionCritical", "Production", "Stage", "Test" ],
5.15 76
"isMandatory" : false,
"isUnique" : true
}, {
"name" : "EXAMPLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS",
"displayName" : "Line of Business",
"description" : null,
"isComposite" : false,
"possibleValues" : [ ],
"isMandatory" : false,
"isUnique" : true
}, {
"name" : "EXAMPLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName" : "Location",
"description" : null,
"isComposite" : false,
"possibleValues" : [ ],
"isMandatory" : false,
"isUnique" : true
}, {
"name" : "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.ASHAREDHOME",
"displayName" : "Shared Oracle Home",
"description" : "When set to Yes, all Hosts in this MW Pool would use this Shared Home even if
other Oracle Homes present on these Hosts. Otherwise, Oracle Home on each Host will be used.",
"isComposite" : false,
"possibleValues" : [ "0", "1" ],
"isMandatory" : false,
"isUnique" : false
}, {
"name" : "EXAMPLE.SYSMAN.EMAS.MWAAS_ZONE",
"displayName" : "oracle.sysman.emas.mwaas_zone",
"description" : null,
"isComposite" : false,
"possibleValues" : [ ],
"isMandatory" : true,
"isUnique" : true
} ],
"memberConstraints" : [ {
"name" : "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.PLATFORM",
"displayName" : "Operating System and Platform",
"description" : null,
"isComposite" : false,
"possibleValues" : [ "197", "59", "212", "209", "46", "226", "912", "208", "233", "23", "267" ]
} ]
}

51.4.4.9 Viewing the Metadata for Creating a PaaS Infrastructure Zone

A GET operation is issued to view the metadata for creating a PaaS Infrastructure Zone.

Table 51-26 GET Request Configuration for Viewing the Metadata for Creating a PaaS Infrastructure Zone

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/self_service_zone

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{ "type": "self_service_zone",
"memberTargetTypes": [ "host" ],
"placementConstraints": [
{ "name": "MAX_MEMORY_ALLOCATION",
"displayName": "MaximumMemoryAllocation(%)",
"description": "MaximumMemoryAllocation constraint per host in a paas infrastructure zone",
"valueType": "INTEGER",
"operator": "eq" },
{ "name": "MAX_CPU_UTILIZATION",
"displayName": "MaximumCPUUtilization(%)",
"description": "MaximumCPU utilization(%) constraint for a physical resource
provider",
"valueType": "INTEGER",
"operator": "eq" } ],
"characteristics": [ { "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT",
"displayName": "Contact",
"description": null,
"isComposite": false,
"possibleValues": [],
"isUnique": true,
"isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER",
"displayName": "CostCenter",
"description": null,
"isComposite": false,
"possibleValues": [],
"isUnique": true,
"isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName": "Department",
"description": null,
"isComposite": false,
"possibleValues": [],
"isUnique": true,
"isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS",
"displayName": "LifecycleStatus",
"description": null,
"isComposite": false,
"possibleValues": [ "Development", "MissionCritical",
"Production", "Stage", "Test" ],
"isUnique": true,
"isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS",
"displayName": "Line ofBusiness",
"description": null,
"isComposite": false,
"possibleValues": [],
"isUnique": true,
"isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName": "Location",
"description": null,
"isComposite": false,
"possibleValues": [],
"isUnique": true,
"isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_SITE",
"displayName": "Site",
"description": null,
"isComposite": false,
"possibleValues": [],
"isUnique": true,
"isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.SELF_SERVICE_ZONE",
"displayName": "oracle.sysman.cfw.self_service_zone",
"description": null,
"isComposite": false,
"possibleValues": [],
"isUnique": true,
"isMandatory": true } ],
"credentials": [ { "name": "normal_credential_guid",
"displayName": "Host credentials",
"description": "HostCredentials to be used for provisioning in thisPaaSInfrastructureZone.The credentials provided should be of global credential type (valid across the members in the zone) and owned by the current user",
"authenticatingTargetType":
"host", "isMandatory": true } ],
"memberConstraints": []}

51.4.4.10 Viewing the Metadata for Creating a Schema Pool

A GET operation is issued to view the metadata for creating a Schema Pool.

Table 51-27 GET Request Configuration for Viewing the Metadata for Creating a Schema Pool

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/schaas_pool

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{ "type": "schaas_pool",
"memberTargetTypes": [ "oracle_database", "rac_database" ],
"parentResourceProviderType": "self_service_zone",
"placementPolicyName": "First_Pick",
"placementConstraints": [ { "name": "ENFORCE_CPU", "displayName": "EnableResourceManager forCPU", "description": "Whether to enable resource manager which can be used to createConsumerGroups.", "valueType": "BOOLEAN", "operator": "eq" },
{ "name": "MAX_CPU_USAGE", "displayName": "MaximumCPU allocation (%)", "description": "Defines the maximum limit of theCPU permissible for each database, beyond which a service request can not be placed.", "valueType": "INTEGER", "operator": "eq" },
{ "name": "USE_WORKLOAD", "displayName": "Associate workload with the request", "description": "Whether to associate workload with the request which represents the expectedCPU, memory and storage requirements for each service.", "valueType": "BOOLEAN", "operator": "eq" },
{ "name": "MAX_SERVICES", "displayName": "MaximumNumber of database services", "description": "Maximum number of services per database.", "valueType": "INTEGER", "operator": "eq" },
{ "name": "MAX_MEMORY_USAGE", "displayName": "Maximum memory allocation (%)", "description": "Memory represents the summation ofSystemGlobalArea (SGA) allocated for each database.", "valueType": "INTEGER", "operator": "eq" } ],
"characteristics": [ { "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT", "displayName": "Contact", "description": null, "isComposite": false, "possibleValues": [], "isUnique": true, "isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER", "displayName": "CostCenter", "description": null, "isComposite": false, "possibleValues": [], "isUnique": true, "isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT", "displayName": "Department", "description": null, "isComposite": false, "possibleValues": [], "isUnique": true, "isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS", "displayName": "LifecycleStatus", "description": null, "isComposite": false, "possibleValues": [ "Development", "MissionCritical", "Production", "Stage", "Test" ], "isUnique": true, "isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS", "displayName": "Line ofBusiness", "description": null, "isComposite": false, "possibleValues": [], "isUnique": true, "isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION", "displayName": "Location", "description": null, "isComposite": false, "possibleValues": [], "isUnique": true, "isMandatory": false },
{ "name": "ORACLE.SYSMAN.CFW.ORCL_GTP_SITE", "displayName": "Site", "description": null, "isComposite": false, "possibleValues": [], "isUnique": true, "isMandatory": false },
{ "name": "ORACLE.SYSMAN.SSA.SCHAAS_POOL", "displayName": "oracle.sysman.ssa.schaas_pool", "description": null, "isComposite": false, "possibleValues": [], "isUnique": true, "isMandatory": true } ],
"credentials": [ { "name": "gi_credential_guid", "displayName": "GridInfrastructureCredentials", "description": "GridInfrastructure credentials are optional.", "authenticatingTargetType": "host", "isMandatory": false },
{ "name": "database_credential_guid", "displayName": "DatabaseCredentials", "description": "The database credentials that will be used for performing database operations like schema creation.The database credentials requireSYSDBA privileges.", "authenticatingTargetType": "oracle_database", "isMandatory": false },
{ "name": "host_credential_guid", "displayName": "HostCredentials", "description": "Host credentials to be specified that will be used to perform instance creation operations.", "authenticatingTargetType": "host", "isMandatory": true } ],
"memberConstraints": [ { "name": "ORACLE.SYSMAN.SSA.CONFIGURATION", "displayName": "DatabaseConfiguration", "description": "DatabaseConfiguration of the resource provider member.", "isComposite": false, "possibleValues": [ "rac_database", "oracle_database" ] },
{ "name": "ORACLE.SYSMAN.CFW.PLATFORM", "displayName": "Platform", "description": "Platform", "isComposite": false, "possibleValues": [ "197", "59", "212", "209", "46", "226", "912", "208", "233", "23", "267" ] },
{ "name": "ORACLE.SYSMAN.CFW.VERSION", "displayName": "Version", "description": "Version", "isComposite": false, "possibleValues": [ "10.2.0.1.0", "10.2.0.2.0", "10.2.0.3.0", "10.2.0.4.0", "10.2.0.5.0", "11.1.0.6.0", "11.1.0.7.0", "11.2.0.1.0", "11.2.0.2.0", "11.2.0.3.0", "11.2.0.4.0", "12.1.0.1.0", "12.1.0.2.0" ] } ]}

51.4.4.11 Viewing Details of the Resource Provider

A GET operation is issued to view details of the Resource Provider.

Table 51-28 GET Request Configuration for Viewing Details of the Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "My Xaas Provider_001",
"type": "cfw_samplexaas_rsrc_provider",
"memberTargetType": "cfw_samplexaas_rsrc",
"members": [
"Sample2"
],
"credentials": [],
"placementConstraints": [
{
"name": "NUMBER_OF_SERVICE_INSTANCES",
"value": [
"20"
]
},
{
"name": "TEST_CONSTRAINT_WITH_STRING_VALUE",
"value": [
"\"string_value\""
]
}
],
"memberConstraints": [],
"characteristics": [
{
"name": "ORACLE.SYSMAN.SXAAS.CFW_SAMPLEXAAS_RSRC_PROVIDER",
"value": [
"C277DA7F0CB329507172B4C44E0A6DF9"
]
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/22"
}
}

51.4.4.12 Updating a Resource Provider

A PUT operation is issued on a Resource Provider resource to update an existing instance of Resource Provider in the system.

Table 51-29 PUT Request Configuration for Updating a Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"placementConstraints": [{"name": " NUMBER_OF_SERVICE_INSTANCES ", "value":
"70"}],
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK
{
message: "Resource Provider with ID "121" updated successfully."
}

51.4.4.13 Deleting a Resource Provider

The DELETE request configuration is shown in the table below.

Table 51-30 DELETE Request Configuration for Deleting a Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

Status 200 OK
{
"message":"Resource Provider with ID \"21\" deleted successfully.”
}

51.4.4.14 Viewing Configuration of a Resource Provider

The GET request configuration to view the configuration of a resource provider is shown below.

Table 51-31 GET Request Configuration for Viewing Configuration of a Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/4/configurations

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"hosts" : {
"configurations" : [ {
"name" : "vm_networks",
"type" : "VECTOR",
"description" : "Network.",
"displayName" : "vm_networks",
"values" : [ ],
"required" : false,
"secret" : false
}, {
"name" : "platform",
"type" : "STRING",
"value" : "",
"displayName" : "platform",
"required" : false,
"secret" : false
}, {
"name" : "hostPrefix",
"type" : "STRING",
"description" : "Host Name Prefix.",
"value" : "rest_",
"displayName" : "Host Name Prefix",
"required" : false,
"secret" : false
}, {
"name" : "postInstallScript",
"type" : "STRING",
"value" : "",
"displayName" : "postInstallScript",
"required" : false,
"secret" : false
}, {
"name" : "cluster_storages",
"type" : "VECTOR",
"description" : "Cluster Storage.",
"displayName" : "cluster_storages",
"values" : [ ],
"required" : false,
"secret" : false
}, {
"name" : "agent_base",
"type" : "STRING",
"description" : "Agent Install Base Directory Location",
"value" : "bsl",
"displayName" : "Installation Base Directory",
"required" : false,
"secret" : false
}, {
"name" : "cluster_networks",
"type" : "VECTOR",
"description" : "Cluster Network",
"displayName" : "cluster_networks",
"values" : [ ],
"required" : false,
"secret" : false
}, {
"name" : "resourceProviderId",
"type" : "STRING",
"value" : "1",
"displayName" : "resourceProviderId",
"required" : false,
"secret" : false
}, {
"name" : "postInstallScriptOnOMS",
"type" : "STRING",
"value" : "",
"displayName" : "postInstallScriptOnOMS",
"required" : false,
"secret" : false
}, {
"name" : "agent_install_creds",
"type" : "STRING",
"description" : "Agent Port",
"value" : "15513B9C0C6E4EB9E053CE74B10A171B",
"displayName" : "Named Credential",
"required" : false,
"secret" : false
}, {
"name" : "priv_delegation_setting",
"type" : "STRING",
"value" : "/usr/bin/sudo -u %RUNAS% %COMMAND%",
"displayName" : "priv_delegation_setting",
"required" : false,
"secret" : false
}, {
"name" : "vm_instance_sizes",
"type" : "VECTOR",
"description" : "Instance Size.",
"displayName" : "vm_instance_sizes",
"values" : [ "EXTRA_LARGE" ],
"required" : false,
"secret" : false
}, {
"name" : "agent_port",
"type" : "STRING",
"description" : "Agent Port",
"value" : "3872",
"displayName" : "Port",
"required" : false,
"secret" : false
}, {
"name" : "preInstallScript",
"type" : "STRING",
"value" : "",
"displayName" : "preInstallScript",
"required" : false,
"secret" : false
}, {
"name" : "custom_params",
"type" : "VECTOR",
"description" : "Custom parameters for VM configuration.",
"displayName" : "custom_params",
"values" : [ ],
"required" : false,
"secret" : false
}, {
"name" : "vm_server_templates",
"type" : "VECTOR",
"description" : "Server Template.",
"displayName" : "vm_server_templates",
"values" : [ "paas-tmpl" ],
"required" : false,
"secret" : false
}, {
"name" : "preInstallScriptOnOMS",
"type" : "STRING",
"value" : "",
"displayName" : "preInstallScriptOnOMS",
"required" : false,
"secret" : false
}, {
"name" : "numberOfHost",
"type" : "STRING",
"description" : "Number Of Host",
"value" : "3",
"displayName" : "Number Of Host",
"required" : false,
"secret" : false
}, {
"name" : "vm_storages",
"type" : "VECTOR",
"description" : "Storage.",
"displayName" : "vm_storages",
"values" : [ ],
"required" : false,
"secret" : false
}, {
"name" : "runPreInstallScriptAsRoot",
"type" : "STRING",
"value" : "",
"displayName" : "runPreInstallScriptAsRoot",
"required" : false,
"secret" : false
}, {
"name" : "runPostInstallScriptAsRoot",
"type" : "STRING",
"value" : "",
"displayName" : "runPostInstallScriptAsRoot",
"required" : false,
"secret" : false
} ]
},
"swprovisioning" : {
"configurations" : [ {
"name" : "resourceProviderId",
"type" : "STRING",
"value" : "1",
"displayName" : "resourceProviderId",
"required" : false,
"secret" : false
} ]
}
}

51.4.4.15 Viewing Metric of a Resource Provider

The GET request configuration to view the metric of a resource provider is shown below.

Table 51-32 GET Request Configuration for Viewing Metric of a Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/21/metrics

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
count: "0"
hasMore: "false"
limit: "0"
offset: "0"
totalResults: "0"
metricColumns: [6]
0: {
name: "services"
}-
1: {
name: "sample"
}-
2: {
name: "memory"
}-
3: {
name: "storageStatus"
}-
4: {
name: "cpu"
}-
5: {
name: "storage"
}-
}

51.4.4.16 Provisioning a Resource via a Sample Adapter

The table below shows the POST configuration to provision a resource.

Table 51-33 POST Request Configuration for Provisioning a Resource via a Sample Adapter

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}/members

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{ "saveOnly" : false,
"setDefault" : true,
"hosts" : { "templateGuid" : "13462942A66F0B2DE053CE74B10AFCC2",
"configurations" : [ { "name" : "hostPrefix", "value" : "rest_" },
{ "name" : "numberOfHost", "value" : "5" },
{ "name" : "agent_install_creds", "value" : "131EFD3114423E7AE053CE74B10A5A76" },
{ "name" : "agent_base", "value" : "bsl" },
{ "name" : "priv_delegation_setting", "value" : "/usr/bin/sudo -u %RUNAS% %COMMAND%" },
{ "name" : "agent_port", "value" : "3872" },
{ "name" : "priv_delegation_setting_template_name", "value" : "" },
{ "name" : "network_purpose_vm", "subvalues" : [ { "name" : "Public", "value" : "192.168.1.0/24" } ] },
{ "name" : "storage_purpose_cluster", "subvalues" : [ { "name" : "Shared", "value" : "smisko_0" } ] },
{ "name" : "storage_purpose_vm", "subvalues" : [ { "name" : "Dedicated", "value" : "smisko_0" } ] },
{ "name" : "network_purpose_cluster", "subvalues" : [ { "name" : "ClusterPrivate", "value" : "192.168.1.0/24" },
{ "name" : "ClusterPublic", "value" : "192.168.1.0/24" } ] },
{ "name" : "vm_instance_sizes", "values" : [ "EXTRA_LARGE" ] },
{ "name" : "vm_server_templates", "values" : [ "paas-tmpl" ] } ] },
"swprovisioning" : { "configurations" : [ { "name" : "param01", "value" : "param_01_val" }, { "name" : "param01", "value" : "param_02_val" } ] }}

Request method

POST

A sample of the response received is shown below.

{ "status" : "SCHEDULED", "details" : "134821EBDA7472BFE053CE74B10A11B8"}

51.4.4.17 De-provisioning a Resource

The DELETE request configuration for de-provisioning a resource is shown in the table below.

Table 51-34 DELETE Request Configuration for De-provisioning a Resource

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/{resourceproviderid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{"members":["rest_-bf51c965-fff0-400c-a982-2c71b2afb150","rest_-13ce4c70-e1b4-4bd9-8b43-6952d619e674"]}

Request method

DELETE

A sample of the response received is shown below.

{ "details": "133C8EC6EAC86122E053CE74B10A4DEF", "status": "SCHEDULED"}

51.4.4.18 Viewing the Metadata Required to Provision a Resource Provider

The POST request configuration to view the metadata required to provision a resource provider is shown below.

Table 51-35 POST Request Configuration for Viewing the Metadata Required to Provision a Resource Provider

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/4/members/metadata

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{ "hosts" : { "templateGuid" : "1552104D74F47F29E053CE74B10A08D9" }}

Request method

POST

A sample of the response received is shown below.

{
"hosts" : {
"templateGuid" : "1552104D74F47F29E053CE74B10A08D9",
"configurations" : [ {
"name" : "platform",
"type" : "STRING",
"value" : "",
"displayName" : "platform",
"required" : false,
"secret" : false
}, {
"name" : "hostPrefix",
"type" : "STRING",
"description" : "Host Name Prefix.",
"value" : "MySmplAdptr0505013358",
"displayName" : "Host Name Prefix",
"required" : false,
"secret" : false
}, {
"name" : "network_purpose_vm",
"type" : "VECTOR",
"description" : "Purpose Network Instance",
"displayName" : "network_purpose_vm",
"required" : false,
"secret" : false,
"possibleValues" : [ {
"value" : "192.168.1.0/25",
"displayName" : "192.168.1.0/25"
}, {
"value" : "192.168.1.0/24",
"displayName" : "192.168.1.0/24"
}, {
"value" : "192.168.1.0/26",
"displayName" : "192.168.1.0/26"
}, {
"value" : "192.168.1.0/27",
"displayName" : "192.168.1.0/27"
} ],
"subvalues" : [ {
"name" : "Public",
"type" : "STRING",
"displayName" : "Public",
"required" : true,
"secret" : false
} ]
}, {
"name" : "postInstallScript",
"type" : "STRING",
"value" : "",
"displayName" : "postInstallScript",
"required" : false,
"secret" : false
}, {
"name" : "storage_purpose_cluster",
"type" : "VECTOR",
"description" : "Purpose Storage Cluster",
"displayName" : "storage_purpose_cluster",
"required" : false,
"secret" : false,
"possibleValues" : [ {
"value" : "smisko_3",
"displayName" : "smisko_3"
}, {
"value" : "smisko_2",
"displayName" : "smisko_2"
}, {
"value" : "smisko_1",
"displayName" : "smisko_1"
}, {
"value" : "smisko_0",
"displayName" : "smisko_0"
} ],
"subvalues" : [ ]
}, {
"name" : "network_purpose_cluster",
"type" : "VECTOR",
"description" : "Purpose Network Cluster",
"displayName" : "network_purpose_cluster",
"required" : false,
"secret" : false,
"possibleValues" : [ {
"value" : "192.168.1.0/25",
"displayName" : "192.168.1.0/25"
}, {
"value" : "192.168.1.0/24",
"displayName" : "192.168.1.0/24"
}, {
"value" : "192.168.1.0/26",
"displayName" : "192.168.1.0/26"
}, {
"value" : "192.168.1.0/27",
"displayName" : "192.168.1.0/27"
} ],
"subvalues" : [ ]
}, {
"name" : "agent_base",
"type" : "STRING",
"description" : "Agent Install Base Directory Location",
"value" : "/scratch/oracle/",
"displayName" : "Installation Base Directory",
"required" : false,
"secret" : false
}, {
"name" : "resourceProviderId",
"type" : "STRING",
"value" : "1",
"displayName" : "resourceProviderId",
"required" : false,
"secret" : false
}, {
"name" : "postInstallScriptOnOMS",
"type" : "STRING",
"value" : "",
"displayName" : "postInstallScriptOnOMS",
"required" : false,
"secret" : false
}, {
"name" : "agent_install_creds",
"type" : "STRING",
"description" : "Agent Port",
"value" : "15513B9C0C6E4EB9E053CE74B10A171B",
"displayName" : "Named Credential",
"required" : false,
"secret" : false
}, {
"name" : "storage_purpose_vm",
"type" : "VECTOR",
"description" : "Purpose Storage Instance",
"displayName" : "storage_purpose_vm",
"required" : false,
"secret" : false,
"possibleValues" : [ {
"value" : "smisko_3",
"displayName" : "smisko_3"
}, {
"value" : "smisko_2",
"displayName" : "smisko_2"
}, {
"value" : "smisko_1",
"displayName" : "smisko_1"
}, {
"value" : "smisko_0",
"displayName" : "smisko_0"
} ],
"subvalues" : [ {
"name" : "Dedicated",
"type" : "STRING",
"displayName" : "Dedicated",
"required" : true,
"secret" : false
} ]
}, {
"name" : "priv_delegation_setting",
"type" : "STRING",
"value" : "/usr/bin/sudo -u %RUNAS% %COMMAND%",
"displayName" : "priv_delegation_setting",
"required" : false,
"secret" : false
}, {
"name" : "vm_instance_sizes",
"type" : "VECTOR",
"description" : "Instance Size.",
"displayName" : "vm_instance_sizes",
"values" : [ "EXTRA_LARGE", "TINY", "SMALL" ],
"required" : false,
"secret" : false,
"possibleValues" : [ {
"value" : "TINY",
"displayName" : "TINY"
}, {
"value" : "EXTRA_LARGE",
"displayName" : "EXTRA_LARGE"
}, {
"value" : "SMALL",
"displayName" : "SMALL"
} ]
}, {
"name" : "agent_port",
"type" : "STRING",
"description" : "Agent Port",
"value" : "3872",
"displayName" : "Port",
"required" : false,
"secret" : false
}, {
"name" : "preInstallScript",
"type" : "STRING",
"value" : "",
"displayName" : "preInstallScript",
"required" : false,
"secret" : false
}, {
"name" : "vm_server_templates",
"type" : "VECTOR",
"description" : "Server Template.",
"displayName" : "vm_server_templates",
"values" : [ "paas-tmpl", "paas-tmpl2" ],
"required" : false,
"secret" : false,
"possibleValues" : [ {
"value" : "paas-tmpl",
"displayName" : "paas-tmpl"
}, {
"value" : "paas-tmpl2",
"displayName" : "paas-tmpl2"
} ]
}, {
"name" : "preInstallScriptOnOMS",
"type" : "STRING",
"value" : "",
"displayName" : "preInstallScriptOnOMS",
"required" : false,
"secret" : false
}, {
"name" : "numberOfHost",
"type" : "STRING",
"description" : "Number Of Host",
"value" : "",
"displayName" : "Number Of Host",
"required" : false,
"secret" : false
}, {
"name" : "runPreInstallScriptAsRoot",
"type" : "STRING",
"value" : "",
"displayName" : "runPreInstallScriptAsRoot",
"required" : false,
"secret" : false
}, {
"name" : "runPostInstallScriptAsRoot",
"type" : "STRING",
"value" : "",
"displayName" : "runPostInstallScriptAsRoot",
"required" : false,
"secret" : false
} ]
},
"swprovisioning" : {
"configurations" : [ ]
}
}

51.5 Service Templates - Collection Resource for V2

Service Templates is a collection resource representing an SSA administrator's view of all the accessible Service Template resources. The following table describes the Service Template data model.

Table 51-36 Service Templates Collection Resource Data Model

Field

Type

Description

Occurs

name

String

Display name of the collection resource.

1

type

String

Indicates the type of the collection resource.

0..1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

count

Integer

Number of elements returned.

1

items

Collection <ServiceTemplate>

List of Service Template resources In case no instances exist, items field is empty.

1

totalCount

Integer

Total number of Service Template resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

51.5.1 Supported Operations

The table below shows the supported operations for Service Templates.

Table 51-37 Supported Methods for Service Templates

Request Method

Canonical Link

Description

GET

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

Returns list of Service Templates.

GET

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes

Returns Service Template types.

See Table 51-38, "SRVC Template Type Data Model".

POST

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

Returns metadata required for creation of a Service Template.

See:

- Table 51-39, "SRVC Template Metadata Request Data Model"

- Table 51-40, "SRVC Template Metadata Response Data Model"

- Table 51-41, "Payload Data Model"

- Table 51-42, "Characteristic Data Model"

- Table 51-43, "Target Type Data Model"

POST

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/resourceproviders

Returns Resource Provider characteristics required for creation of a Service Template.

See Table 51-44, "SrvcTemplateRscPrvdrRequest Data Model" and Table 51-45, "SrvcTemplateRscPrvdr Response Data Model".

POST

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/configurations

Returns configurations required for creation of a Service Template.

See Table 51-46, "SrvcTemplateConfigRequest Data Model".

POST

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

Creates a Service Template.

PUT

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}

Updates the Service Template.

GET

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}

Returns details of specified Service Template.

GET

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}/configurations

Returns configuration details of the specified Service Template.

DELETE

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}

Deletes the specified Service Template.

The table below shows the SRVC template type data model supported for the GET request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes in the v2 framework.

Table 51-38 SRVC Template Type Data Model

Field

Type

Description

serviceTemplateTypeId

String

Id of service template type.

serviceType

String

Name of service type.

name

String

Name of service template type.

displayName

String

Display name of service template type

The table below shows the SRVC template metadata request data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/metadata in the v2 framework.

Table 51-39 SRVC Template Metadata Request Data Model

Field

Type

Description

Occurs

serviceTemplateTypeId

String

Id of service template type.

1

serviceType

String

Name of service type.

1

The table below shows the SRVC template metadata response data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/metadata in the v2 framework.

Table 51-40 SRVC Template Metadata Response Data Model

Field

Type

Description

serviceTemplateTypeId

String

Id of service template type.

rscProvAssocOption

List<String>

Resource provider association.

payloads

List<Payload>

Payloads of service template.

selectedExecutableName

CfwValueDescriptor

Service template type details.

characteristics

List<Characteristic>

List of characteristics of service template.

The table below shows the payload data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/metadata in the v2 framework.

Table 51-41 Payload Data Model

Field

Type

Description

name

String

Name of payload.

value

List<String>

List of values.

required

Boolean

Is required or not.

The table below shows the characteristic data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/metadata in the v2 framework.

Table 51-42 Characteristic Data Model

Field

Type

Description

name

String

Name of characteristic.

displayName

String

Display name of characteristic.

values

List<String>

List of values.

required

Boolean

Is required or not.

editable

Boolean

Is editable or not.

visible

Boolean

Is visible or not.

targetType

TargetType

If characteristic is Target Characteristic, this field contains target type details.

The table below shows the target type data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/metadata in the v2 framework.

Table 51-43 Target Type Data Model

Field

Type

Description

targetType

String

Target Type.

targetTypeName

String

Name of target type.

parentTargetType

String

Parent target type.

parentTargetTypeName

String

Name of parent target type.

The table below shows the SrvcTemplateRscPrvdrRequest data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/resourceproviders in the v2 framework.

Table 51-44 SrvcTemplateRscPrvdrRequest Data Model

Field

Type

Description

Occurs

serviceTemplateTypeId

String

Id of Service template type.

1

serviceType

String

Name of service type.

1

rscProvAssocOption

List<String>

Resource provider association.

1

payloads

List<Payload>>

Payloads of service template.

0..1

characteristics

List<Characteristic>>

Characteristics of service template.

0..1

The table below shows the SrvcTemplateRscPrvdr response data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/resourceproviders in the v2 framework.

Table 51-45 SrvcTemplateRscPrvdr Response Data Model

Field

Type

Description

lookupCharacteristics

List<SrvcTemplatePurpose>

List of purpose characteritics.

The table below shows the SrvcTemplateConfigRequest data model supported for the POST request on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/configurations in the v2 framework.

Table 51-46 SrvcTemplateConfigRequest Data Model

Field

Type

Description

Occurs

serviceTemplateTypeId

String

Id of Service template type.

1

serviceType

String

Name of service type.

1

rscProvAssocOption

List<String>

Resource provider association.

1

payloads

List<Payload>>

Payloads of service template.

0..1

characteristics

List<Characteristic>>

Characteristics of service template.

0..1

resourceProvider

SrvcTemplateRscprvdr

Resource provider.

1

51.5.2 Service Templates REST API Examples for V2

This section describes the REST API operations supported on the Service Templates resource. The following operations are explained:

- Viewing all the Service Templates

- Viewing all the Service Template Types

- Viewing the Metadata Required for Creating a Service Template

- Viewing the Resource Provider Characteristics Required for Creating a Service Template

- Viewing Configurations Required for Creating a Service Template

- Creating a Service Template

- Updating a Service Template

- Viewing Details of a Specific Service Template

- Viewing Configuration Details of a Specific Service Template

- Deleting a Service Template

51.5.2.1 Viewing all the Service Templates

A GET operation is issued to view all the Service Templates.

Table 51-47 GET Request Configuration for Viewing all the Service Templates

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Service Templates",
"type": "Service Template",
"totalResults": 3,
"cfwItems": [
{
"id": "1",
"name": "Orchestration",
"guid": "06F28ABA2E0178CBE053CE74B10AAC2D",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/1"
},
"description": "Create a set of Oracle VM instances with customized configuration for multitier
applications"
},
{
"id": "2",
"name": "Simple Orchestration",
"guid": "06F28ABA2E0478CBE053CE74B10AAC2D",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/2"
},
"description": "Create one or more Oracle VM instances with default configuration and minimum
inputs"
},
{
"id": "3",
"name": "VM Instance",
"guid": "06F28ABA2E0778CBE053CE74B10AAC2D",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/3"
},
"description": "Create an Oracle VM Instance"
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/"
}
}

51.5.2.2 Viewing all the Service Template Types

A GET operation is issued to view all the Service Template types.

Table 51-48 GET Request Configuration for Viewing all the Service Template Types

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

[
{
"name": "SCHEMA",
"displayName": "SchaaS Create Executable",
"serviceType": "SCHEMA",
"serviceTemplateTypeId": "61"
},
{
"name": "MW_SOAAAS_CREATE_INSTANCE",
"displayName": "SOAaaS Orchestration",
"serviceType": "SOA_SERVICE",
"serviceTemplateTypeId": "24"
},
{
"name": "MW_WLAAS_EXECUTABLE_CREATE",
"displayName": "WebLogic Service - Physical",
"serviceType": "WLAAS",
"serviceTemplateTypeId": "28"
},
{
"name": "MW_OSBAAS_CREATE_INSTANCE",
"displayName": "OSBaaS Orchestration",
"serviceType": "OSB_SERVICE",
"serviceTemplateTypeId": "21"
},
{
"name": "DB",
"displayName": "DbaaS Create Executable",
"serviceType": "DB",
"serviceTemplateTypeId": "41"
},
{
"name": "PDB",
"displayName": "PdbaaS Create Executable",
"serviceType": "PDB",
"serviceTemplateTypeId": "54"
},
{
"name": "ORACLE_NIMBULA_CREATE_SIMPLE_ORCHESTRATION_EXECUTABLE",
"displayName": "Simple Orchestration Custom Service Template",
"serviceType": "ORACLE_NIMBULA_ORCHESTRATION_SERVICE",
"serviceTemplateTypeId": "3"
},
{
"name": "ORACLE_NIMBULA_CREATE_ORCHESTRATION_EXECUTABLE",
"displayName": "Orchestration Custom Service Template",
"serviceType": "ORACLE_NIMBULA_ORCHESTRATION_SERVICE",
"serviceTemplateTypeId": "1"
},
{
"name": "ORACLE_NIMBULA_CREATE_VIRTUAL_MACHINE_EXECUTABLE",
"displayName": "ORACLE_NIMBULA_CREATE_VIRTUAL_MACHINE_EXECUTABLE",
"serviceType": "ORACLE_NIMBULA_VIRTUAL_MACHINE_SERVICE",
"serviceTemplateTypeId": "11"
}
]

51.5.2.3 Viewing the Metadata Required for Creating a Service Template

A POST operation is issued to view the metadata required for creating a Service Template.

Table 51-49 POST Request Configuration for Viewing the Metadata Required for Creating a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"serviceType": "WLAAS",
"serviceTemplateTypeId": "28"
}

Request method

POST

A sample of the response received is shown below.

{
"serviceType": "WLAAS",
"serviceTemplateTypeId": "28",
"rscProvAssocOption": [
"byRscLookupChars"
],
"selectedExecutableName": {
"name": "MW_WLAAS_EXECUTABLE_CREATE",
"type": "STRING",
"value": "MwaaS_Setup_Domain_Deploy_App",
"defaultValue": "MwaaS_Setup_Domain_Deploy_App",
"required": true,
"secret": false
},
"payloads": [
{
"name": "DEFAULT_PAYLOAD",
"value": "<user_input>",
"required": true
}
],
"characteristics": [
{
"name": "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.ENABLEHA",
"displayName": "Distribute WebLogic Servers on Available Hosts?",
"values": [
"No",
"Yes"
],
"required": false,
"visible": true,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.ENABLELBR",
"displayName": "Enable Load Balancer?",
"values": [
"No",
"Yes"
],
"required": false,
"visible": true,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.EXPOSEADMINURLS",
"displayName": "Expose WebLogic Admin Console and Fusion Middleware Control to SSA
User?",
"values": [
"No",
"Yes"
],
"required": false,
"visible": true,
"editable": true
}
]
}

51.5.2.4 Viewing the Resource Provider Characteristics Required for Creating a Service Template

A POST operation is issued to view the Resource Provider characteristics required for creating a Service Template.

Table 51-50 POST Request Configuration for Viewing the Resource Provider Characteristics Required for Creating a Service Template

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"serviceType": "WLAAS",
"serviceTemplateTypeId": "28",
"rscProvAssocOption": [
"byRscLookupChars"
],
"payloads": [
{
"name": "DEFAULT_PAYLOAD",
"value": "test"
}
],
"characteristics": [
{
"name": "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.ENABLEHA",
"value":"Yes"
},
{
"name": "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.ENABLELBR",
"value":"Yes"
},
{
"name": "EXAMPLE.SYSMAN.EMAS.MWC.WLAAS.EXPOSEADMINURLS",
"value": "Yes"
}
]
}

Request method

POST

A sample of the response received is shown below.

{
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "EXAMPLE.SYSMAN.EMAS.MWAAS_ZONE",
"displayName": "example.sysman.emas.mwaas_zone",
"targetType": {
"targetType": "mwaas_zone",
"parentTargetType": "self_service_zone",
"targetTypeName": "Middleware Pool",
"parentTargetTypeName": "PaaS Infrastructure Zone"
}
}
],
"purposeId": 1
}
]
}

51.5.2.5 Viewing Configurations Required for Creating a Service Template

A POST operation is issued to view the configurations required for creating a Service Template.

Table 51-51 POST Request Configuration for Viewing Configurations Required for Creating a Service Template

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/configurations

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"serviceType": "WLAAS",
"serviceTemplateTypeId": "28",
"rscProvAssocOption": [
"byRscLookupChars"
],
"payloads": [
{
"name": "DEFAULT_PAYLOAD",
"value": "test"
}
],
"characteristics": [
{
"name": "ORACLE.SYSMAN.EMAS.MWC.WLAAS.ENABLEHA",
"value": "Yes"
},
{
"name": "ORACLE.SYSMAN.EMAS.MWC.WLAAS.ENABLELBR",
"value": "Yes"
},
{
"name": "ORACLE.SYSMAN.EMAS.MWC.WLAAS.EXPOSEADMINURLS",
"value": "Yes"
}
],
"resourceprovider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.EMAS.MWAAS_ZONE",
"value": "425AA08582AD7AE95D52C24662867315"
}
],
"purposeId": 1
}
]
}
}

Request method

POST

A sample of the response received is shown below.

[
{
"name": "agentInstallUserPwd",
"type": "STRING",
"description": "Agent Install User Password to override",
"required": false,
"secret": true
},
{
"name": "hostForResourceProvisioningScript",
"type": "STRING",
"description": "Resource management script will be executed on this host.",
"required": false,
"secret": false
},
{
"name": "portRangeStart",
"type": "STRING",
"description": "Lower Bound for choosing Free Ports",
"required": false,
"secret": false
},
{
"name": "wlsUserPassword",
"type": "STRING",
"description": "Password for the WebLogic Server",
"required": false,
"secret": true
},
{
"name": "rootPwd",
"type": "STRING",
"description": "Root Password to override",
"required": false,
"secret": true
},
{
"name": "wlsUserName",
"type": "STRING",
"description": "Username for the WebLogic Server",
"required": false,
"secret": false
},
{
"name": "wlsUserPassword2",
"type": "STRING",
"description": "Re-enter Password for the WebLogic Server",
"required": false,
"secret": true
},
{
"name": "namedHostCredForVirtualFlow",
"type": "STRING",
"description": "Enter name of the host credential to use for provisioning operations",
"required": false,
"secret": false
},
{
"name": "startupArguments",
"type": "STRING",
"description": "Enter memory and java arguments to start the server. Example: -Xms1280m -
Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m -
Dweblogic.security.SSL.ignoreHostnameVerification=true",
"required": false,
"secret": false
},
{
"name": "namedCredforHostList",
"type": "STRING",
"description": "This will be used for the above hosts",
"required": false,
"secret": false
},
{
"name": "serviceName",
"type": "STRING",
"description": "Service Instance Name",
"required": true,
"secret": true
},
{
"name": "cpuUsagePerInstance",
"type": "STRING",
"description": "CPU required by each additional instance in percentage",
"required": false,
"secret": false
},
{
"name": "portRangeEnd",
"type": "STRING",
"description": "Upper Bound for choosing Free Ports",
"required": false,
"secret": false
},
{
"name": "memoryUsagePerInstance",
"type": "STRING",
"description": "Memory required by each additional instance in GB",
"required": false,
"secret": false
},
{
"name": "hostListForScripts",
"type": "STRING",
"description": "Use ',' to separate multiple target hosts",
"required": false,
"secret": false
},
{
"name": "topology",
"type": "STRING",
"description": "For physical provisioning it is auto populated based on the profile
selected. For virtual provisioning it is defaulted to 'Single Cluster'. Please change based on the
actual topology of the assembly. ",
"required": false,
"secret": false
},
{
"name": "namedCredforRsrcProvHost",
"type": "STRING",
"description": "Enter the EM Named Credentials to be used for the above host in the \"Host
for Executing Resource Management Script\" field.",
"required": false,
"secret": false
},
{
"name": "isScriptExecuteOnAdminServer",
"type": "STRING",
"description": "Choose 'Yes' to execute scripts on Admin Server host besides the hosts
entered above",
"required": false,
"secret": false
}
]

51.5.2.6 Creating a Service Template

A POST operation is issued to create a Service template.

Table 51-52 POST Request Configuration for Creating a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "SampleXaas Template",
"description": "Xaas template",
"serviceType": "CFW_SAMPLEXAAS_SERVICE",
"serviceTemplateTypeId": "82",
"rscProvAssocOption": [
"byRscLookupChars"
],
"roles": [
"SSA01",
"SSA02",
"SSA03",
"SSA04",
"SSA05"
],
"characteristics": [
{
"name": "ORACLE.SYSMAN.SAMPLEXAAS.SAMPLEINSTANCETYPE",
"values": [
"Cfw_Xaas_DB_Service"
]
},
{
"name": "ORACLE.SYSMAN.SAMPLEXAAS.STORAGE_OP_BW",
"values": [
"10"
]
}
],
"resourceproviders": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.SAMPLEXAAS.STORAGETYPE",
"displayName": "storage_type",
"value": "db"
}
],
"purposeId": 1
}
]
},
"configurations": [
{
"name": "service_instance_name",
"value": "xaas_inst_name"
},
{
"name": "service_type",
"value": "CFW_SAMPLEXAAS_SERVICE"
},
{
4.22 48
"name": "service_param2",
"value": "p2"
},
{
"name": "service_param1",
"value": "p1"
},
{
"name": "storage_type",
"value": "file"
}
]
}

Request method

POST

A sample of the response received is shown below.

Status 200 OK
{"message": "Service template with id \"0780653DF4C64F83E053CE74B10ABD91\" created successfully."
}

51.5.2.7 Updating a Service Template

A PUT operation is issued to update a Service template.

Table 51-53 PUT Request Configuration for Updating a Service Template

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"displayName": "updatedDisplayName",
"description": "updated via API",
"rolesToAdd": [
"SSA04",
"SSA05",
"SSA06",
],
"rolesToRemove": [
"SSA01",
"SSA02",
"SSA03",
],
"configurations": [
{
"name": "service_instance_name",
"value": "inst_name_${tstmp}"
},
{
"name": "service_type",
"value": "CFW_SAMPLEXAAS_SERVICE"
},
{
"name": "service_param2",
"value": "sp2_up"
},
{
"name": "service_param1",
"value": "sp1_up"
},
{
"name": "storage_type",
"value": "file_up"
}
]
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK
{
"message": " Service template with id "1" updated successfully.”
}

51.5.2.8 Viewing Details of a Specific Service Template

A GET operation is issued to view details of a specific Service Template.

Table 51-54 GET Request Configuration for Viewing Details of a Specific Service Template

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"id": "63",
"guid": "0780653DF4C94F83E053CE74B10ABD91",
"name": "SampleXaas Template",
"displayName": "SampleXaas Template",
"description": "Xaas template",
"serviceType": "CFW_SAMPLEXAAS_SERVICE",
"serviceTemplateTypeId": "82",
"createdOn": "2014-11-10T16:52:18Z",
"createdBy": "SYSMAN",
"modifiedOn": "2014-11-10T16:52:18Z",
"owner": "SYSMAN",
"lastModified": "2014-11-10T16:52:18Z",
"characteristics": [
{
"name": "EXAMPLE.SYSMAN.CFW.ORCL_GTP_CONTACT",
"displayName": "Contact",
"values": [],
"required": false,
"visible": false,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER",
"displayName": "Cost Center",
"values": [],
"required": false,
"visible": false,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT",
"displayName": "Department",
"values": [],
"required": false,
"visible": false,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.SAMPLEXAAS.SAMPLEINSTANCETYPE",
"displayName": "Instance Type",
"values": [
"Cfw_Xaas_DB_Service"
],
"required": true,
"visible": true,
"editable": false
},
{
"name": "EXAMPLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS",
"displayName": "Lifecycle Status",
"values": [
"Development",
"MissionCritical",
"Production",
"Stage",
"Test"
],
"required": false,
"visible": false,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS",
"displayName": "Line of Business",
"values": [],
"required": false,
"visible": false,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.CFW.ORCL_GTP_LOCATION",
"displayName": "Location",
"values": [],
"required": false,
"visible": false,
"editable": true
},
{
"name": "EXAMPLE.SYSMAN.SAMPLEXAAS.STORAGE_OP_BW",
"displayName": "Operation Bandwidth",
"values": [
"10"
],
"required": false,
"visible": true,
"editable": true
}
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "EXAMPLE.SYSMAN.SAMPLEXAAS.STORAGETYPE",
"displayName": "storage_type",
"values": [
"db"
]
}
],
"purposeId": 1
}
]
},
"configurations": [
{
"name": "service_instance_name",
"type": "STRING",
"description": "Specify Instance Name",
"value": "xaas_inst_name",
"required": true,
"secret": false
},
{
"name": "service_type",
"type": "STRING",
"description": "Specify Service type",
"value": "CFW_SAMPLEXAAS_SERVICE",
"required": true,
"secret": false
},
{
"name": "service_param2",
"type": "STRING",
"description": "Service param 2",
"value": "p2",
"required": false,
"secret": false
},
{
"name": "service_param1",
"type": "STRING",
"description": "Service param 1",
"value": "p1",
"required": false,
"secret": false
},
{
"name": "storage_type",
"type": "STRING",
"description": "Specify Storage type",
"value": "file",
"required": true,
"secret": false
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/63"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/63"
}
}

51.5.2.9 Viewing Configuration Details of a Specific Service Template

A GET operation is issued to view the configuration details of a specific Service Template.

Table 51-55 GET Request Configuration for Viewing Configuration Details of a Specific Service Template

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}/configurations

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

[
{
"name": "service_instance_name",
"type": "STRING",
"description": "Specify Instance Name",
"value": "xaas_inst_name",
"required": true,
"secret": false
},
{
"name": "service_type",
"type": "STRING",
"description": "Specify Service type",
"value": "CFW_SAMPLEXAAS_SERVICE",
"required": true,
"secret": false
},
{
"name": "service_param2",
"type": "STRING",
"description": "Service param 2",
"value": "p2",
"required": false,
"secret": false
},
{
"name": "service_param1",
"type": "STRING",
"description": "Service param 1",
"value": "p1",
"required": false,
"secret": false
},
{
"name": "WorkLoads",
"type": "VECTOR",
"description": "WorkLoad Values",
"required": false,
"secret": false,
"subvalues": [
{
"name": "Small",
"type": "VECTOR",
"description": "Configuration Values for Small WorkLoad",
"required": false,
"secret": false,
"subvalues": [
{
"name": "DEPL_SIZE_IS_DEFAULT_KEY",
"type": "STRING",
"value": "Y",
"required": false,
"secret": false
},
{
"name": "CPU",
"type": "STRING",
"value": "60",
"required": false,
"secret": false
},
{
"name": "MEMORY",
"type": "STRING",
"value": "4048",
"required": false,
"secret": false
},
{
"name": "STORAGE",
"type": "STRING",
"value": "500",
"required": false,
"secret": false
},
{
"name": "XAAS_TEST",
"type": "STRING",
"value": "NONE",
"required": false,
"secret": false
}
]
},
{
"name": "Medium",
"type": "VECTOR",
"description": "Configuration Values for Medium WorkLoad",
"required": false,
"secret": false,
"subvalues": [
{
"name": "DEPL_SIZE_IS_DEFAULT_KEY",
"type": "STRING",
"value": "N",
"required": false,
"secret": false
},
{
"name": "CPU",
"type": "STRING",
"value": "80",
"required": false,
"secret": false
},
{
"name": "MEMORY",
"type": "STRING",
"value": "8088",
"required": false,
"secret": false
},
{
"name": "STORAGE",
"type": "STRING",
"value": "750",
"required": false,
"secret": false
}
]
},
{
"name": "Large",
"type": "VECTOR",
"description": "Configuration Values for Large WorkLoad",
"required": false,
"secret": false,
"subvalues": [
{
"name": "DEPL_SIZE_IS_DEFAULT_KEY",
"type": "STRING",
"value": "Y",
"required": false,
"secret": false
},
{
"name": "CPU",
"type": "STRING",
"value": "60",
"required": false,
"secret": false
},
{
"name": "MEMORY",
"type": "STRING",
"value": "40448",
"required": false,
"secret": false
},
{
"name": "STORAGE",
"type": "STRING",
"value": "500",
"required": false,
"secret": false
}
]
}
]
},
{
"name": "storage_type",
"type": "STRING",
"description": "Specify Storage type",
"value": "file",
"required": true,
"secret": false
}
]

51.5.2.10 Deleting a Service Template

The DELETE request configuration is shown in the table below.

Table 51-56 DELETE Request Configuration for Deleting a Service Template

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/{servicetemplateid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"message": "Service template with id \"62\" deleted successfully."
}

51.5.3 Creating a Service Template in V2

This section provides the procedure to create a Service Template using REST APIs.

Follow the steps below to create a Service Template:

1. Identify the Service Template type.
Perform a GET operation on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes/. See, Section 51.5.2.2, "Viewing all the Service Template Types".

The GET operation returns the list of Service Template types available to the Administrator. Note down the serviceType and serviceTemplateTypeId fields of the required Service Template.

2. Obtain the metadata for the selected Service Template type.
Perform a POST operation on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/metadata, using the serviceType and serviceTemplateTypeId fields from the previous step. See, Section 51.5.2.3, "Viewing the Metadata Required for Creating a Service Template".

The POST operation returns a response containing information regarding service template characteristics and payloads. Note these fields as they are required to be set with values in the next step.

3. Obtain the resource provider characteristics for the selected Service Template type.
Perform a POST operation on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/resourceproviders, by providing values for the metadata fields. See, Section 51.5.2.4, "Viewing the Resource Provider Characteristics Required for Creating a Service Template".

The POST operation returns a response with resourceProvider look up characteristics. Note the details.

4. Obtain configuration details for the selected Service Template type.
Perform a POST operation on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/configurations, by providing a payload with values for all the fields collected so far. See, Section 51.5.2.5, "Viewing Configurations Required for Creating a Service Template".

The POST operation returns a response with a list of configurations for the Service Template. Note the details.

5. Create the Service Template.
Perform a POST operation on the URI - /em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates, by providing a payload with values for all the fields collected so far. See, Section 51.5.2.6, "Creating a Service Template".

The POST operation creates a Service Template with the configured values.

51.6 Service Types for V2

This section describes the Service Types for the v2 framework.

Table 51-57 Service Types Resource Data Model

Field

Type

Description

Occurs

name

String

Display name of the collection resource.

1

type

String

Type of the collection resource.

1

totalResults

Integer

Total count of items.

1

cfwItems

List<ServiceType>

List of Service type.

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

51.6.1 Service Types REST API Examples for V2

This sections describes the REST APIs for the Service Types resource.

51.6.1.1 Viewing Details of the Service Types

The GET request configuration to view details of the Service Types resource.

Table 51-58 GET Request Configuration for Viewing Details of the Service Types

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetypes

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Service Types",
"type": "Service Types Collection",
"totalResults": 3,
"cfwItems": [
{
"name": "CFW_SAMPLEXAAS_REMOTESERVER_SERVICE",
"displayName": "Cfw Sample RemoteServer XaaS",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"targetTypes": [
"Cfw_Xaas_DB_Service"
]
},
{
"name": "CFW_SAMPLEXAAS_SERVICE",
"displayName": "Cfw Sample XaaS",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"targetTypes": [
"Cfw_Xaas_DB_Service",
"cfw_xaas_storage_service"
]
},
{
"name": "CFW_SAMPLEXAAS_SERVICE_FOR_NOMEM",
"displayName": "Cfw Sample XaaS - Other Service",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"targetTypes": [
"Cfw_Xaas_DB_Service_for_nomem"
]
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetypes"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetypes"
}
}

51.7 Service Requests for V2

This section describes the Service requests for the v2 framework.

Table 51-59 Requests Collection Resource Data Model

Field

Type

Description

Occurs

name

String

Display name of the collection resource.

1

type

String

Type of the collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

count

Integer

Number of elements returned.

1

cfwItems

Collection <Request>

List of Request resources. In case no requests exist, then items are empty.

1

totalResults

Integer

Total number of Requests.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

51.7.1 Supported Operations

The table below provides the operations supported on the Service request resource.

Table 51-60 Supported Methods for Service Request

Request Method

Canonical Link

Description

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests

Returns list of all Service Requests.

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests/{servicerequestis}

Returns details of a specified Service Request.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests/{servicerequestid}

Reschedules the specified Service Request.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests

Cleans a collection of requests.

DELETE

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests/{servicerequestid}

Cancels the specified Service Request.

DELETE

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests

Deletes a list of Service Requests.

51.7.2 Service Requests REST API Examples for V2

This sections describes the REST APIs for the Service requests resource. The following operations are explained:

- Viewing Details of all the Service Requests

- Viewing Details of a Service Request

- Rescheduling a Service Request

- Clearing a Collection of Service Requests

- Cancelling a Service Request

- Deleting a List of Service Requests

51.7.2.1 Viewing Details of all the Service Requests

A GET operation is issued to view details of all the Service requests.

Table 51-61 GET Request Configuration for Viewing Details of All the Service Requests

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
name: "Service Requests"
type: "Service Request"
hasMore: false
count: 1
cfwItems: [
{
name: "Request1_21-Dec-13 17:37:34"
id: 27
startDate: "2013-12-22T01:37:34'Z'PDT"
status: "SCHEDULED"
canonicalLink:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicereques
ts/27"
} ]
totalCount: 1
canonicalLink: {
href:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicereques
ts"
}
selfLink: {
ref:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicereques
ts"
}}

51.7.2.2 Viewing Details of a Service Request

A GET operation is issued to view details of a Service request.

Table 51-62 GET Request Configuration for Viewing Details of a Service Request

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests/27

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
id: "27"
name: "Request1_21-Dec-13 17:37:34"
startDate: "2013-12-22T01:37:34'Z'PDT"
status: "SUCCESS"
serviceFamily:"CFW_SAMPLEXAAS_SERVICEFAMILY"
canonicalLink:
{
href:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicereques
ts/27"
}
}

51.7.2.3 Rescheduling a Service Request

A PUT operation is issued to reschedule a Service request.

Table 51-63 PUT Request Configuration for Rescheduling a Service Request

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests/27

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"startDate":"2014-01-19T08:06:39ZPDT"
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK
{
"message": "Request 27 rescheduled successfully"
}

51.7.2.4 Clearing a Collection of Service Requests

A PUT operation is issued to clear a collection of Service requests.

Table 51-64 PUT Request Configuration for Clearing a Collection of Service Requests

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"action": "cleanup",
"ids": [
"22,23"
]
}

Request method

PUT

51.7.2.5 Cancelling a Service Request

A DELETE operation is issued to cancel a Service request.

Table 51-65 DELETE Request Configuration for Cancelling a Service Request

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests/27

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

Status 200 OK
{
"message": "Request 27 cancelled successfully"
}

51.7.2.6 Deleting a List of Service Requests

A DELETE operation is issued to clear a list of Service requests.

Table 51-66 DELETE Request Configuration for Clearing Service Requests

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicerequests

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"ids": [
"2",
"4"
]
}

Request method

DELETE

A sample of the response received is shown below.

{
"message": "[\"Request 32 deleted successfully\",\"Request 31 deleted successfully\",\"Request
30 deleted successfully\"]"
}

51.8 Service Instances for V2

Service instance is a collection resource representing a user's view of all the accessible service instances.

The table below depicts the Service instance data model.

Table 51-67 Service Instances Data Model

Field

Type

Description

Occurs

name

String

Display name of the collection resource.

1

type

String

Type of the collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

count

Integer

Number of elements returned.

1

cfwItems

Collection <ServiceInstances>

List of Service instance resources. In case no Service instances exists, then the items are empty.

1

totalResults

Integer

Total number of Service instances.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

51.8.1 Supported Operations

The table below provides the operations supported on the Service Instance resource.

Table 51-68 Supported Methods for Service Instance

Request Method

Canonical Link

Description

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances

Returns all the Service Instances.

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/{serviceinstanceid}

Returns details of the specified Service Instance.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/{instanceguid}/start

Starts the specified Service Instance.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/{instanceguid}/stop

Stops the specified Service Instance.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/{instanceguid}/delete

Deletes the specified Service Instance.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/start

Starts the list of Service Instances.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/stop

Stops the list of Service Instances.

PUT

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/delete

Deletes the list of Service Instances.

51.8.2 Service Instance REST API Examples for V2

This sections describes the REST APIs for the Service instance resource. The following operations are explained:

- Viewing Details of all the Service Instances

- Viewing Details of a Service Instance

- Starting a Service Instance

- Stopping a Service Instance

- Deleting a Service Instance

- Starting a list of Service Instances

- Stopping a list of Service Instances

- Deleting a list of Service Instances

51.8.2.1 Viewing Details of all the Service Instances

A GET operation is issued to view details of all the Service instances.

Table 51-69 GET Request Configuration for Viewing Details of All the Service Instances

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
selfLink:
{
href: "em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances"
}
CfwItems: [1]
0: {
guid: "92EB43C3F773F3DF3973C1005C54DC43"
status: "SUCCESS"
serviceType: "CFW_SAMPLEXAAS_SERVICE"
serviceFamily: "CFW_SAMPLEXAAS_SERVICEFAMILY"
name: "dfgdfddd"
canonicalLink: {
href:
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servic
einstances/92EB43C3F773F3DF3973C1005C54DC43"
rel: "Canonical"
templated: false
}
hasMore: false
totalResults: 9
}

51.8.2.2 Viewing Details of a Service Instance

A GET operation is issued to view details of a Service instance.

Table 51-70 GET Request Configuration for Viewing Details of a Service Instance

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/92EB43C3F773F3DF3973C1005C54DC43

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
guid: "92EB43C3F773F3DF3973C1005C54DC43"
serviceType: "CFW_SAMPLEXAAS_SERVICE"
serviceFamily: "CFW_SAMPLEXAAS_SERVICEFAMILY"
name: "dfgdfddd"
canonicalLink: {
href:
"em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/92EB43C3F773
F3DF3973C1005C54DC43"
}
}

51.8.2.3 Starting a Service Instance

A PUT operation is issued to start a Service instance.

Table 51-71 PUT Request Configuration for Starting a Service Instance

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/{instanceguid}/start

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

PUT

A sample of the response received is shown below.

[
"Request submitted with Request ID : 43"
]

51.8.2.4 Stopping a Service Instance

A PUT operation is issued to stop a Service instance.

Table 51-72 PUT Request Configuration for Stopping a Service Instance

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/{instanceguid}/stop

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

PUT

A sample of the response received is shown below.

[
"Request submitted with Request ID : 44"
]

51.8.2.5 Deleting a Service Instance

A PUT operation is issued to delete a Service instance.

Table 51-73 PUT Request Configuration for Deleting a Service Instance

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/{instanceguid}/delete

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

PUT

A sample of the response received is shown below.

[
"Request submitted with Request ID : 45"
]

51.8.2.6 Starting a list of Service Instances

A PUT operation is issued to start a list of Service instances.

Table 51-74 PUT Request Configuration for Starting a list of Service Instances

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/start

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"ids": [
"20E46B615DC70027F76A86FEDAC06D17",
"8EAF6A882337F154A1B6D890AF00999B",
"637B0CE930E36BE5EFFF306BE3E57EFA"
]
}

Request method

PUT

A sample of the response received is shown below.

[
"Request submitted with Request ID : 34",
"Request submitted with Request ID : 35",
"Request submitted with Request ID : 36"
]

51.8.2.7 Stopping a list of Service Instances

A PUT operation is issued to stop a list of Service instances.

Table 51-75 PUT Request Configuration for Stopping a list of Service Instances

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/stop

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"ids": [
"20E46B615DC70027F76A86FEDAC06D17",
"8EAF6A882337F154A1B6D890AF00999B",
"637B0CE930E36BE5EFFF306BE3E57EFA"
]
}

Request method

PUT

A sample of the response received is shown below.

[
"Request submitted with Request ID : 37",
"Request submitted with Request ID : 38",
"Request submitted with Request ID : 39"
]

51.8.2.8 Deleting a list of Service Instances

A PUT operation is issued to delete a list of Service instances.

Table 51-76 PUT Request Configuration for Deleting a Service Instance

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/serviceinstances/delete

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"ids": [
"20E46B615DC70027F76A86FEDAC06D17",
"8EAF6A882337F154A1B6D890AF00999B",
"637B0CE930E36BE5EFFF306BE3E57EFA"
]
}

Request method

PUT

A sample of the response received is shown below.

[
"Request submitted with Request ID : 40",
"Request submitted with Request ID : 41",
"Request submitted with Request ID : 42"
]

51.9 Request Settings for V2

Settings are to be applied by an SSA administrator, and can be used for request processing. Settings are categorized as follows:

- Global settings - These are the general settings that are applicable across all service types.

- Service family settings - These settings are specific to a service family.

- Service type settings - These settings are specific to a service type.

51.9.1 Request Settings Data Model

The table below shows the Request Settings data model.

Table 51-77 Request Settings Data Model

Field

Type

Description

Occurs

requestSettings

RequestSettings

Request settings applicable across all service types.

1

swLibDefaultLocation

String

Default location for the software library.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

51.9.2 Request Settings Composite Attribute Data Model

The table below shows the Request settings composite attribute data model.

Table 51-78 Request Settings Composite Attribute Data Model

Field

Type

Description

Occurs

futureReservationPolicy

RequestPolicy

The number of days, when a Self Service user can schedule a request in advance.

1

requestDurationPolicy

RequestPolicy

The maximum duration of time (in days) during which a Self Service user can retain a service instance.

1

RequestArchivePolicy

RequestPolicy

The duration of time (in days) after which the ''Completed'', Self Service create requests will be purged from the repository.

1

51.9.3 Request Settings REST API Examples for V2

This sections describes the REST APIs for the Request settings resource. The following operations are explained:

- Viewing Details of the Global Request Settings

- Updating the Global Request Settings

- Viewing Details of the Global Request Settings for a Collection of Roles

- Creating Global Request Settings for a Role

- Viewing Details of Global Request Settings for a Specific Role

- Updating Global Request Settings for a Specific Role

- Deleting Global Request Settings for a Specific Role

- Viewing Details of the Request Settings for a Service Family

- Updating the Request Settings for a Service Family

- Viewing Details of the Service Family Settings by Roles

- Creating Service Family Settings for a Role

- Viewing Details of the Service Family Request Settings for a Specific Role

- Updating the Service Family Request Settings for a Specific Role

- Deleting Service Family Request Settings for a Specific Role

- Viewing Details of the Request Settings for a Service Type

- Updating the Request Settings for a Service Type

- Viewing Details of the Service Type Settings by Roles

- Creating Service Type Settings for Roles

- Viewing Details of the Service Type Request Settings for a Specific Role

- Updating the Service Type Request Settings for a Specific Role

- Deleting Service Type Request Settings for a Specific Role

51.9.3.1 Viewing Details of the Global Request Settings

A GET operation is issued to view details of the Global request settings resource.

Table 51-79 GET Request Configuration for Viewing Details of the Global Request Settings Resource

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/global

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"requestSettings": [
{
"description": "This setting controls how far a user can make a request",
"displayName": "Future Reservation Length",
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "No Restriction"
},
{
"description": "This setting controls the maximum duration for which a user can make a
request",
"displayName": "Request duration Length",
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "No Restriction"
},
{
"description": "This setting controls the maximum duration after which archived requests
will be automatically deleted by the system",
"displayName": "Request Archive Retention Length",
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "No Restriction"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_USER_SHARE_ALLOWED",
"value": "false"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_ROLE_SHARE_ALLOWED",
"value": "false"
}
]
}

51.9.3.2 Updating the Global Request Settings

A PUT operation is issued to update the Global request settings resource.

Table 51-80 PUT Request Configuration for Updating the Global Request Settings Resource

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/global

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Weeks",
"value": "4"
}

Request method

PUT

A sample of the response received is shown below.

{
"message": "\"Global\" settings updated successfully."
}

51.9.3.3 Viewing Details of the Global Request Settings for a Collection of Roles

A GET operation is issued to view details of the Global request settings for a collection of roles.

Table 51-81 GET Request Configuration for Viewing Details of the Global Request Settings for a Collection of Roles

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/global/roles

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/
global/roles/SSA01",
"name": "SSA01"
},
{
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/
global/roles/SSA05",
"name": "SSA05"
}
],
"totalResults": 2
}

51.9.3.4 Creating Global Request Settings for a Role

A POST operation is issued to create Global request settings for a role.

Table 51-82 POST Request Configuration for Creating Global Request Settings for a Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/global/roles

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"SERVICE_INSTANCE_USER_SHARE_ALLOWED": {
"value": "true"
},
"requestSettings": [
{
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Weeks",
"value": "4"
},
{
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Hours",
"value": "23"
},
{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Days",
"value": "21"
}
],
"role": "TVMCFW_R1"
}

Request method

POST

A sample of the response received is shown below.

{
"message": "\"Global role \" settings created successfully."
}

51.9.3.5 Viewing Details of Global Request Settings for a Specific Role

A GET operation is issued to view details of Global request settings for a specific role.

Table 51-83 GET Request Configuration for Viewing Details of Global Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/global/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"requestSettings": [
{
"description": "This setting controls how far a user can make a request",
"displayName": "Future Reservation Length",
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R1",
"unitOfMeasurement": "Days",
"value": "21"
},
{
"description": "This setting controls the maximum duration for which a user can make a
request",
"displayName": "Request duration Length",
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R1",
"unitOfMeasurement": "Weeks",
"value": "4"
},
{
"description": "This setting controls the maximum duration after which archived requests
will be automatically deleted by the system",
"displayName": "Request Archive Retention Length",
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R1",
"unitOfMeasurement": "Hours",
"value": "23"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_USER_SHARE_ALLOWED",
"value": "true"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_ROLE_SHARE_ALLOWED",
"value": "true"
}
]
}

51.9.3.6 Updating Global Request Settings for a Specific Role

A PUT operation is issued to update the Global request settings for a specific role.

Table 51-84 PUT Request Configuration for Updating Global Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/global/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Years",
"value": "75"
}

Request method

PUT

A sample of the response received is shown below.

{
"message": "\"Global role \" settings updated successfully."
}

51.9.3.7 Deleting Global Request Settings for a Specific Role

A DELETE operation is issued to delete Global request settings for a specific role.

Table 51-85 DELETE Request Configuration for Deleting Global Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/global/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"message": "\"Global role \" settings deleted successfully."
}

51.9.3.8 Viewing Details of the Request Settings for a Service Family

A GET operation is issued to view details of the Request Settings for a service family.

Table 51-86 GET Request Configuration for Viewing Details of the Request Settings for a Service Family

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicefamily/{servicefamily}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"requestSettings": [
{
"description": "This setting controls how far a user can make a request",
"displayName": "Future Reservation Length",
"family": "cfw_samplexaas_servicefamily",
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Days",
"value": "25"
},
{
"description": "This setting controls if there is a restriction on the maximum duration
for which requests can be made",
"displayName": "Request Duration Restricted",
"family": "cfw_samplexaas_servicefamily",
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "No Restriction"
},
{
"description": "This setting controls if there is a restriction on the maximum duration
after which archived requests will be automatically deleted by the system",
"displayName": "Request Archive Retention Restricted",
"family": "cfw_samplexaas_servicefamily",
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "No Restriction"
},
{
"displayName": "Service Instance Sharing With Users Restricted",
"family": "cfw_samplexaas_servicefamily",
"name": "SERVICE_INSTANCE_USER_SHARE_ALLOWED",
"value": "false"
},
{
"displayName": "Service Instance Sharing With Roles Restricted",
"family": "cfw_samplexaas_servicefamily",
"name": "SERVICE_INSTANCE_ROLE_SHARE_ALLOWED",
"value": "false"
}
]
}

51.9.3.9 Updating the Request Settings for a Service Family

A PUT operation is issued to update the Request Settings for a Service family.

Table 51-87 PUT Request Configuration for Updating the Request Settings for a Service Family

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicefamily/{servicefamily}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Weeks",
"value": "4"
}

Request method

PUT

A sample of the response received is shown below.

{
"message": "\"Family \" settings updated successfully."
}

51.9.3.10 Viewing Details of the Service Family Settings by Roles

A GET operation is issued to view details of the Service family settings by roles.

Table 51-88 GET Request Configuration for Viewing Details of the Service Family Settings by Roles

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicefamily/{servicefamily}/roles

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"href":
"https://xx.idc.example.com:34518/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/r
equestsettings/servicefamily/cfw_samplexaas_servicefamily/roles/TVMCFW_R2",
"name": "TVMCFW_R2"
}
],
"totalResults": 1
}

51.9.3.11 Creating Service Family Settings for a Role

A POST operation is issued to create Service family settings for a role.

Table 51-89 POST Request Configuration for Creating Service Family Settings for a Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicefamily/{servicefamily}/roles

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"SERVICE_INSTANCE_USER_SHARE_ALLOWED": {
"value": "true"
},
"requestSettings": [
{
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Weeks",
"value": "14"
},
{
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Hours",
"value": "123"
},
{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Days",
"value": "121"
}
],
"role": "TVMCFW_R2"
}

Request method

POST

A sample of the response received is shown below.

{
"message": "\"Family role \" settings created successfully."
}

51.9.3.12 Viewing Details of the Service Family Request Settings for a Specific Role

A GET operation is issued to view details of the Service family request settings for a specific role.

Table 51-90 GET Request Configuration for Viewing Details of the Service Family Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicefamily/{servicefamily}/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"requestSettings": [
{
"description": "This setting controls how far a user can make a request",
"displayName": "Future Reservation Length",
"family": "cfw_samplexaas_servicefamily",
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R2",
"unitOfMeasurement": "Days",
"value": "121"
},
{
"description": "This setting controls the maximum duration for which a user can make a
request",
"displayName": "Request duration Length",
"family": "cfw_samplexaas_servicefamily",
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R2",
"unitOfMeasurement": "Weeks",
"value": "14"
},
{
"description": "This setting controls the maximum duration after which archived requests
will be automatically deleted by the system",
"displayName": "Request Archive Retention Length",
"family": "cfw_samplexaas_servicefamily",
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R2",
"unitOfMeasurement": "Hours",
"value": "123"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_USER_SHARE_ALLOWED",
"value": "false"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_ROLE_SHARE_ALLOWED",
"value": "false"
}
]
}

51.9.3.13 Updating the Service Family Request Settings for a Specific Role

A PUT operation is issued to update the Service family request settings for a specific role.

Table 51-91 PUT Request Configuration for Updating the Service Family Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicefamily/{servicefamily}/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Years",
"value": "75"
}

Request method

PUT

A sample of the response received is shown below.

{
"message": "\"Family role\" settings updated successfully."
}

51.9.3.14 Deleting Service Family Request Settings for a Specific Role

A DELETE operation is issued to delete Service family request settings for a specific role.

Table 51-92 DELETE Request Configuration for Deleting Service Family Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicefamily/{servicefamily}/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"message": "\"Family role \" settings deleted successfully."
}

51.9.3.15 Viewing Details of the Request Settings for a Service Type

A GET operation is issued to view details of the Request settings for a service type.

Table 51-93 GET Request Configuration for Viewing Details of the Request Settings for a Service Type

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicetype/{servicetype}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"requestSettings": [
{
"description": "This setting controls if there is a restriction on how far a user can
make a request",
"displayName": "Future Reservation Restricted",
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "No Restriction",
"serviceType": "cfw_samplexaas_service"
},
{
"description": "This setting controls if there is a restriction on the maximum duration
for which requests can be made",
"displayName": "Request Duration Restricted",
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "No Restriction",
"serviceType": "cfw_samplexaas_service"
},
{
"description": "This setting controls if there is a restriction on the maximum duration
after which archived requests will be automatically deleted by the system",
"displayName": "Request Archive Retention Restricted",
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "No Restriction",
"serviceType": "cfw_samplexaas_service"
},
{
"displayName": "Service Instance Sharing With Users Restricted",
"name": "SERVICE_INSTANCE_USER_SHARE_ALLOWED",
"serviceType": "cfw_samplexaas_service",
"value": "false"
},
{
"displayName": "Service Instance Sharing With Roles Restricted",
"name": "SERVICE_INSTANCE_ROLE_SHARE_ALLOWED",
"serviceType": "cfw_samplexaas_service",
"value": "false"
}
]
}

51.9.3.16 Updating the Request Settings for a Service Type

A PUT operation is issued to update the Request settings for a service type.

Table 51-94 PUT Request Configuration for Updating the Request Settings for a Service Type

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicetype/{servicetype}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Weeks",
"value": "4"
}

Request method

PUT

A sample of the response received is shown below.

{
"message": "\"Servicetype \" settings updated successfully."
}

51.9.3.17 Viewing Details of the Service Type Settings by Roles

A GET operation is issued to view details of the Service type settings by roles.

Table 51-95 GET Request Configuration for Viewing Details of the Service Type Settings by Roles

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicetype/{servicetype}/roles

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"href":
"https://xx.idc.example.com:34518/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/r
equestsettings/servicetype/cfw_samplexaas_service/roles/TVMCFW_R3",
"name": "TVMCFW_R3"
}
],
"totalResults": 1
}

51.9.3.18 Creating Service Type Settings for Roles

A POST operation is issued to create a Service type settings for roles.

Table 51-96 POST Request Configuration for Creating Service Type Settings for Roles

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicetype/{servicetype}/roles

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"SERVICE_INSTANCE_USER_SHARE_ALLOWED": {
"value": "true"
},
"requestSettings": [
{
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Weeks",
"value": "14"
},
{
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Hours",
"value": "123"
},
{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Days",
"value": "121"
}
],
"role": "TVMCFW_R3"
}

Request method

POST

A sample of the response received is shown below.

{
"message": "\"Servicetype role \" settings created successfully."
}

51.9.3.19 Viewing Details of the Service Type Request Settings for a Specific Role

A GET operation is issued to view details of the Service type request settings for a specific role.

Table 51-97 GET Request Configuration for Viewing Details of the Service Type Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicetype/{servicetype}/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"requestSettings": [
{
"description": "This setting controls how far a user can make a request",
"displayName": "Future Reservation Length",
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R3",
"serviceType": "cfw_samplexaas_service",
"unitOfMeasurement": "Days",
"value": "121"
},
{
"description": "This setting controls the maximum duration for which a user can make a
request",
"displayName": "Request duration Length",
"name": "REQUEST_DURATION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R3",
"serviceType": "cfw_samplexaas_service",
"unitOfMeasurement": "Weeks",
"value": "14"
},
{
"description": "This setting controls the maximum duration after which archived requests
will be automatically deleted by the system",
"displayName": "Request Archive Retention Length",
"name": "REQUEST_ARCHIVE_RETENTION_LENGTH",
"restrictionPolicy": "Restricted",
"role": "TVMCFW_R3",
"serviceType": "cfw_samplexaas_service",
"unitOfMeasurement": "Hours",
"value": "123"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_USER_SHARE_ALLOWED",
"value": "false"
},
{
"description": "Sharing enabled/disabled",
"name": "SERVICE_INSTANCE_ROLE_SHARE_ALLOWED",
"value": "false"
}
]
}

51.9.3.20 Updating the Service Type Request Settings for a Specific Role

A PUT operation is issued to update the Service type request settings for a specific role.

Table 51-98 PUT Request Configuration for Updating the Service Type Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicetype/{servicetype}/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name": "FUTURE_RESERVATION_LENGTH",
"restrictionPolicy": "Restricted",
"unitOfMeasurement": "Years",
"value": "75"
}

Request method

PUT

A sample of the response received is shown below.

{
"message": "\"Servicetype role \" settings updated successfully."
}

51.9.3.21 Deleting Service Type Request Settings for a Specific Role

A DELETE operation is issued to delete Service type request settings for a specific role.

Table 51-99 DELETE Request Configuration for Deleting Service Type Request Settings for a Specific Role

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/setup/requestsettings/servicetype/{servicetype}/roles/{role}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"message": "\"Servicetype role \" settings deleted successfully."
}

51.10 VM Adapters for V2

This section explains the VM Adapters REST APIs.

51.10.1 VM Adapters Data Model

The table below shows the VM Adapters data model.

Table 51-100 VM Adapters Data Model

Field

Type

Description

name

String

Name of the resource.

type

String

Type of the resource.

totalResults

int

The total results.

items

List<VMAdapter>

The list of VM Adapters

canonicalLink

CfwLink

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

selfLink

CfwLink

Refers to the resource equivalent to the containing elements.

51.10.2 Supported Operations

The table below provides the operations supported on the VM Adapters resource.

Table 51-101 Supported Methods for VM Adapters

Request Method

Canonical Link

Description

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters

Returns all the registered VM Adapters.

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/{name}

Returns the registered VM Adapter's details.

GET

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/stagingservers

Returns the staging servers.

POST

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/stagingservers

Creates a staging server.

51.10.3 VM Adapters REST API Examples for V2

This sections describes the REST APIs for the VM Adapter resource. The following operations are explained:

- Viewing Details of All the Registered VM Adapters

- Viewing Details of a Specific Registered VM Adapter

- Viewing Details of the Staging Servers

- Creating a Staging Server

51.10.3.1 Viewing Details of All the Registered VM Adapters

A GET operation is issued to view details of all the registered VM Adapters.

Table 51-102 GET Request Configuration for Viewing Details of All the Registered VM Adapters

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{ "name":"VMAdapters",
"type":"VMAdaptersCollection",
"totalResults":1,
"items":[ { "id":"1",
"name":"SAMPLEADAPTER",
"displayName":"SampleAdapter",
"description":"SampleStand alone adapter",
"instances":{ "count":0, "href":"https://cloudcompany.com/em/websvcs/restful//extws/cloudservices/admin/cfw/v2/resourceproviders/?propertyname=adaptertype&propertyvalue=SAMPLEADAPTER" },
"canonicalLink":{ "href":"https://cloudcompany.com/em/websvcs/restful//extws/cloudservices/admin/cfw/v2/vmadapters/SAMPLEADAPTER" } } ],
"canonicalLink":{ "href":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/" }}

51.10.3.2 Viewing Details of a Specific Registered VM Adapter

A GET operation is issued to view details of a registered VM Adapter.

Table 51-103 GET Request Configuration for Viewing Details of a Specific Registered VM Adapter

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/{name}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{ "name": "SAMPLEADAPTER",
"connection": { "endpoints": [ { "purpose": "login_url", "custom": [ { "name": "CloudType", "type": "STRING", "description": "CoudType, e.g. openstack, ec2, etc", "displayName": "CoudType", "required": false, "secret": false },
{ "name": "custom_param1", "type": "STRING", "description": "Custom parameter", "displayName": "Custom parameter", "required": false, "secret": false } ] } ], "virtualizationContainers": [ { "name": "Zone" } ] }, "proxies": [ {} ]}

51.10.3.3 Viewing Details of the Staging Servers

A GET operation is issued to view details of the staging servers.

Table 51-104 GET Request Configuration for Viewing Details of the Staging Servers

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/stagingservers

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{ "name" : "StagingServers", "totalResults" : 1, "items" : [ { "location" : "script/location", "targetName" : "blr2223141.idc.oracle.com",
"targetGuid" : "5BC2376B484BC065B6661458DAF1F56D", "credentialGuid" : "25D30ADD427484310DBC8CF6211A383B" } ],
"canonicalLink" : { "href" : "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/stagingservers" }}

51.10.3.4 Creating a Staging Server

A POST operation is issued to create a staging server.

Table 51-105 POST Request Configuration for Creating a Staging Server

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/vmadapters/stagingservers

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{ "targetName" : "blr2223141.idc.oracle.com",
"location" : "script/location",
"credentialGuid" : "25D30ADD427484310DBC8CF6211A383B"}

Request method

POST

A sample of the response received is shown below.

{ "message" : "StagingServer created successfully."}

51.11 SSA Admin Resources for V1

The Cloud REST APIs can be categorized as follows:

- Collection Resources

- PaasZones for V1

- SoftwarePools for V1

- Service Template Management for V1

- Singular Resources

- PaasZone for V1

- SoftwarePool for V1

- Service Template Management for V1

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 51-106 Common Resource Attributes for Singular Resources

Field

Type

Supported Method

Description

Occurs

name

String

Any

Name of Resource

1

type

String

Any

Resource Type

1

description

String

Any

Description

0..1

id

String

GET

Resource Identifier

0..1

createdOn

TimeStamp

GET

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

0..1

createdBy

String

GET

User who created resource

0..1

modifiedOn

TimeStamp

GET

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

0..1

ModifiedBy

Date

GET

User who last modified resource

0..1

owner

String

GET

User who owns resource

0..1

etag

String

GET

HTTP Entity tag value

0..1

lastModified

String

GET

HTTP Last-Modified value

0..1

canonicalLink

URI

GET

Preferred Version of Resource

1

selfLink

URI

GET

Refers to resource equivalent to the containing element

1

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.

51.11.1 Viewing Details of the REST API Entry Point Resources

The table below shows the GET configuration for viewing details of the REST API resources.

Table 51-107 GET Request Configuration for Viewing Details of the REST API Resources

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/API

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

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

51.12 PaasZones for V1

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 51-108 PaasZones Data Model

Field

Type

Description

Occurs

name

String

Display name of this collection resource

1

type

String

Type of this collection resource

1

hasMore

Boolean

Indicates whether there are more elements in the collection

1

count

Integer

Number of elements returned

1

items

Collection <PaasZone>

List of Paas Zone resources.

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

1

totalCount

Integer

Total number of Paas Zone resources

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

The following table describes the Supported Methods for PaaSZones:

Table 51-109 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

51.12.1 PaasZones REST API Examples

The following sections provide example PaasZones REST 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 51.18.2, "EM CLI Verbs for SSA Operations for V2".

The following operations are covered in this section.

- Viewing PaaS Zones Metadata

- Listing PaaS Zones

51.12.1.1 Viewing PaaS Zones Metadata

The table below shows the GET configuration for viewing the metadata.

Table 51-110 GET Request Configuration for Viewing the Metadata

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

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."
}

51.12.1.2 Listing PaaS Zones

The table below shows the GET configuration for listing the PaaS zones.

Table 51-111 GET Request Configuration for Viewing the PaaS Zones

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

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.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.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/EF3830C71CC54B50B963376F9217AB95"
}, {
"name" : "test paas zone",
"id" : "5D7548C1B879A51CFD894CEA8D5FB19B",
"type" : "self_service_zone",
"canonicalLink" : "https://example.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.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/CACBB07A674F280DF84FC4CBFA76DFA7"
} ],
"totalCount" : 4,
"canonicalLink" : "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones",
"selfLink" : "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones"
}

51.13 PaasZone for V1

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

Table 51-112 PaaSZone Data Model

Field

Type

Supported Methods

Description

Occurs

name

String

Any

A human readable name given to the PaaS Zone.

It is non editable.

1

id

String

GET

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

1

description

String

Any

A brief description given to the zone.

0..1

credential

String

Any

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

1

members

Collection<String>

GET

POST

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

1

memberType

String

GET

POST

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.

1

constraints

Collection<EntityValueHolder>

Any

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

Refer to zone metadata REST API for more information.

0..1

roles

Collection<String>

GET

POST

SSA roles that can access this PaaS Infrastructure Zone.

0..1

pools

Collection<SoftwarePool>

GET

Software Pools associated with this PaaS Zone

0..1

membersToAdd

Collection<String>

PUT

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

0..1

membersToRemove

Collection<String>

PUT

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

0..1

rolesToAdd

Collection<String>

PUT

SSA roles to be added while editing a PaaS Zone

0..1

rolesToRemove

Collection<String>

PUT

SSA roles to be removed while editing a PaaS Zone.

0..1

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 51-113 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

51.13.1 PaaS Zone REST API Examples

The following sections provide example Paas Zone REST 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 51.18.2, "EM CLI Verbs for SSA Operations for V2".

The following operations are covered in this section.

- Creating a PaaS Zone

- Updating a PaaS Zone

- Deleting a PaaS Zone

- Viewing Details of the PaasZone

- Viewing the Expanded form of a PaasZone

51.13.1.1 Creating a PaaS Zone

The table below shows the POST configuration for creating a PaaS zone.

Table 51-114 POST Request Configuration for Creating a PaaS Zone

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

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

}

Request method

POST

A sample of the response received is shown below.

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"
}

51.13.1.2 Updating a PaaS Zone

The table below shows the PUT configuration for updating a PaaS zone.

Table 51-115 PUT Request Configuration for Updating a PaaS Zone

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"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"
}
]
}

Request method

PUT

A sample of the response received is shown below.

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

51.13.1.3 Deleting a PaaS Zone

The table below shows the DELETE configuration for deleting a PaaS zone.

Table 51-116 DELETE Request Configuration for Deleting a PaaS Zone

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/passzones/DDBFEFDAD2AE6490E040F00AA37D4C67

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

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.

51.13.1.4 Viewing Details of the PaasZone

The table below shows the GET configuration for viewing details of a PaaS zone.

Table 51-117 GET Request Configuration for Viewing Details of a PaaS Zone

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/passzones/A3CF2D49CFF3F3E664D073303EA51F8E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

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.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E/members",
"memberType" : "host",
"numberOfHostMembers" : "2"
},
"constraints" : {
"canonicalLink" : "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E/constraints",
"numberOfConstraints" : "2"
},
"roles" : {
"canonicalLink" : "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E/roles",
"numberOfUserRoles" : "1"
},
"pools" : {
"canonicalLink" : "https://example.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.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E",
"selfLink" : "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/A3CF2D49CFF3F3E664D073303EA51F8E"
}

51.13.1.5 Viewing the Expanded form of a PaasZone

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

The table below shows the GET configuration for expanded view of a PaaS zone.

Table 51-118 GET Request Configuration for an Expanded View of a PaaS Zone

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/passzones/{zone_id}/?expands=<param_name>

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "My Test Zone",
"description" : "Description_02",
"type" : "PaaS Infrastructure Zone",
"id" : "DDBFEFDAD2AE6490E040F00AA37D4C67",
"credential" : "C",
"members" : {
"canonicalLink" : "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/members",
"memberType" : "host",
"numberOfHostMembers" : "1"
},
"constraints" : {
"canonicalLink" : "https://example.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.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67/roles",
"numberOfUserRoles" : "0"
},
"pools" : {
"canonicalLink" : "https://example.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.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67",
"selfLink" : "https://example.com/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/paaszones/DDBFEFDAD2AE6490E040F00AA37D4C67"
}

51.14 SoftwarePools for V1

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 51-119 SoftwarePools Data Model

Field

Type

Description

Occurs

name

String

Display name of this collection resource

1

type

String

Type of this collection resource

1

hasMore

Boolean

Indicates whether there are more elements in the collection

1

count

Integer

Number of elements returned

1

items

Collection <SoftwarePools>

The elements of this collection

1

totalCount

Integer

Total number of elements in the collection

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

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

Table 51-120 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

51.14.1 Software Pools REST API Example

The following provides an example of a SoftwarePools REST 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 51.18.2, "EM CLI Verbs for SSA Operations for V2"

The following operations are covered in this seciton.

- Viewing Details of the Software Pools

- Filtering Output based on Search Query Parameters

51.14.1.1 Viewing Details of the Software Pools

The table below shows the GET configuration for viewing details of the Software pools.

Table 51-121 GET Request Configuration for Viewing Details of the Software Pools

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

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/"
}

51.14.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.

The table below shows the GET configuration for filtering the Software pools.

Table 51-122 GET Request Configuration for Filtering the Software Pools

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools?zonename=IT_MW%&pooltype=mwaas_zone

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

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/"
}

51.15 SoftwarePool for V1

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 51-123 SoftwarePool Data Model

Field

Type

Supported Methods

Description

Occurs

name

String

Any

A human readable name given to the Software Pool.

It is non editable.

1

id

String

GET

Pool GUID that uniquely identifies the resource.

1

description

String

Any

A brief description given to the Software Pool.

0..1

poolTargetType

String

Any

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.

1

paasZone

String

GET

POST

Name of the PaaS Zone associated with this Software Pool.

1

members

Collection<String>

GET

POST

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

1

constraints

Collection<EntityValueHolder>

Any

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

0..1

filters

Collection < EntityValueHolder >

GET

POST

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

1

properties

Collection< EntityValueHolder >

Any

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

1

membersToAdd

Collection<String>

PUT

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

0..1

membersToRemove

Collection<String>

PUT

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

0..1

canonicalLink

URI

GET

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

1

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

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

Table 51-124 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

51.15.1 SoftwarePool REST API Examples

The following sections provide example SoftwarePool REST 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 51.18.2, "EM CLI Verbs for SSA Operations for V2".

The following operations are covered in this section.

- Creating a Software Pool

- Updating a Software Pool

- Deleting a Software Pool

- Viewing Details of the Software Pool

- Expands Query Parameter

51.15.1.1 Creating a Software Pool

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

The table below shows the POST configuration for creating a Software pool.

Table 51-125 POST Request Configuration for Creating a Software Pool

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"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"}]}
}

Request method

POST

A sample of the response received is shown below.

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"
}

51.15.1.2 Updating a Software Pool

The table below shows the PUT configuration for updating a Software pool.

Table 51-126 PUT Request Configuration for Updating a Software Pool

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"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"}]},
}

Request method

PUT

A sample of the response received is shown below.

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

51.15.1.3 Deleting a Software Pool

The table below shows the DELETE configuration for deleting a Software pool.

Table 51-127 DELETE Request Configuration for Deleting a Software Pool

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

A sample of the response received is shown below.

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

51.15.1.4 Viewing Details of the Software Pool

The table below shows the GET configuration for viewing details of a Software pool.

Table 51-128 GET Request Configuration for Viewing Details of a Software Pool

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

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"
}

51.15.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 URI has the following format:

/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.

51.15.2 SoftwarePoolMetadata for V1

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 51-129 SoftwarePoolMetadata Data Model

Field

Type

Description

Occurs

canonicalLink

URI

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

1

poolType

String

Target type of the Software Pool

1

poolTypeDisplayName

String

Display name of this Software Pool target type.

0..1

poolTypeDescription

String

Description of the Software Pool target type.

0..1

serviceFamily

String

Represents the service family to which this pool type belongs.

1

serviceType

String

Represents the service type to which this pool type belongs.

1

constraints

Collection<ValueDescriptor>

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

0..1

filters

Collection< ValueDescriptor >

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

0..1

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.

51.15.2.1 Retrieving Software Pool Metadata REST 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 51.18.2, "EM CLI Verbs for SSA Operations for V2"

The table below shows the GET configuration for viewing metadata of the Software pools.

Table 51-130 GET Request Configuration for Viewing Metadata of the Software Pools

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

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"
}

51.15.3 SoftwarePoolFilteredTargets for V1

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 51-131 SoftwarePoolFilteredTargets Data Model

Field

Type

Description

Occurs

canonicalLink

URI

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

1

targetType

String

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]

1

paasZone

String

Name of the PaaS Zone representing a filter criteria.

[POST]

1

targets

Map<String, List<String>>

Filtered targets after applying the filter criteria.

1

filters

Collection<Filters>

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]

1

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.

51.15.3.1 Retrieving Available Filtered Targets - REST 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 51.18.2, "EM CLI Verbs for SSA Operations for V2"

The table below shows the POST configuration for viewing the filtered targets of the Software pools.

Table 51-132 POST Request Configuration for Viewing Metadata of the Software Pools

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: applicaiton/json

Body

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

Request method

POST

A sample of the response received is shown below.

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"
}

51.15.4 SoftwarePoolCapacity for V1

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 51-133 SoftwarePoolCapacity Data Model

Field

Type

Description

Occurs

canonicalLink

URI

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

1

name

String

Name of the Software Pool.

[POST]

1

type

String

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

1

capacity

Collection<Filters>

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]

1

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.

51.15.4.1 Retrieving Software Pool Capacity

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 51.18.2, "EM CLI Verbs for SSA Operations for V2"

The table below shows the GET configuration for viewing the Software pool capacity.

Table 51-134 GET Request Configuration for Viewing the Software Pool Capacity

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v1/softwarepools/687FE169ED3556CED38D11DC9BDD5CCD/capacity

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

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"
}

51.16 Composite Resource Attributes for V1

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

- ValueDescriptor for V1

- ValueEntity for V1

- EntityValueHolder for V1

- PoolEntityCapacity for V1

- ResourceTypeCapacity for V1

51.16.1 ValueDescriptor for V1

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 51-135 ValueDescriptor Data Model

Field

Type

Description

Occurs

name

String

Name of the datum being described.

1

description

String

Description of the datum being described.

1

defaultValue

String

Default value of the datum being described.

1

isRequiredValue

Boolean

True if the value is required.

1

possibleValues

Collection<ValueEntity>

Optional list of valid values of the datum being described.

0..1

51.16.2 ValueEntity for V1

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

Table 51-136 ValueEntity Data Model

Field

Type

Description

Occurs

value

String

String representation of the actual value of the entity.

1

description

String

Caption of the entity that describes it.

0..1

51.16.3 EntityValueHolder for V1

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

Table 51-137 EntityValueHolder Data Model

Field

Type

Description

Occurs

name

String

Name of the entity

1

value

String

String representation of the actual value of the entity.

1

description

String

Caption of the entity that describes it.

0..1

51.16.4 PoolEntityCapacity for V1

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

Table 51-138 PoolEntityCapacity Data Model

Field

Type

Description

Occurs

entityName

String

Name of the entity

1

entityType

String

Target type of the entity.

1

entityCapacity

Collection<ResourceTypeCapacity>

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

1

51.16.5 ResourceTypeCapacity for V1

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 51-139 ResourceTypeCapacity Data Model

Field

Type

Description

Occurs

resourceType

String

Type of the resource like Storage Utilization.

1

resourceUsed

String

String representation of the used resource.

1

resourceThreshold

String

String representation of the resource threshold.

0..1

resourceUnit

String

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

0..1

51.17 Service Template Management for V1

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

51.17.1 Service Templates for V1

Service templates 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 51-140 Service Templates Data Model

Field

Type

Description

Occurs

name

String

Display name of this collection resource.

1

type

String

Type of collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in this collection resource.

1

count

Integer

The number of elements in the collection resource.

1

items

Collection <integer>

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

1

totalCount

Integer

Total number of service template resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

51.17.1.1 Supported Methods on ServiceTemplates Resources

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

Table 51-141 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.

51.17.1.2 ServiceTemplates REST API Example

An example of ServiceTemplates REST API operation is given below.

Listing Service Templates

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

The table below shows the GET configuration for viewing the Software pool capacity.

Table 51-142 GET Request Configuration for Viewing All the Service Templates

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

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"
}

51.17.2 Service Template for V1

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 51-143 ServiceTemplate Data Model

Field

Type

Supported Methods

Description

Occurs

name

String

Any

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

1

serviceFamily

String

Any

Service Family.

1

serviceType

String

Any

Service type

1

id

String

GET

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

1

description

String

Any

A brief description given to the service template.

0..1

roles

Collection<Role>

GET

POST

SSA roles that can access the template.

0..1

poolIds

Collection <String>

POST

Software Pool IDs associated with this template.

1

serviceExecutableMeta

ServiceExecutableMetaDataEntity

Any

Service executable to be used for the service template.

0..1

createdOn

String (Date / Time)

GET

Date and time on which the resource was created.

0..1

createdBy

String

GET

User who created the resource.

1

modifiedOn

String (Date / Time)

GET

Date and time on which the resource was modified.

0..1

modifiedBy

String

GET

User who modified the resource.

1

owner

String

GET

User who owns the resource.

1

etag

String

GET

HTTP entity value tag.

0..1

lastModified

String

GET

HTTP last modified value

0..1

canonicalLink

URI

GET

Preferred version of resource.

1

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.

51.17.2.1 Supported Methods on ServiceTemplate Resources

The following table describes the supported methods for servicetemplates resources.

Table 51-144 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

51.17.3 ServiceTemplateUpdate for V1

This table describes the ServiceTemplateUpdate data model.

Table 51-145 ServiceTemplateUpdate Data Model

Field

Type

Supported Methods

Description

Occurs

description

String

PUT

A brief description given to the service template.

0..1

rolesAdded

Collection<Role>

PUT

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

0..1

rolesRemoved

Collection<Role>

PUT

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

0..1

poolsIdsAdded

Collection<String>

PUT

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

0..1

poolsIdsRemoved

Collection<String>

PUT

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

0..1

executableEntity

ServiceExecutableMetaDataEntity

PUT

Service executable to be used for the service template.

0..1

51.17.4 ServiceExecutableMetaEntity for V1

This table describes the ServiceExecutableMetaEntity data model.

Table 51-146 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.

51.17.5 Template Configuration Parameters for V1

The following table lists the TemplateConfigParam data model.

Table 51-147 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.

51.17.6 PayloadDescriptor for V1

The following table describes the PayloadDescriptor data model

Table 51-148 PaylodDescriptor data model

Field

Type

Description

name

String

Name of the payload entity.

id

String

Id of the payload entity.

51.17.7 ServiceTemplate Metadata for V1

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 51-149 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.

51.17.8 PayloadMetaData for V1

The following table describes the PayloadMetadata.

Table 51-150 PayloadMetaData

Field

Type

Description

id

String

Payload Id.

name

String

Name of payload

defaultValue

String

Default value

51.17.9 ServiceTemplate MetaData for V1

The following table describes the supported methods on the ServiceTemplateMetaData.

Table 51-151 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.

51.17.10 ServiceTemplates REST API Example

This section covers examples of ServiceTemplates REST API operations.

- Creating Service Templates

- Updating a Service Template

- Deleting a Service Template

- Viewing Details of a Service Template

- Viewing Metadata of a Service Template

- Creating Configuration Values for Service Templates

51.17.10.1 Creating Service Templates

The table below shows the POST configuration for creating a Service template.

Table 51-152 POST Request Configuration for Creating a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{

"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"
}
]
}
]
}
]
}
}

Request method

POST

51.17.10.2 Updating a Service Template

The table below shows the PUT configuration for updating a Service template.

Table 51-153 PUT Request Configuration for Updating a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"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"
}
]
}
}

Request method

PUT

51.17.10.3 Deleting a Service Template

The table below shows the DELETE configuration for deleting a Service template.

Table 51-154 DELETE Request Configuration for Deleting a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

51.17.10.4 Viewing Details of a Service Template

The table below shows the GET configuration for viewing details of a Service template.

Table 51-155 DEELTE Request Configuration for Deleting a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

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"
}

51.17.10.5 Viewing Metadata of a Service Template

The table below shows the GET configuration for viewing metadata of a Service template.

Table 51-156 GET Request Configuration for Viewing Metadata a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

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"
}
}
}

51.17.10.6 Creating Configuration Values for Service Templates

To get configuration values that are required for creation of service template, perform a POST operation on the metadata.

Table 51-157 POST Request Configuration for Creating Configuration Values for a Service Template

Feature

Specification

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"type":"CDP",
"serviceFamily":"MWAAS",
"serviceType":"PhysicalWLS",
"name":"Provision Middleware_SYSMAN_Jul-18-2013 00-52AM"
}

Request method

POST

Note:

- This payload is the one that we get via GET call of metadata.

- User fills <user_input> appropriately to get ServiceExecutableMetaDataEntity as response.

- User uses this ServiceExecutableMetaDataEntity in his/her create Payload with values set accordingly to create Service Template MetaData.

A sample of the response received is shown below.

{
"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"

51.18 EM CLI Verbs for Self Service Applications

The Enterprise Manager Command Line Interface (EM CLI) 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 EM CLI verbs for Enterprise Manager Self Service Applications (SSA) Admin users.

51.18.1 Introduction

A new framework is introduced for the release 12.1.0.9, along with which new EM CLI verbs are introduced. The EM CLI verbs associated with the previous version of the framework are deprecated and users are suggested to move to the supported EM CLI verbs. The EM CLI verbs for the deprecated version are listed as v1 and the supported EM CLI verbs are listed as v2:

- EM CLI Verbs for SSA Operations for V2

- EM CLI Verbs for SSA Operations for V1

All PaaS Infrastructure Zone EM CLI 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. EM CLI verbs will obtain user information from the security context and verify only those users authorized to perform these operations.

51.18.2 EM CLI Verbs for SSA Operations for V2

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

Table 51-158 EM CLI Verbs Supported for V2

Verb

Description

Format

emcli invoke_ws

Invokes the Enterprise Manager Web service.

Options:

- -wsname - Indicates the URI of the resource.

- -method - Type of the REST method.

- -payload - Indicates the json/xml input payload.

- -accept - Payload type. These are standard jersey values.

- -type - Standard jersey response types.

- -param - Use this option to pass in form/query parameter value. For example, -param="name:value". More than one parameter can be specified. For example, -param="name:value" -param="zip:12345".
The parameter can be provided through a file. To read from file, specify as shown in the example: -param="name:tag" -input_file="tag:file.txt". In this example, the name parameter will be read from file file.txt.

- -input_file - Use this option to pass in payload or param value from file.

Examples:

- emcli invoke_ws -wsname=/em/websvcs/restful/emws/core/v0/list/dataservice -method=get -param="name:Administrators"
Invokes list resource and sources all administrators

- emcli invoke_ws -wsname=/em/websvcs/restful/emws/core/v0/list/dataservice -method=get -param="name:tag" -input_file="tag:file.txt"
Invokes list resource and sources all administrators. The name parameter is read from file.txt.

emcli invoke_ws

-wsname=<WebService Name>

-method=<method name>

[-payload=<Payload>]

[-accept=<accept type>

[-type=response type]

[-param=Query Parameters]

[-input_file=<Input File for payload data>]

emcli invoke_ws -method="post" -wsname="/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/" -type="application/json" -accept="application/json" -payload= 'xxxxxx'

Creates a new PaaS Infrastructure zone with the provided payload.

Example:

emcli invoke_ws -method="post" -wsname="/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/" -type="application/json" -accept="application/json" -payload='{"useExistingTarget":false, "name":"CLI_ZONE", "type":"self_service_zone", "credentials": [ {"name":"normal_credential_guid", "value": "AKM"} ], "memberTargetType": "host", "members": ["myhost2.idc.example.com"], "placementConstraints": [{"name":"MAX_CPU_UTILIZATION","value":["75"]}, {"name":"MAX_MEMORY_ALLOCATION","value":["75"]}], "characteristics": [ {"name":"EXAMPLE.SYSMAN.CFW.ORCL_GTP_CONTACT","value":["123456789"]}, {"name":"EXAMPLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER","value":["IDC.NOIDA"]}, {"name":"EXAMPLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT","value":["CFW"]}, {"name":"EXAMPLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS","value":["Test"]}, {"name":"EXAMPLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS","value":["ST"]}, {"name":"EXAMPLE.SYSMAN.CFW.ORCL_GTP_LOCATION","value":["IDC"]} ], "roles": ["SSA_USER"]}'

Same as above.

emcli get_targets

Obtain status and alert information for targets.

Options:

- -targets=name:type - Name or type can be either a full value or a pattern match using "%". Also, name is optional, so the type alone may be specified.

- -limit_rows="Maximum number of targets to be retrieved" - Defaults to 2000 rows, if not specified.

- -config_search="Configuration Search UI Name" - Search UI name should be the display name of the configuration search.

- -alerts - Displays the count of critical and warning alerts for each target.

- -noheader - Displays tabular output without column headers.

- -unmanaged - Displays unmanaged targets (no status or alert information).

- -properties - Displays unmanaged targets with properties.

- -separator_properties="separator_properties" - Displays unmanaged target properties with separator_properties.

- -subseparator_properties="subseparator_properties" - Displays unmanaged target properties with subseparator_properties.

- -script - This option is equivalent to -format="name:script".

- -format - Format specification (default is -format="name:pretty").

- -format="name:pretty" prints the output table in a readable format but is not intended to be parsed by scripts.

- -format="name:script" sets the default column separator to a tab and the default row separator to a new line. The column and row separator strings may be specified to change these defaults.

- -format="name:csv" sets the column separator to a comma and the row separator to a newline.

Examples:

- emcli get_targets
Displays a maximum of 2000 targets. Critical and Warning columns are not shown.

- emcli get_targets -limit_rows=20
Displays a maximum of 20 targets. Critical and Warning columns are not shown.

- emcli get_targets -alerts
Displays a maximum of 2000 targets. Critical and Warning columns are shown.

- emcli get_targets -targets="oracle_database"
Displays all "oracle_database" targets.

- emcli get_targets -targets="%oracle%"
Displays all targets whose type contains the string "oracle".

- emcli get_targets -targets="database%:%oracle%"
Displays all targets whose name starts with "database" and type contains "oracle".

- emcli get_targets -targets="database3:oracle_database" -alerts
Displays status and alert information on the Oracle database named "database3".

- emcli get_targets -config_search="Search File Systems on Hosts" -targets="oracle%:host" -alerts
Displays status and alert information of the resulting targets from configuration search named "Search File Systems on Hosts" and targets whose name starts with "oracle" and of type "host".

- emcli get_targets -targets="host" -unmanaged
Displays name and type information for unmanaged host targets.

- emcli get_targets -unmanaged -properties -separator_properties=, -subseparator_properties==
Displays name, type, and properties for unmanaged host targets with the specified separators. By default the separator_properties is ";" and the subseparator_properties is ":".

emcli get_targets

[-targets="[name1:]type1;[name2:]type2;..."]

[-alerts]

[-noheader]

[-script | -format=

[name:<pretty|script|csv>];

[column_separator:"column_sep_string"];

[row_separator:"row_sep_string"];

]

[-limit_rows="Maximum number of targets to be retrieved"]

[-config_search="Configuration Search UI Name"]

[-unmanaged]

[-properties]

[-separator_properties="properties_sep_string"]

[-subseparator_properties="properties_subsep_string"]

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"]

51.18.3 EM CLI Verbs for SSA Operations for V1

The following table provides details of the deprecated verbs (v1). Users are suggested to avoid using these verbs. These verbs are available to SSA Administrator users only and cannot be used with an EM_SSA_ USER role.

Table 51-159 EM CLI Verbs for V1

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.example.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.example.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

52 SSA Portal Management REST APIs

This chapter covers the REST APIs for request scheduling and user preference management.

Note:
For the SSA Plug-in release 12.1.0.9, a new framework is introduced for the REST APIs which is referred to as the v2 framework. The new framework consists of a different approach and signatures, as a result of which the REST APIs also differ when compared to the earlier framework. The earlier framework (v1) is deprecated and users are suggested to move to the v2 REST APIs and EM CLI verbs.

In v2, REST APIs for the Self Service Portal application are generally used by the SSA users. These REST APIs are generally in the .../ssa/... format. For example, /em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/. REST APIs for administrative functions (i.e., .../admin/... format) are REST APIs that configure the SSA Portal setup, such as creating zones, templates, etc., which are generally performed by Cloud or SSA Administrators. The SSA user REST APIs are covered in this chapter.

This chapter contains the sections listed below. The first two sections provide summaries of all the v2 and v1 REST APIs covered in this chapter, whereas the following sections provide the user preference and request scheduling resource details and their REST APIs.

- Summary of SSA User REST APIs for V2

- Summary of User REST APIs for V1

- Common REST Entities for V2

- Cfw Resource for V2

- Cfw Link for V2

- Cfw Value Descriptor for V2

- Catalog APIs

- Service Types for V2

- Services for V2

- Service Collection for V2

- Service Offering for V2

- Request Metadata for V2

- Service Requests REST APIs for V1 and V2

- Service Requests Resource for V2

- Service Request Collection - Collection Resource for V1

- Service Request REST API Examples for V1 and V2

- Service Instances for V2

- Quota Usage for V2

- User Preferences for V2

- User Preferences for V1

- My Preferences for V1

- Canonical Link for V1

- General Preferences for V1

- Composite Resource Attributes for V1

- RequestEntity Data Model for V1

- InstanceExpiryEntity Data Model for V1

- QuotaEntity Data Model for V1

- Supported Methods for General Preferences (for V1)

- Service Specific User Preferences for V1

- Service Preferences for V1

- Supported Methods for My Preferences (for V1)

- ServicePreferenceMetadata Data Model for V1

- Composite Resource Attributes for V1

- Service Preferences REST API Examples for V1

- My Database Preferences REST API Examples for V1

- My Middleware Preferences REST API Examples for V1

- My Tests Preferences for V1

52.1 Summary of SSA User REST APIs for V2

The table below shows a summary of all the User preference and Request scheduling REST APIs covered in this chapter for the v2 framework.

Table 52-1 Summary of User Preference and Request Scheduling REST APIs for V2

Resource

Data Model

GET

POST

PUT

DELETE

Common REST Entities

Section 52.3

Not applicable

Not supported

Not supported

Not supported

Catalog

Not applicable

- Section 52.4.2.1

- Section 52.4.2.2

- Section 52.4.2.3

Not supported

Not supported

Not supported

Service Types

Not applicable

Section 52.5.1.1

Not supported

Not supported

Not supported

Service Collection

Table 52-11

Section 52.6.5.1

Section 52.6.5.4

Not supported

Not supported

Service Offering

Table 52-12

Section 52.6.5.2

Not supported

Not supported

Not supported

Request Metadata

Table 52-13

Section 52.6.5.3

Not supported

Not supported

Not supported

Service Requests

Table 52-19

- Section 52.7.4.1

- Section 52.7.4.2

- Section 52.7.4.3

- Section 52.7.4.4

Not supported

Not supported

Not supported

Service Request

Not applicable

- Section 52.7.4.5

- Section 52.7.4.8

- Section 52.7.4.9

Not supported

Section 52.7.4.7

Section 52.7.4.6

Service Instances

Table 52-38

- Section 52.8.2.1

- Section 52.8.2.2

- Section 52.8.2.3

- Section 52.8.2.5

- Section 52.8.2.4

- Section 52.8.2.6

Not supported

Section 52.8.2.7

Not supported

Quota Usage

Not applicable

- Section 52.9.2.1

- Section 52.9.2.2

Not supported

Not supported

Not supported

User Preferences

Not applicable

Section 52.10.2.1

Not supported

Not supported

Not supported

General User Preferences

Not applicable

- Section 52.10.2.2

- Section 52.10.2.3

Not supported

Section 52.10.2.4

Not supported

Services User Preferences

Not applicable

Section 52.10.2.5

Not supported

Not supported

Not supported

Service Family User Preferences

Not applicable

- Section 52.10.2.6

- Section 52.10.2.7

Not supported

Section 52.10.2.8

Not supported

Service Type User Preferences

Not applicable

- Section 52.10.2.9

- Section 52.10.2.10

Not supported

Section 52.10.2.11

Not supported

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

52.2 Summary of User REST APIs for V1

The table below shows a summary of all the User preference and Request scheduling REST APIs covered in this chapter for the v1 framework.

Table 52-2 Summary of User Preference and Request Scheduling REST APIs for V1

Resource

Data Model

GET

POST

PUT

DELETE

General Preferences

Table 52-66

Section 52.13.1

Not supported

Section 52.13.2

Not supported

Service Preferences

Table 52-73

Section 52.14.5.1

Not supported

Supported

Not supported

Database Preferences

Not applicable

- Section 52.14.6.1

- Section 52.14.6.4

Not supported

- Section 52.14.6.2

- Section 52.14.6.3

Not supported

Middleware Preferences

Not applicable

- Section 52.14.7.1

- Section 52.14.7.4

Not supported

- Section 52.14.7.2

- Section 52.14.7.3

Not supported

Testing Preferences

Not applicable

Section 52.14.8.1

Not supported

Section 52.14.8.2

Not supported

Service Request Collection

Table 52-20

Section 52.7.4.1

Not supported

Not supported

Not supported

Service Request Entity

Table 52-21

- Section 52.7.4.10

- Section 52.7.4.11

Not supported

- Section 52.7.4.7

- Section 52.7.4.12

Section 52.7.4.13

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

52.3 Common REST Entities for V2

This section describes the common REST entities to the cloud framework resources. These entities are specific to the new Cloud Framework (CFW) v2.

52.3.1 Cfw Resource for V2

Cfw resource is the base class for cloud framework resources. This resource fields that are common to all singular resources.

Table 52-3 Cfw Resource Data Model

Field

Type

Description

description

String

Description of the resource.

createdOn

String

Date of creation.

createdBy

String

Details of the creator.

modifiedOn

String

Date of last modification.

modifiedBy

String

Details of the modifier.

owner

String

Indicates the owner of the resource.

e-Tag

String

Indicates the Etag.

lastModified

String

Details of the last modification.

canonicalLink

Cfw Link

Indicates the canonical link of the resource.

52.3.2 Cfw Link for V2

Cfw link is the base class for the link to a resource.

Table 52-4 Cfw Link Data Model

Field

Type

Description

href

String

Indicates the URI or URI template. If the value is a URI template, then the templated property should be true.

templated

Boolean

Is True if href is a URI template, else false. The default value is false.

rel

String

Indicates the name of the link relation that the consumer may lookup as a secondary key (in addition to the type property) to retrieve actual link details, e.g. href or profile.

profile

String

Indicates the Json-schema describing the resource expected when deferring the target resource.

method

String

The method for requesting the target of the link.

mediaType

String

Description of the link target.

52.3.3 Cfw Value Descriptor for V2

Cfw value descriptor defines the dynamic data.

Table 52-5 Cfw Value Descriptor Data Model

Field

Type

Description

id

String

Indicates the ID.

name

String

Indicates the name.

value

String

Indicates the value.

defaultValue

String

Indicates the default value.

description

String

Provides a description.

displayName

String

Provides the display name.

required

Boolean

Signifies if required or not.

secret

Boolean

Signifies if it is a secret or not.

type

String

Indicates the type.

unitOfmeasurement

String

Indicates the unit of measurement.

values

List

Provides the list of values.

subvalues

List<CfwValueDescriptor>

Provides the list of sub-values.

subtype

String

Provides the type of elements in the values.

52.4 Catalog APIs

This section covers the Catalog APIs for SSA user.

52.4.1 Supported Operations

The table below lists the supported operations for the Catalog APIs.

Table 52-6 Supported operations for Catalog APIs

Method

URI

Description

GET

/em/websvcs/restful/extws/cloudservices/cfw/API

Returns links to available REST API catalogs.

GET

/em/websvcs/restful/extws/cloudservices/cfw/API/v2

Returns links to REST API catalog by user type.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/API

Returns user REST API catalog.

52.4.2 REST API Catalog Examples for V2

This section contains examples of the Catalog APIs. The following REST API examples are covered:

- Viewing Details of the Available REST API Catalogs

- Viewing Details of the API Catalog by User Type

- Viewing Details of the User API Catalog

52.4.2.1 Viewing Details of the Available REST API Catalogs

The table below shows the GET configuration for viewing details of the available REST API catalogs.

Table 52-7 GET Request Configuration for Viewing Details of the Available REST API Catalogs

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/cfw/API

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/cfw/API/v1",
"description": "API Summary for version V1"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/cfw/API/v2",
"description": "API Summary for version V2"
}
],
"totalResults": 2
}

52.4.2.2 Viewing Details of the API Catalog by User Type

The table below shows the GET configuration for viewing details of the REST API catalog by user type.

Table 52-8 GET Request Configuration for Viewing Details of the REST API Catalog by User Type

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/cfw/API/v2

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/API",
"description": "APIs for Self Service Application for version V2",
"type": "SSA"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/API",
"description": "APIs for administrative functions for version V2",
"type": "Admin"
}
],
"goBack":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/cfw/API",
"totalResults": 2
}

52.4.2.3 Viewing Details of the User API Catalog

The table below shows the GET configuration for viewing details of the user API catalog.

Table 52-9 GET Request Configuration for Viewing Details of the User API Catalog

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/API

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"items": [
{
"totalResults": 5,
"resource": "services",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services",
"method": "GET",
"description": "Get all the service offerings"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services",
"method": "POST",
"description": "Create a service"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{
id}",
"method": "GET",
"templated": true,
"description": "Get details of a service"
},
{
"href":
"https://bxx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{
id}/metadata",
"method": "GET",
"templated": true,
"description": "Get the metadata for a service"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{
id}/metrics",
"method": "PUT",
"templated": true,
"description": "Get the metrics for a service"
}
]
},
{
"totalResults": 11,
"resource": "userpreferences",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences",
"method": "GET"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/general",
"method": "GET",
"description": "Get the general user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/general/metadata",
"method": "GET",
"description": "Get the metadata for general user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services",
"method": "GET",
"description": "Get the service user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}",
"method": "GET",
"templated": true,
"description": "Get the user preferences for a service family"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/metadata",
"method": "GET",
"templated": true,
"description": "Get the metadata for user preference at family level"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/{service-type}",
"method": "GET",
"templated": true,
"description": "Get the user preferences for a service type"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/{service-type}/metadata",
"method": "GET",
"templated": true,
"description": "Get the metadata for user preference at service type level"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/general",
"method": "PUT",
"description": "Update general user preference"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}",
"method": "PUT",
"templated": true,
"description": "Update family level user preferences"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userprefer
ences/services/{service-family}/{service-type}",
"method": "PUT",
"templated": true,
"description": "Update service type level user preferences"
}
]
},
{
"totalResults": 4,
"resource": "servicerequests",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests",
"method": "GET",
"description": "Get service requests"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests/{id}",
"method": "PUT",
"templated": true,
"description": "Reschedule the request"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests/{id}",
"method": "GET",
"templated": true,
"description": "Get the details of request"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicereq
uests/{id}",
"method": "DELETE",
"templated": true,
"description": "Delete the request"
}
]
},
{
"totalResults": 5,
"resource": "serviceinstances",
"APIs": [
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances",
"method": "GET",
"description": "Get the service instances"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}",
"method": "GET",
"templated": true,
"description": "Get details of a service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}/actions",
"method": "GET",
"templated": true,
"description": "Get actions for a service instance"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}/actions/{action-id}",
"method": "GET",
"templated": true,
"description": "Get metadata details of action"
},
{
"href":
"https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceins
tances/{id}/actions/{action-id}",
"method": "PUT",
"templated": true,
"description": "Perform the action on the service instance"
}
]
}
],
"goBack": "https://xx.idc.example.com:4473/em/websvcs/restful/extws/cloudservices/API",
"totalResults": 4
}

52.5 Service Types for V2

This section covers the Service type REST APIs.

52.5.1 Service Types REST API Example for V2

The Service types REST API for SSA user is as follows.

The query parameter servicefamily can be optionally used in the GET request to filter the output for the given service family type.

52.5.1.1 Viewing Details of Service Types

The table below shows the GET configuration for viewing details of Service types.

Table 52-10 GET Request Configuration for Viewing Details of Service Types

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicetypes

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Service Types",
"type": "Service Types Collection",
"totalResults": 3,
"cfwItems": [
{
"name": "CFW_SAMPLEXAAS_REMOTESERVER_SERVICE",
"displayName": "Cfw Sample RemoteServer XaaS",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"targetTypes": [
"Cfw_Xaas_DB_Service"
]
},
{
"name": "CFW_SAMPLEXAAS_SERVICE",
"displayName": "Cfw Sample XaaS",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"targetTypes": [
"Cfw_Xaas_DB_Service",
"cfw_xaas_storage_service"
]
},
{
"name": "CFW_SAMPLEXAAS_SERVICE_FOR_NOMEM",
"displayName": "Cfw Sample XaaS - Other Service",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"targetTypes": [
"Cfw_Xaas_DB_Service_for_nomem"
]
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicetypes"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicetypes"
}
}

52.6 Services for V2

The Services resource is defined by the Service collection resource, Service offering resource and the Request metadata resource. These resource are explained below.

The following topics are covered in this section:

- Service Collection for V2

- Service Offering for V2

- Request Metadata for V2

- Supported Operations for Services for V2

- Services REST API Examples for V2

- Creating a Service Instance using V2

52.6.1 Service Collection for V2

Service collection resource is an extension of the oracle.sysman.cfw.cloudAPI.common.CfwCollection resource.

Table 52-11 Service Collection Data Model

Field

Type

Description

name

String

Name of the collection. The value is "Services".

type

String

Type of the collection. The value is "Services".

totalResults

Integer

The total count of items.

cfwItems

List<ServiceOffering>

Provides the list of ServiceOffering.

canonicalLink

Cfw link

Indicates the canonical link.

selfLink

Cfw link

Indicates the self link.

52.6.2 Service Offering for V2

Service offering resource is an extension of the oracle.sysman.cfw.cloudAPI.common.CfwResource resource. Service offering resource encapsulates the service offering that is available to the user using which the user can provision a service instance.

Table 52-12 Service Offering Data Model

Field

Type

Description

id

String

Indicates the ID of the service offering.

name

String

Name of the service offering.

displayName

String

Display name of the service offering.

guid

String

GUID of the service offering.

serviceType

String

Indicates the service type.

serviceFamily

String

Indicates the service family.

description

String

Description of the service offering.

modifiedOn

String

Indicates the date of the modification.

lastModified

String

Indicates the date of the last modification.

meta

String

Meta details of the service offering.

canonicalLink

Cfw link

Indicates the canonical link.

selfLink

Cfw link

Indicates the self link.

52.6.3 Request Metadata for V2

Request metadata resource is an extension of the oracle.sysman.cfw.cloudAPI.common.CfwResource. Request metadata encapsulates the data required to create a service instance. This response returned is filled by user with appropriate values and is used as in "POST" paylaod required for creation of service instance.

Table 52-13 Request Metadata Data Model

Field

Type

Description

instanceName

String

Name of the service instance.

schedule

Schedule entity

Schedule of the request.

configurations

List<CfwValueDescriptor>

Provides the list of configurations.

characteristics

List<Characteristic>

Provides the list of characteristics.

52.6.4 Supported Operations for Services for V2

The table below lists the supported operations for the Services resource.

Table 52-14 Supported operations for Services Resource

Method

URI

Description

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services

Returns list of service offerings.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{serviceguid}

Returns service offering details.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{serviceguid}/metadata

Returns service offering metadata details.

POST

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services

Submits request for creation of Service

instance.

52.6.5 Services REST API Examples for V2

This section contains the REST APIs which are a part of the Services resource. The following REST API tasks are covered.

- Viewing Details of the Services Resource

- Viewing Details of the Service Offering Resource

- Viewing Details of the Request Metadata

- Creating a Service Instance

52.6.5.1 Viewing Details of the Services Resource

The table below shows the GET configuration for viewing details of the Services resource.

Table 52-15 GET Request Configuration for Viewing Details of the Services Resource

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Services",
"type": "Service",
"totalResults": 4,
"cfwItems": [
{
"id": "1",
"name": "ORACLE_NIMBULA_ORCHESTRATION_TEMPLATE",
"displayName": "Orchestration",
"guid": "04FA3C08D3F3398AE053CE74B10A52F3",
"serviceType": "ORACLE_NIMBULA_ORCHESTRATION_SERVICE",
"serviceFamily": "NIMBULA_INFRASTRUCTURE",
"description": "Create a set of Oracle VM instances with customized configuration for
multi-tier applications",
"meta":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servies/04FA3C08D3F3398AE053CE74B10A52F3/metadata",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FA3C08D3F3398AE053CE74B10A52F3"
}
},
{
"id": "2",
"name": "ORACLE_NIMBULA_SIMPLE_ORCHESTRATION_TEMPLATE",
"displayName": "Simple Orchestration",
"guid": "04FA3C08D3F6398AE053CE74B10A52F3",
"serviceType": "ORACLE_NIMBULA_ORCHESTRATION_SERVICE",
"serviceFamily": "NIMBULA_INFRASTRUCTURE",
"description": "Create one or more Oracle VM instances with default configuration and minimum inputs",
"meta":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FA3C08D3F6398AE053CE74B10A52F3/metadata",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FA3C08D3F6398AE053CE74B10A52F3"
}
},
{
"id": "44",
"name": "MY DB Schema",
"displayName": "MY DB Schema",
"guid": "04FBAB67376E77D1E053CE74B10A9AA8",
"serviceType": "SCHEMA",
"serviceFamily": "DBAAS",
"description": "My DB Schema",
"meta":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FBAB67376E77D1E053CE74B10A9AA8/metadata",
"canonicalLink": {
2.3 9
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FBAB67376E77D1E053CE74B10A9AA8"
}
},
{
"id": "41",
"name": "My WebLogic Template",
"displayName": "My WebLogic Template",
"guid": "04FB7EEED9A03798E053CE74B10A753D",
"serviceType": "WLAAS",
"serviceFamily": "MIDDLEWARE_CFW",
"description": "My Web Logic Template",
"meta":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FB7EEED9A03798E053CE74B10A753D/metadata",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FB7EEED9A03798E053CE74B10A753D"
}
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/"
}
}

52.6.5.2 Viewing Details of the Service Offering Resource

The table below shows the GET configuration for viewing details of the Service offering resource.

Table 52-16 GET Request Configuration for Viewing Details of the Service Offering Resource

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{serviceguid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"id": "42",
"name": "My Xaas Remote Server",
"displayName": "My Xaas Remote Server",
"guid": "04FBAB67376677D1E053CE74B10A9AA8",
"serviceType": "CFW_SAMPLEXAAS_REMOTESERVER_SERVICE",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"description": "My Xaas Remote Server",
"createdOn": "2014-10-09T10:13:34Z",
"modifiedOn": "2014-10-09T10:13:34Z",
"lastModified": "2014-10-09T10:13:34Z",
"meta":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FBAB67376677D
1E053CE74B10A9AA8/metadata",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FBAB67376677D
1E053CE74B10A9AA8"
}
}

52.6.5.3 Viewing Details of the Request Metadata

The table below shows the GET configuration for viewing details of the Request metadata.

Table 52-17 GET Request Configuration for Viewing Details of the Request Metadata

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{serviceguid}/metadata

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"characteristics": [
{
"displayName": "Self Service Zone",
"name": "ORACLE.SYSMAN.SXAAS.CFW_SAMPLEXAAS_RSRC_POOL",
"possibleValues": [
{
"name": "my_paaszone",
"value": "1C3A932A9089BBEC27A63EF389C7DF24"
}
]
}
],
"configurations": [
{
"name": "temp_param2",
"type": "STRING",
"value": "",
"required": false,
"secret": false
},
{
"name": "USER_NAME",
"type": "STRING",
"description": "User Name (cannot be any of Oracle default accounts) used to login to the requested database",
"value": "",
"required": false,
"secret": false
},
{
"name": "temp_param1",
"type": "STRING",
"value": "",
"required": false,
"secret": false
},
{
"name": "USER_PASSWORD",
"type": "STRING",
"description": "User Password to login to the given User Name database account",
"required": false,
"secret": true
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FBAB67376677D1E053CE74B10A9AA8/metadata"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/04FBAB67376677D1E053CE74B10A9AA8/metadata"
},
"instanceName": "<user-input>"
}

52.6.5.4 Creating a Service Instance

The table below shows the POST configuration for creating a Service instance.

Table 52-18 POST Request Configuration for Creating a Service Instance

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"name":"Xaas RemoteServer Request",
"offeringId":"04FBAB67376677D1E053CE74B10A9AA8",
"instanceName":"Xaas RemoteServer",
"schedule": {
"scheduleStartTime":"2015-01-12T16:48:10ZAmerica/Los_Angeles",
"scheduleEndTime":"2015-31-12T16:48:10ZAmerica/Los_Angeles"
},
"characteristics": [
{
"name":"ORACLE.SYSMAN.SXAAS.CFW_SAMPLEXAAS_RSRC_POOL",
"value":"1C3A932A9089BBEC27A63EF389C7DF24"
}
],
"configurations": [
{
"name":"temp_param2",
"value":"val2"
},
{
"name":"USER_NAME",
"value":"user"
},
{
"name": "temp_param1",
"value":"val1"
},
{
"name": "USER_PASSWORD",
"value":"passwords"
}
]
}

Request method

POST

A sample of the response received is shown below.

{
"requests":[
{
"id":"16",
"actionName":"CREATE",
"canonicalLink":{
"href":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/1
6"
}
},
{
"id":"17",
"actionName":"DELETE",
"canonicalLink":{
"href":"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/1
7"
}
}
]
}

52.6.6 Creating a Service Instance using V2

This section provides the procedure to create a Service instance using REST APIs.

Follow the steps below to create a Service instance:

1. Perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/. See, Section 52.6.5.1, "Viewing Details of the Services Resource".
The GET operation returns all the service offerings. Note the required service offering.

2. Perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{serviceofferingid}/metadata, using the service offering ID from the previous step. See, Section 52.6.5.3, "Viewing Details of the Request Metadata".
The GET operation returns the metadata of the service offering. Note the metadata fields.

3. Perform a POST operation on the URI - em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/, by providing values for the metadata fields. See, Section 52.6.5.4, "Creating a Service Instance".
The POST generates a request for the creation of a Service instance. The request payload is expected to have the following fields with values set.

- offeringId - A unique ID for identifying the Service instance.

- name - A name for the Service instance.

- schedule - This is an optional field and has two sub-fields, scheduleStartTime and scheduleEndTime. To schedule an instance for future use provide scheduleStartTime value. Additionally, to set expiry or end time for the service instance set the scheduleEndTime.

- instanceName - This field is dependent on the chosen service offering and may or may not be required.

- configurations - This field is dependent on the chosen service offering and may or may not be required.

- characteristics - This field is dependent on the chosen service offering and may or may not be required.

52.7 Service Requests REST APIs for V1 and V2

A user with the EM_SSA_USER role can reschedule and cancel requests that are in the scheduled state.

All the REST APIs will be available from the top level URI /extws/cloudservices/ssa/cfw/v1/.

52.7.1 Service Requests Resource for V2

The Service requests resource is an extension of oracle.sysman.cfw.cloudAPI.pojo.request.RequestSummary. A request enables a SSA user to initiate a task for immediate or future execution.

Table 52-19 Service Requests Data Model for V2

Field

Type

Description

requestType

String

Type of request.

serviceFamily

String

Name of service family.

serviceType

String

Name of service type.

startDate

String

Start date of request.

endDate

String

End date of request.

lastModifiedDate

String

Date of last modification of request.

timeZone

String

Time zone of the request.

displayName

String

Display name of the request.

actionName

String

Name of the request action.

description

String

Description of the request.

submissionDate

String

Date of submission of the request.

submittedBy

String

Name of the user who submitted the request.

executionLogs

String

Execution logs.

status

Request status

Status of the request.

52.7.2 Service Request Collection - Collection Resource for V1

Service Request Collection is a collection resource representing a Cloud Administrator's view of all the accessible Service Request resources. The following table describes the Service Request Collection data model for v1.

Table 52-20 Service Request Collection Data Model for V1

Field

Type

Description

Occurs

name

String

Display name of this collection resource.

1

type

String

Type of this collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection

1

count

Integer

Number of elements returned.

1

items

Collection <ServiceRequestEntity>

List of ServiceRequestEntity resources. In case no requests exist, items will be present but empty.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

Table 52-21 Service Request Entity Data Model for V1

Field

Type

Description

Occurs

id

String

The RequestId of the ServiceRequest.

1

beginDate

String

The String representation of timestamp to which the new schedule has to be updated, in specified format. e.g 2013-10-02T16:14:41ZPST

1

status

String

The status of service request

1

name

String

Name of service request.

1

serviceFamily

String

The service family of the request type.

1

lastUpdatedTime

String

The string value of last modified timestamp, in specified format.

1

lifeCycle

String

The life cycle of request.

1

selfLink

String

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

1

canonicalLink

String

A GET against this URI represents the client representation of this resource

1

52.7.3 Supported Operations for Service Requests

The table below lists the operations that are supported in the Service requests resource.

Table 52-22 Supported Methods for Service Requests

Request Method

V2 Canonical Link

V1 Canonical Link

Description

GET

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/

Provides the list of all service requests.

There are two query parameter types and status for v1. For v2, see Table 52-23, "Query Parameters for Service Requests in V2", for query parameters.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/<request-id>

Provides the details of the service request ID.

PUT

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/<request-id>

Re-schedule the specified request to another schedule. The beginDate for the schedule is specified in the payload.

DELETE

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/<service-request-id>

Cancels specified Service Request.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}/logs

Not applicable

Provides the service request logs.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}/logs?stepid={stepid}

Not applicable

Returns request execution step log.

The table below shows the query parameters supported for the GET request on the Service Requests resource in the v2 framework.

Table 52-23 Query Parameters for Service Requests in V2

Parameter

Input

Description

Required

servicetype

Name of service type

Returns service type specific information.

Optional

status

Status of service request

Returns status specific information. The possible values are:

- CANCELLED

- CLEANUP_ERROR

- CLEANUP_FAILED

- CLEANUP_SCHEDULED

- CLEANED

- CLEANING_UP

- EXECUTION_ERROR

- INCOMPLETE

- IN_PROGRESS

- NO_QUOTA_ERROR

- NO_RESOURCE_ERROR

- PARTIAL_SUCCEEDED

- ENDED

- ERROR_ENDING

- ENDING

- EXECUTING

- SAVED

- SCHEDULED

- SCHEDULING

- ERROR_SCHEDULING

- SUCCESS

Optional

expanded

Boolean; true or false

If true, RequestCollection returns a list of requests cfwItems, else status wise summary of requests is returned.

Possible values are true, and false. Any value apart from true or false is ignored and treated as false.

Optional

servicefamily

Name of service family

Returns service family specific information.

Optional

52.7.4 Service Request REST API Examples for V1 and V2

This section lists all a few REST API example scenarios. The following operations are covered in this section:

V2:

- Retrieving Top Level View of Service Requests in V1 and V2

- Querying the Service Requests Resource for Status=SUCCESS in V2

- Querying the Service Requests Resource for Expanded=true and Expanded=false in V2

- Querying the Service Requests Resource for status=SUCCESS&expanded=false and status=SUCCESS&expanded=true in V2

- Viewing Details of a Service Request in V2

- Deleting a Service Request in V2

- Rescheduling a Service Request that is in a Scheduled State in V1 and V2

- Viewing the Logs of a Service Request in V2

- Querying the Logs of a Service Request in V2

V1:

- Retrieving Top Level View of Service Requests for a Specific Service Family in V1

- Retrieving Top Level View of Service Requests for a Specific Status in V1

- Rescheduling a Service Request that is in a Cancelled State (or in a state other than Scheduled) in V1

- Deleting a Service Request that is in a Scheduled State in V1

- Deleting a Service Request that is in a Canceled State (or in a state other than scheduled) in V1

52.7.4.1 Retrieving Top Level View of Service Requests in V1 and V2

Table 52-24 GET Request Configuration for Viewing Details of Service Requests Resource in V1 and V2

Feature

Specification for V1

Specification for V2

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

None

Request method

GET

GET

A sample of the response received for v2 is shown below.

{
"name": "Request summary grouped by status",
"totalResults": 17,
"requestSummary": [
{
"status": "NO_QUOTA_ERROR",
"count": 1,
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=NO_QUOTA_ERROR&expanded=true"
},
{
"status": "EXECUTION_ERROR",
"count": 1,
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=EXECUTION_ERROR&expanded=true"
},
{
"status": "SUCCESS",
"count": 5,
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=SUCCESS&expanded=true"
},
{
"status": "CLEANUP_FAILED",
"count": 1,
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=CLEANUP_FAILED&expanded=true"
},
{
"status": "SCHEDULED",
"count": 9,
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=SCHEDULED&expanded=true"
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests"
}
}

A sample of the response received for v1 is shown below.

{
"name": "Service Requests",
"type": "Service Request","count": 2,
"items": [
{
"id": "2",
"name": "future_Create Sample XaaS Service#2",
"beginDate": "2015-02-14T08:37:18Z India Standard Time",
"status": "SCHEDULED",
"selfLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/2",
"canonicalLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/2",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY"
},
{
"id": "1",
"name": "eadeweqqw_Create Sample XaaS Service#1",
"beginDate": "2015-02-10T07:49:24Z India Standard Time",
"status": "EXECUTION_ERROR",
"selfLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/1",
"canonicalLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/1",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY"
}
],
"selfLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequest?status=ALL",
"canonicalLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/"
}

52.7.4.2 Querying the Service Requests Resource for Status=SUCCESS in V2

The table below shows the GET configuration for querying the Service requests resource.

Table 52-25 GET Request Configuration for Querying a Service Request for Status=SUCCESS in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=SUCCESS

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "Request summary grouped by status",
"totalResults" : 5,
"requestSummary" : [ {
"status" : "SUCCESS",
"count" : 3,
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SUCCESS&expanded=true"
}, {
"status" : "SCHEDULED",
"count" : 2,
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SCHEDULED&expanded=true"
} ],
"canonicalLink" : {
"href" :
3.4 22
-
-
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SUCCESS"
}
}

52.7.4.3 Querying the Service Requests Resource for Expanded=true and Expanded=false in V2

The table below shows the GET configuration for querying the Service requests resource for expanded=true. A similar approach is followed for expanded=false, where the query change is made in the URI.

Table 52-26 GET Request Configuration for Querying a Service Request for Expanded=true in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?expanded=true

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received for expanded=true is shown below.

{
"name" : "Service Requests",
"type" : "Service Request",
"totalResults" : 5,
"cfwItems" : [ {
"id" : "5",
"name" : "Rst_rpc_14-09-11 09.52.58_11-Sep-14 21:53:06.663",
"startDate" : "2014-09-11T16:23:06Z",
"status" : "SUCCESS",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/5"
},
"displayName" : "Rst_rpc_14-09-11 09.52.58_11-Sep-14 21:53:06.663"
}, {
"id" : "4",
"name" : "Remove Sample XaaS Service_Xaas_Storage__11-Sep-14 21:52:58.553",
"startDate" : "2017-07-12T23:48:10Z",
"status" : "SCHEDULED",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/4"
},
"displayName" : "Remove Sample XaaS Service_Xaas_Storage__11-Sep-14 21:52:58.553"
}, {
"id" : "3",
"name" : "Rst_en_14-09-11 09.52.58_11-Sep-14 21:52:58.363",
"startDate" : "2014-09-11T16:22:58Z",
"status" : "SUCCESS",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/3"
},
"displayName" : "Rst_en_14-09-11 09.52.58_11-Sep-14 21:52:58.363"
}, {
"id" : "2",
"name" : "Rst_st_en_14-09-11 09.52.58_11-Sep-14 21:52:54.187",
"startDate" : "2015-01-13T00:48:10Z",
"status" : "SCHEDULED",
"canonicalLink" : {
"href" :
3.5 23
-
-
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/2"
},
"displayName" : "Rst_st_en_14-09-11 09.52.58_11-Sep-14 21:52:54.187"
}, {
"id" : "1",
"name" : "Rst_14-09-11 09.52.58_11-Sep-14 21:52:49.360",
"startDate" : "2014-09-11T16:22:49Z",
"status" : "SUCCESS",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/1"
},
"displayName" : "Rst_14-09-11 09.52.58_11-Sep-14 21:52:49.360"
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?expanded=true"
}
}

A sample of the response received for expanded=false is shown below.

{
"name" : "Request summary grouped by status",
"totalResults" : 5,
"requestSummary" : [ {
"status" : "SUCCESS",
"count" : 3,
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SUCCESS&expanded=true"
}, {
"status" : "SCHEDULED",
"count" : 2,
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=SCHEDULED&expanded=true"
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?expanded=false"

52.7.4.4 Querying the Service Requests Resource for status=SUCCESS&expanded=false and status=SUCCESS&expanded=true in V2

The table below shows the GET configuration for querying the Service requests resource for status=SUCCESS&expanded=false. A similar approach is followed for status=SUCCESS&expanded=true, where the query change is made in the URI.

Table 52-27 GET Request Configuration for Querying a Service Request for status=SUCCESS&expanded=false in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests?status=SUCCESS&expanded=false

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received for status=SUCCESS&expanded=false is shown below.

{
"name" : "Request summary grouped by status",
"totalResults" : 5,
"requestSummary" : [ {
"status" : "SUCCESS",
"count" : 3,
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SUCCESS&expanded=true"
}, {
"status" : "SCHEDULED",
"count" : 2,
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SCHEDULED&expanded=true"
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SUCCESS&expanded=false"
}
}

A sample of the response received for status=SUCCESS&expanded=true is shown below.

{
"name" : "Service Requests",
"type" : "Service Request",
"totalResults" : 3,
"cfwItems" : [ {
"id" : "5",
"name" : "Rst_rpc_14-09-11 09.52.58_11-Sep-14 21:53:06.663",
"startDate" : "2014-09-11T16:23:06Z",
"status" : "SUCCESS",
"canonicalLink" : {
"href" :
3.7 "https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere 25
quests/5"
},
"displayName" : "Rst_rpc_14-09-11 09.52.58_11-Sep-14 21:53:06.663"
}, {
"id" : "3",
"name" : "Rst_en_14-09-11 09.52.58_11-Sep-14 21:52:58.363",
"startDate" : "2014-09-11T16:22:58Z",
"status" : "SUCCESS",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/3"
},
"displayName" : "Rst_en_14-09-11 09.52.58_11-Sep-14 21:52:58.363"
}, {
"id" : "1",
"name" : "Rst_14-09-11 09.52.58_11-Sep-14 21:52:49.360",
"startDate" : "2014-09-11T16:22:49Z",
"status" : "SUCCESS",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/1"
},
"displayName" : "Rst_14-09-11 09.52.58_11-Sep-14 21:52:49.360"
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests?status=SUCCESS&expanded=true"
}
}

52.7.4.5 Viewing Details of a Service Request in V2

The GET request configuration for viewing details of a Service request is shown below.

Table 52-28 GET Request Configuration for Viewing Details of a Service Request in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"id": "44",
"name": "dp_2b022961-c#44",
"status": "SUCCESS",
"serviceType": "CFW_SAMPLEXAAS_SERVICE",
"serviceFamily": "Sample Services",
"actionName": "Create Sample XaaS Service",
"startDate": "2014-10-15T09:29:23Z",
"createdOn": "2014-10-15T09:29:23Z",
"createdBy": "SYSMAN",
"owner": "SYSMAN",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/44"
},
"executionLogs":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/44/logs"
}

52.7.4.6 Deleting a Service Request in V2

The DELETE request configuration for deleting a Service request is shown below.

Table 52-29 DELETE Request Configuration for Deleting a Service Request in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

DELETE

A sample of the response received is shown below.

{
"message" : "[\"Request 31 deleted successfully\"]"
}

52.7.4.7 Rescheduling a Service Request that is in a Scheduled State in V1 and V2

The table below shows the PUT request configuration.

Table 52-30 PUT Request Configuration for Rescheduling a Service Request in a Scheduled State in V1 and V2

Feature

Specification for V1

Specification for V2

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/2

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"beginDate": "2013-10-02T16:14:41ZPST"
}

{"startDate":"2015-08-12T16:48:10ZAmerica/Los_Angeles"}

Request method

PUT

PUT

A sample of the response received for v2 is shown below.

{
"message" : "Request 2 rescheduled successfully."
}

A sample of the response received for v1 is shown below.

Status 200 OK
{
message: "Service request 2 rescheduled successfully."
}

52.7.4.8 Viewing the Logs of a Service Request in V2

The table below shows the GET request configuration for viewing the Service request logs.

Table 52-31 GET Request Configuration for Viewing the Logs of a Service Request in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}/logs

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"submittedOn" : "2014-09-12T07:20:38Z",
"steps" : [ {
"stepName" : "CfwRequestInitCommand",
"stepId" : "CfwRequestInitCommand",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/21/logs?stepid=CfwRequestInitCommand"
}, {
"stepName" : "CfwRequestPreProcessCommand",
"stepId" : "CfwRequestPreProcessCommand",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/21/logs?stepid=CfwRequestPreProcessCommand"
}, {
"stepName" : "CfwRequestJobInvokerCommand",
"stepId" : "CfwRequestJobInvokerCommand",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/21/logs?stepid=CfwRequestJobInvokerCommand"
}, {
"stepId" : "",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/21/logs?stepid="
}, {
"stepName" : "CfwRequestPostProcessCommand",
"stepId" : "CfwRequestPostProcessCommand",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/21/logs?stepid=CfwRequestPostProcessCommand"
} ],
"id" : "21"
}

52.7.4.9 Querying the Logs of a Service Request in V2

The table below shows the GET request configuration for querying the Service request logs.

Table 52-32 GET Request Configuration for Querying the Logs of a Service Request in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/{requestid}/logs?stepid=CfwRequestPreProcessCommand

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"id" : "21",
"stepName" : "CfwRequestPreProcessCommand",
"stepId" : "CfwRequestPreProcessCommand",
"data" : "INFO:Request Pre-processing in progress.\nINFO:Preparing the inputs for Request Action:
Create Sample XaaS Service\nINFO:Performing placment checks to identify the appropriate Service-
Provider.\nINFO:Placement checks executed successfully.\nINFO:Request pre-processing successfully
executed.",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicere
quests/21/logs?stepid=CfwRequestPreProcessCommand"
}
}

52.7.4.10 Retrieving Top Level View of Service Requests for a Specific Service Family in V1

The table below shows the GET request configuration.

Table 52-33 GET Request Configuration for Viewing Details of a Service Request for a Specific Service Family in V1

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests?type=mwaas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK
{
name: "Service Requests"
type: "Service Request"
count: 2
items: [2]
0:
{
id: "2"
name: "request2_14153ee61c5_Create_20130925_123353"
beginDate: "2013-09-25T12:48:50ZAsia/Calcutta"
status: "Scheduled"
lifeCycle: "Create Service Instance"
selfLink: "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/2"
canonicalLink: "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/2"
serviceFamily: "MWAAS"
}

1:
{
id: "1"
name: "request1_14153ea0bb6_Create_20130925_122909"
beginDate: "2013-09-25T12:44:03ZAsia/Calcutta"
status: "Cancelled"
lifeCycle: "Create Service Instance"
selfLink: "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/1"
canonicalLink: "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/1"
serviceFamily: "MWAAS"
}

selfLink: "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests?status=ALL"
canonicalLink: "https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests"
}

52.7.4.11 Retrieving Top Level View of Service Requests for a Specific Status in V1

The table below shows the GET request configuration.

Table 52-34 GET Request Configuration for Viewing Details of a Service Request for with a Specific Status in V1

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/?status=SCHEDULED

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Service Requests",
"type": "Service Request",
"count": 1,
"items": [
{
"id": "2",
"name": "future_Create Sample XaaS Service#2",
"beginDate": "2015-02-14T08:37:18Z India Standard Time",
"status": "SCHEDULED",
"selfLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/2",
"canonicalLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/2",
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY"
}
],
"selfLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequest?status=SCHEDULED",
"canonicalLink": "https://cloudcompnay.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/"
}

52.7.4.12 Rescheduling a Service Request that is in a Cancelled State (or in a state other than Scheduled) in V1

The table below shows the PUT request configuration.

Table 52-35 PUT Request Configuration for Rescheduling a Service Request that is in Cancelled State in v1

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"beginDate": "2013-10-02T16:14:41ZPST"
}

Request method

PUT

A sample of the response received is shown below.

Status : 400 Bad request {errorMessages: "Error occured while rescheduling. Verify that schedule is not in past and status is scheduled."}

52.7.4.13 Deleting a Service Request that is in a Scheduled State in V1

The table below shows the DELETE request configuration.

Table 52-36 DELETE Request Configuration for Cancelling a Scheduled Service Request in V1

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

A sample of the response received is shown below.

Status 200 OK
{
message: "Service request 1 cancelled successfully."
}

52.7.4.14 Deleting a Service Request that is in a Canceled State (or in a state other than scheduled) in V1

The table below shows the DELETE request configuration.

Table 52-37 DELETE Request Configuration for Deleting a Service Request in Cancelled State in V1

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/servicerequests/1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

A sample of the response received is shown below.

Status : 400 Bad request{errorMessages: "Error occured while cancelling. Only request with status SCHEDULED is cancellable."}

52.8 Service Instances for V2

Service instances resources comprises of Service instance and Action entities. The data models of the Service instances resource and its associated entities is given below.

Table 52-38 Service Instance Data Model for V2

Field

Type

Description

guid

String

Guid of the service instance.

serviceFamily

String

Name of the service family.

serviceType

String

Name of the service type.

status

String

Status of the service instance.

displayname

String

Display name of the service instance.

targetType

String

Target type of the service instance.

Table 52-39 Action Data Model for V2

Field

Type

Description

Occurs

offeringId

String

Guid of the service.

1

name

String

Name of the request.

1

instanceName

String

Name of the service instance.

0..1

schedule

ScheduleEntity

Schedule of the request.

0..1

configurations

List<CfwValueDescriptor>

Configurations.

0..1

characteristics

List<Characteristic>

List of characteristics.

0..1

The supported request parameters and their descriptions are provided in the table below.

52.8.1 Supported Methods for Service Instance in V2

The table below provides information on the supported methods for Service instance resource.

Table 52-40 Supported methods for Service Instance Resource

Request Method

URI

Description

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/

Returns the service instances collection details.

See Table 52-41, "Query Parameters for Service Instance in V2", for query parameters.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}

Returns the details of specified service instance.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/actions

Returns actions available on the specified service instance.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/attributes

Returns attributes for the specified service instance.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/actions/{actionid}

Returns the action details and the action inputs required to execute the action on the specified service instance.

PUT

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/

Executes the action on a given service instance.

The table below shows the query parameters supported for the GET request on the Service instance resource in the v2 framework.

Table 52-41 Query Parameters for Service Instance in V2

Parameter

Input

Description

Required

servicetype

Name of service type.

Returns service type specific information.

Optional

status

Status of service instance.

Returns status specific information. The possible values are:

- PENDING_CREATION: Indicates that a request to create the service instance is scheduled to run on a later date and the relevant service instance is scheduled to be created.

- PROCESSING_CREATION: Indicates that a request to create the service instance is running and is in the process of creation.

- ERROR_CREATION: Indicates that a request to create the service instance failed due to error.

- STATUS_DOWN: Indicates that the service instance is currently down.

- STATUS_UP: Indicates that the service instance is up and running fine.

- STATUS_METRIC_ERROR: Indicates that the system (EM/OMS) monitoring the service instance has encountered issues while collecting certain data on the service instance.

- STATUS_AGENT_DOWN: Indicates that the agent monitoring the service instance is down. Hence, the monitoring data of the service instance cannot be uploaded.

- STATUS_UNREACHABLE: Indicates that the system is not able to get the service instance availability status.

- STATUS_BLACKOUT: Indicates that the Administrator has black-out the service instance for upgrades/patches. The upgrades will be applied generally to the machines hosting the service.

- STATUS_PENDING: Indicates that the system is in the process of collecting the availability status of the service instance.

Optional

expanded

Boolean; true or false.

ServiceInstanceCollection contains cfwItems if true and serviceInstanceSummary if false.

Optional

52.8.2 Service Instances REST API Examples for V2

This section provides the REST API examples of the Service instances resource. The following operations are covered in this section:

- Viewing Details of the Service Instance Resource in V2

- Querying the Service Instance Resource in V2

- Viewing Details of a Service Instance in V2

- Viewing Details of the Attributes of a Service Instance in V2

- Viewing Details of the Available Actions on a Service Instance in V2

- Viewing Details of the Action Inputs Required To Execute an Action on a Service Instance in V2

- Executing an Action on a Service Instance in V2

52.8.2.1 Viewing Details of the Service Instance Resource in V2

The table below shows the GET request configuration.

Table 52-42 GET Request Configuration for Viewing Details of Service Instance Resource in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "Service Instances Summary",
"totalResults" : 7,
"serviceInstanceSummary" : [ {
"status" : "STATUS_UP",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?status=STATUS_UP&expanded=true",
"count" : 3
}, {
"status" : "PENDING_CREATION",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?status=PENDING_CREATION&expanded=true",
"count" : 4
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances"
}
}

52.8.2.2 Querying the Service Instance Resource in V2

The table below shows the GET request configuration for querying the Service instance resource based on the following parameters:

- expanded=true

- expanded=false

- status=STATUS_UP

- servicetype=CFW_SAMPLEXAAS_SERVICE

- expanded=true,status=STATUS_UP

- expanded=false,status=STATUS_UP,servicetype=CFW_SAMPLEXAAS_SERVICE

Table 52-43 GET Request Configuration for Querying Service Instance Resource in V2

Feature

Specification

URI for expanded=true

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?expanded=true

URI for expanded=false

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?expanded=false

URI for status=STATUS_UP

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?status=STATUS_UP

URI for servicetype=CFW_SAMPLEXAAS_SERVICE

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?servicetype=CFW_SAMPLEXAAS_SERVICE

URI for expanded=true&status=STATUS_UP

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?expanded=true&status=STATUS_UP

URI for expanded=false,status=STATUS_UP,servicetype=CFW_SAMPLEXAAS_SERVICE

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances?expanded=fal

se&status=STATUS_UP&servicetype=CFW_SAMPLEXAAS_SERVICE

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received for expanded=false is shown below.

{
"name" : "Service Instances Summary",
"totalResults" : 7,
"serviceInstanceSummary" : [ {
"status" : "STATUS_UP",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicein
stances?status=STATUS_UP&expanded=true",
"count" : 3
}, {
"status" : "PENDING_CREATION",
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicein
stances?status=PENDING_CREATION&expanded=true",
"count" : 4
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicein
stances"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicein
stances?expanded=false"
}
}

52.8.2.3 Viewing Details of a Service Instance in V2

The table below shows the GET request configuration.

Table 52-44 GET Request Configuration for Viewing Details of a Service Instance in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "test",
"targetName" : "test",
"guid" : "CCA88E9507D4A9E2214935F956D83150",
"serviceType" : "CFW_SAMPLEXAAS_SERVICE",
"serviceFamily" : "CFW_SAMPLEXAAS_SERVICEFAMILY",
"status" : "STATUS_UP",
"targetType" : "Cfw_Xaas_DB_Service",
"createdOn" : "2014-11-15T00:00:00ZAsia/Calcutta",
"createdBy" : "SYSMAN",
"owner" : "SYSMAN",
"attributes" : {
"href" :
"https://xx.idc.example.com:14488/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicein
stances/CCA88E9507D4A9E2214935F956D83150/attributes"
},
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:14488/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicein
stances/CCA88E9507D4A9E2214935F956D83150"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:14488/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicein
stances/CCA88E9507D4A9E2214935F956D83150"
}
}

52.8.2.4 Viewing Details of the Attributes of a Service Instance in V2

The table below shows the GET request configuration.

Table 52-45 GET Request Configuration for Viewing Details of the Attributes of a Service Instance in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/attributes

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"serviceInstanceGuid" : "CCA88E9507D4A9E2214935F956D83150",
"attributes" : [ {
"name" : "xaasServiceName",
"type" : "STRING",
"value" : "test"
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:14488/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/CCA88E9507D4A9E2214935F956D83150/attributes"
},
"selfLink" : {
"href" :
"https://xx.idc.example.com:14488/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/CCA88E9507D4A9E2214935F956D83150/attributes"
}
}

52.8.2.5 Viewing Details of the Available Actions on a Service Instance in V2

The table below shows the GET request configuration.

Table 52-46 GET Request Configuration for Viewing Details of the Available Actions on a Service Instance in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/actions

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"totalResults" : 6,
"selfLink" : {
"href" :
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/2A2BD0D7C40F7C2814FA6788704E313
A/actions"
},
"cfwItems" : [ {
"name" : "DELETE",
"id" : "82",
"displayName" : "Remove Sample XaaS Service",
"description" : "Removing my Sample XaaS service"
}, {
"name" : "START",
"id" : "84",
"displayName" : "Start Service",
"description" : "Starts this service"
}, {
"name" : "STOP",
"id" : "85",
"displayName" : "Stop Service",
"description" : "Stops this service"
}, {
"name" : "CLEANUP",
"id" : "86",
"displayName" : "Cleanup Sample XaaS Failed Request",
"description" : "Cleanup Sample Xaas Failed Request"
}, {
"name" : "SYNCSTARTSERVICE",
"id" : "87",
"displayName" : "Sync Start Service",
"description" : "Synchronous Action to Start Sample Service"
}, {
"name" : "SYNCSTOPSERVICE",
"id" : "88",
"displayName" : "Sync Stop Service",
"description" : "Synchronous Action to Stop Sample Service"
} ],
"name" : "Actions",
"type" : "Action",
"canonicalLink" : {
"href" :
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/2A2BD0D7C40F7C2814FA6788704E313
A/actions"
}
}

52.8.2.6 Viewing Details of the Action Inputs Required To Execute an Action on a Service Instance in V2

The table below shows the GET request configuration.

Table 52-47 GET Request Configuration for Viewing Details of the Action Inputs Required To Execute an Action on a Service Instance in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/actions/{actionid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "START",
"id" : "94",
"displayName" : "START",
"actionInputs" : [ {
"name" : "WorkLoads",
"type" : "VECTOR",
"description" : "WorkLoad Values",
"required" : false,
"secret" : false,
"subvalues" : [ {
"name" : "Small",
"type" : "VECTOR",
"description" : "Configuration Values for Small WorkLoad",
"required" : false,
"secret" : false,
"subvalues" : [ {
"name" : "DEPL_SIZE_IS_DEFAULT_KEY",
"value" : "Y",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "CPU",
"value" : "60",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "MEMORY",
"value" : "4048",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "STORAGE",
"value" : "500",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "XAAS_TEST",
"value" : "NONE",
"type" : "STRING",
"required" : false,
"secret" : false
} ]
}, {
"name" : "Medium",
"type" : "VECTOR",
"description" : "Configuration Values for Medium WorkLoad",
"required" : false,
"secret" : false,
"subvalues" : [ {
"name" : "DEPL_SIZE_IS_DEFAULT_KEY",
"value" : "N",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "CPU",
"value" : "80",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "MEMORY",
"value" : "8088",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "STORAGE",
"value" : "750",
"type" : "STRING",
"required" : false,
"secret" : false
} ]
}, {
"name" : "Large",
"type" : "VECTOR",
"description" : "Configuration Values for Large WorkLoad",
"required" : false,
"secret" : false,
"subvalues" : [ {
"name" : "DEPL_SIZE_IS_DEFAULT_KEY",
"value" : "Y",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "CPU",
"value" : "60",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "MEMORY",
"value" : "40448",
"type" : "STRING",
"required" : false,
"secret" : false
}, {
"name" : "STORAGE",
"value" : "500",
"type" : "STRING",
"required" : false,
"secret" : false
} ]
} ]
} ],
"description" : "Starts this service"
}

52.8.2.7 Executing an Action on a Service Instance in V2

The table below shows the PUT request configuration.

Table 52-48 PUT Request Configuration for Executing an Action on a Service Instance in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"actionId":94,
"configurations":[
{
"name":"domainName",
"type":"STRING",
"description":"Domain Name",
"required":true,
"value":"/mwaas_rest_9_SSA_USER1/rest_9_SSA_USER1"
},
{
"name":"applicationName",
"type":"STRING",
"description":"Application Name",
"required":true,
"value":"test1"
}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests": [
{
"id": "4",
"actionName": "STOP",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/4"
}
}
]
}

52.8.3 Executing Actions on a Service Instance in V2

This section provides the procedure to execute an action on a Service instance using REST APIs.

Follow the steps below to execute an action on a Service instance:

1. Perform a GET operation on the URI - em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/actions. See, Section 52.8.2.5, "Viewing Details of the Available Actions on a Service Instance in V2".
The GET operation returns all the supported actions that an user can execute on the specified Service instance. The Action name, Action ID, Display name and Description are provided for each action. Note the required Action ID.

2. Perform a GET operation on the URI - /em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}/actions/{actionid}, using the Action ID from the previous step. See, Section 52.8.2.6, "Viewing Details of the Action Inputs Required To Execute an Action on a Service Instance in V2".
The GET operation returns all the action details and the action inputs. Some actions require action inputs to complete an action. Action inputs capture the data or input which is to be provided by the user while executing an action on an instance. Note the action inputs.

3. Perform a PUT operation on the URI - /em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/{instanceid}, using the action inputs from the previous step. See, Section 52.8.2.7, "Executing an Action on a Service Instance in V2".
The PUT operation executes the action on the Service instance. To execute the action, provide appropriate action input values as configurations in the payload.

52.9 Quota Usage for V2

This section describes the quota usage REST APIs for SSA user.

52.9.1 Supported Operations for Quota Usage for V2

The table below lists the supported operations for quota usage.

Table 52-49 Supported Methods for Quota Usage

Request Method

URI

Description

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage

Returns links to quota usage.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/{servicefamily}

Returns quota usage by service family.

52.9.2 Quota Usage REST API Examples for V2

This section provides the REST API examples for Quota usage. The following examples are covered:

- Viewing Details of Quota Usage

- Viewing Details of Quota Usage by Service Family

52.9.2.1 Viewing Details of Quota Usage

The table below shows the GET request configuration.

Table 52-50 GET Request Configuration for Viewing Details of Quota Usage

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/"
},
"usages": [
{
"serviceFamily": "CFW_SAMPLEXAAS_SERVICEFAMILY",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/CFW_SAMPLEXAAS_SERVICEFAMILY"
}
},
{
"serviceFamily": "NIMBULA_INFRASTRUCTURE",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/NIMBULA_INFRASTRUCTURE"
}
},
{
"serviceFamily": "DBAAS",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/DBAAS"
}
},
{
"serviceFamily": "MIDDLEWARE_CFW",
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/MIDDLEWARE_CFW"
}
}
],
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/"
}
}

52.9.2.2 Viewing Details of Quota Usage by Service Family

The table below shows the GET request configuration.

Table 52-51 GET Request Configuration for Viewing Details of Quota Usage by Service Family

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/{servicefamily}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name": "Usages",
"type": "Usages Collection",
"totalResults": 4,
"cfwItems": [
{
"id": "sampleActionOpen",
"name": "Storage",
"type": "Others",
"allowed": "10.0",
"used": "3.0",
"unit": "GB"
},
{
"name": "Cfw Sample XaaS - Other Service",
"type": "Service Instances",
"serviceType": "CFW_SAMPLEXAAS_SERVICE_FOR_NOMEM",
"used": "0"
},
{
"name": "Cfw Sample XaaS",
"type": "Service Instances",
"serviceType": "CFW_SAMPLEXAAS_SERVICE",
"used": "0"
},
{
"name": "Cfw Sample RemoteServer XaaS",
"type": "Service Instances",
"serviceType": "CFW_SAMPLEXAAS_REMOTESERVER_SERVICE",
"used": "0"
}
],
"canonicalLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/CFW_SAMPLEXAAS_SERVICEFAMILY"
},
"selfLink": {
"href":
"https://cloudcompany.com/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/quotausage/CFW_SAMPLEXAAS_SERVICEFAMILY"
}
}

52.10 User Preferences for V2

This section describes the User preference resource in the v2 framework.

52.10.1 Supported Request Methods for User Preference Resource in V2

The table below shows the supported request methods on the User preference resource.

Table 52-52 Supported Request Methods for the User Preferences Resource in V2

Request Method

URI

Description

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/

Returns top level view of general and service specific preferences.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general

Returns general user preferences.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general/metadata

Returns metadata for general user preferences.

PUT

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general

Updates general preferences of the user.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services

Returns the top level view of the service preferences.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}

Returns service family user preferences.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/metadata

Returns metadata for the specified service family preferences.

PUT

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}

Updates service family user preferences.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/{servicetype}

Returns service type user preferences.

GET

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/{servicetype}/metadata

Returns metadata for the specified service type preferences.

PUT

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/{servicetype}

Updates service family preferences of the user.

52.10.2 User Preferences for V2 REST API Examples

The following REST APIs are covered in this section. The following operations are covered in this section:

- Viewing Details of the User Preferences Resource for V2

- Viewing Details of the General User Preferences Resource for V2

- Viewing Metadata of the General User Preferences Resource for V2

- Updating the General User Preferences for V2

- Viewing Details of the Services User Preferences Resource for V2

- Viewing Details of the Service Family User Preferences Resource for V2

- Viewing Metadata of the Service Family User Preferences for V2

- Updating the Service Family User Preferences for V2

- Viewing Details of the Service Type User Preferences Resource for V2

- Viewing Metadata of the Service Type User Preferences for V2

- Updating the Service Type User Preferences for V2

52.10.2.1 Viewing Details of the User Preferences Resource for V2

The table below shows the configuration for the GET request.

Table 52-53 GET Request Configuration for Viewing Details of the User Preferences Resource in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"generalPreferences" :
"https://blr2223141.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general",
"servicePreferences" :
"https://blr2223141.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services",
"canonicalLink" : {
"href" :
"https://blr2223141.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences"
}
}

52.10.2.2 Viewing Details of the General User Preferences Resource for V2

The table below shows the configuration for the GET request.

Table 52-54 GET Request Configuration for Viewing Details of the General User Preferences Resource in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "General Preference",
"type" : "General User Preferences",
"preferences" : [ {
"name" : "USER_LOCALE",
"value" : "en",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "English",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "REQUEST_STATUS",
"type" : "VECTOR",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false
}, {
"name" : "REQUEST_NOTIFICATION",
"value" : "false",
"type" : "BOOLEAN",
"defaultValue" : "false",
"description" : "This allows the user to receive notifications for different statuses of the request.",
"required" : false,
"secret" : false
}, {
"name" : "NOTIFICATION_DAYS_1",
"value" : "0",
"type" : "INTEGER",
"defaultValue" : "0",
"description" : "Number of days before the first notification is sent to the user before the expiry date of the service instance.",
"required" : false,
"secret" : false
}, {
"name" : "NOTIFICATION_DAYS_2",
"value" : "0",
"type" : "INTEGER",
"defaultValue" : "0",
"description" : "Number of days before the second notification is sent to the user before the expiry date of the service instance.",
"required" : false,
"secret" : false
}, {
"name" : "DEFAULT_SERVICE",
"value" : "MWAAS",
"type" : "STRING",
"defaultValue" : "IAAS",
"description" : "This will be used as your default service after successful login to Self Service Portal.",
"required" : false,
"secret" : false
}, {
"name" : "EMAIL",
"type" : "VECTOR",
"description" : "This is the default Email address for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "QUOTA_THRESHOLD",
"value" : "0.0",
"type" : "FLOAT",
"defaultValue" : "0.0",
"description" : "Notifications will be sent to users when resources exceed the defined quota percentage.",
"required" : false,
"secret" : false
}, {
"name" : "QUOTA_NOTIFICATION",
"value" : "false",
"type" : "BOOLEAN",
"defaultValue" : "false",
"description" : "Receive quota related notification when the quota reaches the specified threshold.",
"required" : false,
"secret" : false
}, {
"name" : "INSTANCE_EXPIRY_NOTIFICATION",
"value" : "false",
"type" : "BOOLEAN",
"defaultValue" : "false",
"description" : "Enables user to receive notifications for Service Instances that are due to expire based on the notification period.",
"required" : false,
"secret" : false
} ],
"meta" :
"https://blr2223141.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general/metadata",
"canonicalLink" : {
"href" :
"https://blr2223141.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general"
}
}

52.10.2.3 Viewing Metadata of the General User Preferences Resource for V2

The table below shows the configuration for the GET request.

Table 52-55 GET Request Configuration for Viewing Metadata of the General User Preferences Resource in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general/metadata

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "General Preference",
"type" : "General User Preferences",
"preferences" : [ {
"name" : "USER_LOCALE",
"value" : "en",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "English",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false,
"possibleValues" : [ {
"name" : "USER_LOCALE",
"value" : "es_ES",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "Spanish",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "ja",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "Japanese",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "fr",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "French",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "ko",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "Korean",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "de",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "German",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "zh_TW",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "Traditional Chinese",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "zh_CN",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "Simplified Chinese",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "en",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "English",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "USER_LOCALE",
"value" : "pt_BR",
"type" : "STRING",
"defaultValue" : "en",
"displayName" : "Brazilian Portuguese",
"description" : "This is the default Locale for receiving cloud notifications.",
"required" : false,
"secret" : false
} ]
}, {
"name" : "REQUEST_STATUS",
"type" : "VECTOR",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false,
"possibleValues" : [ {
"name" : "REQUEST_STATUS",
"value" : "PARTIAL_SUCCEEDED",
"type" : "VECTOR",
"displayName" : "Partially Succeeded",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false
}, {
"name" : "REQUEST_STATUS",
"value" : "ERROR",
"type" : "VECTOR",
"displayName" : "Error",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false
}, {
"name" : "REQUEST_STATUS",
"value" : "CANCELLED",
"type" : "VECTOR",
"displayName" : "Cancelled",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false
}, {
"name" : "REQUEST_STATUS",
"value" : "EXECUTING",
"type" : "VECTOR",
"displayName" : "Running",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false
}, {
"name" : "REQUEST_STATUS",
"value" : "SUCCESS",
"type" : "VECTOR",
"displayName" : "Success",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false
}, {
"name" : "REQUEST_STATUS",
"value" : "SCHEDULED",
"type" : "VECTOR",
"displayName" : "Scheduled",
"description" : "Request Status For Which Notifications Are Enabled",
"required" : false,
"secret" : false
} ]
}, {
"name" : "REQUEST_NOTIFICATION",
"value" : "false",
"type" : "BOOLEAN",
"defaultValue" : "false",
"description" : "This allows the user to receive notifications for different statuses of the request.",
"required" : false,
"secret" : false
}, {
"name" : "NOTIFICATION_DAYS_1",
"value" : "0",
"type" : "INTEGER",
"defaultValue" : "0",
"description" : "Number of days before the first notification is sent to the user before the expiry date of the service instance.",
"required" : false,
"secret" : false
}, {
"name" : "NOTIFICATION_DAYS_2",
"value" : "0",
"type" : "INTEGER",
"defaultValue" : "0",
"description" : "Number of days before the second notification is sent to the user before the expiry date of the service instance.",
"required" : false,
"secret" : false
}, {
"name" : "DEFAULT_SERVICE",
"value" : "MWAAS",
"type" : "STRING",
"defaultValue" : "IAAS",
"description" : "This will be used as your default service after successful login to Self Service Portal.",
"required" : false,
"secret" : false
}, {
"name" : "EMAIL",
"type" : "VECTOR",
"description" : "This is the default Email address for receiving cloud notifications.",
"required" : false,
"secret" : false
}, {
"name" : "QUOTA_THRESHOLD",
"value" : "0.0",
"type" : "FLOAT",
"defaultValue" : "0.0",
"description" : "Notifications will be sent to users when resources exceed the defined quota percentage.",
"required" : false,
"secret" : false
}, {
"name" : "QUOTA_NOTIFICATION",
"value" : "false",
"type" : "BOOLEAN",
"defaultValue" : "false",
"description" : "Receive quota related notification when the quota reaches the specified threshold.",
"required" : false,
"secret" : false
}, {
"name" : "INSTANCE_EXPIRY_NOTIFICATION",
"value" : "false",
"type" : "BOOLEAN",
"defaultValue" : "false",
"description" : "Enables user to receive notifications for Service Instances that are due to expire based on the notification period.",
"required" : false,
"secret" : false
} ],
"canonicalLink" : {
"href" :
"https://xxx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general/metadata"
}
}

52.10.2.4 Updating the General User Preferences for V2

The table below shows the configuration for the PUT request.

Table 52-56 PUT Request Configuration for Updating the General User Preferences in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/general

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"preferences":[
{
"value":"MWAAS",
"name":"DEFAULT_SERVICE"
},
{
"value":"false",
"name":"REQUEST_NOTIFICATION"
}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"message" : "General preferences updated successfully."
}

52.10.2.5 Viewing Details of the Services User Preferences Resource for V2

The table below shows the configuration for the GET request.

Table 52-57 GET Request Configuration for Viewing Details of the Services User Preferences Resource in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"preferences" : [ {
"name" : "MIDDLEWARE_CFW",
"type" : "Service Family User Preferences",
"required" : false,
"secret" : false,
"meta" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/MIDDLEWARE_CFW/metadata",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/MIDDLEWARE_CFW"
}
}, {
"name" : "NIMBULA_INFRASTRUCTURE",
"type" : "Service Family User Preferences",
"required" : false,
"secret" : false,
"meta" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/NIMBULA_INFRASTRUCTURE/metadata",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/NIMBULA_INFRASTRUCTURE"
}
}, {
"name" : "DBAAS",
"type" : "Service Family User Preferences",
"required" : false,
"secret" : false,
"meta" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/DBAAS/metadata",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/DBAAS"
}
}, {
"name" : "CFW_SAMPLEXAAS_SERVICEFAMILY",
"type" : "Service Family User Preferences",
"required" : false,
"secret" : false,
"meta" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY/metadata",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY"
}
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services"
}
}

52.10.2.6 Viewing Details of the Service Family User Preferences Resource for V2

The table below shows the configuration for the GET request.

Table 52-58 GET Request Configuration for Viewing Details of the Service Family User Preferences Resource in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

52.10.2.7 Viewing Metadata of the Service Family User Preferences for V2

The table below shows the configuration for the GET request.

Table 52-59 GET Request Configuration for Viewing Metadata of the Service Family User Preferences in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/metadata

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "CFW_SAMPLEXAAS_SERVICEFAMILY",
"type" : "Service Type User Preferences",
"preferences" : [ {
"name" : "SAMPLE_PREFERENCE_1",
"value" : "test",
"type" : "STRING",
"defaultValue" : "Sample Value 1",
"description" : "Type of the Supported Files",
"required" : false,
"secret" : false
} ],
"subPreferences" : [ {
"name" : "CFW_SAMPLEXAAS_SERVICE_FOR_NOMEM",
"type" : "Service Type User Preferences",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY/metadata/CFW_SAMPLEXAAS_SERVICE_FOR_NOMEM"
}
}, {
"name" : "CFW_SAMPLEXAAS_SERVICE",
"type" : "Service Type User Preferences",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY/metadata/CFW_SAMPLEXAAS_SERVICE"
}
}, {
"name" : "CFW_SAMPLEXAAS_REMOTESERVER_SERVICE",
"type" : "Service Type User Preferences",
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY/metadata/CFW_SAMPLEXAAS_REMOTESERVER_SERVICE"
}
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY/metadata"
}
}

52.10.2.8 Updating the Service Family User Preferences for V2

The table below shows the configuration for the PUT request.

Table 52-60 PUT Request Configuration for Updating the Service Family User Preferences in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"preferences":[
{
"value":"test",
"name":"SAMPLE_PREFERENCE_1"
}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"message" : "User service preferences updated successfully."
}

52.10.2.9 Viewing Details of the Service Type User Preferences Resource for V2

The table below shows the configuration for the GET request.

Table 52-61 GET Request Configuration for Viewing Details of the Service Type User Preferences Resource in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/{servicetype}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "CFW_SAMPLEXAAS_SERVICE",
"type" : "Service Type User Preferences",
"preferences" : [ {
"name" : "SAMPLE_PREFERENCE_1",
"value" : "UPD_ST_Rest_14-09-06 11.59.34",
"type" : "STRING",
"defaultValue" : "Sample Value 1",
"description" : "Type of the Supported Files",
"required" : false,
"secret" : false
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY/CFW_SAMPLEXAAS_SERVICE"
}
}

52.10.2.10 Viewing Metadata of the Service Type User Preferences for V2

The table below shows the configuration for the GET request.

Table 52-62 GET Request Configuration for Viewing Metadata of the Service Type User Preferences in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/{servicetype}/metadata

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name" : "CFW_SAMPLEXAAS_SERVICE",
"type" : "Service Type User Preferences",
"preferences" : [ {
"name" : "SAMPLE_PREFERENCE_1",
"value" : "test",
"type" : "STRING",
"defaultValue" : "Sample Value 1",
"description" : "Type of the Supported Files",
"required" : false,
"secret" : false
} ],
"canonicalLink" : {
"href" :
"https://xx.idc.example.com:24503/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/CFW_SAMPLEXAAS_SERVICEFAMILY/CFW_SAMPLEXAAS_SERVICE/metadata"
}
}

52.10.2.11 Updating the Service Type User Preferences for V2

The table below shows the configuration for the PUT request.

Table 52-63 PUT Request Configuration for Updating the Service Type User Preferences in V2

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/userpreferences/services/{servicefamily}/{servicetype}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"preferences":[
{
"value":"UPD_ST_Rest_14-09-07 12.03.39",
"name":"SAMPLE_PREFERENCE_1"
}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"message" : "User service preferences updated successfully."
}

52.11 User Preferences for V1

An SSA user (with the EM_SSA_USER role) can set user preferences (both general and service specific) using Cloud REST APIs.

52.11.1 My Preferences for V1

This is the top level resource and is used to get the following preferences:

- General Preferences

- Service Preferences: This includes My Database Preferences, My Middleware Preferences, and My Tests Preferences

52.11.2 Canonical Link for V1

The URI (canonicalLink) for user preferences is em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/. A GET request to this URI provided a top level view of the general and service specific preferences. The table below shows the GET request configuration on this URI.

Table 52-64 Canonical Link

Method

Query Parameters

Request Payload

URI

Description

GET

NA

NA

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/

Gives a top level view of the general and service specific preferences.

Table 52-65 GET Request Configuration for Viewing Details of My Preferences Resource

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"servicePreferences":"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services",
"canonicalLink":"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/"

52.11.3 General Preferences for V1

This represents the general user preferences that are applicable across all service types.

Table 52-66 General Preferences Data Model

Field

Type

Description

Occurs

emailAddress

String

This is the default email address for receiving cloud notifications.

0..1

locale

String

This is the default locale for receiving cloud notifications. The default locale is English. Supported values include:

- en (English)

- es_ES (Spanish)

- zh_CN (Simplified Chinese)

- zh_TW (Traditional Chinese)

- ja (Japanese)

- ko (Korean)

- fr (French)

- pt_BR (Brazilan Portugese)

- de (German)

0..1

request

RequestEntity

Request notification values.

0..1

instanceExpiry

InstanceExpiryEntity

Instance expiry notification values.

0..1

quota

QuotaEntity

Instance expiry notification values.

0...1

quotaThreshold

Integer

Notifications will be sent to users when resources exceed the defined quota percentage.

0..1

defaultServiceType

String

This is the default service after successful login to Self Service Portal.If not specified, this is defaulted to servers. Supported service type values include: IAAS (Servers), DBAAS (Databases), MWAAS (Middleware) , TAAS (Tests)

0..1

canonicalLink

URI

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

1

52.12 Composite Resource Attributes for V1

The following composite resource attribute data model are described in this section.

- RequestEntity

- InstanceExpiryEntity

- QuotaEntity

52.12.1 RequestEntity Data Model for V1

The following table describes the RequestEntity data model:

Table 52-67 RequestEntity Data Model

Field

Type

Description

Occurs

requestNotifications

boolean

This allows the user to receive notifications for different statuses of the request.

0..1

requestStatus

List<String>

The list of request statuses for which notifications are enabled. Supported request status values are:

- Incomplete

- Scheduling

- Scheduling Error

- Scheduled

- Canceled

- Insufficient Quota

- Insufficient Resources in Zone

- In Progress

- Execution Error

- Partially Succeeded

- Success

- Running

- All

52.12.2 InstanceExpiryEntity Data Model for V1

The following table describes the InstanceExpiryEntity data model:

Table 52-68 InstanceExpiryEntity Data Model

Field

Type

Description

Occurs

instanceExpiryNotifications

boolean

Enables user to receive notifications for service instances that are scheduled to expire based on the notification period.

0..1

daysBeforeFirstNotification

Integer

The number of days before the first notification is sent to the user before the expiry date of the service instance.

0..1

daysBeforeSecondNotification

Integer

The number of days before the second notification is sent to the user before the expiry date of the service instance.

0..1

52.12.3 QuotaEntity Data Model for V1

The following table describes the QuotaEntity data model:

Table 52-69 QuotaEntity Data Model

Field

Type

Description

Occurs

quotaNotifications

boolean

Receive quota related notification when the quota reaches the specified threshold.

0..1

qutoaThreshold

Integer

Notifications will be sent to users when resources exceed the defined quota percentage.

0..1

52.13 Supported Methods for General Preferences (for V1)

The following table shows the supported methods:

Table 52-70 Supported Methods

Method

Query Parameters

Request Payload

URI

Description

GET

NA

NA

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/general

Gives the general preferences for an SSA user.

PUT

NA

GeneralPreferences

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/general

Updates the general preferences for an SSA user.

52.13.1 Viewing Details of the General Preferences for an SSA User

The table below provides the configuration for a GET request to know the general preferences for an SSA user.

Table 52-71 GET Request Configuration for Viewing Details of General Preferences for an SSA User

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/general/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"emailAddress": "john.smith@cloudcompany.com",
"locale": "English",
"request": {
"requestNotifications": true,
"requestStatus": ["SUCCESS","INCOMPLETE"]
}
"instanceExpiry": {
"instanceExpiryNotifications": true,
"daysBeforeFirstNotification": 10,
"daysBeforeSecondNotification": 5
},
"quota": {
"quotaNotifications": true,
"quotaThreshold": 80.0
},
"defaultServiceType": "Servers",
"canonicalLink":
"em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/general"
}

52.13.2 Updating the General Preferences for an SSA User

The table below provides the configuration for a PUT request to update the general preferences for an SSA user.

Table 52-72 PUT Request Configuration for Updating the General Preferences for an SSA User

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/general/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body to update a single field

{
"emailAddress": "john.smith@cloudcompany.com",
"locale": "en",
"defaultServiceType": "IAAS",
}

Body to update all fields

{
"emailAddress": "john.smith@cloudcompany.com",
"locale": "en",
"request": {
"requestNotifications": true,
"requestStatus": ["SCHEDULED","INCOMPLETE"]
},
"instanceExpiry": {
"instanceExpiryNotifications": true,
"daysBeforeFirstNotification": 10,
"daysBeforeSecondNotification": 5
},
"quota": {
"quotaNotifications": true,
"quotaThreshold": 80
},
"defaultServiceType": "IAAS"
}

Body to update Notification fields

{
"request": {
"requestNotifications": true,
"requestStatus": ["SCHEDULED","INCOMPLETE"]
}
}

Body to update instance expiry notification fields

{
"instanceExpiry": {
"instanceExpiryNotifications": true,
"daysBeforeFirstNotification": 10,
"daysBeforeSecondNotification": 5
}
}

Body to update quota notification fields

{
"quota": {
"quotaNotifications": true,
"quotaThreshold": 80
}
}

Request method

GET

A sample of the response received is shown below.

Status 200 OK {      message:  "General Preferences updated successfully." }

52.14 Service Specific User Preferences for V1

This section describes the following:

52.14.1 Service Preferences for V1

The Service Preferences resource represents the user preferences of an SSA user per service family.

Table 52-73 ServicePreferences Data Model

Field

Type

Description

Occurs

canonicalLink

URI

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

1

servicePreferences

Collection<EntityValueHolder>

User preferences of SSA user for a specific service family.

1

52.14.2 Supported Methods for My Preferences (for V1)

Table 52-74 Supported Methods (II)

Method

Query Parameters

Request Payload

URI

Description

GET

NA

NA

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services

This gives the top level view of service preferences for all service families.

GET

NA

NA

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/ services/<servicefamily>

Gives user preferences of SSA user for a specific service family.

PUT

NA

ServicePreferences

em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/ services/< servicefamily >

Updates the user preferences of SSA user for a specific service family.

52.14.3 ServicePreferenceMetadata Data Model for V1

This fetches the set of user preferences metadata relevant to the respective service family.Using this, the user can identify the user preferences available for each service family and the possible values of each.

Table 52-75 ServicePreferenceMetaData Data Model

Field

Type

Description

Occurs

canonicalLink

URI

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

1

servicePreferencesMeta

Collection<ValueDescriptor>

The set of user preferences metadata relevant to the respective service type.

0..1

52.14.4 Composite Resource Attributes for V1

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

52.14.4.1 ValueEntity Data Model for V1

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

Table 52-76 ValueEntity Data Model

Field

Type

Description

Occurs

value

String

String representation of the actual value of the entity.

1

description

String

Caption of the entity that describes it.

0..1

52.14.4.2 EntityValueHolder Data Model for V1

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

Table 52-77 EntityValueHolder Data Model

Field

Type

Description

Occurs

name

String

Name of the entity.

1

value

String

String representation of the actual value of the entity.

1

description

String

Caption of the entity that describes it.

0..1

52.14.4.3 ValueDescriptor Data Model for V1

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 52-78 ValueDescriptor Data Model

Field

Type

Description

Occurs

name

String

Name of the datum being described.

1

displayName

String

Display name of the datum being described.

0..1

description

String

Description of the datum referred.

0..1

currentValue

String

Current value of the datum being described.

0..1

isRequiredAttribute

boolean

True if the value of the datum is required.

0..1

possibleValues

Collection<ValueEntity>

Optional list of valid values of the datum being described.

0..1

description

String

Description of the datum referred.

0..1

52.14.5 Service Preferences REST API Examples for V1

This section describes the REST API examples of the Service Preferences resource.

52.14.5.1 Viewing Details of the Service Preferences Resource

The table below shows the GET request configuration for getting top level view of service preferences for all service families.

Table 52-79 GET Request Configuration for Viewing Details of Service Preferences Resource

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK

{
DBAAS: {
displayName: "My Database Preferences"
description: "User preferences for Database services"
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/dbaas"
}
MWAAS: {
displayName: "My Middleware Preferences"
description: "User preferences for Middleware services"
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/mwaas"
}
TAAS: {
displayName: "My Tests Preferences"
description: "User preferences for Testing as a Service (TaaS)"
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/taas"
}
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services"
}

52.14.6 My Database Preferences REST API Examples for V1

This section details the REST API examples for My Database Preferences resource which specifies the preferences for database services.

52.14.6.1 Viewing Details of the DBaaS User Preferences Metadata

The table below shows the configuration for the GET request.

Table 52-80 GET Request Configuration for Viewing Details of the DBaaS User Preferences Metadata

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/dbaas/metadata

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK

{
servicePreferencesMetadata: {
items:
{
name: "defaultPaasZone"
displayName: "Default PaaS Infrastructure Zone"
description: "Default PaaS Infrastructure Zone"
currentValue: ""
isRequiredAttribute: false
possibleValues:
{
value: "dbaas_west_coast_zone"
}
}
}
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/dbaas/
metadata"
}

52.14.6.2 Updating DBaaS User Preferences

The table below shows the PUT request configuration.

Table 52-81 PUT Request Configuration for Updating the DBaaS User Preferences

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/dbaas/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"servicePreferences":
{
"items":[
{
"name": "defaultPaasZone",
"value": "dbaas_west_coast_zone"
}
]
}
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK

{
message: Service Preferences updated successfully."
}

52.14.6.3 Setting a Blank DBaaS User Preference Setting

The table below shows the PUT request configuration.

Table 52-82 PUT Request Configuration for Setting a Blank DBaaS User Preference Setting

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/dbaas/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"servicePreferences":
{
"items":[
{
"name": "defaultPaasZone",
"value": ""
}
]
}
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK

{
message: Service Preferences updated successfully."
}

52.14.6.4 Viewing the DBaaS User Preferences

The table below shows the GET request configuration.

Table 52-83 GET Request Configuration for Viewing the DBaaS User Preference Setting

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/dbaas/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK

{
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/dbaas"
servicePreferences: {
items: {
name: "defaultPaasZone"
value: "dbaas_west_coast_zone"
}
}
}\

52.14.7 My Middleware Preferences REST API Examples for V1

This section shows the REST API examples of user preferences for Middleware services:

52.14.7.1 Viewing MWaaS User Preferences Metadata

The table below shows the GET request configuration.

Table 52-84 GET Request Configuration for Viewing the MWaaS User Preferences Metadata

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/mwaas/metadata/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK

{
servicePreferencesMetadata: {
items:
{
name: "defaultPaasZone"
displayName: "Default PaaS Infrastructure Zone"
description: "Default PaaS Infrastructure Zone"
currentValue: ""
isRequiredAttribute: false
possibleValues:
{
value: "mwaas_east_coast_zone"
}
}
}
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/mwaas/
metadata"
}

52.14.7.2 Updating MWaaS User Preferences

The table below shows the PUT request configuration.

Table 52-85 PUT Request Configuration for Updating MWaaS User Preferences

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/mwaas/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"servicePreferences":
{
"items":[
{
"name": "defaultPaasZone",
"value": "mwaas_east_coast_zone"
}
]
}
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK

{
message: Service Preferences updated successfully."
}

52.14.7.3 Setting a Blank MWaaS User Preference Setting

The table below shows the PUT request configuration.

Table 52-86 PUT Request Configuration for Setting a Blank MWaaS User Preference Setting

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/mwaas/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

{
"servicePreferences":
{
"items":[
{
"name": "defaultPaasZone",
"value": ""
}
]
}
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK

{
message: Service Preferences updated successfully."
}

52.14.7.4 Viewing MWaaS User Preference Settings

The table below shows the GET request configuration.

Table 52-87 GET Request Configuration for Viewing MWaaS User Preference Settings

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/mwaas/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK

{
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/mwaas"
servicePreferences: {
items: {
name: "defaultPaasZone"
value: "mwaas_west_coast_zone"
}
}
}

52.14.8 My Tests Preferences for V1

This section details the REST API examples of user preferences for Testing as a Service (TaaS).

52.14.8.1 Viewing TaaS User Preferences Metadata

The table below shows the GET request configuration.

Table 52-88 GET Request Configuration for Viewing TaaS User Preferences Metadata

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/taas/metadata

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/json

Body

None

Request method

GET

A sample of the response received is shown below.

Status 200 OK

{
servicePreferencesMetadata: {
items:
{
name: "defaultInstanceRootPassword"
displayName: "Default Instance Root Password"
description: "The password that will be set as default root password to new
environment and test driver instance."
currentValue: ""
isRequiredAttribute: false
}
}
canonicalLink:
"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/taas/m
etadata"
}

52.14.8.2 Updating TaaS User Preferences

The table below shows the PUT request configuration.

Table 52-89 PUT Request Configuration for Updating TaaS User Preferences

Feature

Specification

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v1/mypreferences/services/taas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"servicePreferences":
{
"items":[
{
"name": "defaultInstanceRootPassword",
"value": "AQPY8bgHk"
}
]
}
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK
{
message:  "Service Preferences updated successfully."
}

53 WebLogic as a Service REST APIs

This chapter describes the resource model for WebLogic as a Service (WLaaS) REST APIs and their responses. Application component filtering, which is supported for WLaaS zones, and templates are also described.

Note:
For the Plug-in release 12.1.0.9, a new framework is introduced for the REST APIs which is referred to as the v2 framework. The new framework consists of a different approach and signatures, as a result of which the REST APIs also differ when compared to the earlier framework. The earlier framework (v1) is deprecated and users are suggested to move to the v2 REST APIs.

This chapter contains the topics listed below. The first two sections provide a summary of all the REST APIs covered in this chapter whereas the following sections provide the resource details and the related REST APIs.

- Summary of WebLogic as a Service REST APIs for V2

- Summary of WebLogic as a Service REST APIs for V1

- Resource Providers for V2 - PaaS Infrastructure Zone and Middleware Pool

- Quotas for V2

- Service Templates for V2

- Load Balancer Configurations for V2

- User Operation REST API Examples for V2

- WebLogic as a Service Resource Model for V1

- Cloud

- JaaS Service Family Type

- Zone

- JavaPlatformTemplate

- Java Platform Instance

- Application Instance Deployment

- DataSource

- Application Instance Component

- Application Component Filtering for V1

- Load Balancer Configuration for V1

- Quotas for V1

- Service Templates for V1

- User Operation REST API Examples for V1

- EMCLI Support for Administration Operations

53.1 Summary of WebLogic as a Service REST APIs for V2

The table below shows a summary of all the v2 WLaaS REST APIs covered in this chapter.

Table 53-1 Summary of WLaaS REST APIs for V2

Resource

Data Model

GET

POST

PUT

DELETE

Resource provider - PaaS infrastructure zone

Table 53-3

Section 53.3.1.1

Section 53.3.1.2

Section 53.3.1.4

Section 53.3.1.6

Resource provider - Middleware pool

Table 53-3

Section 53.3.1.1

Section 53.3.1.3

Section 53.3.1.5

Section 53.3.1.6

Quotas

Table 53-10

Section 53.4.1.1

Section 53.4.1.2

Section 53.4.1.3

Section 53.4.1.4

Service templates

Table 53-15

- Section 53.5.1.1

- Section 53.5.1.2

Not supported

Not supported

Section 53.5.1.3

Load balancer configuration

Table 53-19

- Section 53.6.2.1

- Section 53.6.2.2

Section 53.6.2.3

Section 53.6.2.4

Section 53.6.2.5

Service instance

Table 53-26

- Section 53.8.2

- Section 53.8.3

- Section 53.8.5

Section 53.8.4

- Section 53.8.6

- Section 53.8.7

- Section 53.8.8

- Section 53.8.9

Section 53.8.10

Application

Not available

- Section 53.8.17

- Section 53.8.18

Not supported

- Section 53.8.12

- Section 53.8.13

- Section 53.8.14

- Section 53.8.15

- Section 53.8.16

Not supported

Data source

Not available

Not supported

Not supported

- Section 53.8.21

- Section 53.8.22

- Section 53.8.23

- Section 53.8.24

- Section 53.8.25

Not supported

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

53.2 Summary of WebLogic as a Service REST APIs for V1

The table below shows a summary of all the v1 WLaaS REST APIs covered in this chapter.

Table 53-2 Summary of WLaaS REST APIs for V1

Resource

Data Model

GET

POST

PUT

DELETE

Cloud

Table 53-52

Section 53.9.1.1

Not supported

Not supported

Not supported

Jaas service family type

Table 53-54

Section 53.9.2.1

Section 53.9.2.2

Not supported

Not supported

Zone

Table 53-56

Section 53.9.3.1

Not supported

Not supported

Not supported

Java platform template

Table 53-58

Section 53.9.4.1

Section 53.9.4.2

Not supported

Not supported

Java platform instance

Table 53-62

Section 53.9.5.1

- Section 53.9.5.4

- Section 53.9.5.6

Section 53.9.5.8

Section 53.9.5.2

Application instance deployment

Table 53-71

Section 53.9.6.1

Section 53.9.5.4

Section 53.9.6.4

Section 53.9.6.2

Data source

Table 53-76

Section 53.9.7.1

Section 53.9.5.6

Section 53.9.7.4

Section 53.9.7.2

Application instance component

Application Instance Component Data Model

Section 53.9.8.1

Not supported

Not supported

Section 53.9.8.2

Service template finds

Not applicable

Section 53.10.1

Not applicable

Not applicable

Not applicable

Zone finds

Not applicable

Section 53.10.2

Not applicable

Not applicable

Not applicable

Load balancer configuration

Not applicable

- Section 53.11.1.1

- Section 53.11.1.2

Section 53.11.1.4

Section 53.11.1.3

Not supported

Quotas

Not applicable

Section 53.12.1.1

Section 53.12.1.2

Section 53.12.1.3

Section 53.12.1.4

Service templates

Not applicable

Not supported

Section 53.13.1

Not supported

Not supported

Service instance

Not applicable

Not supported

Section 53.14.5

- Section 53.14.1

- Section 53.14.2

- Section 53.14.4 (see also Section 53.14.3)

Not supported

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

53.3 Resource Providers for V2 - PaaS Infrastructure Zone and Middleware Pool

Resource Providers is a collection resource representing a Cloud Administrator's view of all the accessible Resource provider resources. In the WLaaS structure, PaaS Infrastructure zone and Middleware pool are the Resource provider resources. The following table describes the Resource Providers data model.

Table 53-3 Resource Providers Data Model

Field

Type

Description

Occurs

name

String

Display name of this collection resource.

1

type

String

Type of collection resource.

1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

count

Integer

Number of elements returned.

1

items

Collection <ResourceProvider>

List of Resource Provider resources.In case no instance exist, the items field will be empty.

1

totalCount

Integer

Total number of Resource Provider resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent to the containing elements.

1

53.3.1 Resource Providers - PaaS Infrastructure Zone and Middleware Pool REST API Examples

This section provides the REST API examples for PaaS infrastructure zones and Middleware pools.

The REST APIs covered in this section are:

- Viewing Details of All the Resource Providers

- Creating a PaaS Infrastructure Zone

- Creating a Middleware Pool

- Updating a PaaS Infrastructure Zone

- Updating a Middleware Pool

- Deleting a Resource Provider (PaaS Infrastructure Zone or Middleware Pool)

53.3.1.1 Viewing Details of All the Resource Providers

The following table shows an example of a GET operation on the Resource providers URI to return its representation.

Table 53-4 GET Request Configuration for Viewing Details of the Resource Providers

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

53.3.1.2 Creating a PaaS Infrastructure Zone

The following table shows an example of a POST operation on the Resource providers URI to create a PaaS infrastructure zone.

Table 53-5 POST Request Configuration for Creating a PaaS Infrastructure Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"useExistingTarget" : false,
"name": "WlaaS_Zone1","type": "self_service_zone",
"credentials": [ {"name":"normal_credential_guid", method","value": "AIME_CLOUD_CRED"}],
"memberTargetType": "host",
"members":["xyxy.example.com","xxxy.example.com"],
"placementConstraints":[{"name":"MAX_CPU_UTILIZATION","value":["80"]},{"name":"MAX_MEMORY_ALLOCATION","value":["80"]}],
"characteristics":[{"name":"ORACLE.SYSMAN.CFW.SELF_SERVICE_ZONE","value":["70F61D030338B79AFEC42E008AF6F6B7"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT","value":["123456789"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER","value":["IDC.LEX"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT","value":["FMW"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS","value":["Test"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS","value":["ST"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION","value":["IDC"]}],
"roles":["MWAS_SSA_USER_ROLE1"]
}

Request method

POST

53.3.1.3 Creating a Middleware Pool

The following table shows an example of a POST operation on the Resource providers URI to create a Middleware pool.

Table 53-6 POST Request Configuration for Creating a Middleware Pool

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"useExistingTarget":"false",
"name":"WlaaS_Pool1","type":"mwaas_zone","description":"This is a Windows Pool for WLAAS testing",
"memberTargetType":"host",
"members":["xyxy.example.com","xxxy.example.com"],
"parentResourceProviderId":"1",
"placementConstraints":[{"name":"MAX_INSTANCES","value":"10"}],
"memberConstraints":[{"name":"ORACLE.SYSMAN.EMAS.MWC.WLAAS.PLATFORM","value":"226"}],
"characteristics":[{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER","value":"IDC"}]
}

Request method

POST

53.3.1.4 Updating a PaaS Infrastructure Zone

The following table shows an example of a PUT operation to update the PaaS infrastructure zone.

Table 53-7 PUT Request Configuration for Updating a PaaS Infrastructure Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"description":"This is description frpm the REST PUT method",
"placementConstraints":[{"name":"MAX_CPU_UTILIZATION","value":["90"]},
{"name":"MAX_MEMORY_ALLOCATION","value":["90"]}
]
}

Request method

PUT

53.3.1.5 Updating a Middleware Pool

The following table shows an example of a PUT operation to update a Middleware pool.

Table 53-8 PUT Request Configuration for Updating a Middleware Pool

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/2

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"placementConstraints":[{"name":"NUMBER_OF_INSTANCES","value":["15"]}]
}

Request method

PUT

53.3.1.6 Deleting a Resource Provider (PaaS Infrastructure Zone or Middleware Pool)

The following table shows an example of a DELETE operation tp delete a PaaS Infrastructure zone or Middleware pool.

Table 53-9 DELETE Request Configuration for Deleting a PaaS Infrastructure Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

53.4 Quotas for V2

The table below provides the data model for Quotas resource.

Table 53-10 Quotas Data Model for V2

Field

Type

Description

Occurs

name

String

Display name of the quota.

1

description

String

Description of the quota resource.

1

quotas

Collection <Quota Item>

List of quotas. In case no quota exist, the quotas field will be empty.

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

53.4.1 Quotas REST API Examples

This section lists the REST APIs for the Quotas resource.

The REST APIs covered in this section are:

- Viewing Details of Quota Settings

- Creating a Quota for a SSA User Role

- Updating a Quota for a SSA User Role

- Deleting a Quota for a SSA User Role

53.4.1.1 Viewing Details of Quota Settings

The following table shows an example of a GET operation on the quotas URI to return its representation. This operation returns quota settings for all the SSA user roles for MWaaS.

Table 53-11 GET Request Configuration for Viewing Details of Quota Settings

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Middleware Cloud Quotas"
description: "Middleware Cloud Quotas per SSA User Role"
quotas: [1]
0:  {
roleName: "SSA_USER_ROLE"
memory: "4"
javaServersCount: "10"
}-
-
selfLink: "https://slc06ekg.us.example.com:5416/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas"
}

53.4.1.2 Creating a Quota for a SSA User Role

The following table shows an example of a POST operation on the quotas URI to create a quota for the SSA user role.

Table 53-12 POST Request Configuration for Creating a Quota Setting for a SSA User Role

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"roleName": "SSA_ROLE"
"memory": "5"
"javaServersCount": "10"
}

Request method

POST

A sample of the response received is shown below.

Status 200 OK
{
message: "Quota has been created."
statusUri: "https://slc03sey.us.example.com:11040/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas"
}

53.4.1.3 Updating a Quota for a SSA User Role

The following table shows an example of a PUT operation to update a quota for the SSA user role.

Table 53-13 PUT Request Configuration for Updating a Quota Setting for a SSA User Role

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"roleName": "SSA_ROLE"
"memory": "10"
"javaServersCount": "5"
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK
{
message: "Quota has been updated."
statusUri: "https://xxyy.us.example.com:11040/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas"
}

53.4.1.4 Deleting a Quota for a SSA User Role

The following table shows an example of a DELETE operation to delete a quota for a SSA user role.

Table 53-14 DELETE Request Configuration for Deleting a Quota for a SSA User Role

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"roleName": "SSA_ROLE"
}

Request method

DELETE

A sample of the response received is shown below.

Status 200 OK
{
message: "Quota has been deleted."
}

53.5 Service Templates for V2

Service Templates is a collection resource representing an SSA administrator's view of all the accessible Service Template resources. The following table describes the Service Template data model.

Table 53-15 Service Templates Collection Resource Data Model

Field

Type

Description

Occurs

name

String

Display name of the collection resource.

1

type

String

Indicates the type of the collection resource.

0..1

hasMore

Boolean

Indicates whether there are more elements in the collection.

1

count

Integer

Number of elements returned.

1

items

Collection <ServiceTemplate>

List of Service Template resources In case no instances exist, items field is empty.

1

totalCount

Integer

Total number of Service Template resources.

1

canonicalLink

URI

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

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

53.5.1 Service Templates REST API Examples

This section lists the REST APIs for Service Templates for v2.

The REST APIs covered in this section are:

- Viewing Details of all Service Templates

- Viewing Details of a Specific Service Template

- Deleting a Service Template

53.5.1.1 Viewing Details of all Service Templates

The following table shows an example of a GET operation on the service templates URI to return its representation.

Table 53-16 GET Request Configuration for Viewing Details of all Service Templates

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

53.5.1.2 Viewing Details of a Specific Service Template

The following table shows an example of a GET operation on a specific service template URI to return its representation.

Table 53-17 GET Request Configuration for Viewing Details of a Specific Service Template

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/21

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

53.5.1.3 Deleting a Service Template

The following table shows an example of a DELETE operation to delete a service template.

Table 53-18 DELETE Request Configuration for Deleting a Service Template

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/21

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

53.6 Load Balancer Configurations for V2

Load balancer configurations is a collection resource. The table below shows the data model for the Load balancer configurations collection resource.

Table 53-19 Load Balancer Configurations Data Model for V2

Field

Type

Description

Occurs

name

String

Display name of the load balancer configurations.

1

description

String

Description of the load balancer configurations resource.

1

lbrconfigs

Collection <Lbrconfig Item>

List of load balancer configurations. In case, load balancer configurations do not exist, the lbrconfigs field will be empty.

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

53.6.1 Load Balancer Configuration for V2

Load balancer configuration is a singular resource. The table below shows the data model for the Load balancer configuration singular resource.

Table 53-20 Load Balancer Configuration Data Model for V2

Field

Type

Description

Occurs

name

String

Display name of the load balancer configuration.

1

description

String

Description of the load balancer configuration resource.

1

type

String

Indicates the type of Load balancer. It is either Oracle Traffic Director (OTD), or Oracle Https Server(OHS), or third party.

1

id

Integer

Indicates the Load balancer configuration ID. The id is unique.

1

owner

String

Owner of the Load balancer configuration.

1

host

String

Load balancer host. The Load balancer host must be added as a EM target in advance.

1

credential

String

Credential associated with the Load balancer host.

1

agentTargetName

String

Indicates the agent target name.

1

instanceHome

String

Load balancer instance home location.

1

poolTargets

Collection <Pool Guids >

List of Guids of Middleware pool associated to the Load balancer (Resource provider).

1

properties

Collection <String>

List of all properties of Load balancer configuration.

1

selfLink

URI

Refers to the resource equivalent of the containing elements.

1

53.6.2 Load Balancer Configurations REST API Examples

This section details the REST APIs for Load balancer configurations for v2.

The REST APIs covered in this section are:

- Viewing all the Load Balancer Configurations

- Viewing Details of a Specific Load Balancer Configuration

- Creating a Load Balancer Configuration

- Updating a Load Balancer Configuration

- Deleting a Load Balancer Configuration

53.6.2.1 Viewing all the Load Balancer Configurations

The following table shows an example of a GET operation to view all the Load balancer configurations.

Table 53-21 GET Request Configuration for Viewing Details of all Load Balancer Configurations

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Load Balancer Configurations"
description: "Load Balancer Configurations available    "
selfLink: "https://xyxy.example.com:5416/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs"
lbrconfigs: [1]
0:  {
name: "ohs_1"
type: "OHS"
id: 1000
selfLink: "https://xyxy.example.com:5416/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs/1000"
}-
-
}

53.6.2.2 Viewing Details of a Specific Load Balancer Configuration

The following table shows an example of a GET operation to view a specific Load balancer configuration.

Table 53-22 GET Request Configuration for Viewing Details of a Specific Load Balancer Configuration

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs/1000

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "ohs_1"
description: null
type: "OHS"
id: 1000
owner: "SSA_ADMIN1"
host: "xyxy.example.com"
credential: "Insufficient Priviege"
agentTargetName: "xxxy.example.com:1838"
instanceHome: "/scratch/PS5_OHS/instance_home"
poolTargets: [1]
0:  "10729BD1A3B12FA254232EE4F84CB71B"
-
properties: {
OHS_ROUTING_HTTP_PORT: "80"
HTTP_PORT_RANGE: "8000-9000"
OHS_ROUTING_PROTOCOL: "HTTP"
COMPONENT_NAME: "ohs1"
}-
selfLink: "https://xyxy.example.com:5416/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs/1000"
}

53.6.2.3 Creating a Load Balancer Configuration

The following table shows an example of a POST operation to create a Load balancer configuration.

Table 53-23 POST Request Configuration for Creating a Load Balancer Configuration

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"name": "lbr1",
"description": "desc by rest",
"type": "OHS",
"host": "xyxy.example.com",
"agentTargetName": "xyxy.example.com:1838",
"credential": "NC_HOST_2014-08-13-015648",
"instanceHome": "/scratch/PS5_OHS/instance_home",
"properties":{ "items":
[
{"name":"HTTP_PORT_RANGE", "value":"8000-9000"},
{"name":"OHS_ROUTING_PROTOCOL", "value": "HTTP"},
{"name":"COMPONENT_NAME", "value": "ohs1"}
]
},
"poolTargets": [ "002E15567E25ED53EA2EC76BADE76B08" ]
}

Request method

POST

A sample of the response received is shown below.

Status 200 OK
{
message: "Load Balancer Configuration has been created with ID: 1000"
statusUri: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs/1000"
}

53.6.2.4 Updating a Load Balancer Configuration

The following table shows an example of a PUT operation to update a Load balancer configuration.

Table 53-24 PUT Request Configuration for Updating a Load Balancer Configuration

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"name": "lbr1",
"description": "desc by rest",
"type": "OHS",
"id": 1004,
"host": "xyxy.example.com",
"agentTargetName": "xyxy.example.com:1838",
"credential": "NC_HOST_2014-08-13-015648",
"instanceHome": "/scratch/PS5_OHS/instance_home",
"properties":{ "items":
[
{"name":"HTTP_PORT_RANGE", "value":"8001-9001"},
{"name":"OHS_ROUTING_PROTOCOL", "value": "HTTP"},
{ "name":"COMPONENT_NAME", "value": "ohs1"}
]
},
"poolTargets": [ "002E15567E25ED53EA2EC76BADE76B08" ]
}

Request method

PUT

A sample of the response received is shown below.

Status 200 OK
{
message: "Load Balancer Configuration has been updated."
statusUri: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs"
}

53.6.2.5 Deleting a Load Balancer Configuration

The following table shows an example of a DELETE operation to delete a Load balancer configuration.

Table 53-25 DELETE Request Configuration for Deleting a Load Balancer Configuration

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs/1000

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

A sample of the response received is shown below.

Status 200 OK
{
message: "Load Balancer Configuration has been deleted."
}

53.7 Service Instance Action for V2

Service instance action resource is a SSA user resource. The table below shows the data model for this resource.

Table 53-26 Service Instance Action Data Model for V2

Field

Type

Description

Occurs

id

String

Request ID of the performed action.

1

actionName

String

Name of the action.

1

canonicalLink

String

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

1

53.8 User Operation REST API Examples for V2

The following REST API examples are described in this section:

- Viewing Details of all Service Templates

- Viewing Details of all Service Instances

- Viewing all Service Instances With UP Status

- Creating a Service Instance Request

- Viewing Details of all Possible Actions on a Specific Service Instance

- Scaling Up a Service Instance

- Scaling Down a Service Instance

- Stopping a Service Instance

- Starting a Service Instance

- Deleting a Service Instance

- Viewing Details of Java EE Applications Components from the Software Library

- Deploying an Application

- Redeploying an Application

- Un-deploying an Application

- Stopping an Application

- Starting an Application

- Viewing Details of all Applications Deployed in a Domain

- Viewing an Application URL

- Viewing Details of the Libraries Deployed in a Domain

- Viewing the WebLogic Console URL

- Creating a Data Source

- Editing a Data Source

- Deleting a Data Source

- Viewing Details of all the Data Sources

- Testing a Data Source

53.8.1 Viewing Details of all Service Templates

The following table shows an example of a GET operation to view all the service templates.

Table 53-27 GET Request Configuration for Viewing Details of all Service Templates

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Services"
type: "Service"
totalResults: 1
cfwItems: [1]
0:  {
id: "1"
name: "PS4_LowHeapTemplate"
displayName: "PS4_LowHeapTemplate"
guid: "089D4C0EA3EB1E41E0532B54F20A7740"
serviceType: "WLAAS"
serviceFamily: "MIDDLEWARE_CFW"
description: "This is a service template using the profile"
meta:  "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/089D4C0EA3EB1E41E0532B54F20A7740/metadata"
canonicalLink: {
href:       "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/0  89D4C0EA3EB1E41E0532B54F20A7740"
}-
}-
-
canonicalLink: {
href: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/"
}-
selfLink: {
href: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/"
}-
}

53.8.2 Viewing Details of all Service Instances

The following table shows an example of a GET operation to view all the service instances.

Table 53-28 GET Request Configuration for Viewing Details of all Service Instances

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Service Instances Summary"
totalResults: 1
serviceInstanceSummary: [1]
0:  {
status: "STATUS_UP"
href: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/?expanded=true&status=STATUS_UP"
count: 1
}-
-
canonicalLink: {
href: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances"
}-
selfLink: {
href: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances"
}-
}

53.8.3 Viewing all Service Instances With UP Status

The following table shows an example of a GET operation to view all the service instances with UP status.

Table 53-29 GET Request Configuration for Viewing all Service Instances with UP Status

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/?expanded=true&status=STATUS_UP

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Service Instances"
type: "Service Instance"
totalResults: 0
cfwItems: [0]
canonicalLink: {
href: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/?expanded=true&status=STATUS_UP"
}-
selfLink: {
href: "https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/?expanded=true&status=STATUS_UP"
}-
}

53.8.4 Creating a Service Instance Request

The following table shows an example of a POST operation to request a service instance.

Table 53-30 POST Request Configuration for Creating a Service Instance Request

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"offeringId":"0731632460E41A38E0539D8DF50A9D13",
"name":"rest_inst01","instanceName":"rest_inst01",
"configurations": [{"name": "serviceName","value": "rest_inst01"},
{"name":"initialNumberOfManagedServers","value": "1"},
{"name": "wlsNewPassword","value": "extra3"},
{"name": "wlsNewUserName","value":"control1"}]
}

Request method

POST

A sample of the response received is shown below.

{
"requests":[{"id":"1","actionName":"CREATE",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloud       services/ssa/cfw/v2/servicerequests/1"}
}
]
}

53.8.5 Viewing Details of all Possible Actions on a Specific Service Instance

The following table shows an example of a GET operation to view details of all the actions that can be performed on a specific service instance.

Table 53-31 GET Request Configuration for Viewing Details of all Possible Actions on a Specific Service Instance

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/actions

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name":"Actions","type":"Action","totalResults":13,
"cfwItems":[
{"id":"10","name":"DELETE","displayName":"Delete","description":"Deletes WebLogic Service instance."},
{"id":"11","name":"START","displayName":"Start Instance","description":"Starts the WebLogic Service instance."},
{"id":"12","name":"STOP","displayName":"Stop Instance","description":"Stops the WebLogic Service instance."},
{"id":"13","name":"SCALE_UP","displayName":"Scale Up","description":"Scale up WebLogic Service instance."},
{"id":"14","name":"SCALE_DOWN","displayName":"Scale Down","description":"Scale down WebLogic Service instance."},
{"id":"15","name":"CREATEDATASOURCE","displayName":"Create Data Source","description":"Request for creating a Data source."},
{"id":"16","name":"EDITDATASOURCE","displayName":"Edit Data Source","description":"Request for editing a JDBC Data source."},
{"id":"17","name":"DELETEDATASOURCE","displayName":"Delete Data Source","description":"Request for deleting a JDBC Data source."},
{"id":"18","name":"DEPLOY_APP","displayName":"Deploy Application","description":"Deploy application from service."},
{"id":"19","name":"REDEPLOY_APP","displayName":"Redeploy Application","description":"Redeploy application from service."},
{"id":"20","name":"UNDEPLOY_APP","displayName":"Undeploy Application","description":"Undeploy application from service."},
{"id":"21","name":"STARTAPPLICATION","displayName":"Start Application","description":"Request for Starting a J2EE Application"},
{"id":"22","name":"STOPAPPLICATION","displayName":"Stop Application","description":"Request for Stopping a J2EE Application"}],
"canonicalLink":{"href":"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/7B7027E1E89427C6B3E8B9BE494AD9E8/actions"},
"selfLink":{"href":"/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/7B7027E1E89427C6B3E8B9BE494AD9E8/actions"}
}

53.8.6 Scaling Up a Service Instance

The following table shows an example of a PUT operation to scale up a service instance.

Table 53-32 PUT Request Configuration for Scaling Up a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId":33,
"configurations": [{"name": "numberOfServers","value": "1"}]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"27",
"actionName":"SCALE_UP",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/27"}
}]
}

53.8.7 Scaling Down a Service Instance

The following table shows an example of a PUT operation to scale down a service instance.

Table 53-33 PUT Request Configuration for Scaling Down a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId":34,
"configurations": [{"name": "numberOfServers","value": "1"}]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"28",
"actionName":" SCALE_DOWN",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/28"}
}]
}

53.8.8 Stopping a Service Instance

The following table shows an example of a PUT operation to stop a service instance.

Table 53-34 PUT Request Configuration for Stopping a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId":32}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"29",
"actionName":" STOP",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/29"}
}]
}

53.8.9 Starting a Service Instance

The following table shows an example of a PUT operation to start a service instance.

Table 53-35 PUT Request Configuration for Starting a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId":31}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"30",
"actionName":" START ",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/30"}
}]
}

53.8.10 Deleting a Service Instance

The following table shows an example of a PUT operation to delete a service instance.

Table 53-36 PUT Request Configuration for Deleting a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId":30}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"40",
"actionName":" DELETE",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/40"}
}]
}

53.8.11 Viewing Details of Java EE Applications Components from the Software Library

The following table shows an example of a GET operation to view details of the Java EE application components from the software library.

Table 53-37 GET Request Configuration for Viewing Details of Java EE Applications Components from the Software Library

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/javaeeappcomponents

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"name":"Java EE Application Components uploaded in My Library ",
"selfLink":"https://xyxy.example.com:443/em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/javaeeappcomponents",
"appUrns":[{"type":"Java EE Application","description":null,"status":"Ready","appName":"Riddles","creator":"MWAS_SSA_USER1","revision":"0.1", "maturity":"Untested","createdTime":"2014-10-28 01:42:22.0",
"appUrn":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_JavaEEApplication:06783833EA2545ECE0537492F20AAD84:0.1"},
{"type":"Java EE Application","description":null,"status":"Ready","appName":"riddles_1413283657449",
"creator":"MWAS_SSA_USER1","revision":"0.1","maturity":"Untested","createdTime":"2014-10-14 10:47:37.0",
"appUrn":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_JavaEEApplication:055ED28CCB3F3E9BE0537492F20A5827:0.1"}
]
}

53.8.12 Deploying an Application

The following table shows an example of a PUT operation to deploy an application.

Table 53-38 PUT Request Configuration for Deploying an Application

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 38,
"configurations":
[{"name": "applicationName","value": "Riddles_app"},
{"name": "isSharedLibrary","value": "false"},
{"name":"applicationUrn","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_JavaEEApplication:077E2D85D70E60D0E0539D8DF50A19F1:0.1"}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"31",
"actionName":" DEPLOY_APP",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/31"}
}]
}

53.8.13 Redeploying an Application

The following table shows an example of a PUT operation to redeploy an application.

Table 53-39 PUT Request Configuration for Redeploying an Application

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 39,
"configurations":
[{"name": "applicationName","value": "Riddles_app"},
{"name": "isSharedLibrary","value": "false"},
{"name": "applicationUrn","value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_JavaEEApplication:06783833EA2545ECE0537492F20AAD84:0.1"}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"32",
"actionName":" REDEPLOY_APP ",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/32"}
}]
}

53.8.14 Un-deploying an Application

The following table shows an example of a PUT operation to un-deploy an application.

Table 53-40 PUT Request Configuration for Un-deploying an Application

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 40,
"configurations":
[{"name": "applicationName","value": "Riddles_app"}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"33",
"actionName":" UNDEPLOY_APP",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/33"}
}]
}

53.8.15 Stopping an Application

The following table shows an example of a PUT operation to stop an application.

Table 53-41 PUT Request Configuration for Stopping an Application

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 41,
"configurations":
[{"name": "applicationName","value": "Riddles_app"},
{"name": "moduleType","value": "ear"}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"34",
"actionName":" STOPAPPLICATION",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/34"}
}]
}

53.8.16 Starting an Application

The following table shows an example of a PUT operation to start an application.

Table 53-42 PUT Request Configuration for Starting an Application

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 42,
"configurations":
[{"name": "applicationName","value": "Riddles_app"},
{"name": "moduleType","value": "ear"}
]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"35",
"actionName":" STARTAPPLICATION",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/35"}
}]
}

53.8.17 Viewing Details of all Applications Deployed in a Domain

The following table shows an example of a GET operation to view details of all the applications deployed in a domain.

Table 53-43 GET Request Configuration for Viewing Details of all Applications Deployed in a Domain

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/applications

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Applications "
description: "Applications deployed in the domain"
selfLink: "https://xyxy.example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/serviceinstances/0148F63816763D1C34900CBDCB86C3DB/applications"
apps: [1]
0:  {
appName: "/mwaas_slc06ekg__1_149e5639b55_SSA_USER1/slc06ekg__1_149e5639b55_SSA_USER1/Cluster_1/app1"
moduleType: "war"
appDisplayName: "app1"
}-
}

53.8.18 Viewing an Application URL

The following table shows an example of a PUT operation to view an application's URL.

Table 53-44 PUT Request Configuration for Viewing Details an Application's URL

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/applications

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{ "appDisplayName": "app1"}

Request method

PUT

A sample of the response received is shown below.

{
name: "Application URLs"
description: "Applications URLs for deployed Application"
appName: "app1"
selfLink: "https://xyxy.example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/serviceinstances/0148F63816763D1C34900CBDCB86C3DB/applications"
apps: [1]
0:  {
httpsurl: "http://xyxy.example.com:18536/Calendar"
httpsUrl: "https://xyxy.example.com:13241/Calendar"
}
}

53.8.19 Viewing Details of the Libraries Deployed in a Domain

The following table shows an example of a GET operation to view details of all the libraries deployed in a domain.

Table 53-45 GET Request Configuration for Viewing Details of all Libraries Deployed in a Domain

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/libraries

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Libraries"
description: "Libraries deployed in the domain"
selfLink: "https://xyxy.example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/serviceinstances/0148F63816763D1C34900CBDCB86C3DB/libraries"
libs: [18]
0:  {
libName: "oracle.adf.desktopintegration.model"
libDisplayName: "oracle.adf.desktopintegration.model(1.0,11.1.1.2.0)"
}-
1:  {
libName: "adf.oracle.domain.webapp"
libDisplayName: "adf.oracle.domain.webapp(1.0,11.1.1.2.0)"
}-
2:  {
libName: "oracle.adf.desktopintegration"
libDisplayName: "oracle.adf.desktopintegration(1.0,11.1.1.2.0)"
}-
3:  {
libName: "ohw-uix"
libDisplayName: "ohw-uix(5,5.0)"
}-
4:  {
libName: "oracle.wsm.seedpolicies"
libDisplayName: "oracle.wsm.seedpolicies(11.1.1,11.1.1)"
}-
5:  {
libName: "adf.oracle.domain"
libDisplayName: "adf.oracle.domain(1.0,11.1.1.2.0)"
}-
6:  {
libName: "oracle.pwdgen"
libDisplayName: "oracle.pwdgen(11.1.1,11.1.1.2.0)"
}-
7:  {
libName: "oracle.jrf.system.filter"
libDisplayName: "oracle.jrf.system.filter"
}-
8:  {
libName: "oracle.dconfig-infra"
libDisplayName: "oracle.dconfig-infra(11,11.1.1.1.0)"
}-
9:  {
libName: "orai18n-adf"
libDisplayName: "orai18n-adf(11,11.1.1.1.0)"
}-
10:  {
libName: "ohw-rcf"
libDisplayName: "ohw-rcf(5,5.0)"
}-
11:  {
libName: "jsf"
libDisplayName: "jsf(1.2,1.2.9.0)"
}-
12:  {
libName: "adf.oracle.businesseditor"
libDisplayName: "adf.oracle.businesseditor(1.0,11.1.1.2.0)"
}-
13:  {
libName: "oracle.jsp.next"
libDisplayName: "oracle.jsp.next(11.1.1,11.1.1)"
}-
14:  {
libName: "oracle.adf.management"
libDisplayName: "oracle.adf.management(1.0,11.1.1.2.0)"
}-
15:  {
libName: "UIX"
libDisplayName: "UIX(11,11.1.1.1.0)"
}-
16:  {
libName: "jstl"
libDisplayName: "jstl(1.2,1.2.0.1)"
}-
17:  {
libName: "oracle.adf.dconfigbeans"
libDisplayName: "oracle.adf.dconfigbeans(1.0,11.1.1.2.0)"
}-
}

53.8.20 Viewing the WebLogic Console URL

The following table shows an example of a GET operation to view the WebLogic console URL.

Table 53-46 GET Request Configuration for Viewing the WebLogic Console URL

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/weblogicconsoleurls

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

53.8.21 Creating a Data Source

The following table shows an example of a PUT operation to create a data source.

Table 53-47 PUT Request Configuration for Creating a Data Source

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 35,
"configurations": [{"name": "dsName","value": "Test_DS1"},
{"name": "jndiName","value": "DS_1"},
{"name": "driverClass","value": "oracle.jdbc.OracleDriver"},
{"name": "jdbcUrl","value": "jdbc:oracle:thin:@xyxy.example.com:13914:db2430"},
{"name": "dbUserName","value": "sysman"},
{"name": "dbPassword","value": "Welcome1"}]}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"36",
"actionName":" CREATEDATASOURCE",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/36"}
}]
}

53.8.22 Editing a Data Source

The following table shows an example of a PUT operation to edit a data source.

Table 53-48 PUT Request Configuration for Editing a Data Source

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 36,
"configurations": [{"name": "dsName","value": "Test_DS1"},
{"name": "jndiName","value": "DS_1_edit"},
{"name": "driverClass","value": "oracle.jdbc.OracleDriver"},
{"name": "jdbcUrl","value": "jdbc:oracle:thin:@xyxy.example.com:13914:db2430"},
{"name": "dbUserName","value": "sysman"},
{"name": "dbPassword","value": "Welcome1"}]}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"37",
"actionName":" EDITDATASOURCE",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/37"}
}]
}

53.8.23 Deleting a Data Source

The following table shows an example of a PUT operation to delete a data source.

Table 53-49 PUT Request Configuration for Deleting a Data Source

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{"actionId": 37,
"configurations": [{"name": "dsName","value": "Test_DS1"}]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"38",
"actionName":" DELETEDATASOURCE",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/38"}
}]
}

53.8.24 Viewing Details of all the Data Sources

The following table shows an example of a GET operation to view details of all the data sources.

Table 53-50 GET Request Configuration for Viewing Details of all Data Sources

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/datasources

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Data Sources"
description: "Data Sources in the domain"
selfLink: "https://xyxy.example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/serviceinstances/0148F63816763D1C34900CBDCB86C3DB/datasources"
datasources: [1]
0:  {
jndiName: [1]
0:  "ds_1"
-
driverClass: null
dbUrl: "jdbc:oracle:thin:@xyxy.example.com:15044:sekg3"
dsName: "ds_1"
driverKey: "oracle.jdbc.OracleDriver"
}-
-
}

53.8.25 Testing a Data Source

The following table shows an example of a PUT operation to test a data source.

Table 53-51 PUT Request Configuration for Testing a Data Source

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/wlaas/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/datasources

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{  "dsName": "ds_1" }

Request method

PUT

A sample of the response received is shown below.

{
message: "Test Connection succeeded for data source "
statusUri: "https://xyxy.example.com:5416/em/websvcs/restful//extws/cloudservices/ssa/wlaas/v2/serviceinstances"
}

53.9 WebLogic as a Service Resource Model for V1

The following sections describe the resource models that are supported by the Java as a Service family type and provide examples of supported operations. The following resource models are described:

- Cloud

- JaaS Service Family Type

- Zone

- JavaPlatformTemplate

- Java Platform Instance

- Application Instance Deployment

- DataSource

- Application Instance Component

- Filtering Service Templates

- Filtering Zones

The figure below shows the WebLogic as a Service resource model.

Figure 53-1 WLaaS Resource Model

53.9.1 Cloud

The following table describes the Cloud [application/oracle.com.cloud.common.Cloud+json] data model.

Table 53-52 Cloud Resource Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name. It is a UNICODE string to support different languages.

1

description

String

A brief description. This is a UNICODE string to support different languages.

0...1

service_template

Collection<ServiceTemplates>

List of service templates that are accessible to the user.

0..1

zones

Collection <Zone>

List of zones that are supported by the cloud and accessible to the user.

0..1

service_family_type

Collection <ServiceFamilyType>

The list of service family types that are supported by the cloud.

0..1

resource_state

ResourceState

A cloud that is online and running has READY as its state. If this field is not returned, the client can assume the cloud is READY. If the state of the returned field is not READY, the client cannot assume the viability of subsequent interactions into the cloud.

0..1

media_type

String

The value of this media type with the payload format. For example, application/oracle.com.cloud.common.Cloud+json.

1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.1.1 Viewing Details of the Cloud Resource

The following shows an example of a GET operation on the Cloud URI to return its representation.

Example Request:

Table 53-53 GET Request Configuration for Viewing the Cloud Resources

Feature

Description

URI

/em/cloud/

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.Cloud+json

Body

None

Request method

GET

Example Response:

{
"uri" : "/em/cloud" ,
"name" : "Oracle Cloud by Enterprise Manager" ,
"description" : "This represents the Cloud resource of the Oracle Enterprise Manager Cloud Management solution" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.common.Cloud+json" ,
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0
/ssa/em/cloud" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "3" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51"
} ,
{
"uri" : "/em/cloud/dbaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"description" : "Zone for Physical Pool" ,
"media_type" : "application/oracle.com.cloud.common.DbZone+json" ,
"type" : "self_service_zone"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/dbaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51"
} ,
{
"uri" : "/em/cloud/opc/opczone" ,
"name" : "OPC Zone" ,
"media_type" : "application/oracle.com.cloud.opc.OpcZone+json" ,
"service_family_type" : "opc" ,
"type" : "opc"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/opc"
}
]
} ,
"service_templates" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate+json" ,
"total" : "5" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA" ,
"name" : "PS4_LowHeapTemplate" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformTemplate+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatformtemplate/ D016AADD465462ACE040F20AD18167BA"
} ,
{
"uri" : "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD03030FAE80F6B58E040F20AD1812FE2%3A0.1" ,
"name" : " rtriddappjul18_Deploy_20120718_051319824" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD03030FAE80F6B58E040F20AD1812FE2%3A0.1"
} ,
{
"uri" : "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD03517A824EBFCF9E040F20AD1811CD9%3A0.1" ,
"name" : "FileUploadFromCode" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD03517A824EBFCF9E040F20AD1811CD9%3A0.1"
} ,
{
"uri" : "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD03EFA365D58A674E040F20AD18134AE%3A0.1" ,
"name" : "Test_1354864500315" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD03EFA365D58A674E040F20AD18134AE%3A0.1"
} ,
{
"uri" : "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD1103FE5F6877372E040F20AD1814215%3A0.1" ,
"name" : "RiddleApp" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD1103FE5F6877372E040F20AD1814215%3A0.1"
}
]
} ,
"service_family_types" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"total" : "4" ,
"elements" :
[
{
"uri" : "/em/cloud/service_family_type/jaas" ,
"name" : "jaas" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "jaas"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/jaas"
} ,
{
"uri" : "/em/cloud/service_family_type/dbaas" ,
"name" : "dbaas" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "dbaas"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/dbaas"
} ,
{
"uri" : "/em/cloud/service_family_type/opc" ,
"name" : "opc" ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"type" : "opc"
canonicalLink: "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/opc"
} ,
{
"uri" : "/em/cloud/service_family_type/iaas" ,
"name" : "iaas" ,
"media_type" : "application/oracle.com.cloud.iaas.IaasServiceFamilyType+json" ,
"type" : "iaas"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/iaas"
}
]
} ,
"service_requests" :     {
"media_type" : "application/oracle.com.cloud.common.Request+json" ,
"total" : "0" ,
"elements" :
[      ]
}
}

53.9.2 JaaS Service Family Type

Jaas service family type is a category of services that are offered by WebLogic as a Service (WLaaS). The following table describes the Jaas ServiceFamilyType [application/oracle.com.cloud.common.ServiceFamilyType+json] data model:

Table 53-54 JaaS Service Family Type Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the Jaas ServiceFamilyType definition to this user.

1

name

String

Name of the Jaas ServiceFamilyType.

1

description

String

Human readable description of the Service Family Type. Shall be a UNICODE string to support different languages.

1

resource_state

ResourceState

The resource state of the resource.

0..1

media_type

String

The media type of the resource.

1

service_templates

Collection <ServiceTemplate>

The collection of service templates that are of this service family type.

0..1

zones

Collection <Zone>

The collection of zones that support service instances of this service family type.

0..1

instance_types

Collection <Instance Type>

The collection of instance types that are supported by this service family type.

0..1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.2.1 Viewing Detail of the JaaS Service Family Type Resource

The following shows an example of a GET operation on the JaaS Service Family Type URI to return its representation.

Example Request:

Table 53-55 GET Request Configuration for Viewing Details of the JaaS Service Family Type Resource

Feature

Description

URI

/em/cloud/service_family_type/jaas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.ServiceFamilyType+json

Body

None

Request method

GET

Example Response:

{
"uri" : "/em/cloud/service_family_type/jaas" ,
"name" : "jaas" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.common.ServiceFamilyType+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/jaas" ,
"type" : "jaas" ,
"service_templates" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA" ,
"name" : "PS4_LowHeapTemplate" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformTemplate+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA"
}
]
}
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas" ,
"type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51"
}
]
} ,
"instance_types" :     {
"media_type" : "application/oracle.com.cloud.common.InstanceType+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"service_requests" :     {
"total" : "0" ,
"elements" :
[      ]
}
}

53.9.2.2 Creating an Application Instance Component by Passing a POST Request on the Jaas Service Family Type Resource

ApplicationInstanceComponent can be created using a post request on JaaS. Right now this is being done using a Java Program. The following shows a sample program:

Note:
<<>> : Provides a hint to an appropriate value.

import java.io.File;
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.io.StringWriter;

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import oracle.sysman.emInternalSDK.ssa.cloudapi.client.EMRestService;

public class FileUpload {
static public void main(String[] args)
throws Exception {
String emUser = <<JAAS_USER_NAME>>;
String emPassword = <<password>>";
String emHost = <<host_machine_name/ip>>;
String emPort = <<port>>;
String emLocation = "https://"+emHost+":"+emPort;
String applicationLocation = <<application_location>>;
String deployPlanLocation = <<deploy_plan_location>>;
File f = new File(applicationLocation+"deploy_app.ear");          StringWriter sw = new StringWriter();
PrintWriter pw =new PrintWriter(sw);
pw.println("{");
String fileName = "MyApplication"+emUser+"_"+System.currentTimeMillis();
pw.println("\"name\":"+"\""+fileName+"\",");
pw.println("\"description\":\"Riddles App\",");
pw.println("\"originate\":\"STREAMING\",");
pw.println("\"files\":[");
pw.println("{");
//pw.println("\"path\":\"swlib_internal_path\",");
pw.println("\"file_archive_path\":\"swlib_internal_path\",");
pw.println("\"content_type\":\"application/octet-stream\",");
pw.println("\"source\":\""+f.getName()+"\"");
pw.println("}");
pw.println("]");
pw.print("}");
pw.flush();
pw.close();
String content = sw.toString();
System.out.println("CONTENT:\n"+content+"\n");
//String content = "{\n\"name\":\"STOPPED\"\n}";
List<EMRestService.MultipartItem> items = new ArrayList<EMRestService.MultipartItem>();
EMRestService.MultipartItem item1, item2, item3, item4, item5;
item1 = new EMRestService.MultipartItem("item1", false);
item1.setContentType("multipart/form-data");
item1.setContent(content);
items.add(item1);
item2 = new EMRestService.MultipartItem("item2", true);
item2.setFileAlias(f.getName());
item2.setFile(f);
items.add(item2);
File deploymentPlanFile = new File(applicationLocation+"deployment_plan.xml");
item3 = new EMRestService.MultipartItem("item3", true);
item3.setFileAlias(deploymentPlanFile.getName());
item3.setFile(deploymentPlanFile);
items.add(item3);
File preDeployFile = new File(deployPlanLocation+" predeploy_script.py");
item4 = new EMRestService.MultipartItem("item4", true);
item4.setFileAlias(preDeployFile.getName());
item4.setFile(preDeployFile);
items.add(item4);
File postDeployFile = new File(deployPlanLocation+" postdeploy_script.py");
item5 = new EMRestService.MultipartItem("item5", true);
item5.setFileAlias(postDeployFile.getName());
item5.setFile(postDeployFile);
items.add(item5);

String uri = emLocation+"/em";
EMRestService ers = new EMRestService(uri, emUser, emPassword.getBytes());
ers.setReadTimeout(600*1000);
Object o = ers.webserviceMultipart(EMRestService.Method.POST, uri+"/cloud/service_family_type/jaas", "application/oracle.com.cloud.jaas.ApplicationInstanceComponent", items);
System.out.println(o);
}
}

53.9.3 Zone

The following table describes the Zone [application/oracle.com.cloud.common.Zone+json] data model.

Table 53-56 Zone Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the zone definition to this user.

1

name

String

Name of the Zone.

1

description

String

Human readable description of the Zone. It is a UNICODE string to support different languages.

0...1

context_id

String

This is an ID indication the internal reference of the zone

1

service_instances

Collection <ServiceInstance>

Collection of the service instances that are in this zone.

0..1

service_family_type

String

The name of the service family type that this zone is associated with.Each Zone is contextualized in the service family type.

0..1

resource_state

ResourceState

The resource state of the resource.

0..1

media_type

String

The media type of the resource.

1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.3.1 Viewing Details of the Zone Resource

The following shows an example of a GET operation on the Zone URI to return its representation.

Example Request:

Table 53-57 GET Request Configuration for Viewing Details of a Zone

Feature

Description

URI

/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.Zone+json

Body

None

Request method

GET

Example Response:

{
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"description" : "Zone for Physical Pool" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas" ,
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/zone/ A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42" ,
"name" : "MyServer-1" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"status" : "RUNNING"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42"
}
]
}
}

53.9.4 JavaPlatformTemplate

The JavaPlatformTemplate extends the CloudServiceTemplate SDK class. It is permissible to accept the ServiceTemplate media type on an instance of JavaPlatformTemplate. It is a preconfigured deployable entity that realizes a JavaPlatformInstance resource.

The following table describes the JavaPlatformTemplate [application/oracle.com.cloud.jaas.JavaPlatformTemplate+json] data model.

Table 53-58 JavaPlatformTemplate Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the template.

1

description

String

A brief description given to the template.

0...1

created

Timestamp

Date and time, in ISO 8601 format, when the template was created/last modified.

1

zones

Collection <Zone>

List of all zones configured for this template.

1

service_family_type

String

Denotes the type of Service Template (for example, "jaas").

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

service_instances

Collection

<JavaPlatformInstance>

All service instances created based on this JavaPlatformTemplate.

0…1

media_type

String

The media type of the service template that this type represents.

1

default_instance_media_type

String

Default media type for the request, value "application/oracle.com.cloud.jaas.JavaPlatformInstance+json".

1

context_id

String

This is an ID indication the internal reference of the service template.

1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.4.1 Viewing Details of the Java Platform Template Resource

The following shows an example of a GET operation on the JavaPlatformTemplate URI to return its representation.

Example Request:

Table 53-59 GET Request Configuration for Viewing Details of the Java Platform Template Resource

Feature

Description

URI

/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformTemplate+json

Body

None

Request method

GET

Example Response:

{
"uri" : "/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA" ,
"name" : "PS4_LowHeapTemplate" ,
"description" : "This is a service template using the CDP CDP_PS4_lowHeap_MWProfile" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "D016AADD465462ACE040F20AD18167BA" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformTemplate+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatformtemplate/ D016AADD465462ACE040F20AD18167BA" ,
"created" : "2012-12-04 23:16:10.0" ,
"default_instance_media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/jaas"
}
]
} ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42" ,
"name" : "MyServer-1" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"status" : "RUNNING"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42"
}
]
}
}

53.9.4.2 Creating a Java Platform Instance by Passing POST Request on a Java Platform Template

The following shows a sample POST on the JavaPlatformTemplate URI to create an "empty" JavaPlatformInstance by providing:

- Name of JavaPlatformInstance in "name" attribute

- Destination Zone URI in "zone" attribute

Example Request:

Table 53-60 POST Request Configuration for Creating a Java Platform Instance

Feature

Description

URI

/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformTemplate+json

Content-Type: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Body

{
"name" : "rtjul17",
"zone" : "/em/cloud/jaas/zone/C355810A6"
}

Request method

POST

Example Response (When the operation is in progress):

{
"uri" : "/em/cloud/jaas/javaplatforminstancerequest/1" ,
"name" : "rtjul17_Create_20120717_045804697" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "null" ,
"date" : "2012-07-17T09:16:13+0000"
}
]
} ,
"context_id": "1",
"media_type": "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"service_family_type": "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstancerequest/1" ,
"status": "SCHEDULED"
"created" : "2013-05-09T07:06:57+0000"
}

Example Response (After the instance has been created):

{
"uri" : "/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA" ,
"name" : "PS4_LowHeapTemplate" ,
"description" : "This is a service template using the CDP CDP_PS4_lowHeap_MWProfile" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "D016AADD465462ACE040F20AD18167BA" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformTemplate+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatformtemplate/ D016AADD465462ACE040F20AD18167BA" ,
"created" : "2012-12-04 23:16:10.0" ,
"default_instance_media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/jaas"
}
]
} ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42" ,
"name" : "MyServer-1" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"status" : "RUNNING"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42"
}
]
}
}

53.9.4.3 Viewing Details of the Java Platform Request Resource

The following shows a sample GET operation on the JavaPlatform Request URL:

Example Request:

Table 53-61 GET Request Configuration for Viewing the Status of the Java Platform Request

Feature

Description

URI

/em/cloud/jaas/javaplatforminstancerequest/1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Body

None

Request method

GET

Example Response (When the operation is in progress):

{
"uri" : "/em/cloud/jaas/javaplatforminstancerequest/1" ,
"name" : "rtjul17_Create_20120717_045804697" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "null" ,
"date" : "2012-07-17T09:16:13+0000"
}
]
} ,
"context_id": "1",
"media_type": "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"service_family_type": "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstancerequest/1" ,"status": "SCHEDULED
"created" : "2013-05-09T07:06:57+0000"
}

Example Response (After the instance has been created):

{
"uri" : "/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA" ,
"name" : "PS4_LowHeapTemplate" ,
"description" : "This is a service template using the CDP CDP_PS4_lowHeap_MWProfile" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "D016AADD465462ACE040F20AD18167BA" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformTemplate+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatformtemplate/ D016AADD465462ACE040F20AD18167BA" ,
"created" : "2012-12-04 23:16:10.0" ,
"default_instance_media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/service_family_type/jaas"
}
]
} ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42" ,
"name" : "MyServer-1" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"status" : "RUNNING"
"canonicalLink": "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42"
}
]
}
}

53.9.5 Java Platform Instance

JavaPlatformInstance will extend the ServiceInstance from the Cloud framework resource model. It is linked to an Oracle Composite Application target in Enterprise Manager.

The following table describes the JavaPlatformInstance [application/oracle.com.cloud.jaas.JavaPlatformInstance+json] data model.

Table 53-62 JavaPlatformInstance Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the instance.

[POST]

1

zone

Zone (uri, name, media_type)

The Zone to which the instance is deployed.

[POST]

1

media_type

String

Indicates the additional media type that clients can use to perform a GET.

1

application_instance_deployments

Collection <ApplicationInstanceDeployment>

This is a list of all the ApplicationInstanceDeployments deployed on the JavaPlatformInstance.

0…1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

based_on

JavaPlatformTemplate

JavaPlatformTemplate based on which this instance was created.

1

jdbc_drivers

String[]

List of JDBC drivers available to create a data source on this instance.

0…1

data_sources

Collection<DataSource>

This is a list of all the data sources configured for this instance.

0…1

status

String

Indicates the status of the underlying Weblogic cluster

Values are

STOPPED, RUNNING, UNREACHABLE, UNKNOWN

0…1

server_count

String

Number of Java servers in the Weblogic cluster of the JavaPlatformInstance

[PUT]

1

service_family_type

String

Denotes the type of Service Instance (for example, "jaas").

1

context_id

String

This is an ID indication the internal reference of the service template

1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.5.1 Viewing Details of the Java Platform Instance Resource

The following shows a sample GET operation on the JavaPlatformInstance URI to return its representation.

Example Request:

Table 53-63 GET Request Configuration for Viewing Details of the Java Platform Instance Resource

Feature

Description

URI

/em/cloud/jaas/javaplatforminstance/960A4A8244145EC7949303B4ECD650D0

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Body

None

Request method

GET

Example Response:

{
"uri" : "/em/cloud/jaas/javaplatforminstance/960A4A8244145EC7949303B4ECD650D0" ,
"name" : "jb__sd_platform_12_24_2012_13_38_28" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "960A4A8244145EC7949303B4ECD650D0" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstance/960A4A8244145EC7949303B4ECD650D0" ,
"status" : "RUNNING" ,
"zone" :     {
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"context_id" : "A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/zone/ A1B44A4EBCC4563125D9D0A3AAE4FD51" ,      "type" : "jaas"
} ,
"based_on" :     {
"uri" : "/em/cloud/jaas/javaplatformtemplate/D016AADD465462ACE040F20AD18167BA" ,
"name" : "PS4_LowHeapTemplate" ,
"context_id" : "D016AADD465462ACE040F20AD18167BA" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformTemplate+json" ,
"service_family_type" : "jaas"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatformtemplate/ D016AADD465462ACE040F20AD18167BA "
} ,
"data_sources" :     {
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"jdbc_drivers" :
[
"com.ddtek.jdbc.oracle.OracleDriver" ,
"oracle.jdbc.xa.client.OracleXADataSource" ,
"oracle.jdbc.OracleDriver" ,
"com.ddtek.jdbcx.oracle.OracleDataSource"
] ,
"server_count" : "1" ,
"application_instance_deployments" :     {
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"total" : "0" ,
"elements" :
[      ]
}
}

53.9.5.2 Deleting a Service Instance by Passing a DELETE Request on a Java Platform Instance

The following shows a sample DELETE operation on the JavaPlatformInstance URI to retire the service instance.

Example Request:

Table 53-64 DELETE Request Configuration for Deleting a Java Platform Instance

Feature

Description

URI

/em/cloud/jaas/javaplatforminstance/960A4A8244145EC7949303B4ECD650D0

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Body

None

Request method

DELETE

Example Response:

{
"uri" : "/em/cloud/jaas/javaplatforminstancerequest/121" ,
"name" : "rtjul17_Delete_20120719_035504227" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "null" ,
"date" : "2012-07-19T09:16:13+0000"
}
]
} ,
"context_id": "121",
"media_type": "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"service_family_type": "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstancerequest/121" ,
"status": "SCHEDULED"
"created" : "2013-05-09T09:08:38+0000"
}

53.9.5.3 Viewing Status of the DELETE Request

Example Request:

Table 53-65 GET Request Configuration for Viewing Status of the Delete Operation

Feature

Description

URI

/em/cloud/jaas/javaplatforminstancerequest/121

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Body

None

Request method

GET

Example Response (When the operation is in progress):

{
"uri" : "/em/cloud/jaas/javaplatforminstancerequest/121" ,
"name" : "rtjul17_Delete_20120719_035504227" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "null" ,
"date" : "2012-07-19T09:16:13+0000"
}
]
} ,
"context_id": "121",
"media_type": "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"service_family_type": "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstancerequest/121" ,
"status": "SCHEDULED"
"created" : "2013-05-09T09:08:38+0000"
}

Example Response (when the operation is complete):

The Status field will show that the resource has been deleted.

53.9.5.4 Creating an Application Instance Deployment By Passing a POST Request on Java Platform Instance

The following shows a sample POST operation on the JavaPlatformInstance URI to deploy an ApplicationInstanceDeployment.

- Name of ApplicationInstanceDeployment in the "name" attribute

- ApplicationInstanceComponent URI in the "application_instance_component" attribute

Example Request:

Table 53-66 POST Request Configuration for Creating an Application Instance Deployment Resource

Feature

Description

URI

/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json

Content-Type: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json

Body

{
"name" : "rtriddappjul18",
"application_instance_component" : "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC414FFB7A0912357E040F10A716015F9%3A0.1"
}

Request method

POST

Example Response:

{
"uri" : "/em/cloud/jaas/applicationinstancedeploymentrequest/ rtriddappjul18@131" ,
"name" : " rtriddappjul18_Deploy_20120718_051319824" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-18T12:13:28+0000" ,
"text" : "null"
}
]
} ,
"context_id" : "rtriddappjul18@131" ,
"media_type" :             "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancedeploymentrequest/ rtriddappjul18@131" ,
"status" : "SCHEDULED"
}

53.9.5.5 Viewing Status of the Application Instance Deployment Creation Request

The following shows a sample GET of an Application Instance Deployment Request returned by POST to create Application Instance.

Example Request:

Table 53-67 GET Request Configuration for Viewing the Status of the Application Instance Deployment Creation

Feature

Description

URI

/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappju118@131

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json

Body

None

Request method

GET

Example Response (When the operation is in progress)

{
"uri" : "/em/cloud/jaas/applicationinstancedeploymentrequest/ rtriddappjul18@131" ,
"name" : " rtriddappjul18_Deploy_20120718_051319824" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-18T12:13:28+0000" ,
"text" : "null"
}
]
} ,
"context_id" : "rtriddappjul18@131" ,
"media_type" :          "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
"status" : "SCHEDULED"
}

Example Response (When the operation is complete)

{
"uri" : "/em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3" ,
"name" : "rtriddappjul19" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "9D8868C9632E3" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
"status" : "RUNNING" ,
"http_application_invocation_url" :     {
"ms_3" : "http://example.com:32463/RiddlesWeb" ,
"ms_4" : "http://example.com:40298/RiddlesWeb"
} ,
"https_application_invocation_url" :     {
"ms_3" : "https://example.com:3550/RiddlesWeb" ,
"ms_4" : "https://example.com:41467/RiddlesWeb"
} ,
"contained_in" :     {
"uri" : "/em/cloud/jaas/javaplatforminstance/CF4339D922C" ,
"name" : "rtjul17" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"status" : "RUNNING"
}
}

53.9.5.6 Creating a Data Source by Passing a POST Request on the Java Platform Instance Resource

The following shows a sample POST operation on the JavaPlatformInstance URI to create a DataSource on the JavaPlatformInstance

- Name of DataSource in the "name" attribute

- JNDI Name in "jndi_name" attribute

- JDBC Driver in "jdbc_driver" attribute

- Database connect string in "database_connect_string" attribute

- Database type in "database_type" attribute

- username and password

Example Request:

Table 53-68 POST Request Configuration for Creating a Data Source on the Java Platform Instance

Feature

Description

URI

/em/cloud/jaas/javaplatforminstance/8AF6E65447FBA84E968CCD909BD05D42

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.DataSource+json

Content-Type: application/oracle.com.cloud.jaas.DataSource+json

Body

{
"name" : "tarunDS_wthParamchanges" ,
"jndi_name" : ["jndi_1Paramchanges"] ,
"jdbc_driver" : "oracle.jdbc.OracleDriver" ,
"database_connect_string" :   "jdbc:oracle:thin:sysman/sysman@example.com:15044:test2" ,
"database_type" : "Oracle" ,
"username": "sysman",
"password": "sysman"
}

Request method

POST

Example Response:

{
"uri" : "/em/cloud/jaas/datasourcerequest/rtrepodsjul23@181" ,
"name" : "rtrepodsjul23_CreateDS_20120722_112705396" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T06:27:06+0000" ,
"text" : "null"
}
]
},
"context_id" : "rtrepodsjul23@181" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/ datasourcerequest/rtrepodsjul23@181" ,
"status" : "SCHEDULED"
}

53.9.5.7 Viewing Status of the Data Source Creation Request

The following shows a sample GET of Data Source request returned by POST to create Data Source

Example Request:

Table 53-69 GET Request Configuration for Viewing the Status of the Data Source Creation

Feature

Description

URI

/em/cloud/jaas/datasourcerequest/rtrepodsju123@181

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Body

None

Request method

GET

Example Response (When the operation is in progress):

{
"uri" : "/em/cloud/jaas/datasourcerequest/rtrepodsjul23@181" ,
"name" : "rtrepodsjul23_CreateDS_20120722_112705396" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T06:27:06+0000" ,
"text" : "null"
}
]
},
"context_id" : "rtrepodsjul23@181" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/ datasourcerequest/rtrepodsjul23@181" ,
"status" : "SCHEDULED"
}

Example Response (When the operation is complete):

{
"uri" : "/em/cloud/jaas/datasource/ rtrepodsjul18@CF4339D922C" ,
"name" : "rtrepodsjul18" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : " rtrepodsjul18@CF4339D922C" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C " ,
"jndi_name" :
[
"jndi_1"
] ,
"jdbc_driver" : "oracle.jdbc.OracleDriver" ,
"username" : "sysam",
"database_connect_string" : "jdbc:oracle:thin:sysman/sysman@example.com:15044:sjuly14" ,
"contained_in" :     {
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"context_id" : "CF4339D922C51" ,
"name" : "rtjul17" ,
"uri" : "/em/cloud/jaas/javaplatforminstance/CF4339D922C51"
}

}

53.9.5.8 Scaling Up/Down the Service Instance

The following shows a sample PUT operation on JavaPlatformInstance URI to scale up or scale down the service instance. The final server count is contained in "server_count" attributes. A Scale up or scale down request will be submitted according to Current server count being greater than or lesser than the Final server count.

Example Request:

Table 53-70 PUT Request Configuration for Scaling Up/Down the Service Instance

Feature

Description

URI

/em/cloud/jaas/javaplatforminstance/CF4339D922C5

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Content-type: application/oracle.com.cloud.jaas.JavaPlatformInstance+json

Body

{
"server_count" : "3"
}

Request method

PUT

Example Response:

{
"uri" : "/em/cloud/jaas/javaplatforminstancerequest/211" ,
"name" : "rtjul17_Scaleup_20120719_045804697" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "null" ,
"date" : "2012-07-19T09:16:13+0000"
}
]
} ,
"context_id": "211",
"media_type": "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"service_family_type": "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/ javaplatforminstancerequest/211" ,
"status": "SCHEDULED"
"created" : "2013-05-09T11:46:27+0000"
}

53.9.6 Application Instance Deployment

This represents the deployment of an Application Instance in a JavaPlatformInstance.

The following table describes the ApplicationInstanceDeployment [application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json] data model.

Table 53-71 Application Instance Deployment Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the instance.

[POST]

1

application_instance_component

ApplicationInstanceComponent

(uri,name,version)

The ApplicationInstanceComponent in the Software library which was used during deployment of this instance.

[POST]

1

http_application_invocation_url

Map<String,String>

Map of server name and HTTP URL of the deployed application. Will be populated after the instance has been created.

0…1

https_application_invocation_url

Map<String,String>

Map of server name and HTTPS URL of the deployed application. Will be populated after the instance has been created.

0…1

contained_in

JavaPlatformInstance

(uri,name)

JavaPlatformInstance on which the application is deployed.

1

deployment_plan

String

Vendor specific configuration parameters for this deployment in the prescribed XML format.

[POST]

0…1

status

String

Indicates the status of the ApplicationInstanceDeployment.

Values are

STOPPED, RUNNING, UNREACHABLE, UNKNOWN

[PUT]

0…1

metrics

Collection <Metric>

The list of metrics (uri, name, type current_value) that are pertinent to this service instance.

0…1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

service_family_type

String

Denotes the type of ApplicationInstanceDeployment (for example, "jaas").

1

media_type

String

Indicates the additional media type that clients can use to perform a GET.

1

context_id

String

This is an ID indication of the internal reference of the application deployment.

1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.6.1 Viewing Details of the Application Instance Deployment Resource

The following shows a sample GET operation on the ApplicationInstanceDeployment URI to return its representation.

Example Request:

Table 53-72 GET Request Configuration for Viewing Details of the Application Instance Deployment

Feature

Description

URI

/em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicaitonInstanceDeployment+json

Body

None

Request method

GET

Example Response:

HTTP/1.1 200 OK
Content-Type: application/oracle.com.cloud.jaas. ApplicationInstanceDeployment+json
Content-Location: /em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3
Cache-Control: public
Content-Length: nnn
{
"uri" : "/em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3" ,
"name" : "rtriddappjul19" ,
"resource_state" :     {
"state" : "READY"
} ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3" ,
"status" : "RUNNING" ,
"http_application_invocation_url" :     {
"ms_3" : "http://example.com:32463/RiddlesWeb" ,
"ms_4" : "http://example.com:40298/RiddlesWeb"
} ,
"https_application_invocation_url" :     {
"ms_3" : "https://example.com:3550/RiddlesWeb" ,
"ms_4" : "https://example.com:41467/RiddlesWeb"
} ,
"contained_in" :     {
"uri" : "/em/cloud/jaas/javaplatforminstance/CF4339D922C" ,
"name" : "rtjul17" ,
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"status" : "RUNNING"
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/javaplatforminstance/ CF4339D922C "
}
}

53.9.6.2 Deleting an Application Instance Deployment

The following shows a sample DELETE operation on the Application Instance Deployment URI which undeploys the application from Java Platform Instance.

Example Request:

Table 53-73 DELETE Request Configuration for Deleting an Application Instance Deployment

Feature

Description

URI

/em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicaitonInstanceDeployment+json

Body

None

Request method

DELETE

Example Response:

HTTP/1.1 200 OK
Content-Type: application/oracle.com.cloud.jaas. ApplicationInstanceDeployment+json
Content-Location: /em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@184
Cache-Control: public
Content-Length: nnn
{
"uri" : "/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@184" ,
"name" : "rtriddappjul19_Undeploy_20120723_011757881" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T08:18:01+0000" ,
"text" : "null"
}
]
} ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
canonicalLink: "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@184" ,
"status" : "SCHEDULED"
}

53.9.6.3 Viewing Status of the Application Instance Deployment Deletion Request

The following shows a sample GET operation on an Application Instance Deployment Request.

Example Request:

Table 53-74 GET Request Configuration for Viewing the Status of the Application Instance Deployment Deletion

Feature

Description

URI

/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappju119@184

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicaitonInstanceDeployment+json

Body

None

Request method

GET

Example Response: (operation in progress):

{
"uri" : "/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@184" ,
"name" : "rtriddappjul19_Undeploy_20120723_011757881" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T08:18:01+0000" ,
"text" : "null"
}
]
} ,
"context_id" : "rtriddappjul19@184" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
canonicalLink: "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@184" ,
"status" : "SCHEDULED"
}

Example Response: (operation is complete):

The status field will show that the resource has been deleted.

53.9.6.4 Starting, Stopping and Redeploying an Application Instance Deployment

The following shows a sample PUT operation on the Application Instance Deployment URI to start or stop the instance.

- STOPPED to RUNNING
Put on status attribute, value = "START"

- RUNNING to STOPPED
Put on status attribute, value = "STOP"

- REDEPLOY
Put on status attribute, value = "REDEPLOY" and ApplicationInstanceComponent URI in the "application_instance_component" attribute

Example Request: Starting/Stopping

Table 53-75 PUT Request Configuration for Starting/Stopping the Status of the Application Instance Deployment

Feature

Description

URI

/em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicaitonInstanceDeployment+json

Content-type: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json

Body

{
"status" : "STOP"
}

Request method

PUT

Example Response:

HTTP/1.1 200 OK
Content-Type: application/oracle.com.cloud.jaas. ApplicationInstanceDeployment+json
Content-Location: /em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@182
Cache-Control: public
Content-Length: nnn
{
"uri" : "/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@182" ,
"name" : "rtriddappjul19_Stop_20120723_123327380" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T07:33:27+0000" ,
"text" : "null"
}
]
} ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@182" ,
"status" : "SCHEDULED"
}

Example Request for Redeploying:

PUT /em/cloud/jaas/applicationinstancedeployment/9D8868C9632E3
Host: cloudcompany.com
Authorization: Basic xxxxxxx
Accept: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json
Content-type: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json
{
"status" : "STOP" ,
"application_instance_component" : "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC414FFB7A0912357E040F10A716015F9%3A0.1"
}

Example Response:

{
"uri" : "/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@183" ,
"name" : "rtriddappjul19_Undeploy_20120723_123327380" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T07:33:27+0000" ,
"text" : "null"
}
]
} ,
"context_id" : "rtriddappjul19@183" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceDeployment+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancedeploymentrequest/rtriddappjul19@183" ,
"status" : "SCHEDULED"
}

53.9.7 DataSource

The DataSource resource model has the following characteristics:

The following table describes the DataSource [application/oracle.com.cloud.jaas.DataSource+json] data model.

Table 53-76 DataSource Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the data source.

[POST][PUT]

1

jndi_name

String[]

JNDI path to where this data source will be bound. Applications look up the data source on the JNDI tree by this name when reserving a connection.

[POST][PUT]

1

database_type

String

The DBMS of the database that the data source represents.

[POST]

0…1

jdbc_driver

String

The database driver used to connect to the database.

[POST]

1

contained_in

JavaPlatformInstance

(uri, name)

JavaPlatformInstance on which the data source exists.

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

database_connect_string

String

Connect String of the database can be provided to create the data source.

[POST][PUT]

0…1

service_family_type

String

Denotes the type of Data Source (for example, "jaas").

1

media_type

String

Indicates the additional media type that clients can use to perform a GET.

1

username

String

Username of the DB connection.

1

password

String

Password of the DB connection.

1

context_id

String

This is an ID indication the internal reference of the data source.

1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.7.1 Viewing Details of the Data Source Resource

The following shows a sample GET operation on the DataSource URI to return its representation.

Example Request:

Table 53-77 GET Request Configuration for Viewing Details of the Data Source

Feature

Description

URI

/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.DataSource+json

Body

None

Request method

GET

Example Response:

{
"uri" : "/em/cloud/jaas/datasource/ rtrepodsjul18@CF4339D922C" ,
"name" : "rtrepodsjul18" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : " rtrepodsjul18@CF4339D922C" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C " ,
"jndi_name" :
[
"jndi_1"
] ,
"jdbc_driver" : "oracle.jdbc.OracleDriver" ,
"username" : "sysam",
"database_connect_string" : "jdbc:oracle:thin:sysman/sysman@example.com:15044:sjuly14" ,
"contained_in" :     {
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"context_id" : "CF4339D922C51" ,
"name" : "rtjul17" ,
"uri" : "/em/cloud/jaas/javaplatforminstance/CF4339D922C51"
}

}

53.9.7.2 Deleting a Data Source

The following shows a sample DELETE operation on the DataSource URI removes it from the JavaPlatformInstance.

Example Request:

Table 53-78 DELETE Request Configuration for Deleting the Data Source

Feature

Description

URI

/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.DataSource+json

Body

None

Request method

DELETE

Example Response:

HTTP/1.1 200 OK
Content-Type: application/oracle.com.cloud.jaas.DataSource+json
Content-Location: /em/cloud/jaas/datasourcerequest/rtrepodsjul18@201
Cache-Control: public
Content-Length: nnn
{
"uri" : "/em/cloud/jaas/datasourcerequest/rtrepodsjul18@201" ,
"name" : "rtrepodsjul18_DeleteDS_20120723_024836692" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T09:48:37+0000" ,
"text" : "null"
}
]
} ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/ datasourcerequest/rtrepodsjul18@201" ,
"status" : "SCHEDULED"
}

53.9.7.3 Viewing Status of the Data Source Deletion Request

The following shows a sample GET operation on a DataSource request.

Example Request:

Table 53-79 GET Request Configuration for Viewing Status of the Data Source Deletion

Feature

Description

URI

/em/cloud/jaas/datasourcerequest/rtrepodsjul18@201

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.DataSource+json

Body

None

Request method

GET

Example Response: (operation in progress):

{
"uri" : "/em/cloud/jaas/datasourcerequest/rtrepodsjul18@201" ,
"name" : "rtrepodsjul18_DeleteDS_20120723_024836692" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T09:48:37+0000" ,
"text" : "null"
}
]
} ,
"context_id" : "rtrepodsjul18@201" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/ datasourcerequest/rtrepodsjul18@201" ,
"status" : "SCHEDULED"
}

Example Response: (operation is complete)

The status field will show that the resource has been deleted.

53.9.7.4 Updating a Data Source

The following shows a sample PUT operation on the DataSource URI to update the DataSource to add/remove JNDI names and edit the database connect string. An example request for TEST DataSource is also provided.

Example Request:

Table 53-80 PUT Request Configuration for Updating the Data Source

Feature

Description

URI

/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.DataSource+json

Content-type: application/oracle.com.cloud.jaas.DataSource+json

Body

{
"jndi_name" : ["jndi_2"],
"database_connect_string" :    "jdbc:oracle:thin:sysman/sysman@example.com:15044:sep25cc" ,
"username" : "sysman",
"password" : "sysman"
}

Request method

PUT

Example Response:

{
"uri" : "/em/cloud/jaas/datasourcerequest/rtrepodsjul18@CF4339D922C" ,
"name" : "rtrepodsjul18_UpdateDS_20121216_062909975" ,
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"date" : "2012-12-16T14:29:16+0000" ,
"text" : "null"
}
]
} ,
"context_id" : "rtrepodsjul18@681" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/datasourcerequest/rtrepodsjul18@191" ,
"status" : "SCHEDULED"
}

Example Request for TEST Data Source

Table 53-81 PUT Request Configuration for Testing the Data Source

Feature

Description

URI

/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.DataSource+json

Content-type: application/oracle.com.cloud.jaas.DataSource+json

Body

{
"status" : "TEST"
}

Request method

PUT

Example Response

{
"uri" : "/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C" ,
"name" : "rtrepodsjul18" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : " rtrepodsjul18@CF4339D922C" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C " ,
"jndi_name" :
[
"jndi_1"
] ,
"jdbc_driver" : "oracle.jdbc.OracleDriver" ,
"username" : "sysam",
"database_connect_string" : "jdbc:oracle:thin:sysman/sysman@example.com:15044:sjuly14" ,
"contained_in" :     {
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"context_id" : "CF4339D922C51" ,
"name" : "rtjul17" ,
"uri" : "/em/cloud/jaas/javaplatforminstance/CF4339D922C51"
}
}

53.9.7.5 Viewing Status of the Data Source Request

The following shows a sample GET on Data Source request.

Example Request:

Table 53-82 GET Request Configuration for Viewing Status of the Data Source

Feature

Description

URI

/em/cloud/jaas/datasourcerequest/rtrepodsjul18@201

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.DataSource+json

Body

None

Request method

GET

Example Response (when operation is in progress):

{
"uri" : "/em/cloud/jaas/datasourcerequest/rtrepodsjul18@201" ,
"name" : "rtrepodsjul18_DeleteDS_20120723_024836692" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"date" : "2012-07-23T09:48:37+0000" ,
"text" : "null"
}
]
} ,
"context_id" : "rtrepodsjul18@201" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/ datasourcerequest/rtrepodsjul18@201" ,
"status" : "SCHEDULED"
}

Example Response (when operation is complete):

{
"uri" : "/em/cloud/jaas/datasource/ rtrepodsjul18@CF4339D922C" ,
"name" : "rtrepodsjul18" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : " rtrepodsjul18@CF4339D922C" ,
"media_type" : "application/oracle.com.cloud.jaas.DataSource+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/datasource/rtrepodsjul18@CF4339D922C " ,
"jndi_name" :
[
"jndi_1"
] ,
"jdbc_driver" : "oracle.jdbc.OracleDriver" ,
"username" : "sysam",
"database_connect_string" : "jdbc:oracle:thin:sysman/sysman@example.us.com:15044:sjuly14" ,
"contained_in" :     {
"media_type" : "application/oracle.com.cloud.jaas.JavaPlatformInstance+json" ,
"context_id" : "CF4339D922C51" ,
"name" : "rtjul17" ,
"uri" : "/em/cloud/jaas/javaplatforminstance/CF4339D922C51"
}

}

53.9.8 Application Instance Component

This represents the application component in the software library. It can be created by POST-ing to the Jaas service type.

The following table describes the ApplicationInstanceComponent [application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json] data model.

Table 53-83 Application Instance Component Data Model

Field

Type

Description

Occurs

uri

URI

A GET against this URI refreshes the client representation of the resources accessible to this user.

1

name

String

A human readable name given to the instance.

[POST]

1

creator

String

Creator of the ApplicationInstanceComponent in the Software Library.

1

created

Timestamp

Date and time, in ISO 8601 format, when the instance was created.

1

version

String

Version of the ApplicationInstanceComponent in the Software library.

[POST]

1

resource_state

ResourceState

The validity of the fields on a GET should be guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

1

context_id

String

This is an ID indication the internal reference of the ApplicationInstanceComponent.

1

service_family_type

String

Denotes the type of ApplicationInstanceComponent (for example, "jaas").

1

media_type

String

Indicates the additional media type that clients can use to perform a GET.

1

status

String

Status of the ApplicationInstanceComponent in the Software Library.

1

maturity

String

Maturity of the ApplicationInstanceComponent in the Software Library.

1

componenttype

String

Component type of ApplicationInstanceComponent (for example, Java EE Application).

1

canonicalLink

String

GET against this normalized/canonical URI refreshes the client representation of the resources accessible to this user.

1

53.9.8.1 Viewing Details of the Application Instance Component Resource

The following shows a sample GET operation on the ApplicationInstanceComponent URI to return its representation.

Example Request:

Table 53-84 GET Request Configuration for Viewing Details of the Application Instance Component

Feature

Description

URI

/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC514D5CF9FC00CD7E040F10A716020D0%3A0.1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json

Body

None

Request method

GET

Example Response:

HTTP/1.1 200 OK
Content-Type: application/oracle.com.cloud.jaas. ApplicationInstanceComponent+json
Content-Location: /em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC514D5CF9FC00CD7E040F10A716020D0%3A0.1
Cache-Control: public
Content-Length: nnn
{
"uri" :   "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC514D5CF9FC00CD7E040F10A716020D0%3A0.1" ,
"name" : "Riddles" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_JavaEEApplication:C514D5CF9FC00CD7E040F10A716020D0:0.1" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json" ,
"service_family_type" : "jaas" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/ applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC514D5CF9FC00CD7E040F10A716020D0%3A0.1" ,
"created" : "2012-07-17 22:31:33.0" ,
"version" : "0.1" ,
"creator" : "SSA_USER_1" ,
"componenttype" : "Java EE Application" ,
"status" : "Ready" ,
"maturity" : "Untested"
}

53.9.8.2 Deleting an Application Instance Component

The following shows a sample DELETE operation on the ApplicationInstanceComponent URI.

Example Request:

Table 53-85 DELETE Request Configuration for Deleting the Application Instance Component

Feature

Description

URI

/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC514D5CF9FC00CD7E040F10A716020D0%3A0.1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json

Body

None

Request method

DELETE

Example Response:

{
"uri" :   "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC514D5CF9FC00CD7E040F10A716020D0%3A0.1" ,
"resource_state" :     {
"state" : "DESTROYED"
} ,
"context_id" : "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_JavaEEApplication:C514D5CF9FC00CD7E040F10A716020D0:0.1" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json" ,
"canonicalLink" : "/em/websvcs/restful/extws/cloudservices/service/v0/ssa/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AC514D5CF9FC00CD7E040F10A716020D0%3A0.1"
}

53.10 Application Component Filtering for V1

Application component filtering is supported for JaaS zones, templates, and application components.

53.10.1 Filtering Service Templates

The filtering attributes supported are name, service_template_type, owner, and media_type. The following are sample requests and responses to Service Template Finds:

Example Request

Table 53-86 GET Request Configuration for Filtering Service Templates

Feature

Description

URI

/em/cloud?filters=

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.ServiceTemplateFinds+json

Body

{
"filters":{"name":"RiddleApp"}
}

Request method

GET

Example Response

{
"uri" : "/em/cloud/finds/service_template/bWVkaWFfdHlwZSUyNTNEYXBwbGljYXRpb24lMjUyRm9yYWNsZS5jb20uY2xvdWQuY29tbW9uLlNl%0AcnZpY2VUZW1wbGF0ZSUyRm5hbWUlMjUzRFJpZGRsZUFwcA%3D%3D" ,
"name" : "Service Template Finds" ,
"media_type" : "application/oracle.com.cloud.common.ServiceTemplateFinds+json" ,
"description" : "This is a Resource Finds for 'Service Template Finds' with media type 'application/oracle.com.cloud.common.ServiceTemplateFinds+json'" ,
"resource_state" :     {
"state" : "READY"
} ,
"filters" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"name" : "RiddleApp"
} ,
"finds" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/applicationinstancecomponent/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3ACOMP_Component%3ASUB_JavaEEApplication%3AD1103FE5F6877372E040F20AD1814215%3A0.1" ,
"name" : "RiddleApp" ,
"media_type" : "application/oracle.com.cloud.jaas.ApplicationInstanceComponent+json" ,
"service_family_type" : "jaas"
}
]
}
}

53.10.2 Filtering Zones

The filtering attributes supported are name, owner, service_family_type, and media_type.

Example for Filtering Zones

Table 53-87 GET Request Configuration for Filtering Zones

Feature

Description

URI

/em/cloud?filters=

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Accept: application/oracle.com.cloud.common.ZoneFinds+json

Body

{
"filters":{"name":"Zone1"}
}

Request method

GET

Example Response

{
"uri" : "/em/cloud/finds/zone/bWVkaWFfdHlwZSUyNTNEYXBwbGljYXRpb24lMjUyRm9yYWNsZS5jb20uY2xvdWQuY29tbW9uLlpv%0AbmUlMkZuYW1lJTI1M0Rab25lMQ%3D%3D" ,
"name" : "Zone Finds" ,
"media_type" : "application/oracle.com.cloud.common.ZoneFinds+json" ,
"description" : "This is a Resource Finds for 'Zone Finds' with media type 'application/oracle.com.cloud.common.ZoneFinds+json'" ,
"resource_state" :     {
"state" : "READY"
} ,
"filters" :     {
"media_type" : "application/oracle.com.cloud.common.Zone" ,
"name" : "Zone1"
} ,
"finds" :     {
"media_type" : "*/*" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ,
"name" : "Zone1" ,
"media_type" : "application/oracle.com.cloud.jaas.Zone+json" ,
"service_family_type" : "jaas"
}
]
}
}

53.11 Load Balancer Configuration for V1

The following table describes the load balancer configuration.

Table 53-88 Load Balancer Configuration

Method

Request Payload

URI

Description

GET

NA

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs

Returns all load balancer configurations with lbr Id, lbr name and lbr self link.

GET

NA

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs/{lbr id}

Returns all details about the given load balancer configuration.

POST

LBR Config Item (Json Payload)

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs

Creates a new load balancer configuration.

PUT

LBR Config Item (Json Payload)

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs

Edits the load balancer configuration.

DELETE

NA

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs/{lbr id}

Deletes the lbr with the specified lbr id.

53.11.1 Load Balance Configuration REST API Examples

This section explains the REST API examples related to the Load Balancer Configuration.

53.11.1.1 Viewing Details of the Load Balancer Configuration Resource

The table below lists the GET request configuration.

Table 53-89 GET Request Configuration for Viewing Details of the Load Balancer Configuration Resource

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Load Balancer Configurations"
description: "Load Balancer Configurations available"
selfLink: " /em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs"
lbrconfigs: [2]
0:  {
name: "lbr1"
type: "OHS"
id: 1001
selfLink: ”/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs/1001"
}
1:  {
name: "lbr2"
type: "OTD"
id: 1002
selfLink: "
/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs/1002"
}
}

53.11.1.2 Viewing Details of the specified Load Balancer Configuration

The table below lists the GET request configuration for viewing details of the Load Balancer Configuration.

Table 53-90 GET Request Configuration for Viewing Details of the specified Load Balancer Configuration

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs/1001

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "lbr1"
description: "Real ohs lbr"
type: "OHS"
id: 1001
owner: "SYSMAN"
host: "example.com"
credential: "HOST_CREDS"
agentTargetName: "example.com:11852"
instanceHome: "/scratch/PS5_OHS/instance_home"
poolTargets:  [1]
0:  "10729BD1A3B12FA254232EE4F84CB71B"
planTargets:   [0]
properties:
{
OHS_ROUTING_HTTP_PORT: "7777"
OHS_ROUTING_PROTOCOL: "HTTP"
COMPONENT_NAME: "ohs1"
}
selfLink: "/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs/1001"
}

53.11.1.3 Editing the Load Balancer Configuration

The table below lists the PUT request configuration for editing the Load Balancer Configuration.

Table 53-91 PUT Request Configuration for Editing the Load Balancer Configuration

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"name": "lbr2",
"description": "desc by rest",
"type": "OTD",
"id": 1002,
"host": "xyxy.example.com",
"agentTargetName": "xyxy.example:11852",
"credential": "USER_CREDS",
"instanceHome": "as",
"properties":{ "items":
[
{"name":"SNMP_PORT", "value":"11161"},
{"name":"CERT_NAME", "value": "sdfsdf"},
{"name":"OTD_INSTANCENODES", "value": "sd"},
{"name":"HTTP_PORT", "value": "80"},
{"name":"CONFIG_NAME", "value": "config1"},
{"name":"VIRTUAL_SERVER_NAME", "value": "dfsdfs"},
{"name":"HTTPS_PORT", "value": "443"},
{"name":"ROUTING_PROTOCOL", "value": "HTTP_HTTPS"}
]
} ,
"poolTargets": [ "10729BD1A3B12FA25432EE4F84CB71B" ]
}

Request method

PUT

53.11.1.4 Adding a Load Balancer Configuration

The table below lists the POST request configuration for adding a Load Balancer Configuration.

Table 53-92 PUT Request Configuration for Editing the Load Balancer Configuration

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/lbrconfigs

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"name": "lbr1",
"description": "desc by rest",
"type": "OHS",
"host": "abc.us.example.com",
"agentTargetName": "abc.us.example.com:11852",
"credential": "USER_CREDS",
"instanceHome": "instHome",
"properties":{ "items":
[
{"name":"OHS_ROUTING_HTTP_PORT", "value":"80"},
{"name":"OHS_ROUTING_PROTOCOL", "value": "HTTP"},
{"name":"COMPONENT_NAME", "value": "compName"}
]
},
"poolTargets": [ "10729BD1A33B12FA254232EE4F84CB71B" ]
}

Request method

POST

53.12 Quotas for V1

The following table describes the quota configuration.

Table 53-93 Quota Configuration

Method

Request Payload

URI

Description

GET

NA

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Returns quota settings for all ssa user roles for MWaaS.

POST

Quota Item (Json Payload)

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Creates quota for the SSA user role.

PUT

Quota Item (Json Payload)

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Edits quota for the SSA user role.

DELETE

Quota Item (Json Payload)

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Deletes quota for the SSA user role.

53.12.1 Quotas REST API Examples

This section explains the Quotas REST API examples.

53.12.1.1 Viewing Details of the Quota Settings for All SSA User Roles

The table below lists the GET request configuration.

Table 53-94 GET Request Configuration for Viewing Details of the Quota Settings for All SSA User Roles

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{"name":"Middleware Cloud Quotas","description":"Middleware Cloud Quotas per SSA
User Role","quotas":[{"roleName":"SSA_DEMO_ROLE", "memory":"10","javaServersCount":"10"}],"selfLink":"https://example.com
:5416/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas"}

53.12.1.2 Creating Quota Settings for a SSA User Role

The table below lists the POST request configuration.

Table 53-95 POST Request Configuration for Creating Quota Settings for a SSA User Role

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"roleName": "SSA_ROLE"
"memory": "5"
"javaServersCount": "10"
}

Request method

POST

53.12.1.3 Editing Quota Settings for a SSA User Role

The table below lists the PUT request configuration.

Table 53-96 PUT Request Configuration for Editing Quota Settings for a SSA User Role

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"roleName": "SSA_ROLE"
"memory": "10"
"javaServersCount": "5"
}

Request method

PUT

53.12.1.4 Deleting Quota Settings for a SSA User Role

The table below lists the DELETE request configuration.

Table 53-97 DELETE Request Configuration for Deleting Quota Settings for a SSA User Role

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/quotas

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"roleName": "SSA_ROLE"
}

Request method

DELETE

53.13 Service Templates for V1

For Create requests, the CDP based template and profiles are supported.

Note:
Middleware Virtual Template management is not supported in this release.

53.13.1 Creating a Service Template

The table below lists the POST request configuration.

Table 53-98 POST Request Configuration for Creating a Service Template

Feature

Description

URI

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

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"name": "restTemplate",
"serviceFamily": "MWAAS",
"serviceType": "PhysicalWLS",
"description": " CDP based template created through REST",
"poolIds":[ "10729BD1A3B12FA254232EE4F84CB71B" ],
"roles":[{ "name":"SSA_USER_ROLE1" } ],
"serviceExecutableMeta": {
"type": "CDP",
"name": "CDP1",
"configurations":[
{"id": "wlsUserName","value": "weblogic"},
{"id": "wlsUserPassword","value": "welcome1"},
{"id": "wlsUserPassword2","value": "welcome1"},
{"id": "topology","value": "1"},
{"id": "exposeAdminURLs","value": "0"},
{"id": "enableLoadBalancer","value": "0"},
{"id": "hostListForScripts","value": ""},
{"id": "namedCredforHostList","value": ""},
{"id": "isScriptExecuteOnAdminServer","value": ""},
{"id": "portRangeStart","value": "1024"},
{"id": "portRangeEnd","value": "65000"},
{"id": "memoryUsagePerInstance","value": "0.25"},
{"id": "cpuUsagePerInstance","value": "10"},
{"id": "startupArguments","value": ""},
{"id": "requireHighAvailability","value": "1"},
{"id": "rootPwd","value": ""},
{"id": "agentInstallUserPwd","value": ""},
{"id": "namedHostCredForVirtualFlow","value": ""}  ]
}
}

Request method

POST

53.14 User Operation REST API Examples for V1

The following operations are described in this section:

- Starting/Stopping Service Instances

- Rescheduling Service Instance

- Viewing Details of the Java EE Application Components in Software Library

- Deploying an Application as a Library

- User Operations for Scheduling Support

53.14.1 Starting/Stopping Service Instances

The following table describes the REST API to stop a service instance.

Table 53-99 PUT Request Configuration for Starting/Stopping Service Instances

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances/{instance_id}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"STOP"
}

Request method

PUT

A sample of the response received is shown below.

{
message: "Stop service instance request has been submitted. Request ID = 122"
statusUri:
"https://example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/cf
w/v1/servicerequests"
}

Similar to the above example, to start a service instance all the features of the REST API shown above remain the same, except for "operation":"START" should be mentioned in the Body instead of "operation":"STOP".

53.14.2 Rescheduling Service Instance

The following table describes the reschedule service instance configuration. The following REST API reschedules the service instance based on the schedule date.

Table 53-100 PUT Request Configuration for Rescheduling a Service Instance

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances/{instance_id}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"RESCHEDULE"
, "reschedule":"2013-12-20T02:10:45ZAsia/Calcutta"
}

Request method

PUT

A sample of the response received is shown below.

{
message: "Reschedule request has been submitted. Request ID = 124 "
statusUri:
"https://example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/cf
w/v1/servicerequests"
}

53.14.3 Viewing Details of the Java EE Application Components in Software Library

The following table describes the Java EE application components configuration. The following REST API returns all the Java EE app components uploaded in the software library.

Table 53-101 GET Request Configuration for Rescheduling a Service Instance

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/javaeeappcomponets

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Java EE Application Components uploaded in My Library "
selfLink:
"https://example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/mw
aas/v1/javaeeappcomponets"
appUrns: [1]
0:  {
type: "Java EE Application"
description: null
status: "Ready"
appName: "Calendar"
creator: "SSA_USER1"
revision: "0.1"
maturity: "Untested"
createdTime: "2013-12-12 04:19:17.0"
appUrn: "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB
_JavaEEApplication:ED561AB14BA02907E043AB53F20AC335:0.1"
}

53.14.4 Deploying an Application as a Library

This section shows the REST APIs to deploy, redeploy, and undeploy the application as a library.

Table 53-102 Deploy Application as a Library Supported Request Methods

Method

Request Payload

URI

Description

PUT

Instance Item

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances/{Instance_Guid}

Deploys application as a library.

PUT

Instance Item

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances/{Instance_Guid}

Redeploys the deployed application.

PUT

Instance Item

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances/{Instance_Guid}

Undeploys the library.

53.14.4.1 Deploying an Application as a Library

The table below lists the PUT request configuration for deploying an application as a library.

Table 53-103 PUT Request Configuration for Deploying an Application as a Library

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances/{instance_id}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"DEPLOYLIB"
, "appName":"testLib” ,

"appUrn":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB
_JavaEEApplication:ED561AB14BA02907E043AB53F20AC335:0.1"
}

Request method

PUT

A sample of the response received is shown below.

{
message: "Deploy Library request has been submitted. Request ID = 125 "
statusUri:
"https://example.com:5416/em/websvcs/restful/extws/cloudservices/ssa/
cfw/v1/servicerequests"
}

53.14.4.2 Redeploying an Application as a Library

The table below lists the PUT request configuration for redeploying an application as a library.

Table 53-104 PUT Request Configuration for Redeploying an Application as a Library

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances/{instance_id}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"REDEPLOYLIB"
, "appName":"testLib” ,
"appUrn":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB
_JavaEEApplication:ED561AB14BA02907E043AB53F20AC335:0.1"
}

Request method

PUT

53.14.4.3 Undeploying an Application as a Library

The table below lists the PUT request configuration for undeploying an application as a library.

Table 53-105 PUT Request Configuration for Undeploying an Application as a Library

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances/{instance_id}

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"UNDEPLOYLIB"
, "appName":"testLib”
}

Request method

PUT

53.14.5 User Operations for Scheduling Support

This sections shows the REST APIs for the POST operations for Service Instances.

Table 53-106 Java EE Applications Components POST Request Descriptions

Method

Request Payload

URI

Description

POST

Instance Item

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances

Submits request for service instance creation

POST

Instance Item

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances

Scale up request.

POST

Instance Item

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances

Scale down request.

POST

Instance Item

/em/websvcs/restful/extws/cloudservices/admin/mwaas/v1/serviceinstances

Deletes the service instance.

53.14.5.1 Creating a Service Instance

The table below lists the POST request configuration for creating a service instance.

Table 53-107 POST Request Configuration for Creating a Service Instance

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"REQUEST_INSTANCE"
, "stGuid":"ED638689D4483CA4E043AB53F20A98C1"
,"serviceName":"instanceName"
,"zoneName":"paas_zone"
,"schedule":"2013-11-23T02:10:45ZAsia/Calcutta"
}

Request method

POST

53.14.5.2 Scaling Up a Service Instance

The table below lists the POST request configuration for scaling up a service instance.

Table 53-108 POST Request Configuration for Scaling Up a Service Instance

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"SCALEUP"
,"serviceName":" instanceName"
, "numberOfServer":1
,"schedule":"2013-11-23T02:10:45ZAsia/Calcutta"
}

Request method

POST

Note:
For immediate execution the schedule object should be empty in the Body.

53.14.5.3 Scaling Down a Service Instance

The table below lists the POST request configuration for scaling down a service instance.

Table 53-109 POST Request Configuration for Scaling Down a Service Instance

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"SCALEDOWN"
,"serviceName":"testInstance20_142768fdfff"
, "numberOfServer":1
,"schedule":""
}

Request method

POST

Note:
For a scheduled execution the schedule object should specify the date, time and zone in the Body.

53.14.5.4 Deleting a Service Instance

The table below lists the POST request configuration for deleting a service instance.

Table 53-110 POST Request Configuration for Deleting a Service Instance

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/mwaas/v1/serviceinstances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

{
"operation":"DELETE_INSTANCE"
,"serviceName":" instanceName"
, "zoneName":"paas_zone"
, "schedule":""
}

Request method

POST

53.15 EMCLI Support for Administration Operations

This section contains a few samples and usage of the EM CLI commands. For more details, refer to the Enterprise Manager Command Line Reference Guide.

Table 53-111 General WLaaS EM CLI Verbs

Verb

Description

Format

emcli invoke_ws

Invokes the Enterprise Manager Web service.

Options:

- -wsname - Indicates the URI of the resource.

- -method - Type of the REST method.

- -payload - Indicates the json/xml input payload.

- -accept - Payload type. These are standard jersey values.

- -type - Standard jersey response types.

- -param - Use this option to pass in form/query parameter value. For example, -param="name:value". More than one parameter can be specified. For example, -param="name:value" -param="zip:12345".
The parameter can be provided through a file. To read from file, specify as shown in the example: -param="name:tag" -input_file="tag:file.txt". In this example, the name parameter will be read from file file.txt.

- -input_file - Use this option to pass in payload or param value from file.

Examples:

- emcli invoke_ws -wsname=/em/websvcs/restful/emws/core/v0/list/dataservice -method=get -param="name:Administrators"
Invokes list resource and sources all administrators

- emcli invoke_ws -wsname=/em/websvcs/restful/emws/core/v0/list/dataservice -method=get -param="name:tag" -input_file="tag:file.txt"
Invokes list resource and sources all administrators. The name parameter is read from file.txt.

emcli invoke_ws

-wsname=<WebService Name>

-method=<method name>

[-payload=<Payload>]

[-accept=<accept type>

[-type=response type]

[-param=Query Parameters]

[-input_file=<Input File for payload data>]

emcli get_targets

Obtain status and alert information for targets.

Options:

- -targets=name:type - Name or type can be either a full value or a pattern match using "%". Also, name is optional, so the type alone may be specified.

- -limit_rows="Maximum number of targets to be retrieved" - Defaults to 2000 rows, if not specified.

- -config_search="Configuration Search UI Name" - Search UI name should be the display name of the configuration search.

- -alerts - Displays the count of critical and warning alerts for each target.

- -noheader - Displays tabular output without column headers.

- -unmanaged - Displays unmanaged targets (no status or alert information).

- -properties - Displays unmanaged targets with properties.

- -separator_properties="separator_properties" - Displays unmanaged target properties with separator_properties.

- -subseparator_properties="subseparator_properties" - Displays unmanaged target properties with subseparator_properties.

- -script - This option is equivalent to -format="name:script".

- -format - Format specification (default is -format="name:pretty").

- -format="name:pretty" prints the output table in a readable format but is not intended to be parsed by scripts.

- -format="name:script" sets the default column separator to a tab and the default row separator to a new line. The column and row separator strings may be specified to change these defaults.

- -format="name:csv" sets the column separator to a comma and the row separator to a newline.

Examples:

- emcli get_targets
Displays a maximum of 2000 targets. Critical and Warning columns are not shown.

- emcli get_targets -limit_rows=20
Displays a maximum of 20 targets. Critical and Warning columns are not shown.

- emcli get_targets -alerts
Displays a maximum of 2000 targets. Critical and Warning columns are shown.

- emcli get_targets -targets="oracle_database"
Displays all "oracle_database" targets.

- emcli get_targets -targets="%oracle%"
Displays all targets whose type contains the string "oracle".

- emcli get_targets -targets="database%:%oracle%"
Displays all targets whose name starts with "database" and type contains "oracle".

- emcli get_targets -targets="database3:oracle_database" -alerts
Displays status and alert information on the Oracle database named "database3".

- emcli get_targets -config_search="Search File Systems on Hosts" -targets="oracle%:host" -alerts
Displays status and alert information of the resulting targets from configuration search named "Search File Systems on Hosts" and targets whose name starts with "oracle" and of type "host".

- emcli get_targets -targets="host" -unmanaged
Displays name and type information for unmanaged host targets.

- emcli get_targets -unmanaged -properties -separator_properties=, -subseparator_properties==
Displays name, type, and properties for unmanaged host targets with the specified separators. By default the separator_properties is ";" and the subseparator_properties is ":".

emcli get_targets

[-targets="[name1:]type1;[name2:]type2;..."]

[-alerts]

[-noheader]

[-script | -format=

[name:<pretty|script|csv>];

[column_separator:"column_sep_string"];

[row_separator:"row_sep_string"];

]

[-limit_rows="Maximum number of targets to be retrieved"]

[-config_search="Configuration Search UI Name"]

[-unmanaged]

[-properties]

[-separator_properties="properties_sep_string"]

[-subseparator_properties="properties_subsep_string"]

54 SOAaaS and OSBaaS APIs

This chapter describes the resource model for SOA as a Service (SOAaS) APIs and OSB as a Service (OSBaaS) APIs and their responses.

In particular, this chapter contain the following topics:

- PaaS Infrastructure Zone and Middleware Pool

- Quotas

- Service Templates

- Load Balance Configuration

- SSA User Operation API Examples

54.1 PaaS Infrastructure Zone and Middleware Pool

This section lists the APIs for PaaS Infrastructure zone and Middleware pool.

- Viewing Details of All the Resource Providers

- Creating a PaaS Infrastructure Zone for SOA/OSB Domains

- Creating Middleware Pool for SOA/OSB

- Updating a PaaS Infrastructure Zone

- Updating a Middleware Pool

- Deleting a Resource Provider (PaaS Infrastructure Zone or Middleware Pool)

54.1.1 Viewing Details of All the Resource Providers

The following table shows an example of a GET operation on the Resource providers URI to return its representation.

Table 54-1 GET Request Configuration for Viewing Details of the Resource Providers

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

GET

54.1.2 Creating a PaaS Infrastructure Zone for SOA/OSB Domains

The following table shows an example of a POST operation on the Resource providers URI to create a PaaS infrastructure zone.

Table 54-2 POST Request Configuration for Creating a PaaS Infrastructure Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"useExistingTarget" : false,
"name": "WlaaS_Zone1","type": "self_service_zone",
"credentials": [ {"name":"normal_credential_guid","description":"This is description frpm the REST      method","value": "AIME_CLOUD_CRED"}],
"memberTargetType": "host",
"members":["slc05tgu.example.com","slc02pog.example.com"],
"placementConstraints":[{"name":"MAX_CPU_UTILIZATION","value":["80"]},{"name":"MAX_MEMORY_ALLOCATION","value":["80"]}],
"characteristics":[{"name":"ORACLE.SYSMAN.CFW.SELF_SERVICE_ZONE","value":["70F61D030338B79AFEC42E008AF6F6B7"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_CONTACT","value":["123456789"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER","value":["IDC.LEX"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_DEPARTMENT","value":["FMW"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_LIFECYCLE_STATUS","value":["Test"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_LINE_OF_BUS","value":["ST"]},
{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_LOCATION","value":["IDC"]}],
"roles":["MWAS_SSA_USER_ROLE1"]
}

Request method

POST

54.1.3 Creating Middleware Pool for SOA/OSB

The following table shows an example of a POST operation on the Resource providers URI to create a Middleware pool.

Table 54-3 POST Request Configuration for Creating a Middleware Pool

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{"useExistingTarget":"false",
"name":"WlaaS_Pool1","type":"mwaas_zone","description":"This is a Windows Pool for WLAAS testing",
"memberTargetType":"host",
"members":["slc05tgu.example.com","slc02pog.example.com"],
"parentResourceProviderId":"1",
"placementConstraints":[{"name":"MAX_INSTANCES","value":"10"}],
"memberConstraints":[{"name":"ORACLE.SYSMAN.EMAS.MWC.WLAAS.PLATFORM","value":"226"}],
"characteristics":[{"name":"ORACLE.SYSMAN.CFW.ORCL_GTP_COST_CENTER","value":"IDC"}]
}

Request method

POST

54.1.4 Updating a PaaS Infrastructure Zone

The following table shows an example of a PUT operation to update the PaaS infrastructure zone.

Table 54-4 PUT Request Configuration for Updating a PaaS Infrastructure Zone

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/1

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{"description":"This is description from the REST PUT method",
"placementConstraints":[{"name":"MAX_CPU_UTILIZATION","value":["90"]},
{"name":"MAX_MEMORY_ALLOCATION","value":["90"]}
]
}

Request method

PUT

54.1.5 Updating a Middleware Pool

The following table shows an example of a PUT operation to update a Middleware pool.

Table 54-5 PUT Request Configuration for Updating a Middleware Pool

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/2

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"placementConstraints":[{"name":"NUMBER_OF_INSTANCES","value":["15"]}]
}

Request method

PUT

54.1.6 Deleting a Resource Provider (PaaS Infrastructure Zone or Middleware Pool)

The following table shows an example of a DELETE operation to delete a PaaS Infrastructure zone or Middleware pool.

Table 54-6 DELETE Request Configuration for Deleting a PaaS Infrastructure Zone

Feature

Description;

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/resourceproviders/1

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

DELETE

54.2 Quotas

This section lists the SOA/OSB APIs for Quotas.

- Viewing Details of Quota Settings

- Creating a Quota for a SSA User Role

- Updating a Quota for a SSA User Role

- Deleting a Quota for a SSA User Role

54.2.1 Viewing Details of Quota Settings

The following table shows an example of a GET operation on the quotas URI to return its representation. This operation returns quota settings for all the SSA user roles for MWaaS.

Table 54-7 GET Request Configuration for Viewing Details of Quota Settings

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

GET

A sample of the response received is shown below.

{
name: "Middleware Cloud Quotas"
description: "Middleware Cloud Quotas per SSA User Role"
quotas: [1]
0:  {
roleName: "SSA_USER_ROLE"
memory: "4"
javaServersCount: "10"
}-
-
selfLink: "https://slc06ekg.us.example.com:5416/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas"
}

54.2.2 Creating a Quota for a SSA User Role

The following table shows an example of a POST operation on the quotas URI to create a quota for the SSA user role.

Table 54-8 POST Request Configuration for Creating a Quota Setting for a SSA User Role

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"roleName": "SSA_ROLE"
"memory": "5"
"javaServersCount": "10"
}

Request method

POST

54.2.3 Updating a Quota for a SSA User Role

The following table shows an example of a PUT operation to update a quota for the SSA user role.

Table 54-9 PUT Request Configuration for Updating a Quota Setting for a SSA User Role

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"roleName": "SSA_ROLE"
"memory": "10"
"javaServersCount": "5"
}

Request method

PUT

54.2.4 Deleting a Quota for a SSA User Role

The following table shows an example of a DELETE operation to delete a quota for a SSA user role.

Table 54-10 DELETE Request Configuration for Deleting a Quota for a SSA User Role

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/quotas

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"roleName": "SSA_ROLE"
}

Request method

DELETE

54.3 Service Templates

This section lists the APIs for Service Templates,

- Viewing Details of all Service Templates

- Viewing Details of a Specific Service Template

- Deleting a Service Template

- Creating a Service Template

54.3.1 Viewing Details of all Service Templates

The following table shows an example of a GET operation on the service templates URI to return its representation.

Table 54-11 GET Request Configuration for Viewing Details of all Service Templates

Feature

Description

URI

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

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

GET

54.3.2 Viewing Details of a Specific Service Template

The following table shows an example of a GET operation on a specific service template URI to return its representation.

Table 54-12 GET Request Configuration for Viewing Details of a Specific Service Template

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/21/

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

GET

54.3.3 Deleting a Service Template

The following table shows an example of a DELETE operation to delete a service template.

Table 54-13 DELETE Request Configuration for deleting the Service Templates

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/21

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

DELETE

54.3.4 Creating a Service Template

The table below lists the POST request configuration for creating SOA/OSB service templates.

54.3.4.1 Viewing Service Template Types

The following table shows an example of a GET operation on the service template type URI to return its representation.

Table 54-14 GET Request Configuration for Viewing Details of Service Template Types

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/templatetypes/

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

GET

54.3.4.2 Getting Service Template Metadata Details

The following is an example of a POST operation on the Service Template URI to update the Service template metadata information.

Table 54-15 POST Request Configuration for Getting Service Template Metadata Details

Feature

Description

URI

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

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"serviceType":"OSB_SERVICE",
"serviceTemplateTypeId":"21"
}

Request method

POST

54.3.4.3 Getting the Resource Provider Characteristics

The following is an example of a POST operation on the Service Template URI to create the resource providers.

Table 54-16 POST Request Configuration for Getting the Resource Provider Characteristics

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/resourceProviders

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"serviceType": "OSB_SERVICE",
"serviceTemplateTypeId": "21",
"rscProvAssocOption": [
"byRscLookupChars"
],
"selectedExecutableName": {
"name": "MW_OSBAAS_CREATE_INSTANCE",
"type": "STRING",
"value": "SOAaaSOuterDP",
"defaultValue": "SOAaaSOuterDP",
"required": true,
"secret": false
},
"payloads": [
{
"name": "Profile for OSB",
"value": "<user_input>",
"required": true
}
],
"characteristics": []
}

Request method

POST

54.3.4.4 Creating the Service Template Configuration

The following is an example of a POST operation on the Service Template URI to create the service template configuration.

Table 54-17 POST Request Configuration for Creating the Resource Providers

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/cfw/v2/servicetemplates/configurations

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

Payload: Use  b,c responses.
{
"serviceType":"OSB_SERVICE",
"serviceTemplateTypeId":"21",
"rscProvAssocOption":["byRscLookupChars"],
"payloads":[
{
"name":"Profile for OSB",
"value":"oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_FMWBundle:0792B0CF52D06888E053AC75B10A17C8:0.1"
}
],
"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.EMAS.MWAAS_ZONE",
"values":["C5E76791838043BC71F5D6B70886F13B"]
}
],
"purposeId": 1
}
]
}
}

Request method

POST

54.3.4.5 Creating Service Templates Using these Responses

The following is an example of a POST operation on the Service Template URI to create the service templates using the responses received.

Table 54-18 POST Request Configuration for Creating the Resource Providers

Feature

Description

URI

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

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

{
"name": "OSB_ST1",
"displayName": "OSB_ST1",
"serviceType": "OSB_SERVICE",
"serviceTemplateTypeId": "21",
"rscProvAssocOption":["byRscProvInst"],
"roles": [
"SSA_USER1"
],
"payloads": [
{
"name": "Profile for OSB",
"value": "oracle:defaultService:em:provisioning:1:cmp:COMP_Component:SUB_FMWBundle:0792B0CF52D06888E053AC75B10A17C8:0.1",
"required": null
}
],
"selectedExecutableName":
[
{
"name": "MW_OSBAAS_CREATE_INSTANCE",
"value": "SOAaaSOuterDP"
}

],

"resourceProvider": {
"lookupCharacteristics": [
{
"characteristics": [
{
"name": "ORACLE.SYSMAN.EMAS.MWAAS_ZONE",
"values":["C5E76791838043BC71F5D6B70886F13B"]
}
],
"purposeId": 1
}
]
},
"configurations": [
{
"name": "postScriptForInstanceCreation",
"type": "SWLIB",
"description": "Script that is invoked after service instance creation",
"required": false,
"secret": false,
"value":"<URN of Script>"

},
{
"name": "portRangeStart",
"type": "STRING",
"description": "Port Range Start",
"value": "1024",
"required": true,
"secret": false
},

{
"name": "preScriptForInstanceCreation",
"type": "SWLIB",
"description": "Script that is invoked before service instance creation",
"required": false,
"secret": false,
"value":"<URN of Script>"
},
{
"name": "destinationFmwBase",
"type": "STRING",
"description": "Middleware Base Location",
"value": "/scratch/osb_mid1",
"required": true,
"secret": false
},
{
"name": "workDir",
"type": "STRING",
"description": "Work Directory",
"value": "$MIDDLEWARE_HOME/work",
"required": true,
"secret": false
},
{
"name": "wlsUserName",
"type": "STRING",
"description": "Weblogic Admin UserName",
"value": "weblogic",
"required": true,
"secret": false
},
{
"name": "startupArguments",
"type": "STRING",
"description": "Server Startup Arguments",
"value" : "",
"required": true,
"secret": false
},
{
"name": "namedCredforHostList",
"type": "STRING",
"description": "Enter the EM Named Credentials to be used for the above hosts in the 'Host for Executing Scripts' field",
"required": false,
"secret": false,
"value":"CredName:CredOwner"
},
{
"name": "destinationAdminServerPassword",
"type": "STRING",
"description": "Password for the WebLogic Server",
"value" : "welcome1"
"required": true,
"secret": true
},

{
"name": "computedCpuUsagePerServer",
"type": "STRING",
"description": "Avg CPU Usage",
"value": "1.0",
"required": true,
"secret": false
},
{
"name": "portRangeEnd",
"type": "STRING",
"description": "Port Range End",
"value": "65535",
"required": true,
"secret": false
},
{
"name": "jdkHome",
"type": "STRING",
"description": "Jdk Home",
"value": "/usr/local/packages/jdk6",
"required": true,
"secret": false
},
{
"name": "computedMemoryUsagePerServer",
"type": "STRING",
"description": "Max Heap",
"value": "0.45",
"required": true,
"secret": false
},
{
"name": "enableLoadBalancer",
"type": "STRING",
"description": "Is LBR",
"value": "0",
"required": true,
"secret": false
},
{
"name": "preScriptForInstanceDeletion",
"type": "SWLIB",
"description": "Script that is invoked before service instance deletion",
"required": false,
"secret": false
},
{
"name": "isScriptExecuteOnManagedServers",
"type": "STRING",
"description": "Is Script Executable On Managed Server Hosts",
"value": "0",
"required": true,
"secret": false
},

{
"name": "hostListForScripts",
"type": "STRING",
"description": "Use ',' to separate multiple target hosts",
"required": false,
"secret": false,
"value":"host1,host2"
},
{
"name": "postScriptForInstanceDeletion",
"type": "SWLIB",
"description": "Script that is invoked after service instance deletion",
"required": false,
"secret": false
},
{
"name": "isScriptExecuteOnAdminServer",
"type": "STRING",
"description": "Is Script Executable On Admin Server",
"value": "0",
"required": true,
"secret": false
},
{
"name": "destinationDomainHome",
"type": "STRING",
"description": "Domain Home",
"value": "$MIDDLEWARE_HOME/domains",
"required": true,
"secret": false
}
]
}

Request method

POST

54.4 Load Balance Configuration

This section explains the API examples related to the Load Balancer Configuration.

- Viewing Details of all the Load Balancer Configuration Resource

- Viewing Details of the specified Load Balancer Configuration

- Creating the Load Balancer Configuration

- Editing the Load Balancer Configuration

- Deleting a Load Balancer Configuration

54.4.1 Viewing Details of all the Load Balancer Configuration Resource

The table below lists the GET request configuration.

Table 54-19 GET Request Configuration for Viewing Details of the Load Balancer Configuration Resource

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs

Request headers

Body

None

Request method

GET

54.4.2 Viewing Details of the specified Load Balancer Configuration

The table below lists the GET request configuration for viewing details of the specified Load Balancer Configuration.

Table 54-20 GET Request Configuration for Viewing Details of the specified Load Balancer Configuration

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs/{lbrId}

Request headers

None

Body

None

Request method

GET

54.4.3 Creating the Load Balancer Configuration

The following is an example of a POST operation on the Load Balancer URI to create the load balancer configuration.

Table 54-21 POST Request Configuration for Creating the Load Balancer Providers

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs

Request headers

Authorization :Basic c3lzbWFuOnN5c21hbg==

Body

{
"name": "lbr1",
"description": "desc by rest",
"type": "OHS",
"host": "slc06ekg.example.com",
"agentTargetName": "slc06ekg.example.com:1838",
"credential": "NC_HOST_2014-11-06-070337",
"instanceHome": "/scratch/PS5_OHS/instance_home",
"properties":{ "items":
[
{"name":"HTTP_PORT_RANGE", "value":"8000-9000"},
{"name":"OHS_ROUTING_PROTOCOL", "value": "HTTP"},
{"name":"COMPONENT_NAME", "value": "ohs1"}
]
},
"poolTargets": [ "0FC6D3F6A9FB2456422C1094DA5D14A9" ]
}

Request method

POST

54.4.4 Editing the Load Balancer Configuration

The table below lists the PUT request configuration for editing the Load Balancer Configuration.

Table 54-22 PUT Request Configuration for Editing the Load Balancer Configuration

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs

Request headers

Authorization :Basic c3lzbWFuOnN5c21hbg==

Body

{
"name": "lbr1",
"description": "desc by rest",
"type": "OHS",
"id":1004,
"host": "slc06ekg.example.com",
"agentTargetName": "slc06ekg.example.com:1838",
"credential": "NC_HOST_2014-11-06-070337",
"instanceHome": "/scratch/PS5_OHS/instance_home",
"properties":{ "items":
[
{"name":"HTTP_PORT_RANGE", "value":"8000-9000"},
{"name":"OHS_ROUTING_PROTOCOL", "value": "HTTP"},
{"name":"COMPONENT_NAME", "value": "ohs1"}
]
},
"poolTargets": [ "0FC6D3F6A9FB2456422C1094DA5D14A9" ]
}

Request method

PUT

54.4.5 Deleting a Load Balancer Configuration

The table below lists the POST request configuration for deleting a Load Balancer Configuration.

Table 54-23 DELETE Request Configuration for Deleting a Load Balancer Configuration

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/admin/wlaas/v2/lbrconfigs/{lbrId}

Request headers

None

Body

None

Request method

DELETE

54.5 SSA User Operation API Examples

The following API examples are described in this section:

- Viewing Details of all Service Templates

- Viewing Details of all Service Instances

- Viewing all Service Instances With UP Status

- Viewing the Service Offering Metadata

- Creating a Service Instance Request

- Viewing all the Action IDs for the Service Instances

- Stopping a Service Instance

- Starting a Service Instance

- Deleting a Service Instance

- Scaling Up a Service Instance

54.5.1 Viewing Details of all Service Templates

The following table shows an example of a GET operation to view all the service templates.

Table 54-24 GET Request Configuration for Viewing Details of all Service Templates

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/

Request headers

Authorization: Basic c3lzbWFuOnN5c21hbg==

Body

None

Request method

GET

54.5.2 Viewing Details of all Service Instances

The following table shows an example of a GET operation to view all the service instances.

Table 54-25 GET Request Configuration for Viewing Details of all Service Instances

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances

Request headers

None

Body

None

Request method

GET

54.5.3 Viewing all Service Instances With UP Status

The following table shows an example of a GET operation to view all the service instances with UP status.

Table 54-26 GET Request Configuration for Viewing all Service Instances with UP Status

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/?expanded=true&status=STATUS_UP

Request headers

None

Body

None

Request method

GET

54.5.4 Viewing the Service Offering Metadata

The following table shows an example of a GET operation to view the service offering metadata

Table 54-27 GET Request Configuration for Viewing all Service Instances with UP Status

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services/{offering_id}/metadata

Request headers

None

Body

None

Request method

GET

54.5.5 Creating a Service Instance Request

The following table shows an example of a POST operation to request a service instance.

Table 54-28 POST Request Configuration for Creating a Service Instance Request

Feature

Description

URI

em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/services

Request headers

Authorization: Basic c3NhX3VzZXIxOndlbGNvbWUx

Body

{
"offeringId":"080C47B7F8EA20ECE053AC75B10A50E3",
"name":"rest_inst01","instanceName":"rest_inst01",
"characteristics": [
{
"name": "ORACLE.SYSMAN.EMAS.MWAAS_ZONE",
"value": "98EB4ECCB01F91E40AA45708112E3920"

]
}
],
"configurations": [
{
"name": "wlsNewPassword",
"type": "STRING",
"description": "New Admin password",
"required": true,
"secret": true,
"value" : "password"
},
{
"name": "destinationDBTargetName",
"type": "STRING",
"description": "SOA Database Service Instance Name",
"required": true,
"secret": false,
"value":"SOADB"
},
{
"name": "soaTokens",
"type": "VECTOR",
"description": "SOA Tokens",
"values": [
"port=80",
"host=www.aol.com"
],
"required": false,
"secret": false
},
{
"name": "destinationDBTargetType",
"type": "STRING",
"description": "SOA Database Service Instance Target Type",
"required": true,
"secret": false,
"value":" oracle_database"
},
{
"name": "destinationSchemaPassword",
"type": "STRING",
"description": "SOA Database Schema Password",
"required": true,
"secret": true,
"value":"DBPassword"
},

{
"name": "startupArguments",
"type": "STRING",
"description": "Server Startup Arguments",
"value": "",
"required": true,
"secret": false
},
{
"name": "wlsNewUserName",
"type": "STRING",
"description": "New Admin User Name",
"required": true,
"secret": false,
"value":"weblogic_user"
}
]
}

Request method

POST

54.5.6 Viewing all the Action IDs for the Service Instances

The following table shows an example of a GET operation to perform an action on the service instance based on the action id.

Table 54-29 GET Request Configuration for Performing Action on the Service Instance Based on the Action ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E/actions

Request headers

None

Body

None

Request method

GET

54.5.7 Stopping a Service Instance

The following table shows an example of a PUT operation to stop a service instance.

Table 54-30 PUT Request Configuration for Stopping a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: Basic c3NhX3VzZXIxOndlbGNvbWUx

Body

{"actionId":32}

Request method

PUT

54.5.8 Starting a Service Instance

The following table shows an example of a PUT operation to start a service instance.

Table 54-31 PUT Request Configuration for Starting a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

Authorization: Basic c3NhX3VzZXIxOndlbGNvbWUx

Body

{"actionId":31}

Request method

PUT

54.5.9 Deleting a Service Instance

The following table shows an example of a PUT operation to delete a service instance.

Table 54-32 PUT Request Configuration for Deleting a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

None

Body

{"actionId":30}

Request method

PUT

54.5.10 Scaling Up a Service Instance

The following table shows an example of a PUT operation to scale up a service instance.

Table 54-33 PUT Request Configuration for Scaling Up a Service Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/serviceinstances/21324EF5A81B4D8ECA7F835A209B857E

Request headers

None

Body

{"actionId":29,
"configurations": [{"name": "numberOfServers","value": "2"}]
}

Request method

PUT

A sample of the response received is shown below.

{
"requests":[{"id":"621",
"actionName":"SCALE_UP",
"canonicalLink":{"href":"https://xyxy.example.com:11040/em/websvcs/restful/extws/cloudservices/ssa/cfw/v2/servicerequests/621"}
}]
}

55 Rapid Start Cloud Setup

This chapter describes the rapid start cloud setup kit. It contains the following sections:

- Introduction

- Installing the Kit

- Contents of the Kit

- Prerequisites

- Artifacts Created by the Rapid Start Kit

- Rapid Kit Modes

- Cloud Setup Inputs: Simple Mode

- Cloud Setup Inputs: Advanced Mode

- Command Line Interface

- Rapid Start Kit Sample Run

55.1 Introduction

Setting up the DBaaS cloud involves a series of steps. The user with the CLOUD_ADMINISTRATOR role has to go through many wizards and clicks to complete the setup. This requires a considerable amount of effort and time before the DBaaS is ready to use.

The Rapid Start Kit provides a single command solution to setup Cloud for Database as a Service (DBaaS) and Pluggable Database as a Service (PDBaaS). One command creates all the Cloud artifacts like Roles, Administrators, Credentials, Database Profiles, PaaS Infrastructure Zone, Database Pools and Service Templates. Once the Rapid Start Kit has been successfully executed, requests can be made to provision databases, and PDBs.

Rapid start kit can create complex topologies involving multiple zones, pools and service templates. It also supports standby databases.

55.2 Installing the Kit

The Rapid Start Kit is shipped along with Oracle Cloud Application 12.1.0.8.0. The kit is available on the Oracle Management Server host with the Oracle Cloud Application 12.1.0.8.0 deployed in plug-in home directory.The Rapid Start Kit can be used from the host on which the Oracle Management Server (OMS) is installed or from any other host that can access Oracle Management Server host using Enterprise Manager Command Line Interface (emcli).

55.2.1 OMS Host

The Rapid Start Kit can be used directly from the host on which the OMS has been installed. No separate installation of the kit is required. The kit is available in the following directory:

EM_BASE/oracle/MW/plugins/oracle.sysman.ssa.oms.plugin_12.1.0.8.0/dbaas/setup

55.2.2 Other Hosts

The kit can also be used from any other host. To install the kit on any other machine, copy the setup directory to the desired location on the target machine.

55.3 Contents of the Kit

The Rapid Start Kit contains the following files:

- Cloud Setup Script:
dbaas/setup/exadata_cloud_setup.py

dbaas/setup/database_cloud_setup.py

These scripts contain the code for the one command cloud setup. The scripts use the input files or the cloud artifacts as defined in the configuration file.

- Cloud Boundary XML:
dbaas/setup/config/cloud_boundary.xml

dbaas/setup/config/cloud_custom_boundary.xml

Cloud Boundary defines the cloud topology. It has the zones and pools along with host names, oracle home locations or container database names. The cloud_boundary.xml file can be used as a template for simple cloud setup on Exadata machines with one zone and pool. The cloud_custom_boundary.xml can be used for advanced cloud setup on any set of machines with multiple zones and pools.

- Database as a Service Input XML:
dbaas/setup/config/dbaas_cloud_input.xml dbaas/setup/config/dbaas_cloud_custom_input.xml

The Cloud Setup for Database as a Service uses the dbaas_cloud_input.xml as the input file. The script reads this configuration file and sets up the cloud artifacts as defined in the file. Simple cloud setup on the Exadata machine is defined in dbaas_cloud_input.xml template file and advanced cloud setup should use dbaas_cloud_custom_input.xml.

- Pluggable Database as a Service Input XML:
dbaas/setup/config/pdbaas_cloud_input.xml

dbaas/setup/config/pdbaas_cloud_custom_input.xml

The Cloud Setup for Pluggable Database as a Service uses the pdbaas_cloud_input.xml as the input file. The script reads this configuration file and sets up the cloud artifacts as defined in the file. Simple cloud setup on Exadata machine is defined in pdbaas_cloud_input.xml template file and advanced cloud setup should use pdbaas_cloud_custom_input.xml.

55.4 Prerequisites

Certain prerequisites must be fulfilled before running the Rapid Start Kit. This includes OMS setup with the correct plug-in versions as listed in the Supported Plug-ins section. Cloud setup can be done on Real application cluster machines with Database instance or Oracle Homes installed. The prerequisites are described in the following sections:

55.4.1 Oracle Management Server

- The Oracle Management Server must have the Oracle Cloud Application 12.1.0.8 deployed.

- The Software Library must have been configured.

55.4.2 EMCLI Setup

EMCLI with scripting option must be set up on the host from which the kit is going to be executed. To set up EMCLI on the host, follow these steps:

1. Download the emcliadvancedkit.jar from the OMS using URL https://<omshost>:<omsport>/em/public_lib_download/emcli/kit/emcliadvancedkit.jar

2. Set your JAVA_HOME environment variable and ensure that it is part of your PATH. You must be running Java 1.6.0_43 or greater. For example:

- setenv JAVA_HOME /usr/local/packages/j2sdk

- setenv PATH $JAVA_HOME/bin:$PATH

3. You can install the EMCLI with scripting option in any directory either on the same machine on which the OMS is running or on any machine on your network (download the emcliadvancedkit.jar to that machine)
java -jar emcliadvancedkit.jar client -install_dir=<emcli client dir>

4. Run emcli help sync from the EMCLI Home (the directory where you have installed emcli) for instructions on how to use the "sync" verb to configure the client for a particular OMS.

5. Navigate to the Setup menu then the Command Line Interface. See the Enterprise Manager Command Line Tools Download page for details on setting EMCLI.

55.4.3 Infrastructure Setup

To prepare the infrastructure for cloud setup, make sure that the Real Application Cluster machines are available and the required databases and oracle homes have been setup on them. Targets must have been discovered in Oracle Management Server. The following sections describe the setup requirement for PDbaaS and DBaaS.

55.4.3.1 Pluggable Database as a Service

You must ensure that the Real Application Cluster machine is available and has a 12.1.0.1 Container Database version running on it. All the hosts from Real Application Cluster have the Management Agents installed on it. The following targets must be discovered using the guided discovery process:

- Oracle Cluster

- Cluster ASM

- Oracle RAC Database

- Oracle Database Listeners

55.4.3.1.1 Database as a Service

You must ensure that the Real Application Cluster machine with Oracle home version 12.1.0.1 or 11.2.0.3 installed on it is available.All the hosts in the Real Application Cluster must have the Management Agents installed on it. The following targets must be discovered using guided discovery process:

- Oracle Cluster

- Cluster ASM

- Oracle RAC Database

- Database Instance

- Oracle Database Listener

55.5 Artifacts Created by the Rapid Start Kit

The Rapid Start Kit uses cloud input files to create cloud entities. Cloud Input files define the list of entities and input values for each of the entity. See Section 55.3, "Contents of the Kit" for more details on input files. This section explains the Cloud artifacts created as part of cloud setup.

The following actions occur when the Cloud script is executed:

1. The following roles are created:

Table 55-1 Created User Roles

Role

Associated System Role

SSA_USER_ROLE

EM_SSA_USER

2. The following users are created:

Table 55-2 Created Users

Administrator / User

Associated Role

CLOUD_ADMIN

EM_CLOUD_ADMINISTRATOR

SSA_ADMIN

EM_SSA_ADMINISTRATOR

SSA_USER1

EM_SSA_USER1

SSA_USER2

EM_SSA_USER2

SSA_USER3

EM_SSA_USER3

3. The Rapid Start Kit does not support the creation of credentials out-of-the-box. The following credentials must be created manually when prompted by the kit during cloud setup:

Table 55-3 Credentials to be Created Manually

Credentials

Description

HOST_CRED

Host credentials with host user name and password.

HOST_CRED_ROOT

Host credentials with root access.

DB_CRED

Database access credentials.

GI_CRED

Grid infrastructure owner user.

Note:
A limited support is provided to create named credentials. The credential section is commented in the template XMLs. Un-comment the credential section to enable creation of named credentials.

4. The quota is set for the SSA_USER_ROLE.

5. The PaaS Infrastructure Zone is created and the hosts that are part of the Oracle Cluster are added as members of the zone.

6. Database provisioning profiles. The Rapid Start Kit can create the following database profiles as part of cloud setup:

- DBCA Template

- DBCA Template with data

- Profile using RMAN image

- Schema profile with full export database

- Snapshot database profile

7. The user with the EM_SSA_ADMIN role creates the following:

- DBaaS Pool: The DBaaS Pool contains the Oracle Homes from the hosts that are part of the selected zone. The DBaaS Pool is used for Database as a Service.

- PDBaaS Pool: The PDbaaS Pool has the container database instances from the hosts that are part of the selected zone. The PDBaaS Pool is used for Pluggable Database as a Service.

8. The user with the EM_SSA_ADMIN role creates the following:

- Default Database Service Template: This service template can be used to submit a request for a Database.

- Default Pluggable Database Service Template: This service template can be used to submit a request for a Pluggable Database.

- Service templates using database profiles.

55.6 Rapid Kit Modes

The Rapid Start Kit supports two modes:

- Simple Mode (on Exadata only)

- Advanced Mode (on Exadata and non Exadata)

55.6.1 Simple Mode (On Exadata Only)

In the simple mode, the Rapid Start kit creates a single zone and pool on a specified Exadata Machine.The reference templates for the simple mode are:

pdbaas_cloud_input.xml

dbaas_cloud_input.xml

cloud_boundary.xml

55.6.2 Advanced Mode (Exadata and Non Exadata)

In the advanced mode, the Rapid Start kit can be used to create multiple zones and pools on any set of hosts.The reference templates for advanced mode are:

pdbaas_cloud_custom_input.xml

dbaas_cloud_custom_input.xml

cloud_custom_boundary.xml

55.7 Cloud Setup Inputs: Simple Mode

The cloud setup requires many user inputs specific to the RAC environment and the cloud artifacts. The Rapid Start Kit has two configuration files that define the cloud input. The following cloud input files are under the configuration directory.

- cloud_boundary.xml: Defines the cloud topology.

- dbaas_cloud_input.xml: Defines the cloud artifacts and the input values for Database as a Service.

- pdbaas_cloud_input.xml: Defines the cloud artifacts and the input values for Pluggable Database as a Service.

Review the cloud input files and map the artifacts with the ones defined in Section 55.5, "Artifacts Created by the Rapid Start Kit". The user marked with cloudadmin="True" is used as the Cloud Administrator to create the PaaS Zone and the user marked as ssaadmin="True" is used to create the Database Pools. All default passwords used by the kit are welcome1.

Note: The simple mode can be used to create a cloud only on an Exadata machine. For non exadata setup, refer to Cloud Setup Inputs: Advanced mode.

55.7.1 Pluggable Database as a Service: Simple Mode

There is no environment specific value in pdbaas_cloud_input.xml. Pluggable Database as a Service can be run with out of box input xml without any change.

55.7.2 Database as a Service: Simple Mode

Database as a service has few environment specific values. User must set them to suite the Real Application Cluster used.

Table 55-4 Environment Details Input Guidelines

XML Input

Edit Guideline

Pool Filters:

<platform>226</platform>

<version>12.1.0.1.0</version>

Edit the platform value to ARU id of Real Application Cluster machine platform. Use 226 for Linux x86-64, 267 for Solaris x86, and 23 for Solaris Sparc 64.

Edit the database version to the correct value from the database installed on Real Application Cluster machine.

Service Template:<REDO_FILE_LOCATION>RECOSLC16</REDO_FILE_LOCATION>

<RECOVERY_FILE_LOCATION>RECOSLC16</RECOVERY_FILE_LOCATION><DATA_FILE_LOCATION>DATASLC16</DATA_FILE_LOCATION>

Cloud Setup Supports Real Application Cluster with ASM and File System.Specify the disk group names used for Redo files, Recovery files and Data files for ASM and shared locations for File System.

<COMMON_DB_SYSTEM_PASSWORD>welcome1</COMMON_DB_SYSTEM_PASSWORD> <COMMON_DB_DBSNMP_PASSWORD>welcome1</COMMON_DB_DBSNMP_PASSWORD> <COMMON_DB_SYS_PASSWORD>welcome1</COMMON_DB_SYS_PASSWORD>

Specify the passwords for system, dbsnmp and sys accounts.

55.7.3 Input Customization: Simple Mode

The Rapid Setup Kit supports logical customization of input values. The customer can make a copy of the out-of-the-box input file. Customize the input values logically and pass the modified file to the Rapid Setup Kit.

For example:The user wants to change the Role name from SSA_USER_ROLE to SSA_QA_ROLE. Change should be done as follows:

Original xml tag:

<role name="SSA_USER_ROLE" description="SSA User role">
<systemRoles>
<systemRole>EM_SSA_USER</systemRole>
</systemRoles>
<users></users>
</role>

Changed tag:

<role name="SSA_QA_ROLE" description="SSA QA role">
<systemRoles>
<systemRole>EM_SSA_USER</systemRole>
</systemRoles>
<users></users>
</role>

The user must look at all the usages of above Role name and change them accordingly. Due to the change in Role name, the following user tag:

<user>
<userName>SSA_USER1</userName>
<passWord>welcome1</passWord>
<!-- system roles or above created role -->
<systemRole>SSA_QA_ROLE</systemRole>
</user>

Must change to use the new role name

<user>
<userName>SSA_USER1</userName>
<passWord>welcome1</passWord>
<!-- system roles or above created role -->
<systemRole> SSA_USER_ROLE</systemRole>
</user>

The user can edit the names and descriptions of Roles, Users, Credential Names, Pool Names and Service template names and their properties defined in the input XML.For example:The user may want to customize the work load to suit the environment for PDBaaS. The user can customize the database SID name and Domain name as follows:Change these tags from dbaas_cloud_input.xml

<DB_SID_PREFIX>dbsid</DB_SID_PREFIX>
<COMMON_DOMAIN_NAME>mycompany.com</COMMON_DOMAIN_NAME>

To

<DB_SID_PREFIX>dbsid</DB_SID_PREFIX>
<COMMON_DOMAIN_NAME>company.com</COMMON_DOMAIN_NAME>

Similarly the init parameters for DbaaS can be changed for sga_target and the pga_aggregate_target by editing their values in the dbaas_cloud_input.xml.

55.8 Cloud Setup Inputs: Advanced Mode

The Advanced Mode is useful to setup the cloud on any set of hosts with customized cloud topology. The Rapid Start Kit has three configuration template files that define the cloud input. The following cloud input files are under the configuration directory.

- cloud_custom_boundary.xml: Defines the cloud topology.

- dbaas_cloud_custom_input.xml: Defines the cloud artifacts and the input values for Database as a Service.

- pdbaas_cloud_custom_input.xml: Defines the cloud artifacts and the input values for Pluggable Database as a Service.

Review the cloud input files and map the artifacts with the ones defined in Section 55.5, "Artifacts Created by the Rapid Start Kit". The user marked with cloudadmin="True" is used as the Cloud Administrator to create the PaaS Zone and the user marked as ssaadmin="True" is used to create the Database Pools. All default passwords used by the kit are welcome1.

55.8.1 Creating Custom Users

To create custom users, edit the following tags in the cloud_input.xml file to add the new user name roles. The user marked with cloudadmin="True" is used as the Cloud Administrator to create the PaaS Zone and the user marked as ssaadmin="True" is used to create the Database Pools.

<user cloudadmin="True">
<userName>CLOUD_ADMIN</userName>
<!-- If password is empty, default password welcome1 will be used -->
<passWord></passWord>
<!-- system roles or above created custom role name -->
<systemRole>EM_CLOUD_ADMINISTRATOR</systemRole>
</user>

Note:

- You can set one user as the self service administrator by specifying ssaadmin="True".

- You can set one user as the cloud administrator by specifying cloudamin="True".

55.8.2 Pluggable Database as a Service: Advanced Mode

The following input customizations are required to prepare the input files for Pluggable database as a service.

- Make a copy of cloud_custom_boundary.xml template file.

- Edit the copy to define the zones and pools. You can create a zone with multiple pools and multiple such zones based on the cloud topology.

Table 55-5 XML Editing Guidelines for Creating Pools and Zones

XML Input

Edit Guidelines

<dbinstance>

<dbName></dbName>

</dbinstance>

Provide the container database instance name for each pool definition in pdbaaspool tag.

Pool Filters:

<dbType>rac_database</dbType>

<version>12.1.0.1.0</version>

Edit the database version and database type to the type and version of database used for the pool. For cluster databases, specify the type as rac_database, and for single instance databases, specify the type as oracle_database.

<zone>DBaaS Zone</zone>

Provide the zone name to which the pool belongs.

Make a copy of pdbaas_cloud_custom_input.xml template file. You can use an existing profile or create a new database profile using a reference target using Rapid Start Kit. Remove the profiles tag to use existing profile.The template contains sample tags for different types of profiles. Edit the XML to remove the profiles that are not required for the setup. Provide following details to create the database profile as part of cloud setup using the Rapid Start Kit.

Table 55-6 XML Editing Guidelines for Creating a Database Profile

XML

Edit Guide Line

<REFERENCE_DATABASE>skd</REFERENCE_DATABASE>

<REF_NODE_SELECTED>abc1.example.com</REF_NODE_SELECTED>

Enter the reference database target name from Enterprise Manager.

Enter the reference node name.

<REFERENCE_DATABASE_TYPE>rac_database</REFERENCE_DATABASE_TYPE>

Specify the database type such as 'oracle_database' for Single Instance database and 'rac_database' for RAC database.

<DB_VERSION>11.2.0.4.0</DB_VERSION>

Specify RDBMS version for the reference database. For example, 11.2.0.4.0, 12.1.0.1.0, etc.

<PROFILE_PLATORM>linux_x86_64</PROFILE_PLATORM>

Specify Platform for the reference database.

Profile will be created in following location by default.

Database Provisioning Profiles/ <PROFILE_VERSION>/<PROFILE_PLATORM>

<REF_GI_CREDENTIALS>ORACLE_NORMAL:SSA_ADMIN</REF_GI_CREDENTIALS>

<REF_DB_CREDENTIALS>DB_CRED_NORMAL:SSA_ADMIN</REF_DB_CREDENTIALS>

<REF_HOST_CREDENTIALS>ORACLE_NORMAL:SSA_ADMIN</REF_HOST_CREDENTIALS>

Enter the credential names for Grid Credential, Reference database credentials and host credentials in <CRED_NAME>:<CRED_OWNER_USER> format.

Dump directories<dumpdir>DATA_PUMP_DIR</dumpdir>

Enter the dump directory that will be used for dump files and export log.

<PROFILE_NAME>RAC dbm01 Profile</PROFILE_NAME>

<PROFILE_DESC>Database provisioning profile</PROFILE_DESC>

Enter the profile name and description.

Enter this profile name in the service template that consumes the profile.

Provide the following details to create the pluggable database service template

Table 55-7 XML Editing Guidelines for Pluggable Database Service Template

XML Input

Edit Guide Line

<zone>

<zoneName></zoneName>

<poolName></poolName>

</zone>

Specify the zones and pools that are part of this service template.

<PROFILE_COMPONENT_NAME></PROFILE_COMPONENT_NAME>

Enter the database profile name that is used by this service template. If this tag is empty, an empty pluggable database will be created.

<DUMP_FILE_SHARED_LOCATION></DUMP_FILE_SHARED_LOCATION>

Specify the shared location where the dump files are copied. Set this to the shared location used while creating the profile.

<customScripts>

<beforecreateserviceinstance></beforecreateserviceinstance>

<aftercreateserviceinstance></aftercreateserviceinstance>

Specify the custom script software library directive name to be executed before and after creating the service instance. Refer to the pre and post-database scripts.

<beforedeleteserviceinstance></beforedeleteserviceinstance>

<afterdeleteserviceinstance></afterdeleteserviceinstance>

</customScripts>

Specify the custom script software library directive to be executed before and after deleting the service instance.

55.8.3 Database as a Service: Advanced Mode

The following input customizations are required to prepare the input files for Pluggable database as a service.

- Make a copy of cloud_custom_boundary.xml template file.

- Edit the copy to define the zones and pools. You can create a zone with multiple pools and multiple such zones based on the cloud topology.

Table 55-8 XML Editing Guidelines to Define Zones and Pools

XML Input

Edit Guide Line

<dbHome>

<hostName>host1.example.com</hostName> <oracleHomeLocation>/u01/app/oracle/product/11.2.0.4.0/dbhome_1</oracleHomeLocation>

</dbHome>

Provide the Oracle Homes present on these hosts will be part of this Database Pool.

Provide the full path for Oracle Home Location.

Multiple <dbHome> tags can be provided.

Pool Filters:

<dbType>rac_database</dbType>

<version>12.1.0.1.0</version>

Edit the database version and database type to the type and version of database used for the pool.

<zone>DBaaS Zone</zone>

Provide the zone name to which the pool belongs.

<standbyPool></standbyPool>

Specify the standby pool names for this pool.

Make a copy of pdbaas_cloud_custom_input.xml template file. You can use an existing profile or create a new database profile using a reference target using Rapid Start Kit.

The following profiles can be created using the Rapid Start Kit:

- Database profile using DBCA template

- Database profile using DBCA template with data

- Snapshot database profile

Provide the following details to create the database profile as part of cloud setup using the Rapid Kit.

Table 55-9 XML Editing Guidelines to Create a Database Profile

XML Input

Edit Guide Line

Reference database details:

<REFERENCE_DATABASE>refdb</REFERENCE_DATABASE>

<REF_NODE_SELECTED>abc1.example.com</REF_NODE_SELECTED>

<REFERENCE_DATABASE_TYPE>oracle_database</REFERENCE_DATABASE_TYPE>

<DB_VERSION>11.2.0.4.0</DB_VERSION>

<PROFILE_PLATORM>linux_x86_64</PROFILE_PLATORM>

Specify following details for reference database used for creating the profile.

Reference database target name from Enterprise Manager.

Reference host to be used for profile creation operation.

Reference database type. Example: 'oracle_database' for Single Instance database and 'rac_database' for RAC database.

Profile version.

Profile platform.

<data>False</data>

Profile can contain 'Structure and Data' or 'Structure Only'. Choose 'True' to include data. For RMAN, data is always True.

<snapshot>True</snapshot>

Set to &rsquor;True' for Snapshot profile.

Ensure the following before enabling the Snapshot option:

- The storage appliance is registered with Enterprise Manager

- Snap clone option is enabled for the Database used as reference

- Profile owner user (SSA_ADMIN) has access to the storage

- Storage credential and Agent credential used for storage monitoring have view permission for SSA_ADMIN user.

Note: To set the permission, follow the instructions below:

1. On the Enterprise Manager console, click Setup.

2. Click Security and then select Named Credentials.

3. Select the credential and then click Manage Access.

4. Click Add Grant.

5. Select SSA_ADMIN user and click Select.

6. Click Save.

RMAN Image Profile inputs:<rman>

<enable>True</enable>

<rmanImage>True</rmanImage>

<RMANImageMode>ONLINE</RMANImageMode>

<BackupLocation>/u01/sk</BackupLocation>

<BackupFileTag>feb201402221143</BackupFileTag>

</rman>

Set enable flag to False.

Set rmanImage flag to True.

Provide a backup location and backup tag to identify the location for backup files.

Note: The rman tag will not be present if the profile is not created using rman backup.

Credentials:<REF_GI_CREDENTIALS>ORACLE_NORMAL:SSA_ADMIN</REF_GI_CREDENTIALS>

<REF_DB_CREDENTIALS>DB_CRED_NORMAL:SSA_ADMIN</REF_DB_CREDENTIALS>

<REF_HOST_CREDENTIALS>ORACLE_NORMAL:SSA_ADMIN</REF_HOST_CREDENTIALS>

Enter the credential names for Grid Credential, Reference database credentials and host credentials in

<CRED_NAME>:<CRED_OWNER_USER> format

<PROFILE_NAME>RAC dbm01 Profile</PROFILE_NAME>

<PROFILE_DESC>Database provisioning profile</PROFILE_DESC>

Enter the profile name and description.

Enter this profile name in the service template that consumes the profile.

Edit the input xml to create single or multiple service templates. The following service templates can be created using the Rapid Start Kit:

- Service template using DBCA template profile

- Service template using DBCA template with data profile

- Service template using snapshot database profile

Provide following details to create the database service template.

Table 55-10 XML Editing Guidelines to Create a Database Service Template

XML Input

Edit Guide Line

<zone>

<zoneName></zoneName>

<poolName></poolName>

</zone>

Specify the zones and pools that are part of this service template.

<PROFILE_COMPONENT_NAME></PROFILE_COMPONENT_NAME>

Enter the database profile name that is used by this service template. If this tag is empty, empty pluggable database will be created.

<COMMON_DB_SYSTEM_PASSWORD></COMMON_DB_SYSTEM_PASSWORD>

<COMMON_DB_DBSNMP_PASSWORD></COMMON_DB_DBSNMP_PASSWORD>

<COMMON_DB_SYS_PASSWORD></COMMON_DB_SYS_PASSWORD>

Provide the passwords for system, dbsnmp and sys users.

<LISTENER_PORT>1521</LISTENER_PORT>

Provide the listener port.

<PROFILE_TYPE _USED></PROFILE_TYPE _USED>

Use value snapshot to create a service template using snapshot database profile.

RMAN profile must already exist and the backup location should be updated in the service template.

Leave the parameter empty to create service template using DBCA profile.

<DUMP_FILE_SHARED_LOCATION></DUMP_FILE_SHARED_LOCATION>

Storage locations:

<DB_STORAGE_TYPE>ASM</DB_STORAGE_TYPE>

<DATA_FILE_LOCATION>DA</DATA_FILE_LOCATION>

<RECOVERY_FILE_LOCATION>RE</RECOVERY_FILE_LOCATION>

<REDO_FILE_LOCATION>RE</REDO_FILE_LOCATION>

Enter Disk Group names for ASM and File locations for FS.Enter file locations for Data files, Recovery files and Redo files.

For ASM, enter the disk group names.

For FS, enter the shared storage locations.

DA, RE are the disk group names for Data files and redo files.

Standby Database:<standbydatabases>

<STANDBY_REQUIRED>False</STANDBY_REQUIRED>

<STANDBY_WORK_DIR>/tmp</STANDBY_WORK_DIR>

<standbydatabase>

<standbyName>Standby1</standbyName>

<databaseType></databaseType> <numberofNodes>2</numberofNodes>

<StandbyDatabaseSIDPrefix>sta1</StandbyDatabaseSIDPrefix>

<STANDBY_DOMAIN_NAME>mycompany.com</STANDBY_DOMAIN_NAME>

<protectionMode>MAX_PERFORMANCE</protectionMode>

<standbyPoolName></standbyPoolName>

</standbydatabase>

</standbydatabases>

From 12.1.0.4.0 Service template can be created with standby database.

Specify the details for standby database:

- If standby database is required, set this to True.

- Standby is not supported with CLONE_OR_FULL_DB=CLONE_DB.

- Specify the working directory for standby database.

- Specify the standby configuration name.

- Standby database type can be rac_database or oracle_database.

- Number of nodes for standby database.

- Database SID pre-fix for standby database.

- Specify database standby domain name.

- Protection modes supported for standby database are: MAX_PROTECTION, MAX_AVAILABILITY, and MAX_PERFORMANCE

- Specify the pool name that should be used to create the standby databases.

Note: This tag can be removed or commented if a standby database is not required.

<storages>

<storage> <mountPointPrefix>/oracle1</mountPointPrefix>

<space>10</space> <!-- GB -->

</storage>

<storage> <mountPointPrefix>/oracle2</mountPointPrefix>

<space>11</space> <!-- GB -->

</storage>

</storages>

Specify the storage volume name and size. The storage volume name will be prefixed to the auto-generated mount point where a clone of this volume will be mounted. With a mount point prefix /oracle, for a source path mount, the mount point will be /oracle_my_zzz/mount.

This tag is required for snapshot and can be removed or commented for other service templates.

<customScripts> <beforecreateserviceinstance></beforecreateserviceinstance> <aftercreateserviceinstance></aftercreateserviceinstance>

Specify the custom script software library directive name to be executed before and after creating the service instance. Refer to the pre and post Database scripts.

<beforedeleteserviceinstance></beforedeleteserviceinstance> <afterdeleteserviceinstance></afterdeleteserviceinstance>

</customScripts>

Specify the custom script software library directive to be executed before and after deleting the service instance.

Leave the tags empty if you do not want to run any scripts.

55.9 Command Line Interface

This section describes step by step instructions for setting up the Cloud using Rapid Start Kit.Make sure all the targets are discovered in Enterprise Manager before starting with Cloud Setup Script.

55.9.1 Usage

-help option describes all the supported options.

Usage: emcli @database_cloud_setup.py [-exadata_target_name=<EM system target name>] [-dbaas|-pdbaas] [-cloud_boundary=<file name>] [-cloud_input=<file name>]

-pdbaas:This flag is used to setup Cloud for Pluggable Database as a Service.
-dbaas:This flag is used to setup Cloud for Database as service.
-cloud_input=<path to custom cloud input xml> [ Optional]
Cloud input XML defines Enterprise Manager entities created as part of Cloud Setup.
Default file config/dbaas_cloud_input.xml will be used for database setup
Default file config/pdbaas_cloud_input.xml will be used for pluggable database setup.
Use dbaas_cloud_custom_input.xml or pdbaas_cloud_custom_input.xml to perform an advanced cloud setup.
-cloud_boundary=<path to custom cloud boundary xml> [ Optional]
Cloud boundary XML defines scope for Zones, Pools and the Cloud Hosts.
Default file config/cloud_boundary.xml will be used.
Use cloud_custom_boundary.xml to perform an advanced cloud setup.
-exadata_target_name
Pass Exadata Machine Target Name from Enterprise Manager when setup is running from non-Exadata machine and cloud is set on Exadata machine. This will perform simple cloud setup.
-help: Displays Cloud Setup help
For example:
Setup Cloud on a Cluster Machine or a set of standalone hosts:
Run the script on a cluster node or any standalone Machine:
emcli @database_cloud_setup.py -pdbaas : Sets up Cloud for PDBaaS using list of container databases given in cloud_boundary.xml
emcli @database_cloud_setup.py -dbaas : Sets up Cloud for DBaaS using given list of hosts and oracle home given in cloud_boundary.xml
emcli @database_cloud_setup.py -pdbaas -cloud_input=<Full path to Input XML> : Override the default cloud input xml.
emcli @database_cloud_setup.py -pdbaas -cloud_input=<Full path to Input XML> -cloud_boundary=<Full path to Input XML> : Override the default cloud input and cloud boundary xmls

55.9.2 Database as a Service (DBaaS)

The following command can be used to setup DBaaS.

ORACLE_HOME/bin/emcli @database_cloud_setup.py –pdbaas -cloud_input=<Full path to cloud input xml> -cloud_boundary=<Full path to cloud boundary xml>

where the -dbaas flag indicates that this is used set up Database as a Service.

The script retrieves the list of hosts and the location of the Oracle Home. Enter the following input when prompted by the Rapid Start Kit.

Table 55-11 User Input Details

User Input

Description

Enterprise Manager Host Name

Hostname

Enterprise Manager Port Number

Port number for the secure port.

Enterprise Manager User Name

Enter name of user with administration privileges (sysman).

Enterprise Manager User Password

Enter the password for the sysman user.

Password for the CLOUD_ADMIN user

This user is created by the kit. The default password is welcome1.

Credential verification.

Create the credentials when prompted by the kit.

If any of the cloud artifacts already exist in Enterprise Manager, the Rapid Setup Kit shows the message and does not create or modify it.The Cloud Setup script can be run again multiple times in case of any failure after fixing the issue. The kit creates the new artifacts and shows the message for already existing ones.

55.9.3 Pluggable Database as a Service (PDBaaS)

The following command can be used to set up PDBaaS.

ORACLE_HOME/bin/emcli @database_cloud_setup.py –pdbaas –exadata_target_name=<Exadata target name from EM>

ORACLE_HOME/bin/emcli @database_cloud_setup.py –pdbaas -cloud_input=<Full path to cloud input xml> -cloud_boundary=<Full path to cloud boundary xml>

where:

- the -pdbaas flag indicates that this sets up for Pluggable Database as Service

Enter the following input when prompted by the Rapid Setup Kit.

Table 55-12 User Input Details

User Input

Description

Enterprise Manager Host Name

Hostname

Enterprise Manager Port Number

Port number for the secure port.

Enterprise Manager User Name

Enter name of user with administration privileges (sysman).

Enterprise Manager User Password

Enter the password for the sysman user.

Password for the CLOUD_ADMIN user

This user is created by the kit. The default password is welcome1.

Credential verification

Create the credentials when prompted by the kit.

If any of the cloud artifacts already exist in Enterprise Manager, the Rapid Setup Kit shows the message and does not create or modify it.The Cloud Setup script can be run again multiple times in case of any failure after fixing the issue. The kit creates the new artifacts and shows the message for already existing ones.

55.9.4 Securing the Cloud Setup

The Rapid Setup Kit creates the Administrators as part of Cloud Setup. The kit allows the user to secure the cloud setup so that only authorized users can be given access to the selected functionality. If the user opts to secure the Cloud Setup, the passwords for the users created by the kit will automatically expire. Enterprise Manager allows re-setting the password on first login by each user.

55.9.4.1 Expire Default Passwords

The Rapid Start Kit will ask for confirmation and will expire the passwords for all the users that are part of input xml.

55.9.5 Set New Passwords

Administrator should log in to Enterprise Manager as each user is created. Enterprise Manager will ask to set a new password on first login.

Note: If you want to re-run the kit after the passwords have been expired by Rapid Kit, new passwords must be set for CLOUD_ADMIN and SSA_ADMIN users before re-running the Rapid Kit and the new passwords must be used when prompted during the second run.

55.10 Rapid Start Kit Sample Run

This section shows a sample run for Pluggable Database as a Service

<emcli_path>/emcli @database_cloud_setup.py -pdbaas -cloud_boundary=/u01/cloudsetup/config/boundary_bp.xml -cloud_input=/u01/cloudsetup/config/pdb_input_bp.xml
==================================================================================Cloud Setup Tool
==================================================================================
Log in to Enterprise Manager:
==============================
emcli executable was not found in PATH
Enterprise Manager URL found from emcli setup:
Enter Enterprise Manager Host Name: omshost.example.com
Enter Enterprise Manager Port Number. Hit enter if using portless URL: 7802
Enter Enterprise Manager Super Administrator User Name [sysman]:

Connecting to Enterprise Manager 'https://omshost.example.com:7802/em'...
Login as 'sysman'...
Enter password :  ********
Login successful

Cloud Boundary XML: '/u01/cloudsetup/config/boundary_bp.xml'

Cloud Setup Inputs:
Cloud Input XML: '/u01/cloudsetup/config/pdb_input_bp.xml'

Fetching system information from Enterprise Manager...
Setting up Pluggable Database as a Service (PDBaaS)...
List of Container Databases for pool creation: dbmcdb

+--------------------------------+------------------------------------------------
|              Node              |                Oracle Home Location                |
+--------------------------------+------------------------------------------------
| host1.example.com       | /u01/app/oracle/product/12.1.0.1/dbhome_1          |
+--------------------------------+------------------------------------------------
| host2.example.com       | /u01/app/oracle/product/12.1.0.1/dbhome_1          |
+--------------------------------+------------------------------------------------

Press Enter to continue:
Creating Roles...
Creating Role "SSA_USER_ROLE"...
Role "SSA_USER_ROLE" already exists

Creating Users...
Creating User "SSA_ADMIN"...
User "SSA_ADMIN" already exists

Creating User "CLOUD_ADMIN"...
User "CLOUD_ADMIN" already exists

Creating User "SSA_USER1"...
User "SSA_USER1" already exists

Creating User "SSA_USER2"...
User "SSA_USER2" already exists

Creating User "SSA_USER3"...
User "SSA_USER3" already exists
Following named credentials should be pre-created in Enterprise Manager for this cloud setup:
HOST_CRED_SLCC:CLOUD_ADMIN
HOST_CRED_SLCC:SSA_ADMIN
GI_CRED_SLCC:SSA_ADMIN
DB_CRED:SSA_ADMIN
Named Credentials used in Rapid kit should be created manually and given the required grants. Have you created above listed credentials? (yes/no) [yes]:
User confirmed credential creation.

Connecting to Enterprise Manager &rsquor;https://omshost.example.com:7802/em '...
Login as 'CLOUD_ADMIN'...
Enter password :  ********
Login successful

Creating Quotas...
Creating Quota for Role: SSA_USER_ROLE
Updating Quota for Role: SSA_USER_ROLE
Quota for Role "SSA_USER_ROLE" updated successfully.

Creating zone "PDBaaS Zone"...
PaaS Infrastructure Zone "PDBaaS Zone" created successfully.

Connecting to Enterprise Manager 'https://xyxy.example.com:7802/em'...
Login as 'SSA_ADMIN'...
Enter password :  ********
Login successful

Creating pool "PDBaaS Pool"...
Software Pool "PDBaaS Pool" created successfully.
Creating Profiles...
Profiles will be created in 'serial' mode

Creating Pluggable Database Service Template...
Creating PdbaaS Service Template...
Service Template "Default Pluggable Database Service template" created successfully.
Securing Cloud setup...
Do you want to expire passwords for the users created by setup?(yes/no) [yes]: no
User opted to not expire the passwords.
Cloud Setup Summary:

+--------------------------------+------------------------------------------+-----
|       Type              |      Cloud Entity            |              Status                  |
+--------------------------------+------------------------------------------+-----
| Role                           | SSA_USER_ROLE                  | Already exists                           |
+--------------------------------+------------------------------------------+-----
| User                           | SSA_ADMIN                      | Already exists                           |
+--------------------------------+------------------------------------------+-----
| User                           | CLOUD_ADMIN                   | Already exists                           |
+--------------------------------+------------------------------------------+-----
| User                           | SSA_USER1                      | Already exists                           |
+--------------------------------+------------------------------------------+-----
| User                           | SSA_USER2                      | Already exists                           |
+--------------------------------+------------------------------------------+-----
| User                            | SSA_USER3                     | Already exists                           |
+--------------------------------+------------------------------------------+-----
| PaaS Infrastructure Zone | PDBaaS Zone               | Created                                  |
+--------------------------------+------------------------------------------+-----
| Software Pool                 | PDBaaS Pool              | Created                                  |
+--------------------------------+------------------------------------------+-----
| PDB Service Template        | Default Pluggable Database Service  | Created template                                     |                                          |
+--------------------------------+------------------------------------------+-----

Cloud setup completed successfully for Pluggable Database as a Service (PDBaaS)
Log in to Oracle Management Server url &rsquor;https://omshost.example.com:7802/em' to submit the request for Pluggable Database.

56 Chargeback and Metering EMCLI Verbs

This chapter describes the EMCLI verbs used for Chargeback and Metering and provides details on verb names, descriptions, parameters and syntax. Examples of verb output and commands are also provided. This chapter contains the following sections:

- Performing UI Equivalent Chargeback Operations

- Using Custom Charge Items

- Examples of Custom Charge Item Verb Use

- Creating a Generic Entity Type

- Retrieving Metering Data from Enterprise Manager

56.1 Performing UI Equivalent Chargeback Operations

The section describes EMCLI verbs with which you can perform the same operations you can perform within the Chargeback user interface.

56.1.1 list_chargeback_entity_types

Lists all entity types that Chargeback supports. You can optionally list all entity types and their respective usage mode, or all usage modes that a particular entity type supports.

Syntax

list_chargeback_entity_types
-[usage_mode]
-[entity_type="eType"]

Parameters

- usage_mode–(optional) displays all applicable usage modes for each entity type

- entity_type–(optional) displays all applicable usage modes for the specified entity type

Examples

list_chargeback_entity_types

Entity Type        Entity Type Display Name
oracle_database    Database Instance
host               Host

list_chargeback_entity_types -usage_mode

Entity Type        Entity Type Display Name        Usage Mode
oracle_database    Database Instance               dbMetered
oracle_database    Database Instance               dbByService
oracle_database    Database Instance               cdbBypdb

host               Host                            hostMetered

list_chargeback_entity_types -entity type="oracle database"

Entity Type        Entity Type Display Name        Usage Mode
oracle_database    Database Instance               dbMetered
oracle_database    Database Instance               dbByService
oracle_database    Database Instance               cdbBypdb

56.1.2 list_chargeback_entities

Lists all entities that have been added to Chargeback; that is, all entities of any type for which charges and metering are calculated.

Syntax

list_chargeback_entities

Examples

Output appears in tabular format and displays the following information for each added entity:

Table 56-1 Output Example

Column Name

Column Value

Entity Name

acme_db

Entity Guid

xrdbyy

Entity Type

oracle_database

Creation Date

2014-01-01 00.00.00.0

Parent Entity Name

No Parent

Parent Entity Type

Not Applicable

Cost Center Name

cc1

Charge Plan Name

cp1

56.1.3 add_chargeback_entity

Adds an entity instance of a given entity type to Chargeback with the specified usage mode.

Syntax

add_chargeback_entity
-entity_name="eName"
-entity_type="eType"
-usage_mode="uMode"

Parameters

- entity_name–identifies an entity instance by name currently being monitored by Enterprise Manager that you want to add to Chargeback.

- entity_type–identifies the entity type of the instance being added.

- usage_mode–specifies the usage mode; that is, how the entity instance is to be metered. Use the list_chargeback_entity_types verb with the -entity type option to see available usage modes.

Examples

add_chargeback_entity -entity_name="db1" -entity_type="oracle_database" -usage_mode="dbMetered"

Adds the entity db1 to Chargeback, metered by database instance.

56.1.4 remove_chargeback_entity

Removes an entity instance of a given entity type from Chargeback; that is, terminates Chargeback activity on the entity. with the specified usage mode.

Syntax

remove_chargeback_entity
-entity_name="eName"
-entity_type="eType"
-[entity_guid="entity guid"]

Parameters

- entity_name–identifies an entity instance by name that you want to remove from Chargeback.

- entity_type–identifies the entity type of the instance being removed.

- entity_guid–(optional) specifies the globally unique identifier by which the entity is known internally. When there are multiple entities of the same type with the same name, command output lists all such entities with additional details including GUID. Execute the command again, this time using entity_guid instead of the other parameters to correctly identify the intended entity.

Examples

remove_chargeback_entity -entity_name="db1" -entity_type="oracle_database"

Removes the Oracle database entity db1 from Chargeback.

56.1.5 list_charge_plans

Lists all charge plans currently in use in Chargeback. Optionally lists charge plans scheduled for use in the future. Can also optionally list current or future plans by entity type or charge plan details.

Syntax

list_charge_plans
[-[entity_type="entity type" -[ all]]
-[charge_plan="charge plan name" -[all]]
-[ all]]

Parameters

- entity_type–lists all active charge plans for the specified entity type.

- charge_plan–lists details about a particular charge plan.

- all–lists all active and future charge plans in Chargeback, or for a specified entity type, or the details of all active and future versions of the specified charge plan.

Examples

Output appears in tabular format and displays the following information, depending on parameters specified:

Table 56-2 Output Example

Column Name

Column Value

Charge Plan Name

cp1

Entity Type

host

Description

Host flat rate plan

Start Date

2014-01-01 00.00.00.0

End Date

2014-02-01 00.00.00.0

56.1.6 assign_charge_plan

Assigns a specified charge plan to an entity of a particular type.

Syntax

assign_charge_plan
-entity_name="eName"
-entity_type="eType"
-plan_name="pName"
-[entity_guid="entity guid"]

Parameters

- entity_name–identifies the entity to which a plan is to be assigned.

- entity_type–identifies the entity type of the named entity. Charge plans are entity-type specific.

- plan_name–specifies the name of an existing charge plan to be assigned to the entity.

- entity_guid–(optional) specifies the globally unique identifier by which the entity is known internally. When there are multiple entities of the same type with the same name, command output lists all such entities with additional details including GUID. Execute the command again, this time using entity_guid instead of the other parameters to correctly identify the intended entity.

Examples

assign_charge_plan -entity_name="db1" -entity_type="oracle_database" -plan_name="plan1"

Assigns charge plan plan1 to database instance db1 of entity type Oracle Database.

56.1.7 unassign_charge_plan

Removes the charge plan assignment from the specified entity.

Syntax

unassign_charge_plan
-entity_name="eName"
-entity_type="eType"
-[entity_guid="entity guid"]

Parameters

- entity_name–identifies the entity from which to remove the plan assignment.

- entity_type–identifies the entity type of the named entity.

- entity_guid–(optional) specifies the globally unique identifier by which the entity is known internally. When there are multiple entities of the same type with the same name, command output lists all such entities with additional details including GUID. Execute the command again, this time using entity_guid instead of the other parameters to correctly identify the intended entity.

Examples

unassign_charge_plan -entity_name="db1" -entity_type="oracle_database" -plan_name="plan1"

Removes the charge plan assignment from database instance db1 of entity type Oracle Database.

56.1.8 list_cost_centers

Lists all cost centers known to Chargeback or cost centers in various hierarchical displays.

Syntax

list_cost_centers
-[[cost_center_name="cName"]
-[parent]
-[children]
-[top]
-[leaf]]

Parameters

- cost_center_name–identifies a specific cost center for which other options can be specified.

- parent–displays the cost center parent of the specified cost center.

- children–lists all children cost centers of the specified cost center.

- top–displays ancestor cost centers of the specified cost center.

- displays leaf node cost centers of the specified cost center.

Examples

list_cost_centers

Cost Center Name          Parent Node          Number
cc1                                       [2,4,0,0]
cc11                      cc1             [2,2,0,0]
cc12                      cc1             [0,0,0,0]
cc111                     cc11            [0,0,0,0]
cc112                     cc11            [0,0,0,0]

The number column represents number of immediate child cost centers, total child cost centers, number of immediate users, total users, reading left to right.

With the above example as a basis, list_cost_centers verb options appear as follows:

list_cost_centers -cost_center_name="cc11" -parent

Parent Node
cc1

list_cost_centers -cost_center_name="cc1" -children

Children Nodes
cc11
cc12

list_cost_centers -cost_center_name="cc111" -top

Hierarchy
[cc1]----->[cc11]----->[cc111]

list_cost_centers -cost_center_name="cc1" -leaf

Leaf Nodes
cc111
cc112
cc12

56.1.9 assign_cost_center

Assigns a specified cost center to an entity of a particular type.

Syntax

assign_cost_center
-entity_name="eName"
-entity_type="eType"
-cost_center_name="cName"
-[entity_guid="entity guid"]

Parameters

- entity_name–identifies the entity to which a cost center is to be assigned.

- entity_type–identifies the entity type of the named entity.

- cost_center_name–specifies the name of an existing cost center to be assigned to the entity.

- entity_guid–(optional) specifies the globally unique identifier by which the entity is known internally. When there are multiple entities of the same type with the same name, command output lists all such entities with additional details including GUID. Execute the command again, this time using entity_guid instead of the other parameters to correctly identify the intended entity.

Examples

assign_cost_center_plan -entity_name="db1" -entity_type="oracle_database" -cost_center_name="cc1"

Assigns cost center cc1 to database instance db1 of entity type Oracle Database.

56.1.10 unassign_charge_plan

Removes the cost center assignment from the specified entity.

Syntax

unassign_cost_center
-entity_name="eName"
-entity_type="eType"
-[entity_guid="entity guid"]

Parameters

- entity_name–identifies the entity from which to remove the cost center assignment.

- entity_type–identifies the entity type of the named entity.

- entity_guid–(optional) specifies the globally unique identifier by which the entity is known internally. When there are multiple entities of the same type with the same name, command output lists all such entities with additional details including GUID. Execute the command again, this time using entity_guid instead of the other parameters to correctly identify the intended entity.

Examples

unassign_cost_center -entity_name="db1" -entity_type="oracle_database" -plan_name="plan1"

Removes the cost center assignment from database instance db1 of entity type Oracle Database.

56.2 Using Custom Charge Items

The following sections provide some sample commands along with descriptions and examples. These verbs are used in the following circumstances:

- You would like to meter/charge based on the metric extension/custom configuration that you have defined. Custom charge items can also be used for out of box metrics and target properties. Note that Chargeback only supports metric extensions without key columns.

- These custom charge items, when created in Chargeback, allow you to meter or charge for the custom item like any existing charge items that are shipped along with a plug-in, such as CPU Utilization. Note that the EM_CBA_ADMIN role is required to access these verbs.

56.2.1 list_charge_item_candidates

Lists the items that can be registered to Chargeback.

Syntax

emcli list_charge_item_candidates
-target_type=<target type>
-source_data_type=<metric|config|property>
-target_name=<target name>
-config_name=<config name>
-config_data_source=<target name>
-all

Parameters

- target_type–(required) name of target type. Supported target types include: oracle_database, oracle_vm_guest, host, oracle_pdb, and weblogic_j2eeserver.

- source_data_type–valid values are metric, config, and property.

- target_name–if specified, metering and charge data are retrieved only for the named target. If you do not specify a valid target name, or if the specified target has not been enabled in the given date range, then no data is generated. If this parameter is not specified, All targets for the specified target-type are included.

- config_name–required if source_data_type=config.

- config_data_source–data source of the configuration. Required if source_data_type=config.

- all–displays all items, including out of box metrics of target type. Without this option, only user-defined metric extensions, and configuration extensions are displayed.

Examples

emcli list_charge_item_candidates -target_type="oracle_database" -source_data_type="metric"

emcli list_charge_item_candidates -target_type="oracle_database" -source_data_type="config" -target_name="myDatabase" -config_name="myCustomCCS" -config_data_source="ccsfile"

56.2.2 create_charge_item

Creates a charge item for Chargeback.

Syntax

emcli create_charge_item -input_file="property_file:<full path of property file>"

Parameters

The option [-input_file] is the full path of a file that contains the item properties. The following properties can be defined in the file:

- target_type–(required) specifies the target type. Supported target types include: oracle_database, oracle_vm_guest, host, oracle_pdb, and weblogic_j2eeserver.

- source_data_type–(required) specifies the source data type. Valid values are metric, config, and property.

- item_name–(required) specifies the name of the item.

- metric_group–metric group name as listed in list_item_candidates. This is a required property if source_data_type=metric.

- metric_column–metric column name as listed in list_item_candidates. Required property if source_data_type=metric.

- config_view–config view name as listed in list_item_candidates. Required property if source_data_type=config.

- config_key–config key name as listed in list_item_candidates. Required property if source_data_type=config.

- config_column–config column name as listed in list_item_candidates. Required property if source_data_type=config.

- config_data_source–data source of configuration metric. Required property if source_data_type=config.

- property–property name as listed in list_item_candidates. Required property if source_data_type=property.

- item_displayname–(required) item display name.

- unit–unit display name.

- aggregation_type–type of aggregation to use for this item. Applicable only if data type=number. Valid values are sum and avg. Default value is avg.

- is_config_condition–Is the item used conditionally in a charge plan. Valid values are 0, 1. Default value is 0.

- item_category–category of item. Default value is instance. Valid values are cpu, storage, memory, network, and instance.

- data_type–data type. Default value is number. Valid values are string and number.

Examples

emcli create_charge_item -input_file="property_file:/home/user/property_file"
Contents of /home/user/property_file:
target_type=host
source_data_type=metric
item_name=total_proc
metric_group=Load
metric_column=noOfProcs
item_displayname=Total Processes
unit=process
aggregation_type=avg
item_category=instance
data_type=number

emcli create_charge_item -input_file="property_file:/home/user/property_file"
Contents of /home/user/property_file:
target_type=oracle_database
source_data_type=config
item_name=custom_config
config_view=myCustomCCS
config_key=region
config_column=country
config_data_source=regionList.txt
item_display_name=Region of Instance
item_category=instance
data_type=string

56.2.3 delete_charge_item

Deletes the custom charge item from Chargeback.

Syntax

emcli delete_charge_item  -target_type=<target type> -item_name=<Item name>

Parameters

- target_type–(required) specifies the target type associated with the custom charge item. Supported target types for this release include oracle_database, oracle_vm_guest, host, oracle_pdb, and weblogic_j2eeserver.

- item_name–(required) name of the custom charge item to be deleted.

Examples

emcli delete_charge_item -target_type="oracle_database" -item_name="SampleMetricExtension"

emcli delete_charge_item -target_type="host" -item_name="SampleCustomConfig"

56.3 Examples of Custom Charge Item Verb Use

The following sections provide end-to-end examples in the correct use of Custom Charge Item verbs for custom configurations.

56.3.1 Metric Extension (PGA)

In this example, a metric extension "PGA" with a metric column named "PGA Memory" is created for a database instance target to collect PGA size.

Figure 56-1 PGA Memory

1. Log in to EMCLI and use the Chargeback EMCLI verb list_charge_item_candidates to list the items that can be registered to Chargeback.

Figure 56-2 list_charge_item_candidates

2. Create a property file prop_file to generate the custom charge item for the PGA Memory metric column.
For this metric, the charge rate will be based on the average value over a number of samples, with aggregation_type is set to "avg".

Figure 56-3 Set aggregation_type

3. Create custom item in Chargeback using create_charge_item EMCLI verb.

Figure 56-4 Create custom item

4. Once the custom charge item is created, the Charge Plans page shows the new custom item. Rates can be set against custom items similar to those set for out-of-box charge items.

Figure 56-5 Create Plan: Custom Plan

As the aggregation_type is set to "avg", the charge rate is related to a time period (for example, per GB per timeperiod).

Figure 56-6 Confirmation

56.3.2 Metric Extension (Application A Orders)

A metric extension named "Application A Orders" with a metric column called "Orders Processed" is created for a database instance target. This metric collects the number of orders processed by Application A.

Figure 56-7 Metric Extensions

1. Log in to EMCLI and use the Chargeback EMCLI verb list_charge_item_candidates to list the items that can be registered to Chargeback.

Figure 56-8 list_charge_item_candidates

2. Create a property file prop_file2 to generate a custom charge item for the "Orders Processed" metric column.
For this metric, the charge rate will be based on total number of orders processed, with aggregation_type set to "sum".

Figure 56-9 Set Aggregation Type

3. Create a custom item in Chargeback using the create_charge_item EMCLI verb.

Figure 56-10 create-charge_item

4. Once the custom charge item is created, the Charge Plans page shows the new custom item. Rates can be set against a custom item similar to those set for out-of-box charge items.

Figure 56-11 Set Rates: Custom Plan

As the aggregation_type is set to "sum", the charge rate does not depend upon time periods but rather on the total value of "Orders Processed".

Figure 56-12 Confirmation

5. Add the database target to Chargeback and assign the "Custom Plan".

Figure 56-13 Cost Center and Charge Plan Assignment

6. Following the daily ETL run, the charge/usage is calculated against new custom items. The charge/usage of custom items can be viewed from the Chargeback report page.

Figure 56-14 Details

56.3.3 Configuration Extensions

A configuration extension named "Config Extensions" is created for the database instance target. This collects the number of high available tablespaces and the name of each high available tablespace as shown below. In this example, the high available tablespaces value is used as the basis of the new custom charge item.

Figure 56-15 Configuration Extensions

1. Log in to EMCLI and use the Chargeback EMCLI verb list_charge_item_candidates to list the configuration items that can be registered to Chargeback. Note that config_name is the name of the configuration extension shown on the UI ("Config Extensions" in this case). Similarly, config_data_source is the name of the config column shown on the UI (in this case "tmp/dbconfig.xml").

Figure 56-16 list_charge_item_candidates

2. Create a property file prop_file1 to generate a custom charge item for the "Number of High Available Tablespaces" metric column.
Note that the config_key value comes from the output of the "Custom Config Key" column in the output of the list_charge_item_candidates verb described previously. Similarly, the value of the config_view should be the value of "Custom Config Name" above.

Figure 56-17 Number of High Available Tablespaces

3. Create a custom item in Chargeback using the create_charge_item EMCLI verb.

Figure 56-18 create_charge_item

4. Once the custom charge item is created, the Charge Plans page shows the new custom item. Rates can be set against a custom item similar to those set for regular out-of-box charge items.

Figure 56-19 Set Rates: New Plan

Figure 56-20 Confirmation

5. Add the database target to Chargeback and assign the "New Plan".

Figure 56-21 New Plan

6. After the daily ETL run, the charge/usage is calculated against new custom items. The charge/usage of custom items can be viewed from the Chargeback report page.

56.4 Creating a Generic Entity Type

Enterprise Manager supports an almost limitless number of target types. Only a relatively small number have out-of-box Chargeback support. You can, however, create a custom entity type for an Enterprise Manager target type for which there is no current Chargeback support. There is a one-to-one correspondence of custom entity type to Enterprise Manager target type.

Use the EM CLI verb emcli add_custom_cb_entity_type to identify the custom entity type in terms of an existing target type.

Syntax

add_custom_cb_entity_type -target_type=target_type

Where target_type is a known Enterprise Manager target type for which there is no current Chargeback support; for example, Oracle Apache.

After creating the custom entity type, customize charge items appropriate to the new entity type, following the process described in Section 56.2.

Charge Item Properties

For example, you might create a custom charge item based on an input property file named properties_oracle_apache where the properties are as follows:

target_type=oracle_apache
source_data_type=metric
item_name=active_sessions
metric_group=ohs_server
metric_column=sessions.active
item_displayname=Active Sessions
unit=sessions
aggregation_type=avg
item_category=instance
data_type=number

The custom charge item is based on the average number of active sessions.

Implementation

Now proceed as follows:

1. Create a charge plan for the Oracle Apache entity type that includes the active sessions customized charge item.

2. Add the Oracle Apache entity type to Chargeback using the Add wizard in the application, as you would for any entity type. The Oracle Apache entity type is available in Target Selector dialog.

3. Assign the charge plan you created in Step 1 to the Oracle Apache entity type.

4. Optional. Assign a cost center to the Oracle Apache entity type.

5. Using the reporting feature to view metering and charge data related to the Oracle Apache entity type.

56.5 Retrieving Metering Data from Enterprise Manager

The Chargeback REST APIs can be used to integrate Enterprise Manager with Billing and Revenue Management systems (including Oracle BRM). They also provide flexible Chargeback mechanisms. Some examples include:

- Integration with a billing system with different rate plans for small, medium, and large configurations.

- To calculate Chargeback for a flexible time period. For example, months starting from 15th and ending on the 15th.

- To rationalize Chargeback based on other attributes that are not captured by Enterprise Manager.

- To adjust or round up Chargeback based on usage. For example charge is calculated for the full-day even if the usage is for the partial day.

56.5.1 get_metering_data

Retrieves Chargeback metering data in the form of comma-separated output with each row or line containing usage (and optionally charge) information for the specified parameters.

Syntax

emcli get_metering_data
[-start_date=<start date in mmddyyyy> [-end_date=<end_date in mmddyyyy>]]
[ -target_type=<target type> [-target_name= <target name> ] ]
[ -cost_center=<cost center name> ]
[ -charge]

Parameters

All parameters of this verb are optional.

- start_date–specifies the start date in mmddyyy format by which to filter data retrieval, commencing at midnight. Default is the start date of the current report cycle.

- end_date–specifies the end date in mmddyyy format by which to filter data retrieval, terminating at midnight. Default is the end date of the current report cycle.

- target_type–specifies the target types by which to filter data retrieval, provided targets of the specified types have been configured for Chargeback within the specified date range. Default is to retrieve data for all targets of all target types that have been configured for Chargeback within the specified date range.

- target_name–retrieves metering and charge data only for the named target of the specified target type. If the target name is invalid or has not been configured for the specified date range, no data retrieval occurs. The default retrieves data for all targets of the specified target type.

- cost_center–specifies a cost center name as it appears on the Cost Center tab in Chargeback. Retrieves appropriate metering and charge data provided the cost center name is valid as of the specified date range. Default value is the logged-in user. To retrieve metering and charge data for all cost centers, specify "All Users" (in quotes). Each user is also a consumer (cost center) in Chargeback. The logged-in user's privileges determine metering and charge data retrieved across different targets.

- charge_–retrieves both metering and charge data. Default retrieves only metering data.

Note:
The privileges required to view target information in Chargeback are:

- VIEW_CAT_TARGET: Allows you to view information for a specific target (active or inactive).

- VIEW_ANY_CAT_TARGET: Allows you to view information for any Chargeback target (active or inactive).

56.5.2 Data Retrieval Output

This get_metering_data verb generates the following output:

- CONSUMER_NAME: Name of the cost-center.

- TARGET_TYPE: Type of target.

- TARGET_NAME: Name of the target.

- ITEM_TYPE: Type of the item or metric. Possible values are: config, fixed, metric, property, and usage.

- CATEGORY_NAME: Possible values are: cpu, memory, storage, activity, instance, network, service, and software.

- ENTITY_NAME: Name of the shared entity (valid when the target is enabled in Chargeback in shared mode).

- ITEM_DISPLAY_NAME: Display name of the item or metric (in English language). Note: Translation support is currently not available.

- VALUE_AVERAGE: Average value for the metric on the given date (valid for numeric metrics).

- STRING_VALUE: Value for the metric data (valid for string-based metrics).

- DATA_TYPE: Data type of the metric. This can be string or number.

- UNIT: Unit of the metric data (for example, req and GB).

- COLLECTION_DATE: Date on which the data is collected from the Enterprise Manager metric or configuration tables.

- PLAN_NAME: Name of the Charge Plan associated with the particular target.

- CHARGE: Charge value for the specific metric of the target on the particular date.

- DEFINED_RATE: Charge rate defined in the charge plan associated with the target.

- RATE_TYPE: Type of the rate. Possible values are: No value (blank), Flat, config, and usage.

- RATE_FACTOR: Adjustment rate for universal metrics, as defined in the associated extended Chargeplan.

- CHARGE_RATE_UNIT: Unit, corresponding to the metric or item, as defined in the Charge Plan for the specific rate. For example, for an item or metric named CPU Utilization (%) or CPU Utilization (%) per service, the value will be "CPU". For a metric or item named Base Charge, the value will be "instance", a metric named 'User Requests', the value will be "req"). If the rate defined in Chargeplan is $1 per MB per day, the value for this column will be "MB" .

- CHARGE_TIME_UNIT: Time unit as defined in the Charge Plan for the specific rate. (such as, hourly, daily, weekly, monthly, yearly). For example, if the rate defined in Charge Plan is $1 per MB per Day, value for this column will be daily.

Example: Sample Output

"CONSUMER_NAME","TARGET_TYPE","TARGET_NAME","ITEM_TYPE","CATEGORY_NAME","ENTITY_NAME","ITEM_DISPLAY_NAME","STRING_VALUE","PLAN_NAME","COLLECTION_DATE","CHARGE","VALUE_AVERAGE","DEFINED_RATE","RATE_TYPE","RATE_FACTOR","CHARGE_RATE_UNIT","CHARGE_TIME_UNIT","NORMALIZE_RATE","ADJUST_RATE","DATA_TYPE","UNIT"

"linbo","oracle_vm_guest","mySite/myWls/AdminServer:agent_push","fixed","instance"," ","Base Charge","","zone_plan",15-OCT-11 00:00:00,72,1,"3","flat",1,"instance","hourly",1,1,"number",""
"linbo","oracle_vm_guest","mySite/myWls/AdminServer:agent_push","fixed","instance"," ","Base Charge","","zone_plan",16-OCT-11 00:00:00,72,1,"3","flat",1,"instance","hourly",1,1,"number",""
"linbo","oracle_vm_guest","mySite/myWls/AdminServer:agent_push","fixed","instance"," ","Base Charge","","zone_plan",17-OCT-11 00:00:00,72,1,"3","flat",1,"instance","hourly",1,1,"number",""
"linbo","oracle_vm_guest","mySite/myWls/AdminServer:agent_push","fixed","instance"," ","Base Charge","","zone_plan",18-OCT-11 00:00:00,72,1,"3","flat",1,"instance","hourly",1,1,"number",""
"linbo","oracle_vm_guest","mySite/myWls/Cluster-0_vm0:assembly1","fixed","instance"," ","Base Charge","","zone_plan",15-OCT-11 00:00:00,72,1,"3","flat",1,"instance","hourly",1,1,"number","

56.5.3 get_metering_data Examples

Following are examples of verb usage:

- emcli get_metering_data: Returns metering information for all targets (active or enabled in Chargeback) for the current report cycle for the logged in user.

- emcli get_metering_data -charge: Returns metering and charge information for all targets (active or enabled in Chargeback) for the current report cycle for the logged in user.

- emcli get_metering_data -start_date=01202011-cost_center=ORG1: Returns metering information for all targets (active or enabled in Chargeback) starting from 20th January 2011 until the end of the month for the ORG1 cost-center.

- emcli get_metering_data -start_date=01152011 -end_date=02152011 -target_type=oracle_database: Returns metering information for all Oracle DB targets (active or enabled in Chargeback) that are owned by the logged in user, starting from 15th January 2011 until the 15th February 2011.

- emcli get_metering_data -target_type=host target_name=my_host -cost_center=organization1: Returns metering and charge information for "my_host" target (of type host) for the current report cycle for "organization1" cost-center.

- emcli get_metering_data -cost_center="All Users": Returns metering and charge information for all targets (active or enabled in Chargeback) in the current report cycle for all cost centers.

- Log in as cba_admin_user (who is the Chargeback Administrator) and enter the following commands:

- emcli get_metering_data: Returns metering information for all targets (active or enabled in Chargeback) for the current report cycle for the cba_admin_user.

- emcli get_metering_data -cost_center=ssa_user1: Returns metering information for all targets (active or enabled in Chargeback) that are owned by the ssa_user1 in the cost center in the current report cycle.

- If the value specified for the cost center, target type, and / or target name is incorrect, no data is generated. For example, the following commands will not generate data:

- emcli get_metering_data -target_type=unknown

- emcli get_metering_data -target_type=oracle_database -target_name=unknown_target
Note: There is no target with the name unknown_target configured in Enterprise Manager.

57 Introduction to Blueprints

This chapter introduces the cloud blueprints (referred to as blueprints in this chapter) for the Oracle Private Cloud and describes how to use them and create your own blueprints. It contains the following sections:

- Introduction to Blueprints

- Uses of the Blueprint

- Enterprise Manager Cloud Concepts

- Blueprint Concepts

- Deploying a Blueprint

- Blueprint Deployment Processing

- Blueprint Examples

- Conclusion

57.1 Introduction to Blueprints

Blueprints are used to describe a desired set of inter-related cloud resources. Like architectural blueprints, they describe what you want including how they are configured to interact with each other, but not how to build them. For instance, a blueprint does not describe the order in which to create the components. Rather, the blueprint orchestration logic figures that out based on inter-resource dependencies.

As an example, suppose you want to create a set of interacting cloud resources such as a WebLogic server instance, an application, and a database. To do so, you must first create the database and WebLogic server instance, deploy the application, and create a JEE datasource that is to be used by the WebLogic server to connect to the database.

You could perform all these operations manually, through the Enterprise Manager Cloud Self Service Portal. You would request creation of the WebLogic server and database and wait for either to complete. Periodically, you would check the status of the creation requests. Once the WebLogic server is created, you could deploy the application. When both the WebLogic server and database are created, you could create the JEE datasource.

Alternatively, you can use a blueprint that describes the four cloud resources to automate the process. To do so, you request instantiation of the blueprint and provide any input parameter values required by the blueprint. The blueprint initiates the creation of the resources and monitors the creation process to ensure that the dependent resources are automatically created as soon as the required resources are created.

The rest of this chapter introduces the blueprint concepts including how to deploy an existing blueprint as well as how to write your own. You can also refer to the Chapter 58, "Cloud Blueprints and Blueprint Reference"for more details on blueprints.

57.2 Uses of the Blueprint

A blueprint can be used to automate the creation of service instances. An EM_SSA_USER can use blueprints for various reasons:

- To create an application composed of several service instances and related cloud resources.

- To create such sets of instances several times.

- To facilitate instance creation for other EM_SSA_USERS.

- To eliminate the manual interactive steps that would otherwise be needed to create the set of instances

- To create a textual representation that can be reviewed and modified by other users.

To summarize, blueprints allow you to automate the creation of a set of service instances.

For example, the Quality Assurance team in an enterprise needs to allocate and release resources required to test a Web application. Instead of manually creating the service instances using the Enterprise Manager Cloud Self Service application, a blueprint can be used to perform this task. One person authors a blueprint so that all QA engineers can simply invoke the blueprint and enter a few input parameter values, after which the resources are created. Each user can watch as the blueprint processor displays the status for creation of each resource.

Another example illustrates the use of a blueprint to address simplicity and consistency concerns. An IT shop has a service template that accepts 8 input parameters. For a specific group of users, the same set of values should be used for 6 of those 8 parameters. A simple blueprint accepts 2 parameters and uses the template to instantiate the instances with the other 6 parameters consistently defined.

57.3 Enterprise Manager Cloud Concepts

The concepts described in this section are Enterprise Manager cloud concepts. They are not introduced as part of blueprints but are concepts used by blueprints. Since they form the basis for blueprints, they are summarized below.

- Oracle Cloud API: The Oracle Cloud API (see Chapter 45, "Introduction to Cloud APIs") defines a RESTful programming interface to consumers of IaaS, MWaaS, and DBaaS based on Oracle's solution stack. It is the Oracle Cloud API that the blueprint processor uses to create cloud resources based on what's specified by the blueprint.

- Oracle Cloud Resource Model: The Oracle Cloud Resource Model (see Chapter 46, "Cloud Resource Models") details the types of resources one can manipulate via the Oracle Cloud API and, for each type, both its attributes and the operations that can be performed on instances of a resource type.

- Cloud Resource Types and Attributes: The cloud resource model specifies a set of attributes that are common to all cloud resources, such as uri (its URI) and resource_status (with values such as READY and CREATING). The model also defines a set of cloud resource types and their attributes. Some resource types discussed later in this document are:

- DbPlatformInstance: A database platform instance is created using a template. It has attributes such as zone (location for DBaaS instance) and params,(to specify username and password).

- JavaPlatformInstance: A JEE server instance is also created using a template. Similar to DbPlatformInstance, a JavaPlatformInstance has attributes like zone. An example of a MWaaS-specific attribute is application_instance_deployments , that identifies all applications deployed to the instance.

- ApplicationInstanceDeployment: A resource type that represents an application deployment to a JavaPlatformInstance.

- Datasource: A resource type that represents a datasource of a JavaPlatformInstance. It is contained in a JavaPlatformInstance and refers to a DatabaseInstance.

- Resource Containment: A cloud resource can contain other resources. For instance, a Datasource of a JavaPlatformInstance is contained in the JavaPlatformInstance, and a template contains all service instances that were created using that template.
Every resource you create will be contained in a parent cloud resource. As part each resource definition in your blueprints, you will identify the resource's container.

57.4 Blueprint Concepts

A blueprint generally describes one or more cloud resources to be created. A user deploys a blueprint to create the resources described by the blueprint, at which time he provides any input parameter values used by the blueprint. To create each resource, the blueprint specifies its attribute values, which may be hard-coded, come from blueprint input parameters, or gleaned from other resources. In instantiating all the resources, the blueprint system determines the resource dependencies and uses this to order the resource creation and/or configuration required to properly create the instances described by a blueprint.

- Input Parameters: A blueprint can define input parameters. Each parameter definition specifies a name, datatype and optional specifications such as default value. A user who deploys a blueprint must specify the value for all parameters not having a default.

- Resource: A blueprint resource defines how to construct a cloud resource. It specifies a set of attributes and the parent cloud resource that is to contain the newly created resource. Each resource in a blueprint also has a name, which must be unique within a blueprint.

- Outputs: If outputs are specified, the specified values are displayed when blueprint deployment completes. Output parameters can be used to display information derived during deployment such as to inform the end user of the URL of a JEE application deployment.

- Intrinsic Functions: The blueprint language includes a set of predefined functions, illustrated below.

- Named Literals: As a programming convenience, blueprints can include a Data section. This is commonly used to specify symbolic names for literal values.

- Dependencies: Blueprint deployment is done by creating resources in parallel when possible, but a resource that depends on another resource can't be created until the latter resource is created. Such dependencies are often implicit, but blueprint processing identifies dependencies and orchestrates the overall steps.

57.5 Deploying a Blueprint

Prerequisites:

- You have the blueprint file.

- You must have installed the blueprint processor software.

A blueprint file is a text file in which the author has used the blueprint language to describe what is required. You deploy the blueprint by running the blueprint processor. For instance, on Windows you would use a command as follows:

bp_processor.py myfile.yml -u myname –c https://myhost/em/cloud

In this example, the –u option specifies the Enterprise Manager user id. If the password is not specified here, you are prompted for it when you execute the blueprint file. The –c option is used to specify the cloud URL. There are numerous other command line options. To view a description of supported options, enter

bp_processor.py deploy -h

57.6 Blueprint Deployment Processing

When a blueprint is deployed, the runtime logic processes the input parameters and orchestrates the creation of resources, doing so in parallel when possible. It also monitors progress and keeps the user informed. The output you see will depend on the blueprint and your environment. The example below shows the use of a blueprint that deploys a Weblogic server, application, database, and JEE Datasource. The output from running this blueprint should give you a sense for the blueprint processing steps.

C:\Users\myname\Dropbox\Code\blueprints>bp_processor.py xyzApp.yml -c
https://... -g deployment_report
...
Cloud user id: ssa_user1
Password:

The command you entered above specifies the cloud URL (via the -c option) and a directory into which to place the optional deployment report (the -g option). You then entered the credentials as prompted to proceed.

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:                https://...
User:                     ssa_user1
Blueprint file:           xyzApp.yml
Timeout:                  90 minutes, 0 seconds
Refresh frequency:        15 seconds
Inputs:
Pause points:             (none)
Debug logging:            False
Instance name:            default_instance_name
Graphical report dir:     deployment_report
Versions:
Blueprint processor:   12.1.0.5, 10-Oct-2012
Cloud protocol:        10001

14:24:59  INFO: Connecting to cloud: https://....

Note: Most of the information in the Invocation Summary reflects default values used because you have not specified the corresponding options.

Because the blueprint you are using defines input parameters, you are then prompted to provide values:

Input Parameter Value Entry
---------------------------
Zone to use for db (Zone1):
Password to use for db (welcome1):

In this example, you pressed Enter to accept the default value for zone, Zone1 and then entered a password.

Once all the necessary information has been provided, the blueprint processor starts creating the resources and monitoring the progress. This is depicted in a ”vertical timeline” so you can observe the progress. Each resource to be created is represented by a column. As the state transitions for each resource occur, they are noted in the corresponding column of the vertical timeline.

First, the list of all possible states, with their abbreviations, is printed. The states reflect the processing phases and the outcome of each phase.

14:25:03  INFO:
14:25:03  INFO: Resource State Timeline
14:25:03  INFO: -----------------------
14:25:03  INFO:   State Key:
14:25:03  INFO:      e : Evaluating
14:25:03  INFO:      ep: Evaluation pending. (See right side for pendee)
14:25:03  INFO:      es: Evaluation succeeded, creation requested
14:25:03  INFO:      EF: Evaluation failed
14:25:03  INFO:      c : Creating
14:25:03  INFO:      CF: Creation failed
14:25:03  INFO:      CS: Creation succeeded. State = READY
14:25:03  INFO:

To process any resource definition, the first step is to evaluate the expressions of the definition that describe the resource (State Key: e). In some cases, evaluation must be delayed (State Key: ep). Once fully evaluated, a creation request is made (State Key: c) and the processing for that resource is successfully completed (State Key: CS). After the State Key is printed, the resource creation timeline appears:

14:25:03  INFO:              MyApp
14:25:03  INFO:             /
14:25:03  INFO:            /    MyDB
14:25:03  INFO:           /    /
14:25:03  INFO:          /    /    MyDS
14:25:03  INFO:         /    /    /
14:25:03  INFO:        /    /    /    MyWebServer
14:25:03  INFO:       /    /    /    /
14:25:03  INFO:   ---------------------
14:25:03  INFO:   |    |    |    | e  |
14:25:04  INFO:   |    |    |    | es |
14:25:10  INFO:   |    |    |    | c  |
14:25:10  INFO:   |    | e  |    | .  |
14:25:12  INFO:   |    | es |    | .  |
14:25:17  INFO:   |    | c  |    | .  |
14:25:17  INFO:   |    | .  | e  | .  |
14:25:17  INFO:   |    | .  | ep | .  | Awaiting creation of MyWebServer
14:25:17  INFO:   | e  | .  |    | .  |
14:25:17  INFO:   | ep | .  |    | .  | Awaiting creation of MyWebServer
14:25:33  INFO:   |    | .  |    | .  |
14:25:50  INFO:   |    | .  |    | .  |
.....
14:41:18  INFO:   |    | .  |    | .  |
14:41:33  INFO:   |    | .  |    | CS |
14:41:33  INFO:   |    | .  |    |====|
14:41:44  INFO:   |    | .  | ep |    | Awaiting creation of MyDB
14:41:57  INFO:   | es | .  |    |    |
14:42:00  INFO:   | c  | .  |    |    |
14:42:17  INFO:   | .  | .  |    |    |
....
14:44:44  INFO:   | .  | .  |    |    |
14:45:16  INFO:   | CS | .  |    |    |
14:45:16  INFO:   |====| .  |    |    |
14:45:32  INFO:   |    | .  |    |    |
14:45:47  INFO:   |    | .  |    |    |
14:54:17  INFO:   |    | .  |    |    |
14:54:17  INFO:   |    | CS |    |    |
14:54:17  INFO:   |    |====|    |    |
14:54:18  INFO:   |    |    | es |    |
14:54:19  INFO:   |    |    | c  |    |
14:54:33  INFO:   |    |    | CS |    |
14:54:33  INFO:   |    |    |====|    |
14:54:33  INFO:   ---------------------
14:54:33  INFO:
14:54:33  INFO:

You can see that the timeline is vertical and the four resources are MyApp, MyDB, MyDS, and MyWebServer.

The MyWebServer resource definition is evaluated (state key: e) first. When this is successful, the creation process begins (state key: c). Parallely, the MyDB resource is evaluated and the creation process is initiated. Then the MyDS resource is evaluated and the blueprint processor determines that the evaluation cannot be completed until the MyWebServer resource is created. The same process is applicable to the MyApp resource. When the MyDB and MyWebServer resources are successfully created (state key: CS), the creation process for MyApp and MyDS resources can proceed.

Next, the Outputs section of our example blueprint is processed:

14:54:33  INFO: Output Processing
14:54:33  INFO: -----------------
14:54:33  INFO:
14:54:33  INFO: Output values specified: 1
14:54:49  INFO:    Value of URL: {u'ms_1': u'http://...}
14:54:49  INFO:

In the example above, you can see that the blueprint specifies one output value named ”URL” and a value is represented with https://….

When all the resources have been successfully created, the blueprint processor summarizes the results. This includes the processing summary for each requested resource as well as the timing information for each resource and the overall run:

14:54:49  INFO: Blueprint Processing Summary
14:54:49  INFO: ----------------------------
14:54:49  INFO:
14:54:49  INFO: Resource State Summary:
14:54:49  INFO:    MyWebServer: READY
14:54:49  INFO:      URI: /em/cloud/jaas/javaplatforminstancerequest/163
14:54:49  INFO:      Cloud resource state: READY
14:54:49  INFO:      Timing info:
14:54:49  INFO:        Creation start:     14:25:04
14:54:49  INFO:        Creation end:       14:41:33
14:54:49  INFO:        Duration:           16 minutes, 29.6 seconds
14:54:49  INFO:    MyDB: READY
14:54:49  INFO:      URI: /em/cloud/dbaas/dbplatforminstance/byrequest/164
14:54:49  INFO:      Cloud resource state: READY
14:54:49  INFO:      Timing info:
14:54:49  INFO:        Creation start:     14:25:12
14:54:49  INFO:        Creation end:       14:54:17
14:54:49  INFO:        Duration:           29 minutes, 5.7 seconds
14:54:49  INFO:    MyDS: READY
14:54:49  INFO:      URI: /em/cloud/jaas/datasourcerequest/QA_app_DS@201
14:54:49  INFO:      Cloud resource state: READY
14:54:49  INFO:      Timing info:
14:54:49  INFO:        Creation start:     14:54:18
14:54:49  INFO:        Creation end:       14:54:33
14:54:49  INFO:        Duration:           0 minutes, 15.3 seconds
14:54:49  INFO:    MyApp: READY
14:54:49  INFO:      URI:
/em/cloud/jaas/applicationinstancedeploymentrequest/myApp@181
14:54:49  INFO:       Cloud resource state: READY
14:54:49  INFO:       Timing info:
14:54:49  INFO:         Creation start:     14:41:57
14:54:49  INFO:         Creation end:       14:45:16
14:54:49  INFO:         Duration:           3 minutes, 18.9 seconds
14:54:49  INFO:
14:54:49  INFO: Timing Summary (seconds):
14:54:49  INFO:    Client-side CPU time: 0 minutes, 6.474 seconds
14:54:49  INFO:    Elapsed time:
14:54:49  INFO:       Processing time:    29 minutes, 58.0 seconds
14:54:49  INFO:       Paused time:        0 minutes, 1.9 seconds
14:54:49  INFO:       Total elapsed time: 29 minutes, 59.9 seconds
14:54:49  INFO:
14:54:49  INFO: Graphical Report Generation
14:54:49  INFO: -------------------------------
14:54:49  INFO:
14:55:37  INFO: Graphical report generated: deployment_report/bp_report.html

C:\Users\myname\Dropbox\Code\blueprints>

57.7 Blueprint Examples

This section illustrates the use of the blueprint concepts and syntax by guiding the reader through progressively more complex examples of blueprints. If you do not plan to author any blueprints, you can skip this section.

57.7.1 Blueprint Structure and Basics

A cloud blueprint specifies a set of desired cloud resources and represents these resources via a text file. Blueprints leverage a standard for easily readable data-structured text called YAML.

YAML is a standard notation, like XML and JSON. As with JSON, YAML is used to represent information via lists, dictionaries, and nesting. These concepts are sufficient to capture all blueprint semantics.

57.7.1.1 Simple Blueprint

A blueprint is a document that you can think of as containing sections. The simplest useful blueprint specifies only the Resources section and a single resource. In this example, the resource is a database defined by a template.

Resources
MyDB:
Type: application/oracle.com.cloud.common.DbPlatformInstance+json
Container: ...  (refers to db template)
Properties: ... (provides properties of db)

The above blueprint defines one blueprint resource named MyDB. The Type entry specifies the media type for &rsquor;database' as defined by the Cloud Resource Model API. The Container entry identifies the parent cloud resource to contain the newly created object. (Per Chapter 46, "Cloud Resource Models", all cloud resources are created by adding them to existing containers). Being a database service instance, it will be created via the database template used to create the service. How to specify the container will be shown later, so we just use ellipses here. Similarly, the data required by that template is specified in the Properties entry and shown later.Now let us add an &rsquor;Inputs' section…

Inputs:
DbZone:
Type: String
DefaultValue: Zone1
Prompt: Zone to use for db
DbPassword:
Type: String
DefaultValue: welcome1
Prompt: Password to use for db
Sensitive: True
Resources:
MyDB:
Container: ...
Properties: ...

When the user requests deployment of this blueprint, he provides a value for the DbZone parameter or takes the default specified by the blueprint (Zone1). The value of user provided input parameters can be used by other parts of the blueprint, in particular to provide attribute values needed to create resources. More on this later.

57.7.1.2 Simple Resource: Database Service Instance

In a blueprint, one uses blueprint resources to describe the cloud resources to create. For each blueprint resource, the information required by the Cloud Resource Model is provided.

The following blueprint specifies a single resource to create a database service instance:

MyDB:
Type: application/oracle.com.cloud.common.DbPlatformInstance+json
Container: ...
Properties:
zone: ...
name: jbName
params:
username: app_user
password: change_me

Each resource definition in a blueprint specifies a name, a Container into which to add the resource, and Properties used to specify the characteristics of what to create. In this case:

- The name of the blueprint resource definition is MyDB. The name is used in the scope of a blueprint, e.g. to inform the user deploying a blueprint about progress for each resource. In more complex cases, we will see that the name can be referenced elsewhere within a blueprint.

- The Container entry specifies the URI of the container to which the new resource will be added. To create a database service instance, we identify the service template that corresponds to the kind of database we want. (We'll see how to do that when we introduce the topic of intrinsic functions.)

- The Properties entry specifies values needed to create the resource. In this case, the model requires that we specify zone, name, and params properties. These specify the zone in which the instance is to be created, its name, and a list of name/value pairs required by the selected template.

57.7.1.3 Intrinsic Functions

To operate on data, blueprints support the use of intrinsic functions. All function names begin with ”f_” and are invoked with a list of arguments.Continuing the above example, we use two intrinsic functions, to return the URI of the desired container and the desired zone.

Resources:
MyDB:
Type: application/oracle.com.cloud.common.DbPlatformInstance+json
Container:
f_getTemplateURI:
- Small Database Service Template_automation_VIMAL_si
- dbaas
Properties:
zone:
f_getZoneURI: ...
name: jbName
params:
username: app_user
password: ...

As you can see, the f_getTemplateURI function takes 2 arguments, the name of the template and its service type. The current supported service types are: dbaas, jaas, and iaas (Database-, Java-, and Infrastructure-as-a-Service). The f_getZoneURI is analogous to the f_getTemplateURI but for zones. Other intrinsic functions will be introduced below. The full set of functions is described in Chapter 58, "Cloud Blueprints and Blueprint Reference".

57.7.1.4 Simple Resource with Parameter

To the above example blueprint, we now add the use of 2 parameters. By doing so, the user who deploys the blueprint, can specify which zone and password to use.

Inputs:
DbZone:
Type: String
DefaultValue: Zone1
Prompt: Zone to use for db
DbPassword:
Type: String
DefaultValue: welcome1
Prompt: Password to use for db
Sensitive: True
Resources:
MyDB:
Type: application/oracle.com.cloud.common.DbPlatformInstance+json
Container:
f_getTemplateURI:
- Simple DB Template
- dbaas
Properties:
zone:
f_getZoneURI:
- f_path:
- "Inputs.DbZone.Value"
- dbaas
params:
username: app_user
password:
f_path:
- 'Inputs.Password.Value'

The Inputs section defines the two input parameters and the values of the parameters are accessed via the f_path intrinsic function. The f_path function is used to evaluate path expressions to access any data in your blueprint as well as any cloud resource data to which you have access. In our example, the path expression just uses the dot operator to access nested attributes, first access the Inputs attribute (Inputs section) of the blueprint and within that, the UserId attribute, and within that the Value attribute.

57.7.1.5 Data Section (Named Literals)

Suppose your blueprint creates several databases and suppose that you do not want to prompt the user for the username and password. Furthermore, you want to code your blueprint so that it is easy to change the password later. In a procedural language, you would use a named literal in order to document the intent and so that you can change it once at the top of your code. Within a blueprint, you do this by using the Data section.

Data:
QADBCreds:
user: sysman
password: sysman
Resources:
MyDB1:
Type: application/oracle.com.cloud.common.DbPlatformInstance+json
Container:
f_getTemplateURI:
- Small Database Service Template_automation_VIMAL_si
- dbaas
Properties:
zone:
f_getZoneURI:
- f_path:
- "Inputs.DbZone.Value"
- dbaas
params:
username:
f_path:
- ”Data.QADBCreds.user”
password:
f_path:
- ”Data.QADBCreds.password”
name: jbName

MyDB2:
Container:
...

In the above case, you can see that the Data section takes a YAML structure, which can be traversed via the &rsquor;path' function, in the same way shown for Inputs earlier.

57.7.2 Putting It All Together – Multiple Interdependent Resources

In this more elaborate example, we show how one might create a database and an application that uses it. To do so, the blueprint specifies four cloud resources:

- Database service instance

- Java service instance

- Datasource of the Java service instance

- Application of the Java service instance

New constructs are highlighted below

Inputs:
DbZone:
Type: String
DefaultValue: Zone1
Prompt: Zone to use for db
DbPassword:
Type: String
DefaultValue: welcome1
Prompt: Password to use for db
Sensitive: True
Macros:
# Return a name with unique (date-time) suffix
# The one argument is a 'name' string
f_myDescriptiveName:
- 1
- f_concat:
- arg_1
- '_'
- f_path:
- f_path:
- 'Info.time_suffix'
Resources:
MyDB:
Type: application/oracle.com.cloud.common.DbPlatformInstance+json
Container:
f_getTemplateURI:
- Small Database Service Template_automation_VIMAL_si
- dbaas
Properties:
zone:
f_getZoneURI:
- f_path:
- "Inputs.DbZone.Value"
- dbaas
params:
username: app_user
password:
f_path:
- "Inputs.DbPassword.Value"
name: jbName
MyWebServer:
Container:
f_getTemplateURI:
- PS4_LowHeapTemplate
- jaas
Properties:
name:
f_myDescriptiveName:
- jb_pf
zone:
f_getZoneURI:
- Zone1
- jaas
MyDS:
Type: application/oracle.com.cloud.jaas.DataSource
Container:
f_getResourceURI:
- MyWebServer
Properties:
name: QA_app_DS
jndi_name:
- jndi_1
- jndi_2
jdbc_driver: oracle.jdbc.OracleDriver
database_type: Oracle
database_connect_string:
f_concat:
- 'jdbc:oracle:thin:@'
- f_getResourceAttr:
- MyDB
- connect_string
username: app_user
password:
f_path:
- "Inputs.DbPassword.Value"
MyApp:
Type: application/oracle.com.cloud.jaas.ApplicationInstanceDeployment
Container:
f_getResourceURI:
- MyWebServer
Properties:
application_instance_component:
f_getAppCompURI:
- jbcomponent
- SSA_USER1
-
name: myApp
Outputs:
URL:
Description: URL of the deployed app
Value:
f_getResourceAttr:
- MyApp
- http_application_invocation_url

57.7.2.1 Macro Section

If you have a sequence of constructs that you tend to repeat, you can use macro expansion to improve the readability of your blueprint. Macros also enable you to encapsulate logic, for instance, you can modify the logic in one place to affect all code that refers to it.Our example blueprint defines a macro named f_myDescriptiveName. It takes one string parameter and appends ”_” as well as a string representation of the current time.

57.7.2.2 Attributes of Created Resources (Dependencies)

The key new feature introduced by this example is the ability to refer to attributes of created resources. For instance, the Cloud Resource Model for Datasource defines a database_connect_string attribute whose value is required to create a Datasource. The contents of the string will not be available until after the database is created, so it is clearly not something the blueprint author can know in advance. Instead, he uses an intrinsic function to refer to the needed property of the newly created database. (Each DatabasePlatformInstance exposes a &rsquor;connect_string' property.) To do this, the Datasource specifies the value of JDBCConnectString via the &rsquor;f_getResourceAttr' intrinsic function:

MyDS:
...
Properties:
...
database_connect_string:
f_concat:
- 'jdbc:oracle:thin:@'
- f_getResourceAttr:
- MyDB
- connect_string

In this case, the f_getResourceAttr function waits for the MyDB resource to be created and then returns the value of its connect_string property.Similarly, the creation of a Datasource is done by adding it to the JavaPlatformInstance that is created first, so we need to refer to the JavaPlatformInstance's URI.

MyDS:
...
Container:
f_getResourceURI:
- MyWebServer

In this case, the f_getResourceURI function waits for the MyWebServer resource to be created and then returns its URI. (In addition to adding a Datasource to MyWebServer, we also must add an ApplicationInstanceDeployment, so the same approach is used for both.)

Note: Though the f_path function can be used to achieve the same effect, the f_getResourceAttr knows to wait for the resource creation to succeed and its state be READY before attempting to get its attribute.

More generally, blueprint resources can refer to other resources and blueprint orchestration accounts for such dependencies, creating resources in parallel when possible.

57.7.3 Visual Depiction of Blueprint Processing

The blueprint processor can also generate an HTML report that includes a graphical representation of the blueprint. This may be used to help understand the overall structure of the blueprint and the relationship of blueprint entities. In addition, the report can include the results of deploying the blueprint.

The following example report is for the example blueprint described in Section 57.6, "Blueprint Deployment Processing". The first part of the report summarizes the run:

Figure 57-1 Blueprint Report Title

Next is the graphical depiction, in which two types of arcs are used. One depicts containment. For example, the containment of a datasource within a WebLogic server. The other depicts how data is used across the elements of a blueprint. If blueprint deployment is successful, the status of all resources will be Ready (green) and you can click on a resource, which links to another report section where you can view the values of its attributes at the time of creation.

Figure 57-2 Blueprint Graphical Depiction

This is followed by a legend to explain the graphical conventions:

Figure 57-3 Blueprint Legend

Finally, each created resource is summarized. (Clicking on a resource definition in the graphical depiction takes you directly to the resource summary for the selected resource.)

Figure 57-4 Blueprint Created Cloud Resources - I

Figure 57-5 Blueprint Created Cloud Resources - II

57.8 Conclusion

This ends the introduction to cloud blueprints. Many features are only described in Chapter 58, "Cloud Blueprints and Blueprint Reference" including:

- Blueprint macrosPath expressions for browsing the Cloud and blueprint Setting breakpoints and debugging blueprintsHints, tips, and frequently asked questions.

58 Cloud Blueprints and Blueprint Reference

This chapter serves as a reference to the blueprint processing features of Oracle Enterprise Manager Cloud. It presents concepts, describes how to install and run the blueprint processor, and documents the blueprint language. Also included are sections to help in your use of the blueprint processor, such as use of the blueprint debugger, what to do when errors are diagnosed, and frequently asked questions. Before reading this document, you must have read Chapter 57, "Introduction to Blueprints".

Note:
Click here to view a visual demonstration on how to automate the creation of cloud resources with Cloud Blueprints.

It contains the following sections:

- Installing the Blueprint Processor

- Optional Components for Graphical Summary Report

- Running the Blueprint Processor

- Blueprint Processing Phases

- Language Specifics

- Overview of Blueprint Content

- Dealing with Errors

- Simulation Mode

- Debugging with the Blueprint Processor

- Tips and Hints

58.1 Installing the Blueprint Processor

Installing the blueprint processor consists of two steps:

- Install Python 2.7, if not already present.

- Install the blueprint processor files.

To use the ”-g” option and generate graphical depictions of blueprints, additional software must be installed as described in Section 58.2, "Optional Components for Graphical Summary Report".

Detailed instructions to install the blueprint processor on Linux and Windows is given below.

Note:
Due to schedule constraints, this version of the blueprint processor is not localized and is available only in English.

58.1.1 Linux (Oracle Linux)

Installing the blueprint processor on Oracle Linux involves the following steps:

- Installing Python

- Installing the Blueprint Processor From Zip File

- Testing the Installation

58.1.1.1 Installing Python

- Download a version of Python, version 2.7 or higher (but not 3.x). For instance, use http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz.

- Untar it, for example by entering the following commands:
tar xzf Python-2.7.3.tgz

cd Python-2.7.3

- Execute these commands:
./configure --prefix=$HOME

make

make install

Note: During the configure step, you may see output that includes warnings about some modules that could not be created on your platform, but those modules may not be needed; their absence may not adversely affect use of the blueprint processor.

Python build finished, but the necessary bits to build these modules were not found:

bsddb185           dl                 imageop
sunaudiodev

To find the necessary bits, look in the setup.py in detect_modules() for the module's name.

Failed to build these modules:
sqlite3

- The python interpreter should be installed in your home bin directory. Test it. $HOME/bin/python2.7

- You should see the Python banner… something like this:

Python 2.7.3 (default, May 25 2012, 11:33:27)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

58.1.1.2 Installing the Blueprint Processor from Zip File

- Unzip the blueprint distribution file to a directory, e.g. named bp_installation

- To run the blueprint processor, you must do the following:
cd to the directory, e.g. bp_installation

Enter this command: python bp_processor.py <filename> <options>

58.1.1.3 Testing the Installation

- Navigate to the directory that contains the blueprint processor files.

- Enter this command to confirm you can run the blueprint processor, in this case just to see the help text:
$HOME/bin/python2.7 bp_processor.py helloWorld.yml -h

- You should see the help text, as follows:
Usage:

bp_processor.py [options] BlueprintFileName

Example:

bp_processor.py myfile.yml -i "name:Joe" -i "count:2" -u jabauer -c https://...

Options:

-h, --help         show this help message and exit
-c CLOUD_URI, --cloud_uri=CLOUD_URI.
Ex: https://myhost:4473/em/cloud
-u USER, --user=USER  user id
-p PASSWORD, --password=PASSWORD
password If not provided, you'll be prompted.
-t TIMEOUT, --timeout=TIMEOUT
timeout (seconds)
-i INPUT_VALUE, --input_value=INPUT_VALUE
<param name>:<param value> e.g. -i "name:Joe Blogs"
-r REFRESH_FREQUENCY, --refresh_frequency=REFRESH_FREQUENCY
# of seconds between dots in timeline. Zero: no dots
-n INSTANCE_NAME, --instance_name=INSTANCE_NAME
name of blueprint instance to create
-d, --debug              more logging, including http traffic
-E, --pause_error        Drop into debugger if error occurs
-I, --pause_input        Pause before processing Input section
-R, --pause_resource     Pause before processing Resource section
-O, --pause_output       Pause before processing Output section
-T, --pause_terminate
Pause before termination, but after output processing
or error
-g GRAPHIC_RESULTS, --graphic_results=GRAPHIC_RESULTS
Directory for deployed blueprint graphical report
-G GRAPHIC_BLUEPRINT, --graphic_blueprint=GRAPHIC_BLUEPRINT
Directory for undeployed blueprint graphical report

- Enter this command to simulate running a blueprint without having to connect to a cloud environment:
$HOME/bin/python2.7 bp_processor.py helloWorld.yml

You should see something like this...

[jabauer@zzzzzzzz blueprints]$ $HOME/bin/python2.7 bp_processor.py helloWorld.yml

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:          sim
User:               None
Blueprint file:     helloWorld.yml
Timeout:            90 minutes, 0 seconds
Ellipses frequency: 15 seconds
Inputs:
Pause points:       (none)
Debug logging:      False
Instance name:      default_instance_name

17:10:31 WARNING: No Resources specified in blueprint.  Nothing will be
created

17:10:31 INFO: Output Processing
17:10:31 INFO: -----------------
17:10:31 INFO:
17:10:31 INFO: Output values specified: 1
17:10:31 INFO:    Value of MyMsg: Hello World
17:10:31 INFO:
17:10:31 INFO: Blueprint Processing Summary
17:10:31 INFO: ----------------------------
17:10:31 INFO:
17:10:31 INFO: Timing Summary (seconds):
17:10:31 INFO:    Client-side CPU time: 0.218
17:10:31 INFO:    Elapsed time:
17:10:31 INFO:       Processing time:    0.0
17:10:31 INFO:       Paused time:        0.0
17:10:31 INFO:       Total elapsed time: 0.0

58.1.2 Windows

Installing the blueprint processor on Windows involves the following steps:

- Installing Python

- Installing the blueprint processor from Zip File

- Testing the Installation

58.1.2.1 Installing Python

- Go to http://www.python.org/download/releases/2.7.3. You will see that there are several options for installing Python.

- Download the MSI Installer. Run it. Accept the defaults suggested by the installer.

- Note the directory into which Python was installed, typically
;c:\python27

- Add the Python directory to your path, so you can run it from the command line:

- Windows XP

- Start -> My Computer -> Properties

- Select the Advanced tab

- Click Environment Variables

- You can update the path for &rsquor;Current User' and, if you have sufficient privileges, for &rsquor;System'. The latter is required if you want all users to be able to run Python.

- Add this to the end of the Path string:
;c:\python27

- Windows 7 (Windows Vista)

- From the Start menu, select My Computer, then select Properties.

- Select the Advanced System Settings tab on the left.

- Click Environment Variables.

- You can update the path for &rsquor;Current User' and, if you have sufficient privileges, for &rsquor;System'. The latter is required if you want all users to be able to run Python.

- Add this to the end of the Path string:
;c:\python27

- Click OK as needed (i.e. for two dialog boxes)

- Test the Python installation:

- Open a new command window. (The new environment variable value will not be visible in previously opened command windows.)

- Type python

- The Python interpreter should start.

- Type &rsquor;exit()'

58.1.2.2 Installing the Blueprint Processor from Zip File

- Unzip the blueprint distribution file to a directory, e.g. named bp_installation.

- To run the blueprint processor you will…

- cd to bp_installation

- Enter this command: python bp_processor.py <filename> <options>

- Alternatively use: bp_processor.py <filename> <options>

58.1.2.3 Testing the Installation

- Navigate to the directory that contains the blueprint processor files.

- Enter this command to confirm you can run the blueprint processor, in this case just to see &rsquor;help' text:
python bp_processor.py helloWorld.yml -h

- Enter this command to simulate running a blueprint without having to connect to a cloud environment:
python bp_processor.py helloWorld.yml

- You should see something like this, in particular the output value ”Hello World”:
C:\...>python bp_processor.py interactiveTests\helloWorld.yml

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:          sim
User:               None
Blueprint file:     helloWorld.yml
Timeout:            90 minutes, 0 seconds
Ellipses frequency: 15 seconds
Inputs:
Pause points:       (none)
Debug logging:      False
Instance name:      default_instance_name

17:10:31 WARNING: No Resources specified in blueprint.  Nothing will be created

17:10:31 INFO: Output Processing
17:10:31 INFO: -----------------
17:10:31 INFO:
17:10:31 INFO: Output values specified: 1
17:10:31 INFO:    Value of MyMsg: Hello World
17:10:31 INFO:
17:10:31 INFO: Blueprint Processing Summary
17:10:31 INFO: ----------------------------
17:10:31 INFO:
17:10:31 INFO: Timing Summary (seconds):
17:10:31 INFO:    Client-side CPU time: 0.218
17:10:31 INFO:    Elapsed time:
17:10:31 INFO:       Processing time:    0.0
17:10:31 INFO:       Paused time:        0.0
17:10:31 INFO:       Total elapsed time: 0.0

58.2 Optional Components for Graphical Summary Report

The blueprint processor can generate a summary report that includes a graphical depiction of the blueprint. (To generate such reports, use the –g or –G option.) For these options to produce reports, the following third party software must be installed.

- Install GraphViz: To install GraphViz, see http://www.graphviz.org. Download the software for your platform and follow the instructions.

- Install Pydot: To install pydot, see http://code.google.com/p/pydot/. Download the software (zip or tar file). The blueprint processor was tested using pydot version 1.0.28.
PyDot can be installed using setuptools. For example, sudo easy_install pydot

You can also use the setup.py script in the zip/tar file. From the directory into which you unzipped or untarred the file, run that script: python setup.py install

58.3 Running the Blueprint Processor

To deploy a blueprint, you run the blueprint processor and provide the name of the blueprint file plus any desired command options. For a full set of command options, use the command's –h option:

Usage:

bp_processor.py [options] BlueprintFileName

Example:

bp_processor.py myfile.yml -i "name:Joe" -i "count:2" -u jabauer -c https://...

Options:

-h, --help        show this help message and exit
-c CLOUD_URI, --cloud_uri=CLOUD_URI.
Ex: https://myhost:4473/em/cloud
-u USER, --user=USER  user id
-p PASSWORD, --password=PASSWORD
password If not provided, you'll be prompted.
-t TIMEOUT, --timeout=TIMEOUT
timeout (seconds)
-i INPUT_VALUE, --input_value=INPUT_VALUE
<param name>:<param value> e.g. -i "name:Joe Blogs"
-r REFRESH_FREQUENCY, --refresh_frequency=REFRESH_FREQUENCY
# of seconds between dots in timeline. Zero: no dots
-n INSTANCE_NAME, --instance_name=INSTANCE_NAME
name of blueprint instance to create
-d, --debug              more logging, including http traffic
-E, --pause_error        Drop into debugger if error occurs
-I, --pause_input        Pause before processing Input section
-R, --pause_resource     Pause before processing Resource section
-O, --pause_output       Pause before processing Output section
-T, --pause_terminate
Pause before termination, but after output processing
or error
-g GRAPHIC_RESULTS, --graphic_results=GRAPHIC_RESULTS
Directory for deployed blueprint graphical report
-G GRAPHIC_BLUEPRINT, --graphic_blueprint=GRAPHIC_BLUEPRINT
Directory for undeployed blueprint graphical report

Options that are not self explanatory are described below:

- Input_value: For each input parameter, you can provide a –i or –input_value string of the form <param name>:<value>. You should use quotation marks around each input parameter specification, e.g. -i "name:Joe Blogs". To provide values for more than one input parameter, use the - i command line option more than once. For example, bp_processor.py _processor.py myfile.yml -i "DbZone:Zone1" -i "DbPassword:myPw"7

- If an input parameter defined in the blueprint is not provided on the command line, you will be prompted as follows:
pause_*: Pause (enter the blueprint debugger), just prior to beginning the Input/Resource/Output processing phases.

In the case of pause_error, the debugger is entered in the event of an error. In the case of pause_terminate, the debugger is entered prior to terminating the blueprint processor. Use of the debugger commands is described in Section 58.9, "Debugging with the Blueprint Processor". If no CLOUD_URI is specified, the blueprint processing is simulated. See the section titled Section 58.8, "Simulation Mode".

- Timeout: The number of seconds after which the blueprint process must be terminated. (If the processor is waiting for completion of a cloud request, e.g. a POST request, termination occurs when that request completes.)

58.4 Blueprint Processing Phases

Blueprint processing is done in phases. Describing the phases, will help you:

- Understand how blueprints are evaluated and resources created.

- Set pause points at phase transitions. (This can help with cloud browsing and debugging as explained in Section 58.9.2, "Pause Points").

- Connect to the designated Cloud resource.

- Monitor the process. If creation succeeds, other resources may then become unblocked for creation. If creation fails, terminate the resource creation phase.

The phases are:

- Initialization: Parse the blueprint.

- Input Processing: If the blueprint defines input parameters and if some were not provided on the command line, the user is prompted for the parameter values.

- Resource Creation: For each resource defined in the blueprint, verify if the resource has no dependencies on other resources that have not been created yet, initiate creation.

- Output Processing: Evaluate and display any output values. (If the resource creation phase was terminated due to errors, some output values may not be available.)

A detailed description of each phase is given below.

58.4.1 Initialization

The blueprint file is read and parsed and a connection to the designated Cloud resource is made. The parsed blueprint content is captured in memory and then augmented. A member named Cloud is added, whose value is the Cloud resource as documented in Chapter 46, "Cloud Resource Models". Another member named Info, which provides environmental information, is also added. Its value is a set of name/value pairs such as time and a string like '13:02:45' representing the time when processing began. Oracle-provided macros are loaded into the Macros section of the blueprint (except for any whose name conflicts with a blueprint-defined macro).

58.4.2 Input Parameter Evaluation

Input parameter processing is then done and the input parameters set. Any parameters specified in the blueprint that were not provided on the command line are prompted for. Each input parameter value is stored in the Value attribute of the input parameter in the blueprint. The values can be accessed with this path expression: Inputs.<parameterName>.Value. (See Section 58.6.7.1, "Evaluation Intrinsics" for details.)

58.4.3 Resource Creation

To process the Resources section, each resource is effectively processed in parallel. The following is done for each resource:First, the expression specified for the Container section is evaluated. When successful and when the cloud resource it identifies is in the READY state, all expressions of the resource's Properties subsection are evaluated. (When evaluation of a resource's Properties or Container section cannot be completed and must wait, the resource is marked and the blueprint processor proceeds to process other resources. Periodically, it reattempts to evaluate this and any other marked resources.)Once all evaluation for a resource definition is complete, the document derived from the Properties section is used to request creation of the cloud resource (i.e. it is POSTed to the container URI). If successful, the URI of the newly created cloud resource is stored in the &rsquor;_uri' attribute of the blueprint's resource definition. At this point, that URI represents the resource that is being created.The blueprint processor then polls the resource being created to track its status. From a state of CREATING, the resource should eventually transition to a success or failure state. If it transitions to a failure state, the blueprint processor diagnoses the situation and terminates. If creation succeeds and the resource enters the READY state, this may enable evaluation of other resource definitions to proceed.If the timeout value specified on the command line is exceeded, the blueprint processor is terminated. Any cloud resources whose creation was initiated may continue in the &rsquor;creating' state for some time before succeeding or failing.In addition to timing out, other failures may occur such as an error evaluating an expression or an error code returned from the cloud, e.g. in response to a creation request. In all such cases, the blueprint processor diagnoses the situation and terminates.

58.4.4 Outputs

After all resources have been successfully evaluated, the Outputs section is processed, at which time each named output expression is evaluated and their values printed. Then a graphical report that depicts the blueprint and what got created is generated, if it was requested and a summary of blueprint processing is displayed to the user.

58.5 Language Specifics

A blueprint is a text file that represents a set of cloud resources that are to be created. The text is formatted in YAML or JSON. Both YAML and JSON are notations for representing data structures of lists and name/value pairs, which can be nested. A blueprint is such a structure. (See [YAML] and [JSON] for concise descriptions.)You can use JSON or YAML notation for your blueprints, but we recommend using YAML. With YAML you can write blueprints that are more concise and somewhat easier to read. YAML also offers useful capabilities not present in JSON, such as the ability to include comments. For these reasons, we have chosen to use YAML in the examples that follow. (Incidentally, YAML allows the inclusion of JSON notation in YAML documents, i.e. YAML is a superset of JSON.)

58.6 Overview of Blueprint Content

At the top level, a blueprint may contain any of the following name/value pairs, which can be viewed as blueprint section types:

- Inputs

- Data

- Macros

- Resources

- Outputs

Order of appearance in the blueprint is not significant. No other sections are allowed and each section can appear only once.No section is truly required in a blueprint, but you must include a Resources section with at least one resource definition if you intend to create a cloud resource via the blueprint. A section may only appear once in a blueprint.

58.6.1 Inputs Section

The Inputs section is used to describe input parameters. Each parameter has a unique name and has the following attributes:

- Type: ”String” or ”Number”. If ”Number” is specified, the input value must be numeric. (Default: ”String”.)

- Prompt: A string to be used when prompting. (Default: The parameter name.)

- DefaultValue: The value to use if the user responds to the prompt by simply pressing Enter. (Default: ””.)

- Order: The sequence in which the values need to be entered. If not specified, ordering is arbitrary.

- Sensitive: ”True” or ”False”. If ”True”, what the user enters interactively will not be echoed. (Default: ”False”.)

- Value: Set at runtime, using the value provided by the user (or the default value)

Processing input parameters starts with those input parameter values provided on the command line. For any not provided, the user is prompted.

58.6.1.1 Example 1

Inputs:
UserId:
DefaultValue: qa_user
Prompt: User id
Order: 1
Password:
Sensitive: True
Order: 2
...

In this blueprint snippet, the author has defined 2 input parameters. Both are of type String. A default user id is specified but the user must provide a password. If neither is provided on the command line, the use of Order assures that UserId is requested first.

58.6.1.2 Example 2

In this interaction

C:\work>bp_processor.py test2.yml -c https://... -u jon -p myPW -t 665

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:                https://xyxy.example.com:15430/em/cloud
User:                     ssa_user1
Blueprint file:           xyzApp.yml
Timeout:                  90 minutes, 0 seconds
Refresh frequency:        15 seconds
Inputs:
Pause points:             Inputs
Debug logging:            False
Instance name:            default_instance_name
Graphical report dir:     deployment_report
Versions:
Blueprint processor:   12.1.0.5, 10-Oct-2012
Cloud protocol:        10001

16:19:18 INFO: Connecting to cloud: https://...
User id (qa_user):
Password:
...

The user provided no input parameters as part of the command line, so he is prompted for the two values. He pressed Enter for the user id, accepting the default of qa_user. And he entered a password, which was not echoed.

58.6.1.3 Example 3

The following interaction is almost the same, except that the user id is provided on the command line:

C:\work>bp_processor.py test2.yml -c https://... -u jon -p myPW -t 665 -i "UserId:joe"

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:                https://xyxy.example.com:15430/em/cloud
User:                     ssa_user1
Blueprint file:           xyzApp.yml
Timeout:                  90 minutes, 0 seconds
Refresh frequency:        15 seconds
Inputs:
Pause points:             Inputs
Debug logging:            False
Instance name:            default_instance_name
Graphical report dir:     deployment_report
Versions:
Blueprint processor:   12.1.0.5, 10-Oct-2012
Cloud protocol:        10001

16:19:18 INFO: Connecting to cloud: https://...
16:19:19 WARNING: No Resources specified in blueprint.  Nothing will be created
16:19:19 INFO: Creating blueprint instance named default_instance_name
Password:
...

In this case, the user is only prompted for a password.Another example can be found at Section 58.6.7.1.4, "Example 3 - Default Input Parameter Value via Cloud Lookup" which uses an intrinsic function to perform a runtime lookup for the default value.

58.6.2 Resources Section

The Resources section is used to describe the cloud resources you wish to create. Each resource description has a unique name and has the following attributes:

- Container: The URI of the parent cloud resource.

- Type: The media type of the resource, as defined by the Cloud Resource Model. (see Chapter 46, "Cloud Resource Models"). (If the specified Container is a resource that is a subtype of ServiceTemplate, this value is optional and the default type of the ServiceTemplate is assumed.)

- Properties: A set of name/value pairs used to specify values required per the Cloud Resource Model.

For each resource you wish to create, you must know its type, its parent, and the properties you must provide to specify its characteristics. For more details, see the Chapter 46, "Cloud Resource Models".

For instance, a JavaPlatformInstance must specify:

- A container resource, using the URI of a JavaPlatformTemplate. (You choose a template by selecting one that creates an instance most suited to your needs.)

- The properties required by the Cloud Resource Model. For JavaPlatformInstance, these are:

- Name

- Zone (the URI of a zone)

Example

In a blueprint, the Resource description of a JavaPlatformInstance might look like this:

MyJavaServer1:
Container:
f_getTemplateURI:
- Small WLS
- jaas
Properties:
name: Foo
zone:
f_getZoneURI:
- Zone1
- jaas

The above example does not specify Type because, this is optional when the container is a subtype of ServiceTemplate. Had we wanted to explicitly specify the media type, we could have written:

MyJavaServer1:
Type: application/oracle.com.cloud.jaas.JavaPlatformInstance
Container:
...

Our example uses the f_getTemplateURI and f_getZoneURI intrinsic functions to look up the required URI's. Resource definitions have access to numerous such functions as described in Section 58.6.7, "Intrinsic Functions". Resource definitions can also use user-defined macros, as described in Section 58.6.5, "Macros Section".

58.6.3 Outputs Section

The Outputs section is used to describe the set of ”outputs” of a blueprint. In this release, outputs are just used by the blueprint author to specify information to display at the end of a successful deployment. For instance, he may define an output that displays the URL of an application deployed to a JavaPlatformInstance.Each output description has a unique name and one required attribute named ”Value”. That attribute generally specifies a blueprint expression whose value would be of interest to the user who instantiates a blueprint. (One may also include a ”Description” attribute for each output definition.)

Example

The following Outputs section specifies one output to display:

Outputs:
Application_URL:
Description: URL of the deployed app
Value:
f_getResourceAttr:
- MyApp
- http_application_invocation_url

In this example, the output definition uses the f_getResourceAttr intrinsic function to retrieve the http_application_invocation_url attribute of a newly created ApplicationInstanceDeployment. (See Chapter 46, "Cloud Resource Models" for more information on that attribute.)

58.6.4 Data Section

The Data section contains arbitrary YAML text. The data defined in this section can be accessed through intrinsic functions and can be used in various ways during blueprint deployment. For instance, the author of a blueprint may wish to use the concept of named literals to improve the readability and maintainability of a blueprint. He may want to use short descriptive names instead of long literal values such as cryptic URI's. He may also anticipate needing to change a value used by a blueprint, in which case it can be specified once in the Data section and referenced throughout the blueprint.

Example

The following blueprint excerpts show a Data section that contains an item named db_conn_str, a long JDBC connect string that is referenced later in the a DataSource resource definition.

Data:
db_conn_str: 'jdbc:oracle:thin:sysman/sysman@hostname.zzz.com:15044:smay16'
Resources:
...
MyDatasource:
Type: application/oracle.com.cloud.jaas.DataSource
...
Properties:
name: jbTest
jdbc_driver: oracle.jdbc.OracleDriver
database_type: Oracle
database_connect_string:
f_path:
- Data.db_conn_str
...

58.6.5 Macros Section

The notation used in blueprints can be verbose. If you have a sequence of constructs that you tend to repeat, you can use macro expansion to improve the readability of your blueprint. Macros also enable you to encapsulate logic so that changes made one in section get reflected throughout the document. The Macros section is used to define macros that can be invoked/expanded from elsewhere in the blueprint. A macro invocation may occur wherever a function invocation is allowed, indeed, the notation is identical and one cannot tell from the invocation whether it is an intrinsic function or a macro that is being invoked. (In this way, a macro can be used to override an intrinsic function. Also, some Oracle-provided intrinsic functions are implemented as macros.)

Each macro definition has a unique name and its definition specifies two values:

- The number of arguments it uses.

- The textual representation of the macro expansion.

When a macro is invoked, its textual representation replaces the invocation. Wherever the textual representation specifies a value of arg_<integer>, the value of that argument is used instead.

Example

Consider this somewhat contrived blueprint:

Macros:
# Return a string that describes a resource being created
# The one argument is a 'name' string
f_myDescriptiveName:
- 1
- f_concat:
- "Resource "
- arg_1
- " created for blueprint instance "
- f_path:
- "Info.instance_name"
- " on "
- f_path:
- "Info.date"
Resources:
MyJavaServer:
Container:
f_getTemplateURI:
- Small WLS
- jaas
Properties:
name:
f_myDescriptiveName:
- MyFirstJavaServer
zone:
f_getZoneURI:
- Zone1
- jaas
Outputs:
NameOfServer:
Value:
f_path:
- "Resources.MyJavaServer.Properties.name"

The Macros section defines one macro named f_myDescriptiveName, which takes one string argument and constructs a larger string adding descriptive information.The macro is then invoked as part of the MyJavaServer resource definition. It is invoked with a value of ”MyFirstJavaServer” and the resource will be created with a &rsquor;name' property whose value is ”Resource MyFirstJavaServer created for blueprint instance myQAInstance on 5/9/2012”.

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:                https://...
User:                     sysman
...
13:32:22 INFO:
13:32:22 INFO: Output values specified: 1
13:32:22 INFO:    Value of NameOfServer: Resource MyFirstJavaServer created for
blueprint instance myQAInstance on 5/9/2012
...

58.6.6 Expressions

A blueprint uses &rsquor;expressions' to compute values at deployment time. In many cases, the expressions are simple literal string values such as a user_name attribute whose value is app_user. In other cases, values are constructed via user-defined macros (see Section 58.6.5, "Macros Section") and intrinsic functions (see Section 58.6.7, "Intrinsic Functions").

Two intrinsic functions, f_path and f_eval, are provided to evaluate the two types of expression string:

- Path expression

- Eval (or Blueprint) expression

These expression types are described below. They can be used not only in calls to f_path and f_eval but also in the blueprint debugger.

58.6.6.1 Path Expressions

Path expressions are similar to JSONPath [JSONpath] and XPath expressions and are used to extract values from blueprints and cloud resources as well as to traverse URI's that link you to other resources.The starting point for evaluating a path expression is generally the in-memory blueprint. Recall that it contains all the information from your blueprint plus these attributes:

- Cloud: the cloud resource, which is defined in Chapter 46, "Cloud Resource Models" and has attributes that describe the overall cloud as well as those that enable you to traverse to all other cloud resources (to which you have access).

- Info: a section that contains runtime information you may wish to refer to such as the instance name specified when blueprint processing was initiated, the current date, etc.Other blueprint-processor-computed values such as the input parameters provided by the end-user and the URI's of resources once they have been created.

All this information can be accessed via path expressions. The rest of this section summarizes syntax and semantics and provides examples. As you have seen in earlier sections, the f_path intrinsic function provides one way to evaluate path expressions. In the examples that follow, we use another mechanism, the blueprint debugger, described further in Section 58.9, "Debugging with the Blueprint Processor". As you will see, you can use this not only to explore the contents of your blueprint runtime data but also to explore the contents of the cloud.In the following descriptions, <doc> refers to the YAML data structure on which the operator acts.

In the example: Cloud.zones.elements[0]

The value of the runtime blueprint's Cloud attribute is the first <doc>. The dot-operator in &rsquor;.zones' is applied to that <doc>, yielding a new <doc> whose value is that of the zones attribute of the first <doc>. Numerous examples are provided to illustrate the use of the operators.

58.6.6.2 Operator Summary

- Dot Operator (”Member of”): <doc>.<name>: As seen in previous examples, the dot operator selects a value from a document. If <doc> has an attribute named <name>, the value of <name> is returned. Otherwise, expression evaluation fails.

- Square Bracket (”List Indexing”): <doc>[<integer>]: If <doc> is a list of values, the value of the <integer>th element is returned. Otherwise, expression evaluation fails. Indexing is zero-based, i.e. the first element is specified as ”<doc>[0]”.

- Dollar Sign (”Literal string prefix”): <doc> $ <string>: To begin a path expression with a string literal, use the &rsquor;$' prefix, for instance:
$"/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51" ->

In the above example, you know the URI of a specific resource and use the arrow operator to view its contents.

This syntax is only useful at the beginning of a path expression, but for consistency with the overall path notation, one can place the $ operator anywhere in a path expression. Other path expression operators operate on the <doc> to the left. The $ operator simply replaces the left value with the value of the literal string to the right.

In short, the $ operator returns the literal string value. If the right operand is not a literal string, expression evaluation fails.

- Arrow (”URI Traversal”): <doc> ->: If <doc> is a URI, traverse to the identified resource and return its document. In other words, perform a GET on the URI specified by <doc>. If <doc> is not a URI or the GET fails, expression evaluation fails.
For instance, in this path expression…

Cloud.zones.elements[0].uri->

the expression to the left of the arrow operator returns the URI of a zone. The arrow operator is used to traverse to the zone, i.e. it performs a GET on the URI and displays the contents:

context_id: A1B44A4EBCC4563125D9D0A3AAE4FD51
description: Zone for Physical Pool
media_type: application/oracle.com.cloud.jaas.Zone+json
name: Zone1
resource_state:
state: READY
service_family_type: jaas
service_instances:
elements: []
media_type: application/oracle.com.cloud.common.ServiceInstance+json
total: '0'
uri: /em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51

In most cases the traversal operator is sufficient, but you can also specify traversal qualifiers. In particular, you can specify a media type and request parameters. These are optional and enclosed in square brackets. Multiple qualifiers can be specified, separated by commas.To specify a media type, use a string (enclosed in quotes or double quotes).

- To specify a request parameter there are two styles:

- Identifier

- Identifier = quotedValue

Overall, there are 3 forms of traversal qualifiers

- quotedValue:
media type

- Identifier:
a request parameter that has no value

- Identifier = quotedValue
a request parameter that has a value

For instance, the following path expression traverses to the cloud URI and specifies three qualifiers (a media type and two request parameters).

Cloud.uri->
["application/oracle.com.cloud.common.ServiceTemplateFinds+json", filters='{"filters": {"service_family_type":"jaas"}', name]

The first parameter is the media type to be used to request that the cloud process a filter/query as described in Chapter 46, "Cloud Resource Models". The remaining two are request parameters, also described in Chapter 46, "Cloud Resource Models". The second is named &rsquor;filters' with a value that specifies the filtering to perform (expressed as a JSON string). The last is named &rsquor;name' and has no value. This specifies that the name attribute is to be returned.

58.6.6.3 Example: Viewing all values of Info

As noted above, the Info section contains environmental information that may be of use when constructing your blueprint. This example shows how to see those values that are currently available in the Info section.Suppose you are looking for a value you can use to construct a unique name. You run the blueprint processor and enter debug mode. (You can do this by specifying ”-I” on the command line.

C:\Users\jabauer\Dropbox\Code\blueprints>bp_processor.py helloWorld.yml

-c https://xyxy.example.com:15430/em/cloud -u sysman -p sysman -I ...

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:                https://xyxy.example.com:15430/em/cloud
User:                     sysman
Blueprint file:           helloWorld.yml
...

...Pause point, prior to Input processing...
For command info, enter (h)elp

Paused: Info
date: 1/11/2013
date_suffix: '1_11_2013'
instance_name: default_instance_name
time: '16:47:7'
time_suffix: '16_47_7'
uuid: 81dcaf6895fa4fb881e82d1c16ef7025

Here, you see that there are 6 values stored in the Info section. There is one named uuid that is a universally unique hexadecimal string. You may prefer to go with time_suffix, as being sufficiently unique and more readable.More values may be added between the time of writing this document and when the blueprint processor ships, so you can use this technique to see what's available in the version you are using.

58.6.6.4 Examples: Viewing Blueprint Values

Suppose you have a blueprint that begins with…

Inputs:
DbPassword:
Type: String
DefaultValue: welcome1
Prompt: Password to use for db
Sensitive: True

Say you run the blueprint processor and specify command line options to pause just before processing the Inputs and Resources section, e.g. you specify ”-RI”.

...Pause point, prior to Input processing...
For command info, enter (h)elp

Paused: Inputs.DbPassword
DefaultValue: welcome1
Prompt: Password to use for db
Sensitive: true
Type: String

At the first pause point above, you enter the expression &rsquor;Inputs.DbPassword' and see that it has the attributes you specified in your blueprint. That includes DefaultValue, Prompt, and Sensitive. Note that it does not have an attribute named Value because input processing has not been performed yet.

Paused: c
...continuing...

Input Parameter Value Entry
---------------------------
Password to use for db (welcome1):

...Pause point, prior to processing Resources section...
For command info, enter (h)elp

Paused: Inputs.DbPassword.Value
welcome1

Paused: Inputs.DbPassword
DefaultValue: welcome1
Prompt: Password to use for db
Sensitive: true
Type: String
Value: welcome1

You then enter c to continue and are prompted for a password. You enter one, which is not echoed because you specified that it was Sensitive.Then the second (prior to processing the Resources section) pause point is reached. You enter "Inputs.DbPassword.Value" to see the value of your password and then enter "Inputs.DbPassword" to see the value of all attributes for the DbPassword input parameter.

58.6.6.5 Examples: Browsing Your Cloud

Path expressions also offer an easy way to explore the resources in the cloud and their attributes. That is because, at the beginning of blueprint processing, the cloud resource (as defined in Chapter 46, "Cloud Resource Models") is read and placed into the in-memory blueprint structure. By starting your path expression with Cloud, you can browse attributes of the Cloud resource and navigate via URI's to any other resource to which you have access.

To start, we look at the description of the cloud to which you connected:

Paused: Cloud.description
This represents the Cloud resource of the Oracle Enterprise Manager Cloud Management solution
Paused

Now let us do something more useful, for example, look at the cloud's zones attribute:

Paused: Cloud.zones
elements:
- media_type: application/oracle.com.cloud.jaas.Zone+json
name: Zone1
service_family_type: jaas
uri: /em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51
- description: Zone for Physical Pool
media_type: application/oracle.com.cloud.common.DbZone+json
name: Zone1  type: self_service_zone
uri: /em/cloud/dbaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51
- media_type: application/oracle.com.cloud.opc.OpcZone+json
name: OPC Zone
service_family_type: opc
type: opc
uri: /em/cloud/opc/opczone
media_type: application/oracle.com.cloud.common.Zone+json
total: '3'

Here, we see that the &rsquor;zones' attribute contains three attributes, elements, media_type, and total. Their meanings are described in Chapter 46, "Cloud Resource Models".

We wish to focus on the first zone listed, so we use the square bracket (list indexing) syntax:

Paused: Cloud.zones.elements[0]
media_type: application/oracle.com.cloud.jaas.Zone+json
name: Zone1
service_family_type: jaas
uri: /em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51

We can further specify that we wish to focus on the &rsquor;uri' attribute by adding another dot-operator:

Paused: Cloud.zones.elements[0].uri
/em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51

To view the resource to which that URI refers, we add the arrow (traversal) operator:

Paused: Cloud.zones.elements[0].uri->
context_id: A1B44A4EBCC4563125D9D0A3AAE4FD51
description: Zone for Physical Pool
media_type: application/oracle.com.cloud.jaas.Zone+json
name: Zone1
resource_state:
state: READY
service_family_type: jaas
service_instances:
elements: []
media_type: application/oracle.com.cloud.common.ServiceInstance+json
total: '0'
uri: /em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51

As you would expect, you can continue to add to your path expressions, for instance you can write "multi-hop" expressions that traverse multiple URIs, e.g. …

Paused: Cloud.service_templates.elements[0].uri->zones.elements[0].name
Zone1

Paused: Cloud.service_templates.elements[0].uri->zones.elements[0].uri->
context_id: A1B44A4EBCC4563125D9D0A3AAE4FD51
description: Zone for Physical Pool
media_type: application/oracle.com.cloud.jaas.Zone+json
name: Zone1
resource_state:
state: READY
service_family_type: jaas
service_instances:
elements: []
media_type: application/oracle.com.cloud.common.ServiceInstance+json
total: '0'
uri: /em/cloud/jaas/zone/A1B44A4EBCC4563125D9D0A3AAE4FD51

Paused:

In the above example, the service_templates attribute of the Cloud is used to identify the first service template. We then traverse its URI to get to the template, where we identify the first zone in its list of supported zones. We then traverse its URI to get to the full definition of the zone.In most cases the traversal operator is sufficient, but if there is no default media-type defined for the URI, you may need to specify the media-type to be retrieved, as specified in Chapter 46, "Cloud Resource Models". In the following example, we provide a media type even though it wasn't needed.

Paused: Cloud.service_templates.elements[0].uri->
["application/oracle.com.cloud.jaas.JavaPlatformTemplate"]

context_id: D2520A0CFFE348BCE040F20A4C1B2D8F
created: '2013-01-02 09:35:52.0'
default_instance_media_type:
application/oracle.com.cloud.jaas.JavaPlatformInstance+json
...

Similarly, you can use the traversal qualifier syntax to specify request parameters as defined in Chapter 46, "Cloud Resource Models". For example:

Paused: Cloud.service_templates.elements[0].uri->[created, resource_state]
created: '2013-01-02 09:35:52.0'
resource_state:
state: READY

58.6.6.6 Eval or Blueprint Expressions

An &rsquor;eval' (aka &rsquor;blueprint') expression is any expression you can include in your blueprint.

Example: Simple Intrinsic Function Evaluation

Eval expressions can be evaluated in the debugger via the &rsquor;e' or &rsquor;eval' command. After entering the command, you enter the lines that comprise the expression followed by an empty line. Suppose you want to experiment with the f_concat intrinsic:

Paused: e
Eval: f_concat:
Eval:  - xxx
Eval:  - yyy
Eval:
xxxyyy
Paused:

You enter the call to f_concat (in 3 lines) and the value is printed after you terminate the expression with an empty line.

This time you nest another call:

Paused: e
Eval: f_concat:
Eval:  - xxx
Eval:  - f_path:
Eval:    - 'Inputs.DbPassword.Value'
Eval:  - yyy
Eval:
xxxmySecretyyy
Paused:

As you can see, this provides a way to experiment with snippets of blueprint.

Example: Lookup Intrinsic Function

In this example, suppose your blueprint includes the use of f_getTemplateURI to look up a template URI:

Resources:
MyDB:
Container:
f_getTemplateURI:
- Small DB
- dbaas

If you think the wrong URI is being returned, you can check like this…

Paused: e
Eval:       f_getTemplateURI:
Eval:         - template1
Eval:         - jaas
Eval:
/em/cloud/jaas/javaplatformtemplate/BFAB458D36BDA87EE040E50A038F6D45
Paused:

This shows the URI value returned by f_getTemplateURI with the arguments you entered.

58.6.7 Intrinsic Functions

Intrinsic functions are functions that blueprints can use to compute/return desired information. For instance, the f_concat function returns the concatenation of its string arguments and the f_getZoneURI function looks up and returns the URI of a zone. The normal usage of intrinsic functions is to provide values needed as part of the Resources and Outputs sections, but an intrinsic function can be placed wherever a literal value is allowed. For instance, one can use an intrinsic to derive the DefaultValue used for an Input parameter.

This section describes the currently available intrinsic functions.

58.6.7.1 Evaluation Intrinsics

These two intrinsics are used to evaluate expressions (of different types) and return a single value.

58.6.7.1.1 f_path(pathExpr)

Apply the pathExpr string to the blueprint document, returning the specified value.

Parameters

- pathExpr: e.g. ”member.subMember…”
A path expression that describes how to traverse and extract information from the document. See Section 58.6.6.1, "Path Expressions".

58.6.7.1.2 Example - Value from Data Section

To specify a resource's property value using a literal value defined in the Data section of your blueprint …

...
params:
MasterUser:
f_deref:
- "Data.QADBCreds.user"
...

58.6.7.1.3 Example 2 - Value from Inputs Section

To do the same as above, only using an input parameter value …

...
params:
MasterUser:
f_deref:
- "Inputs.my_param.value"
...

58.6.7.1.4 Example 3 - Default Input Parameter Value via Cloud Lookup

Intrinsic functions can appear in sections other than the Resources section. For instance, this blueprint shows the use of f_path in the Inputs section.

Inputs:
JavaSvcZone:
DefaultValue:
f_path:
- 'Cloud.zones.elements[0].name'
Type: String
Prompt: Enter the name of a jaas zone
...

The blueprint author here wants to provide an arbitrary default zone name, so the path expression selects the first zone that appears in the &rsquor;zones' attribute of the cloud. The default value (shown in the prompt) is computed at runtime:

Input Parameter Value Entry
---------------------------
Enter the name of a jaas zone (east_coast_zone):

58.6.7.1.5 f_eval(blueprintExpr)

Evaluate blueprintExpr, returning the specified value. See Section 58.6.6.6, "Eval or Blueprint Expressions" for information on blueprint expressions.

Parameters

blueprintExpr: YAML text to be evaluated as if it appeared in a blueprint.

58.6.7.1.6 Example (Contrived)

The f_eval intrinsic is used internally by the blueprint processor, and it's unlikely you will need to use it. (You just use the blueprint expression directly.) One reason you might want to use this function is if you have a variable whose value is a blueprint expression in the form of a YAML string.

Data:
demoOfYamlMultilineText: |
This is a multi-
line text string which is
carefully indented. :-)
myBlueprintExpressionText: |
f_concat:
- 'Mister '
- 'Mxyzptlk'
Outputs:
demoOfYamlMultilineText:
Value:
f_path:
- 'Data.demoOfYamlMultilineText'
myBlueprintExpressionText:
Value:
f_path:
- 'Data.myBlueprintExpressionText'
useOfEvalonExpressionText:
Value:
f_eval:
- f_path:
- 'Data.myBlueprintExpressionText'

Which results in this output:

18:49:58 INFO: Output Processing
18:49:58 INFO: -----------------
18:49:58 INFO:
18:49:58 INFO: Output values specified: 3
18:49:58 INFO:    Value of demoOfYamlMultilineText: This is a multi-
line text string which is
carefully indented. :-)
18:49:58 INFO:    Value of myBlueprintExpressionText: f_concat:
- 'Mister '
- 'Mxyzptlk'
18:49:58 INFO:    Value of useOfEvalonExpressionText: Mister Mxyzptlk

58.6.7.2 Resource Access Intrinsics

These intrinsics are used to access resource attributes. As part of their operation, unlike f_path, they assure that the resource is in the READY state, waiting if needed.

58.6.7.2.1 f_getResourceAttr(bpResName, pathExpr)

Get the value of a cloud resource attribute after it is READY.

Parameters

- bpResName: Resource name (specified in blueprint)

- pathExpr: Same semantics as used in f_deref, only against the document of the cloud resource identified by bpResName.

- Returns: result of evaluating pathExpr of the resource, once it is created and its resource_state is READY.

Example 1

To add an application to a MW platform, an Application resource can use this Container clause…

Container:
f_getResourceAttr:
- myJavaPlatform
- uri

Example 2

To access the name of the zone in which your MW platform was created, you can write…

f_getResourceAttr:
- myPlatform
- zone.name

58.6.7.2.2 f_getResourceURI(bpResName)

Get the URI for a blueprint-defined resource. This is just a shorthand for using f_getResourceAttr with the specified attribute being &rsquor;uri'.

Parameters

- bpResName: Name used in the blueprint resource definition.

- Returns: URI

Example

To define a Datasource resource that is to be contained in a JavaPlatformInstance resource created elsewhere in your blueprint…

MyDatasource:
Type: Datasource
Container:
f_getResourceURI:
- MyJavaServer

58.6.7.3 Lookup Intrinsics

These intrinsics search for a template, zone, or application component, returning its URI.

58.6.7.3.1 f_getTemplateURI(name, type)

Get the URI for a template, based on its name and type.

Parameters

- name: Template name

- type: A service type name. The current list of allowed values is iaas, jaas, and dbaas

- Returns: URI

Example

A blueprint resource to create a database using template simpleDb, could be written…

Container:
f_getTemplateURI:
- simpleDb
- dbaas

58.6.7.3.2 f_getZoneURI(name, type)

Get the URI for a zone, based on its name and type.

Parameters

- name: Zone name

- type: A service type name. The current list of allowed values is iaas, jaas, and dbaas

- Returns: URI

Example

To get the URI of zone EMEA_db_zone…

f_getZoneURI:
- EMEA_db_zone
- dbaas

58.6.7.3.3 f_getAppCompURI(name, owner, version) …

Get the URI for an application component, based on its name, owner, and version.

Parameters

- name: Application component name

- owner: Owner of application component

- version: Version of application component. If blank, the latest version is used.

- Returns: URI

Example

To get the URI of the most recent version of the application component jbcomponent, owned by SSA_USER1 …

f_getAppCompURI:
- jbcomponent
- SSA_USER1
-

Note that the third argument is required.

58.6.7.4 Debugging Intrinsics

These intrinsics are used to establish breakpoints or printpoints.

58.6.7.4.1

f_break(expression, [breakpointMessage])

Pause evaluation of the blueprint, print optional message, and enter blueprint debugger.

Parameters

- expression: any blueprint expression

- breakpointMessage: Message to be printed when the intrinsic function is invoked, just prior to entering the debugger.

- Returns: Value of expression. This is computed when the &rsquor;continue' command is entered.

Note: See Section 58.9, "Debugging with the Blueprint Processor" for examples and other information on how to use breakpoints to help debug your blueprints.

58.6.7.4.2 f_print(expression, [printpointMessage])

Print a line that displays the value of expression. Pause evaluation of the blueprint, print optional message, and enter blueprint debugger.

Parameters

- expression: any blueprint expression

- printpointMessage: Message to be printed when the intrinsic function is invoked, just prior to entering the debugger.

- Returns: Value of expression.

Note: The line printed looks like this:

>>> Printpoint [<printpoint message>]:

Value = <expression>

See Section 58.9, "Debugging with the Blueprint Processor" for examples and other information on how to use breakpoints to help debug your blueprints.

58.6.7.5 Other Intrinsics

f_concat(string1, … stringN):

Returns the concatenation of the string arguments.

Parameters

string*: A string to be concatenated with the other string arguments

Example

To set the description of a JavaPlatformInstance to ”Created by blueprint FOO on <current date>” …

Resources:
MyJavaServer:
...
Properties:
description:
f_concat:
- "Created by blueprint FOO on "
- f_path:
- "Info.date"
...

58.7 Dealing with Errors

This section illustrates various types of errors you may encounter and, by example, how to interpret/resolve the issues.

58.7.1 YAML Syntax Errors

Any syntax errors encountered by the YAML parser are diagnosed by the parser. Consider this blueprint snippet…

# Example of YAML syntax error
Data:
userId: Lex
password: changeMe
...

In the above example, the YAML parser would detect an indentation error and diagnose it like this:

18:55:59 ERROR: Error loading blueprint YAML:
while parsing a block mapping
in "<string>", line 2, column 1:
Data:
^
expected <block end>, but found '<block mapping start>'
in "<string>", line 4, column 3:
password: changeMe
^

The second half of the diagnostic, the ”expected” part, is usually the most helpful. In this case, it tells you the error was detected at the token &rsquor;password', what it was expecting, and what it found.One common error to avoid is the use of tabs in the YAML file. YAML does not allow tab characters.

58.7.2 Protocol Version Mismatch

A diagnostic like this…

Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:              http://xyxy.example.com:4473/em
User:                   sysman
Blueprint file:         examples/evalintrinsic.yml
Timeout:                90 minutes, 0 seconds
Refresh frequency:      15 seconds
Inputs:
Pause points:           Inputs, Termination
Debug logging:          False
Instance name:          default_instance_name
Versions:
Blueprint processor: 12.1.0.4 May 25
Cloud protocol:      10001

19:05:06 INFO: Connecting to cloud: http://xyxy.example.com:4473/em
19:05:07 ERROR: Cloud protocol version mismatch.  Expected 10001.  Found None.

The diagnostic in bold, indicates that the blueprint processor was able to connect to the site but did not get the expected response. In particular, the site returned no x-specification-version value as part of the HTTP response.This can happen if you specified an incorrect cloud URI. For instance, in the above example, the URI was not of the form

https://host:port/em/cloud

A common mistake is to omit the ”/cloud”. Also, do not forget to use https, not http.If the diagnostic indicates it found a protocol version that is lower than the one expected, that may indicate that you are using a version of the blueprint processor that requires a more recent version of Enterprise Manager.

58.7.3 Expression Evaluation Error

As part of blueprint processing, an attempt to evaluate an expression may result in an error. Examples of errors include:

- Passing the wrong number of parameters to an intrinsic function

- Referring to a non-existent intrinsic function

- Referring to a non-existent cloud resource such as a zone or template

When an expression evaluation error occurs, the issue is diagnosed and the expression is displayed. For instance, consider this contrived blueprint:

Outputs:
ExampleValue:
Value:
f_concat:
- MyApp

To keep the example short, the blueprint only has an Outputs section and one expression, which is a call to f_concat. Notice that f_concat requires at least two parameters, but only one is provided. When the blueprint processor is run for this blueprint, this is displayed:

15:26:25  INFO: Output Processing
15:26:25  INFO: -----------------
15:26:25  INFO:
15:26:25  INFO: Output values specified: 1
15:26:25 ERROR:    Value of ExampleValue: Expression could not be evaluated.
Error is...
15:26:25 ERROR: Function/macro concat requires parameter count between 2 and 99,
not 1
15:26:25 ERROR: Expression being evaluated at the time:
15:26:25 ERROR:    {'f_concat': ['MyApp']}
15:26:25  INFO:

The blueprint processor attempts to print the value of &rsquor;ExampleError' when the error occurs. After displaying the diagnostic, the expression being evaluated at the time of the error is displayed (in JSON notation).Expressions are generally nested, and the error may occur within a subexpression. In that case, the diagnostic includes an expression stack, so that you can see the specific expression in error as well as the outer context. For instance, consider this contrived blueprint:

Outputs:
ExampleValue:
Value:
f_concat:
- aaa
- bbb
- f_concat:
- ccc

Notice that the expression involves two uses of f_concat. The outer use is correct, but there is an error with the inner use. When the blueprint processor is run for this blueprint, this is displayed:

15:42:50  INFO: Output Processing
15:42:50  INFO: -----------------
15:42:50  INFO:
15:42:50  INFO: Output values specified: 1
15:42:50 ERROR:    Value of ExampleValue: Expression could not be evaluated.
Error is...
15:42:50 ERROR: Function/macro concat requires parameter count between 2 and 99,
not 1
15:42:50 ERROR: Expression evaluation stack follows (with failed expression at
bottom) ...
15:42:50 ERROR: -----
15:42:50 ERROR: |   Expr: {'f_concat': ['aaa', 'bbb', {'f_concat': ['ccc']}]}
15:42:50 ERROR: |   Expr: {'f_concat': ['ccc']}
15:42:50 ERROR: -----
15:42:50  INFO:

The expression evaluation stack shows the outer expression at the top and the expression with the error at the bottom. This stack only has two levels but in general there are many levels and each level of evaluation is shown. (The next example illustrates a multi-level expression evaluation stack.)When a macro is evaluated, its definition is expanded and this expansion is shown in the expression evaluation stack. For instance, consider this contrived blueprint:

Outputs:
ExampleValue:
Value:
f_getZoneURI:
- myZone
- jaas

In this case, the expression is a call to f_getZoneURI and the error is that the zone &rsquor;myZone' does not exist. When the blueprint processor is run for this blueprint, this is displayed:

15:57:17  INFO: Output Processing
15:57:17  INFO: -----------------
15:57:17  INFO:
15:57:17  INFO: Output values specified: 1
15:57:18 ERROR:    Value of ExampleValue: Expression could not be evaluated.
Error is...
15:57:18 ERROR: Name not found: myZone
15:57:18 ERROR: find_one for predicate {'f_EQ': [{'f_pathc': ['name']}, 'myZone']}
failed
15:57:18 ERROR: Expression evaluation stack follows (with failed expression at
bottom) ...
15:57:18 ERROR: -----
15:57:18 ERROR: |   Expr: {'f_getZoneURI': ['myZone', 'jaas']}
15:57:18 ERROR: |   Expr: {'f_pathc': [{'f_findByName': [{'f_pathc': [{'
f_findByName': [{'f_path': ['Cloud.service_family_types.elements']}, 'jaas']},
'.uri-.zones.elements']}, 'myZone']}, '.uri']}
15:57:18 ERROR: |   Expr: {'f_findByName': [{'f_pathc': [{'f_findByName': [{'
f_path': ['Cloud.service_family_types.elements']}, 'jaas']},
'.uri->.zones.elements']}, 'myZone']}
15:57:18 ERROR: |   Expr: {'f_findOne': [{'f_pathc': [{'f_findByName': [{'f_path':
['Cloud.service_family_types.elements']}, 'jaas']}, '.uri->.zones.elements']},
{'f_EQ': [{'f_pathc': ['name']}, 'myZone']}, {'f_concat': ['Name not found: ',
'myZone']}]}
15:57:18 ERROR: -----
15:57:18  INFO:

When the error is detected, a diagnostic is displayed: ”Name not found: myZone”. In this case, the error should be clear and you need not bother reading further.

But to illustrate how macro expansion and multi-level nested expressions are shown in the expression evaluation stack, we continue walking through the example. The top line of the stack shows the outer expression, which is what was specified in the blueprint as the expression for &rsquor;Value:'. Because the f_getZoneURI intrinsic is implemented as a macro, line 2 of the expression evaluation stack shows the expression after macro expansion. (It is long, so line wrapping is needed.)

Line 3 shows the subset of line 2 that was being evaluated when the error occurred and line 4 shows the same expression after the f_findByName macro was expanded.

Note:
Intrinsic macros use some internal functions, which is why you see names like f_pathc.

58.7.4 Cloud Resource Creation Error

In the previous example, the failure to create a resource was detected some time after the request was accepted. In some cases, the request to create may fail immediately.If an error occurs while attempting to create a resource, you will see a diagnostic that identifies the resource, the error code, and some diagnostic text.  In the following example, the attempt to create a resource name MyJavaPf failed with an HTTP code of 500.  Reading further, you can see diagnostic text like, ”cannot process request for …”, "Unable to start the Instance deployment" , and "stack_trace_cause" : "java.lang.IllegalArgumentException: Unable to service executable from service template…”

14:43:37 INFO:          MyJavaPf
14:43:37 INFO:         /
14:43:37 INFO:        /    MyDatasource
14:43:37 INFO:       /    /
14:43:37 INFO:   -----------
14:43:37 INFO:   | e  |    |
14:43:38 INFO:   | es |    |
14:43:42 ERROR: Failure creating resource MyJavaPf: 500
{
"messages" :
[
{
"date" : "2012-05-22T18:43:42+0000" ,
"text" : "cannot process request for
oracle.sysman.emInternalSDK.ssa.cloudapi.ResourceInteraction@767d6a37 on
/em/cloud/jaas/
javaplatformtemplate/C086733BCCF2A4F3E040F10A716049A8" ,
"hint" : " Unable to start the Instance deployment" ,
"stack_trace_cause" : "java.lang.IllegalArgumentException: Unable to
service executable from service template : C086733BCCF2A
4F3E040F10A716049A8\n\tat
oracle.sysman.ssa.mwaas.model.util.remoteop.DPSubmissionHelper.
_createRequestMWaasSetup(DPSubmissionHelper.
java:359)\n\tat oracle.sysman.ssa.mwaas.model.util.remoteop.DPSubmissionHelper.
_submitMWaasSetupServiceRequest(DPSubmissionHelper.
java:616)\n\tat
oracle.sysman.ssa.mwaas.model.util.remoteop.DPSubmissionHelper.submitMWaasSetupSe
rviceRequest(DPSubmissionHelper.
java:712)\n\tat
oracle.sysman.ssa.cloudapi.jaas.JavaPlatformInstance.GenerateJavaPlatformInstance
(JavaPlatformInstance.java:369)\n\tat
oracle.sysman.ssa.cloudapi.jaas.JavaPlatformTemplate.processRequest(JavaPlatformTemplate.java:128)\n\tat oracle.sysman.ssa.cloudapi.jaas.J
aasServiceProvider.processRequest(JaasServiceProvider.java:520)\n\tat
oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.perform
(EMCloudServlet.java:226)\n\tat
oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.performPost
(EMCloudServlet.j" ,
"stack_trace" :
"oracle.sysman.emInternalSDK.ssa.cloudapi.CloudServiceException:  Unable to start
the Instance deployment\n\t
at
oracle.sysman.ssa.cloudapi.jaas.JavaPlatformInstance.GenerateJavaPlatformInstance
(JavaPlatformInstance.java:373)\n\tat oracle.sysm
an.ssa.cloudapi.jaas.JavaPlatformTemplate.processRequest(JavaPlatformTemplate.
java:128)\n\tat oracle.sysman.ssa.cloudapi.jaas.JaasSer
viceProvider.processRequest(JaasServiceProvider.java:520)\n\tat
oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.
perform(EMCloudServlet.java:226)\n\tat
oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.performPost
EMCloudServlet.java:363)\n\tat oracle.
sysman.emInternalSDK.ssa.cloudapi.rest.AbstractRestServlet.doPost(AbstractRestServ
let.java:134)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:727)\n\tat
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)\n\tat
weblogic.servlet.internal.
StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)\n\tat
weblogic.servlet.internal.StubSecurityHe"
}
]
}

14:43:42 INFO:   | CF |    |
14:43:42 INFO:   -----------
14:43:42 INFO:
14:43:42 ERROR: Create of resource MyJavaPf failed

In this example, the HTTP code is 500. Any code that begins with a 5 indicates that the cloud server encountered an unexpected exception. This could be due to an environment issue or even a bug in the server software. Since a 5xx code reflects a server error, you should contact the self service administrator.In other cases, you may see a 4xx error code, which is returned when the client seems to have erred. In such cases, you should check the &rsquor;hint' and &rsquor;message' information for clues as to what went wrong, because you may be able to correct an error you made.The blueprint processor lists the diagnostic information it receives, but for security reasons, the cloud server may not provide sufficient information to diagnose the issue. In this case, you should contact the self service administrator, who in turn can often diagnose the issue by reviewing the log files for the cloud request.

58.8 Simulation Mode

The blueprint processor simulation mode can be used to aid in developing and testing blueprints. In this mode, the requests normally sent to the cloud server are simulated as well as the results returned by the server. Otherwise the blueprint processing logic is the same. To run the blueprint processor in this mode, you simply do not specify a cloud URI, i.e. do not use the -c option on the command line.

One benefit of simulation mode is the speed with which you can run a blueprint and try variations. Normal running of blueprints involves cloud requests for which the processing may be quite time consuming. When in simulation mode, the default behavior is that requests to create each resource consume 2 seconds and then succeed. Another benefit is the ability to test various possibilities. For each resource, you can specify the simulated processing time as well as whether the request succeeds or fails. To do this for a given resource, use the Simulation attribute when defining a resource. For example:

MyJavaServer1:
Container:
f_getTemplateURI:
- Small WLS
- jaas
Properties:
destination_zone:
f_getZoneURI:
- MyZone
- jaas
params:
user: app_user
password: pw_you_should_change
Simulation:
delay: 3
result: f

In the above example, creation of MyJavaServer1 will fail after 3 seconds.

58.9 Debugging with the Blueprint Processor

In addition to running the blueprint processor such that it deploys the blueprint and runs to completion, there are mechanisms you can use to debug blueprints. These are akin to mechanisms you may have used for debugging other applications, like print statements and the use of a debugger to interactively display values used by your application. To enter the debugger at a particular point of execution, you can use either of two mechanisms. The simpler approach, which will usually be sufficient, is to use command line options that cause execution to pause between processing phases. These are called ”pause points” and are described below. The alternative approach enables you to break at a more specific point, such as just prior to evaluating an expression for a specific resource's property. To do this, you edit the blueprint to include a breakpoint. When either a pause point or breakpoint is reached, control is transferred to the ”debugger”. In the debugger, you enter various commands to display contents of the blueprint as well as that of the cloud to which you are connected.

58.9.1 Printing Intermediate Results

The essence of blueprint processing is to evaluate expressions and create resources once all required expressions have been evaluated. At any point during evaluation of an expression, you may wish to see some intermediate results to confirm the value is what you expected. To do so, you use the intrinsic function f_print.

Wherever an expression can appear in a blueprint, you simply nest it in a call to print. Optionally, you can include a second text message argument. When print is encountered, the text message and expression value are printed.

Examples This (contrived) example shows how you plan to use a lookup table to access a template name for use in a call to f_getTemplateURI.

Data:
MyTemplates:
- {name: DbTemplate, type: dbaas}
- {name: MWTemplate, type: jaas}
...
Resources:
MyDB:
Container:
f_getTemplateURI:
- f_path:
- 'Data.MyTemplates[0].name'
- dbaas
Properties:
...

Suppose the code is not behaving as you intend, and you want to view the intermediate results before passing the name to f_ getTemplateURI. Wrap the expression in a call to f_print like this:

Data:
MyTemplates:
- {name: DbTemplate, type: dbaas}
- {name: MWTemplate, type: jaas}
...
Resources:
MyDB:
Container:
f_getTemplateURI:
- f_print:
- f_path:
- 'Data.MyTemplates[0].name'
- dbaas
Properties:
...

At runtime, the value of the expression is printed:16:52:05  INFO:
16:52:05  INFO: Resource State Timeline
16:52:05  INFO: -----------------------
...
16:52:05  INFO:
16:52:05  INFO:        MyDB
16:52:05  INFO:       /
16:52:05  INFO:   ------
16:52:05  INFO:   | e  |
>>> Print-point:
Value = DbTemplate
...

A print point message can also be provided, which is useful when you have multiple print points in your blueprint:

Data:
MyTemplates:
- {name: DbTemplate, type: dbaas}
- {name: MWTemplate, type: jaas}
...
Resources:
MyDB:
Container:
f_getTemplateURI:
- f_print:
- f_path:
- 'Data.MyTemplates[0].name'
- My printpoint for template name
- dbaas
Properties:
...

At runtime, the value of the expression is printed:

16:52:05  INFO:
16:52:05  INFO: Resource State Timeline
16:52:05  INFO: -----------------------
...
16:52:05  INFO:
16:52:05  INFO:        MyDB
16:52:05  INFO:       /
16:52:05  INFO:   ------
16:52:05  INFO:   | e  |
>>> Print-point: My printpoint for template name
Value = DbTemplate
...

58.9.2 Pause Points

The easiest way to specify points at which to enter the debugger by using pause points. These are specified via command line options as described in Section 58.3, "Running the Blueprint Processor". You can specify that the blueprint processor pause and the debugger entered at any of these points:

- Prior to evaluating the Input section and prompting for Input parameters

- Prior to evaluating the Resources section

- Prior to evaluating the Output section

- Prior to termination, but after output processing or detecting an error that will terminate processing

- When an error is encountered, just prior to termination

Once the debugger is entered, you can use the commands described in Section 58.9.4, "Debugger Commands" below. To continue blueprint execution, enter the continue command.

Example1

Suppose you just want to browse the cloud resources at your server. Specify the –I option, which drops you into the debugger before attempting any blueprint processing

Example 2

It is often useful to specify the &rsquor;-E' (or &rsquor;—error_debug') option, which drops you in the debugger if an error is encountered. (Otherwise, execution simply terminates.)

58.9.3 Breakpoints

Breakpoints are defined via the f_breakpoint intrinsic function as described in Section 58.6.7.4, "Debugging Intrinsics". Whenever evaluation encounters an f_breakpoint invocation, the optional text string parameter value is printed and the debugger entered.

58.9.4 Debugger Commands

When you enter the debugger, you will see a prompt of ”Paused:”. At this prompt, there are several commands you can use including ”help” or ”h”. For example:

Paused: h
Commands are...
p[ath] <path expression>: evaluate path expr
e[val]:                   read & evaluate blueprint expression
c[ontinue]:               continue blueprint instantiation
x[it]:                    exit blueprint processor
h[elp]:                   (this command)
If first token isn't a command, the line is treated as a path expression
Paused:

58.9.4.1 Path Command

The path command is used to evaluate arbitrary path expressions as described earlier in Section 58.6.6.1, "Path Expressions". (Unlike other debugger commands, the ”p” or ”path” keyword is not required.)

Example: Viewing values in blueprint

You can view values in your blueprint such as the value of an input parameter:

C:\bp> bp_processor.py -c https://...:15430/em/cloud -u sysman -p sysman -R
xyzApp.yml ...Blueprint Processor - Invocation Summary
----------------------------------------
Cloud URI:                https://xyxy.example.com:15430/em/cloud
User:                     sysman
Blueprint file:           xyzApp.yml
Timeout:                  90 minutes, 0 seconds
Refresh frequency:        15 seconds
Inputs:
Pause points:             Resources
Debug logging:            False
Instance name:            default_instance_name
Graphical report dir:
Versions:
Blueprint processor:   12.1.0.5, 10-Oct-2012
Cloud protocol:        10001

18:28:14  INFO: Connecting to cloud: https://xyxy.example.com:15430/em/cloud

Input Parameter Value Entry
---------------------------
Zone to use for db (Zone1):
Password to use for db (welcome1):

...Pause point, prior to processing Resources section...
For command info, enter (h)elp

Paused: path Inputs
DbPassword:
DefaultValue: welcome1
Prompt: Password to use for db
Sensitive: true
Type: String
Value: mySecret
DbZone:
DefaultValue: Zone1
Prompt: Zone to use for db
Type: String
Value: Zone1

Paused: Inputs.DbPassword.Value
mySecret

Paused:

In the above example, the simple test blueprint specifies two input parameters, DbZone and DbPassword.

- When prompted, you accepted the default, for the first parameter by pressing Enter. For the second, you entered your password.

- Notice that your command line options included ”-R”, which tells the blueprint processor to pause just prior to evaluating the Resources section of your blueprint. The Paused prompt appears, and you enter the path command with the path expression Inputs. The value of the Inputs section of the blueprint is then printed, namely the 2 input parameters and their values. The values include both those provided by the blueprint and the current runtime values, in this case Zone1 and mySecret.

- You then simply entered a path expression. The path command is assumed if no explicit command is entered.

58.9.4.2 Continue Command

The continue command is used to resume blueprint processing.Example

Continuing the previous example…

Paused: Inputs.MyNum
{Sensitive: true, Type: Number, Value: '123'}

Paused: continue

58.9.4.3 Exit Command

The exit command terminates the blueprint processor.

58.9.4.4 Eval Command

The eval command is used to evaluate any expression you can include in your blueprint.

Example

Suppose you are debugging your blueprint and it appears to be failing when looking up a template by name. You can use the eval command to evaluate expressions that appear in your blueprint.First you try executing the expression of interest as it appears in your blueprint:

Paused: e
Eval: f_getTemplateURI:
Eval:   - JaaS Template
Eval:   - jaas
Eval:
18:05:01 ERROR: Name not found: JaaS Template
Expression evaluation stack follows (with failed expression & diagnostic at
bottom) ...
-----
|   Expr: {'f_getTemplateURI': ['JaaS Template', 'jaas']}
|   Expr: {'f_path': [{'f_findByName': [{'f_path': [{'f_findByName': [{'f_path':
['Cloud.service_types.elements']}, 'jaas']}, '.uri->
.service_templates.elements']}, 'JaaS Template']}, '.uri']}
|   Expr: {'f_findByName': [{'f_path': [{'f_findByName': [{'f_path':
['Cloud.service_types.elements']}, 'jaas']}, '.uri->.service
_templates.elements']}, 'JaaS Template']}
|   Expr: {'f_findOne': [{'f_path': [{'f_findByName': [{'f_path': ['Cloud.service
_types.elements']}, 'jaas']}, '.uri->.service_
templates.elements']}, {'f_EQ': [{'f_path': ['name']}, 'JaaS Template']},
{'f_concat': ['Name not found: ', 'JaaS Template']}]}
| End of stack for error message: Name not found: JaaS Template
-----
Paused:

In the above example, you first enter the eval or e command. Then you enter the expression. Note that indentation is significant, as it always is in YAML.You see the same diagnostic you got when processing your blueprint, but now you can experiment with other values. Eventually, you realize that the template was created with two spaces in the name. You try with that name. It works, and the result of the expression evaluation, in this case a URI, is displayed.

Paused: e
Eval: f_getTemplateURI:
Eval:   - JaaS  Template
Eval:   - jaas
Eval:
/em/cloud/jaas/javaplatformtemplate/C086733BCCF2A4F3E040F10A716049A8
Paused:

58.10 Tips and Hints

This section lists a few tips and hints that may be useful while working with blueprints

58.10.1 Editing YAML - Notepad ++ Example

YAML documents use indentation to denote containment semantics. This may affect your choice of editor or editing options. For instance, YAML does not allow tabs, so you should disable any editor options that cause automatic tab insertion.As an example, suppose you use Notepad++ (http://notepad-plus-plus.org) . You would set the "replace by spaces" setting in Preferences -> Language Menu/Tab Settings. Better still, if your file has a suffix of ”.yml”, Notepad++ sets options to be suitable for YAML. For instance, it colorizes the text based on YAML syntax. If you do not use ”.yml”, you can manually set the language to YAML. (Settings -> Preferences -> Language Menu -> …)

58.10.2 YAML Duplicate and Name / Value Pairs

YAML requires that name/value pairs at the same level use unique names. Any duplicates override earlier occurrences. For instance, these two blueprints are equivalent:

Data:
Password: doNotChangeMe
UserId: QA_user
Password: changeMe
Resources:
...

Data:
UserId: QA_user
Password: changeMe
Resources
...

58.10.3 Explicit Dependencies

Suppose your blueprint defines two resources X and Y. If creation of X depends on the successful creation of Y, there will usually be a data-dependency between the two. However, if that's not the case, you can include anywhere in the definition of ResourceX an expression like …

f_getResourceAttr:
- ResourceY
- uri

58.10.4 Hint: Use &rsquor;-T' Option

While developing and testing your blueprint, it's a good idea to use the -T command line option. This tells the blueprint processor to drop you into the debugger prior to terminating for any reason. Should any results be unexpected, whether an outright error or just unexpected output, you can use the debugger to investigate.

58.10.5 Help Forums

Other questions? Post them at https://forums.oracle.com/forums/forum.jspa?forumID=220.

59 Infrastructure as a Service REST APIs

This chapter describes the resource models for Infrastructure as a Service (IaaS) REST APIs and their responses.The following sections are covered in this chapter. The first section provides a summary of all the REST APIs covered in this chapter whereas the following sections provide the IaaS resource models and other details.

- Summary of Infrastructure as a Service REST APIs

- Infrastructure as a Service Resource Model

- Changes for Infrastructure as a Service

- IaaS Zone [application/oracle.com.cloud.iaas.Zone]

- AssemblyInstance [application/oracle.com.cloud.common.AssemblyInstance+json]

- Scalability Group [application/oracle.com.cloud.common.ScalabilityGroup+json]

- VM [application/oracle.com.cloud.common.VM+json]

- VNet [application/oracle.com.cloud.common.VNet+json]

- NetworkInterface [application/oracle.com.cloud.common.NetworkInterface+json]

- VMTemplate [application/oracle.com.cloud.common.VMTemplate+json]

- AssemblyTemplate [application/oracle.com.cloud.common.AssemblyTemplate+json]

- IaasServiceFamilyType [application/oracle.com.cloud.iaas.IaasServiceFamilyType+json]

- Iaas Quota Definition [application/oracle.com.cloud.iaas.Quota+json]

- Infrastructure as a Service REST API Examples

- Support for Version 1000

59.1 Summary of Infrastructure as a Service REST APIs

The table below shows a summary of all the IaaS REST APIs covered in this chapter.

Table 59-1 Summary of IaaS REST APIs

Resource

Data Model

GET

POST

PUT

DELETE

Service Instance - VM

Table 59-6

Section 59.3.1.2

Section 59.3.1.1

Section 59.3.2

Section 59.3.3

Service Instance - Assembly Instance

Table 59-4

Section 59.3.1.3

Section 59.3.1.3

Supported

Supported

Support for version 10000

Not applicable

Section 59.4

Supported

Supported

Supported

Service Templates

- Table 59-9

- Table 59-10

Table 59-37

Table 59-37

Supported

Supported

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

59.2 Infrastructure as a Service Resource Model

Infrastructure as a Service supports the compute, network, and storage resources that form the basics of IT components. The IaaS resource model supports common cloud interactions on these resources.The following diagram illustrates the high level resource relationships and how they are related to the common resources:

Figure 59-1 IaaS Resource Model

The following describes the resource models that are supported by the IaaS family type.

59.2.1 Changes for Infrastructure as a Service

The following describes the high level updates to the resources for Infrastructure as a Service:

Table 59-2 Cloud Service Portal 12.1.0.5

Abstract

Description

Supports VMTemplate and AssemblyTemplate in ServiceTemplateFinds

Infrastructure as a service provides implementation for the filtering and searching of VMTemplate and AssemblyTemplate resources.

Supports cloning a VM

An VM resource can be created from another VM directly.

Supports saving a VM as a template

An VMTemplate resource can be created from a VM resource.

Supports Infrastructure Quota

Provides quota information and quota usage for Infrastructure as a service resources.

59.2.2 IaaS Zone [application/oracle.com.cloud.iaas.Zone]

This extends application/oracle.com.cloud.common.Zone. This resource represents the view of an IaaS Zone that supports IaaS resources.

Table 59-3 IaaS Zone Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

A GET against this URI refreshes the client representation of the Zone definition to this user.

1

12.1.0.4

name

String

Name of the Zone. SHALL be a UNICODE string to support different languages

1

12.1.0.4

description

String

Human readable description of the Zone. SHALL be a UNICODE string to support different languages.

The media type of the resource. "application/oracle.com.cloud.iaas.Zone"

0..1

12.1.0.4

resource_state

ResourceState

The resource state of the resource.

0..1

12.1.0.4

service_family_type

String

The name of the service family type that this zone is associated with.

It is "iaas" for this.

0..1

12.1.0.4

service_templates

Collection <ServiceTemplate>

Collection of the service templates that this zone supports and can be deployed into. Currently, VMTemplate and AssemblyTemplate are types of the members.

0..1

12.1.0.4

service_instances

Collection <ServiceInstance>

Collection of the service instances that are in this zone.

0..1

12.1.0.4

vnets

Collection <VNet>

Collection of the virtual networks that are associated with this zone.

0..1

12.1.0.4

backends

Collection <Physical Net>

Physical network available for the users that are associated with this zone.

0..1

12.1.0.6

media_type

String

The media type of the resource. "application/oracle.com.cloud.iaas.Zone"

1

12.1.0.4

59.2.3 AssemblyInstance [application/oracle.com.cloud.common.AssemblyInstance+json]

Extends: application/oracle.com.cloud.common.ServiceInstance

An AssemblyInstance is a logical grouping of resources from a deployment request of an Assembly template. The lifecycle of the resources in an AssemblyInstance can be managed centrally through the assembly instance.

Note:
A service template of Assembly type is deployed into an AssemblyInstance.

The following table describes the AssemblyInstance Data Model.

Table 59-4 AssemblyInstance Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

GET against this URI refreshes the client representation of the Assembly Instance definition.

1

12.1.0.2

name

String

Name of the Assembly Instance as given by the user. It is a UNICODE string to support different languages.

1

12.1.0.2

description

String

Human readable description of the Assembly Instance given by the user. It is a UNICODE string to support different languages.

0..1

12.1.0.2

based_on

URI

URI of the service template of which this AssemblyInstance is based on.

0..1

12.1.0.2

scalability_groups

Collection<ScalabilityGroup>

List of scalability groups that are included in this Assembly Instance.

0..1

12.1.0.2

servers

Collection<VM>

List of VMs that are directly included in this Assembly Instance.

0..1

12.1.0.2

status

String

Indicates the status of the Assembly Instance. This field contains the semantics that the service provider implements. For example, a service provider may implement an ONLINE status to indicate that all the entities, recursively, are in an ONLINE status. Or a service provider may implement an ONLINE status to indicate that critical entities are in an ONLINE status.

0..1

12.1.0.2

resource_state

ResourceState

Validity of the other Assembly Instance fields on a GET should be guaranteed only when the resource state is READY.

Otherwise, the client should not assume the validity of the fields.

1

12.1.0.1

created

Timestamp

Date and time, in ISO 8601 format, when the Assembly Instance was created.

0..1

12.1.0.2

expiry

Timestamp

Date and time, in ISO 8601 format, when the Assembly Instance should expire. If not specified, the Assembly Instance never expires.

0..1

12.1.0.2

params

{}

Vendor specific configuration parameters for this deployment.

0..1

12.1.0.2

deployment_plan

String

Vendor specific configuration parameters for this deployment in the prescribed XML format from the corresponding AssemblyTemplate that this AssemblyInstance is based on. When this is specified in the POST request, the content of this attribute will be processed to substitute the parameters for deploying an AssemblyInstance.

0..1

12.1.0.2

media_type

String

The media type of the resource.

1

12.1.0.4

59.2.4 Scalability Group [application/oracle.com.cloud.common.ScalabilityGroup+json]

Extends: application/oracle.com.cloud.common.ServiceInstance

The Scalability Group is a collection of servers and corresponding virtual networks. Scalability Group contains a collection of homogenous entities. The cloud service provider should enforce the semantics of ”sameness”. Operations such as scale_out and scale_in of the scalability group may be supported by the provider in the homogenous scalability group.

The following table describes the ScalabilityGroup Data Model.

Table 59-5 ScalabilityGroup Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

GET against this URI refreshes the client representation of the scalability group definition.

1

12.1.0.2

name

String

Name of the scalability group as given by the user. It is a UNICODE string to support different languages.

1

12.1.0.2

description

String

Human readable description of the scalability group given by the user. It is a UNICODE string to support different languages.

0..1

12.1.0.2

nodes

Collection<URI>

List of URIs that represent the entities making up this scalability group.

1

12.1.0.2

count

Integer

Count of the nodes that are in the scalability group.

1

12.1.0.2

status

String

Indicates the status of the scalability group. This field contains the vendor dependent semantics that the service provider implements. For example, a service provider may implement an ONLINE status to indicate that all the entities, recursively, are in an ONLINE status. Or a service provider may implement an ONLINE status to indicate that at least one entity is in an ONLINE status.

0..1

12.1.0.2

resource_state

ResourceState

Validity of the other scalability group fields is guaranteed only when the resource state is READY.

Otherwise, the client shall not assume the validity of the fields.

1

12.1.0.2

created

Timestamp

Date and time, in ISO 8601 format, when the scalability group is created.

1

12.1.0.2

max

Signed Integer

Maximum number of nodes this scalability group can hold. If not provided, the client should assume it is unlimited, which is the specified with as the value ”-1”.

0..1

12.1.0.2

min

Integer

Minimal number of nodes this scalability group should hold to be considered a functional scalability group. If not specified, the client should assume it is 1.

0..1

12.1.0.2

homogenous

Boolean

TRUE when the scalability group contains homogenous entities and FALSE otherwise.

1

12.1.0.2

59.2.5 VM [application/oracle.com.cloud.common.VM+json]

Extends: application/oracle.com.cloud.common.ServiceInstance

A VM is a computing container providing a complete system platform that supports the execution of a complete OS stack. The following table describes the VM Data Model.

Table 59-6 VM Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

GET against this URI refreshes the client representation of the VM definition.

1

12.1.0.1

name

String

Name of the VM as given by the user or generated by the platform.

1

12.1.0.1

description

String

Human readable description of the Server given by the user or generated by the platform. It is a UNICODE string to support different languages.

0..1

12.1.0.1

status

String

Current running status of this Server. The service provider can overwrite the valid values for this field and may implement status operations.

1

12.1.0.1

based_on

URI

URI of the service template on which this Server is based.

0..1

12.1.0.1

hostname

String

Qualified host name of this Server when available.

0..1

12.1.0.2

cpu

[Number,Number]

Numeric sizing of the CPU where the first number indicates the count of the CPU cores and the second number indicates the CPU speed in MHz per core.

1

12.1.0.1

memory

Number

Numeric sizing of the RAM in MByte.

1

12.1.0.1

disks

{String,Number}[]

Name and size in GB of local disks.

0..1

12.1.0.2

interfaces

Collection<NetworkInterface>

Network interfaces associated with this Server.

1

12.1.0.2

params

{ }

Vendor specific configuration parameters for this Server.

0..1

12.1.0.1

resource_state

ResourceState

Validity of the other Server fields is guaranteed only when the resource state is READY.

Otherwise, the client should not assume the validity of the fields.

1

12.1.0.1

created

Timestamp

Date and time, in ISO 8601 format, when the Server was created.

1

12.1.0.1

type

String

Type of server that represents this computational container (PHYSICAL, VIRTUAL).

1

12.1.0.1

os

String

OS information of the Server where appropriate.

0..1

12.1.0.1

media_type

String

The media type of the resource.

1

12.1.0.4

saved_templates

Collection <VMTemplate>

The collection of VMTemplate that were created based on this VM resource.

0..1

12.1.0.5

The status field of the VM Data Model should contain the running status of the VM. It is expected that the service provider implements at least the following valid values:

- STOPPED

- STOPPING

- STARTING

- STARTED

- SUSPENDED

- SUSPENDING

- RESUMING

- RESTARTING

- DELETED

59.2.6 VNet [application/oracle.com.cloud.common.VNet+json]

A VNet is a service that is capable of providing network addresses, routing rules, security constraints, and access limits.

The following table describes the VNet Data Model.

Table 59-7 VNet Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

GET against this URI refreshes the client representation of the VNet definition.

1

12.1.0.2

name

String

Name of the VNet as given by the user or generated by the platform. It is a UNICODE string to support different languages.

1

12.1.0.2

description

String

Human readable description of the VNet given by the user or generated by the platform. It is a UNICODE string to support different languages.

0..1

12.1.0.2

created

Timestamp

Date and time, in ISO 8601 format, when this VNet was created.

1

12.1.0.2

interfaces

Collection<NetworkInterface>

List of NetworkInterface resources that are part of the VNet.

0..1

12.1.0.2

59.2.7 NetworkInterface [application/oracle.com.cloud.common.NetworkInterface+json]

An instance of the network interface is identified by a network end point and consists of a complete address that can be interpreted by the underlying network infrastructure.

The following table describes the NetworkInterface Data Model.

Table 59-8 NetworkInterface Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

GET against this URI refreshes the client representation of the NetworkInterface definition.

1

12.1.0.2

name

String

Name of the NetworkInterface as given by the user or generated by the platform. It is a UNICODE string to support different languages.

1

12.1.0.2

description

String

Human readable description of the NetworkInterface given by the user or generated by the platform. It is a UNICODE string to support different languages.

0..1

12.1.0.2

address

String

Address of this interface. If an IP based protocol, specified as a dotted notation IPv4 or IPv6 address.

1

12.1.0.2

resource_state

ResourceState

The validity of the other NetworkInterface fields is guaranteed only when the resource state is READY. Otherwise, the client should not assume the validity of the fields.

0..1

12.1.0.2

mac

String

The MAC address of the network interface where appropriate.

0..1

12.1.0.2

59.2.8 VMTemplate [application/oracle.com.cloud.common.VMTemplate+json]

Extends: application/oracle.com.cloud.common.ServiceTemplate

VMTemplate is a class of ServiceTemplate. It is permissible to accept the ServiceTemplate media type on an instance of VMTemplate. VMTemplate is a preconfigured deployable entity that realizes a VM resource. The following table describes the VMTemplate Data Model.

Table 59-9 VMTemplate Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

A GET against this URI refreshes the client representation of the VMTemplate definition to this user.

1

12.1.0.1

name

String

A human readable name, given to the VMTemplate.

1

12.1.0.1

description

String

A brief description, given to the ServiceTemplate. SHALL be a UNICODE string to support different languages.

0..1

12.1.0.1

type

String

The String that describes the type of the VM Template.

This has value "Template".

1

12.1.0.1

created

Timestamp

Date and time, in ISO 8601 format, when the VMTemplate was created.

1

12.1.0.1

service_family_type

String

The name of the service family type that this service template is categorized under.

This has value "iaas".

0..1

12.1.0.4

default_instance_media_type

String

The default media type of the service instance that can be created using this template.

This has value "application/oracle.com.cloud.common.VM".

0..1

12.1.0.4

resource_state

ResourceState

Only a service template with READY state can be deployed.

0..1

12.1.0.1

deployment_params

List of Deployment Parameters

Contains the list of data structure of Deployment Parameters to indicate the parameters that may be specified during the service instance deployment using this template.

0..1

12.1.0.4

zones

List of Zones

Contains the list of Zone resources that this service template can be used to create service instances with.

0..1

12.1.0.2

service_instances

Collection<?>

Contains the list of service instances that are created with this template.

0..1

12.1.0.4

59.2.9 AssemblyTemplate [application/oracle.com.cloud.common.AssemblyTemplate+json]

Extends: application/oracle.com.cloud.common.ServiceTemplate+json

AssemblyTemplate is a class of ServiceTemplate. It is permissible to accept the ServiceTemplate media type on an instance of AssemblyTemplate.

AssemblyTemplate is a deployable entity that realizes an AssemblyInstance resource that may contain multiple resources that are interconnected. The following table describes the AssemblyTemplate Data Model.

Table 59-10 AssemblyTemplate Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

A GET against this URI refreshes the client representation of the AssemblyTemplate definition to this user.

1

12.1.0.2

name

String

A human readable name, given to the AssemblyTemplate.

1

12.1.0.2

description

String

A brief description, given to the AssemblyTemplate. SHALL be a UNICODE string to support different languages.

0..1

12.1.0.2

type

String

The String that describes the type of the Assembly Template.

This has value "Assembly".

1

12.1.0.2

created

Timestamp

Date and time, in ISO 8601 format, when the AssemblyTemplate was created.

1

12.1.0.2

service_family_type

String

The name of the service family type that this service template is categorized under.

This has value "iaas".

0..1

12.1.0.4

default_instance_media_type

String

The default media type of the service instance that can be created using this template.

This has value "application/oracle.com.cloud.common.AssemblyInstance".

0..1

12.1.0.4

resource_state

ResourceState

Only a service template with READY state can be deployed.

0..1

12.1.0.1

deployment_params

List of Deployment Parameters

Contains the list of data structure of Deployment Parameters to indicate the parameters that may be specified during the service instance deployment using this template.

0..1

12.1.0.4

zones

List of Zones

Contains the list of Zone resources that this service template can be used to create service instances with.

0..1

12.1.0.2

service_instances

Collection<?>

Contains the list of service instances that are created with this template.

0..1

12.1.0.4

definition

String

Contains the definition of the assembly template. This would be the OVF xml metadata representing the assembly template.

0..1

12.1.0.1

ovfdescriptor

String

Same as definition.

0..1

12.1.0.1

deploy_plans

List of Deployment Plans

Contains the list of Deployment Plans that are associated with the assembly instance. The deployment plans are pre-filled configuration metadata.

0..1

12.1.0.2

The following table describes the structure of the Deployment Plan.

Table 59-11 Deployment Plan Structure

Field

Type

Description

Occurs

name

String

The name of the deployment plan.

1

description

String

The description of the deployment plan.

0..1

xml

String

The deployment plan XML.

1

59.2.10 IaasServiceFamilyType [application/oracle.com.cloud.iaas.IaasServiceFamilyType+json]

Extends: application/oracle.com.cloud.common.ServiceFamilyType+json

The Infrastructure service family type describes the common service family type attributes and also the infrastructure specific attributes. The following table describes the IaaS Service Family Type Data Model.

Table 59-12 AssemblyTemplate Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

A GET against this URI refreshes the client representation of the ServiceFamilyType definition to this user.

1

12.1.0.4

name

String

A human readable name, given to the ServiceFamilyType.

1

12.1.0.4

description

String

A human readable description of the Service Family Type. SHALL be a UNICODE string to support different languages.

0..1

12.1.0.4

resource_state

ResourceState

The resource state of the resource.

0..1

12.1.0.4

media_type

String

The media type of the resource.

1

12.1.0.4

service_templates

Collection <ServiceTemplate>

The collection of service templates that are of this service family type.

0..1

12.1.0.4

zones

Collection <Zone>

The collection of zones that support service instances of this service family type.

0..1

12.1.0.4

instance_types

Collection <InstanceType>

The collection of instance types that are supported by this service family type.

0..1

12.1.0.4

quota_usages

Collection <QuotaUsage>

The collection of quota usages of the perspective family type of the authenticated user.

0..1

12.1.0.5

quota_def

Json Object

The family type specific quota metadata information, this may include some permission information.

The structure of this object would be documented in the perspective family type resource model.

0..1

12.1.0.5

instance_options

List of VM Size Options

The list of VM size options that may be available to the authenticated user.

0..1

12.1.0.4

The following table describes the structure of the VM Size option:

Table 59-13 VM Size Option Structure

Field

Type

Description

Occurs

Supported since release

name

String

The name of the VM Size. This may be used as the parameter for VM resource creations.

1

12.1.0.4

id

String

The ID of the VM Size.

1

12.1.0.4

cpu

Number

The amount of CPU.

1

12.1.0.4

memory

Number

The amount of Memory in MB.

1

12.1.0.4

local_storage

Number

The amount of local storage in GB.

1

12.1.0.4

The IaaS supports the following Quota Usage.

Table 59-14 Quota Usage for IaaS

Quota

Description

Supported since release

CPU

The number of CPUs in discrete units.

12.1.0.5

RAM

Memory size in MB.

12.1.0.5

Local Storage

The amount of storage local to the server in GB.

12.1.0.5

Extra Storage

The amount of storage external to the server in GB.

12.1.0.5

SWLIB Storage

The amount of storage in the Enterprise Manager Software Library.

12.1.0.5

Server

The number of servers in discrete units.

12.1.0.5

The IaaS Quota definition is described in the media type application/oracle.com.cloud.iaas.Quota.

59.2.11 Iaas Quota Definition [application/oracle.com.cloud.iaas.Quota+json]

This resource describes the definition for the Iaas quota. The following table describes the IaaS Quota Definition Data Model

Table 59-15 IaaS Quota Definition Data Model

Field

Type

Description

Occurs

Supported since release

uri

URI

A GET against this URI refreshes the client representation of the Iaas Quota definition to this user.

1

12.1.0.5

allowedSaveAsTemplate

Boolean

Indicates whether the authenticated user has permission to save a VM as a template.

1

12.1.0.5

allowedSaveToSwlib

Boolean

Indicates whether the authenticated user has permission to save entities to the Enterprise Manager software library.

1

12.1.0.5

allowedSaveToSwlibOnExpiry

Boolean

Indicates whether the authenticated user has permission to save VM as a template into the Enterprise Manager software library when the VM expires.

1

12.1.0.5

resourceQuotas

Collection <ResourceQuota>

The quotas of resources defined for the authenticated user.

1

12.1.0.5

The following describes the structure of the Resource Quota

Table 59-16 Structure of the Resource Quota

Field

Type

Description

Occurs

Supported since release

name

String

The name of the resource.

1

12.1.0.5

description

String

The description of the resource.

0..1

12.1.0.5

maxAllowed

Number

The maximum number of units that the authenticated resource is allocated. If this value is negative or not defined, the user does not have any limit on the amount that can be used.

0..1

12.1.0.5

unit

String

The measurement unit of the resource.

1

12.1.0.5

59.3 Infrastructure as a Service REST API Examples

The following sections provide examples of the different operations supported by the IaaS REST APIs:

- Creating a Service Instance

- Creating a VM

- POST to the IaaS Zone on which the VM is to reside

- POST to the VM Template on Which the VM is to be Based on

- Viewing Details of the VM Creation Status

- Creating an Assembly Instance

- Updating a VM Service Instance

- Changing the VM Status

- Changing the VM Size

- Adding a VM Disk

- Deleting a Service Instance

- Listing Service Instances

- Searching Service Templates

59.3.1 Creating a Service Instance

This section describes how to create a service instance using the Cloud resources.

59.3.1.1 Creating a VM

As VM is a service instance in the service family type "iaas", you need to identify the zone of the same family type in which to create the VM. There are two approaches to creating a VM:

1. POST to the IaaS Zone on which the VM is to reside

2. POST to the VM Template on Which the VM is to be Based on

Note the attributes in the submitted body for the POST. The pattern is the same for other service instance creations. Because the intention is clear, the "zone" attribute is not required while POSTing to the "iaas" Zone. Similarly, the "based_on" attribute is not needed when POSTing to the VMTemplate.

59.3.1.1.1 POST to the IaaS Zone on which the VM is to reside

The following shows the configuration for POSTing to Iaas Zone:

Table 59-17 POST Request Configuration for Creating a VM by Passing a Request on the IaaS Zone

Feature

Description

URI

/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"based_on":"/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1",
"cpu" : [2,0],
"memory" : "512",
"params":{
"server_prefix":"ZONEPOST",
"vnc_password":"welcome1",
"root_password":"welcome1"
}
}

Request method

POST

Supported since release

12.1.0.1 Cloud Service Portal plug-in

A sample of the response received from the above interaction is shown below.

{
"uri" : "/em/cloud/iaas/server/byrequest/102" ,
"name" : "VDOSI VM Creation 1345392541850" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "The Request with ID '102' is scheduled with Job Id 'C79997609390CB9BE040578CDA817D96'" ,
"date" : "2012-08-19T16:09:02+0000"
}
]
} ,
"context_id" : "102" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"service_family_type" : "iaas" ,
"created" : "2012-08-19T16:09:02+0000"
}

59.3.1.1.2 POST to the VM Template on Which the VM is to be Based on

The following describes the configurations for POSTing to the VMTemplate:

Table 59-18 POST Request Configuration for Creating a VM by Passing a Request on the VM Template

Feature

Description

URI

/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"zone":"/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D",  "cpu" : [2,0],  "memory" : "512",  "params":{    "server_prefix":"STPOST",    "vnc_password":"welcome1",    "root_password":"welcome1"  }}

Request method

POST

Supported since release

12.1.0.4 Cloud Service Portal plug-in

A sample of the response received from the above interaction is shown below.

{
"uri" : "/em/cloud/iaas/server/byrequest/101" ,
"name" : "VDOSI VM Creation 1345391921407" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "The Request with ID '101' is scheduled with Job Id 'C7999760937CCB9BE040578CDA817D96'" ,
"date" : "2012-08-19T15:58:47+0000"
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"service_family_type" : "iaas" ,
"created" : "2012-08-19T15:58:42+0000"
}

This response is the same as the previous version.

If the zone is not specified, then it is not possible for the Web service to determine where the VM should be deployed. The following interaction illustrates this:

Table 59-19 POST Request Configuration for Creating a VM by Passing a Request on the VM Template without mentioning the Zone

Feature

Description

URL

https://example.com/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"cpu" : [2,0],
"memory" : "512",
"params":{
"server_prefix":"STPOST",
"vnc_password":"welcome1",
"root_password":"welcome1"
}
}

Request method

POST

The following is the response from the Web service:

{
"messages" :
[
{
"hint" : "'zone' attribute needs to be specified to complete 'POST' request for 'application/oracle.com.cloud.common.VM' resource" ,
"stack_trace" : "oracle.sysman.emInternalSDK.ssa.cloudapi.rest.RestServletException: 'zone' attribute needs to be specified to complete 'POST' request for 'application/oracle.com.cloud.common.VM' resource\n\tat oracle.sysman.ssa.cloudapi.iaas.VMRequest.GenerateVMFromDeployment(VMRequest.java:149)\n\tat oracle.sysman.ssa.cloudapi.iaas.VMTemplate.processRequest(VMTemplate.java:93)\n\tat oracle.sysman.ssa.cloudapi.iaas.IaasServiceProvider.processRequest(IaasServiceProvider.java:582)\n\tat oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.perform(EMCloudServlet.java:236)\n\tat oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.performPost(EMCloudServlet.java:385)\n\tat oracle.sysman.emInternalSDK.ssa.cloudapi.rest.AbstractRestServlet.doPost(AbstractRestServlet.java:137)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:727)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:820)\n\tat weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)\n\tat webl" ,
"text" : "Did not successfully execute 'POST' resource operation on 'application/oracle.com.cloud.common.Cloud' identified by '/em/cloud/iaas/servicetemplate/vm/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Template:C76CEB5563EA5E13E040578CDA817FAF:0.1'" ,
"date" : "2012-08-19T16:02:51+0000"
}
]
}

59.3.1.2 Viewing Details of the VM Creation Status

After passing the POST request to create the VM, you can issue the GET request on the resource identified by the return URI to keep track of the VM creation status. See the table below for a sample GET request configuration for viewing the VM creation details.

Table 59-20 GET Request Configuration for Viewing Details of the VM Creation Status

Feature

Description

URI

/em/cloud/iaas/server/byrequest/101

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud/iaas/server/byrequest/101" ,
"name" : "VDOSI VM Creation 1345391921407" ,
"resource_state" :     {
"state" : "CREATING" ,
"messages" :
[
{
"text" : "The Request with ID '101' is being processed, and has Job Id 'C7999760937CCB9BE040578CDA817D96'" ,
"date" : "2012-08-19T16:14:11+0000"
}
]
} ,
"context_id" : "101" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"service_family_type" : "iaas" ,
"created" : "2012-08-19T15:58:42+0000"
}

Note that the resource_state attribute is showing CREATING state to indicate the VM is still being created. Once the VM is created, the same GET will return the VM resource with "READY" state, as shown below:

{
"uri" : "/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095" ,
"name" : "STPOST" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "C5CA59AF9386975E8AEA45B0F040F095" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"metrics" :     {
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"total" : "4" ,
"elements" :
[
{
"uri" : "/em/cloud/metric/iaas%3Avm%3ACPU_Utilization%3AC5CA59AF9386975E8AEA45B0F040F095" ,
"name" : "CPU_Utilization" ,
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"type" : "NUMBER" ,
"current_value" : "" ,
"current_time" : "2012-08-19T16:17:02+0000"
} ,
{
"uri" : "/em/cloud/metric/iaas%3Avm%3ATotal_Network_Throughput%3AC5CA59AF9386975E8AEA45B0F040F095" ,
"name" : "Total_Network_Throughput" ,
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"type" : "NUMBER" ,
"current_value" : "" ,
"current_time" : "2012-08-19T16:17:02+0000"
} ,
{
"uri" : "/em/cloud/metric/iaas%3Avm%3ATotal_Disk_Throughput%3AC5CA59AF9386975E8AEA45B0F040F095" ,
"name" : "Total_Disk_Throughput" ,
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"type" : "NUMBER" ,
"current_value" : "" ,
"current_time" : "2012-08-19T16:17:02+0000"
} ,
{
"uri" : "/em/cloud/metric/iaas%3Avm%3AFilesystem_Total_Used%3AC5CA59AF9386975E8AEA45B0F040F095" ,
"name" : "Filesystem_Total_Used" ,
"media_type" : "application/oracle.com.cloud.common.Metric+json" ,
"type" : "NUMBER" ,
"current_value" : "" ,
"current_time" : "2012-08-19T16:17:02+0000"
}
]
} ,
"service_family_type" : "iaas" ,
"status" : "STARTED" ,
"created" : "2012-08-19T16:15:21+0000" ,
"hostname" : "dadvfm0052.xyxy.example.com" ,
"cpu" :
[
"2" ,
"0"
] ,
"memory" : "512" ,
"disks" :
[
[
"default_disk" ,
"10240"
] ,
[
"7e8a5d25-7995-40c9-9b16-9274cc2d64f3.img (2)" ,
"6918"
] ,
[
"fcaf377c-ed3e-4823-a9b3-6b4d2289e215.img (2)" ,
"192"
] ,
[
"f5dba62c-eb49-40c6-af0b-06187b2b9856.img (2)" ,
"5120"
]
] ,
"interfaces" :     {
"media_type" : "application/oracle.com.cloud.common.NetworkInterface+json" ,
"total" : "1" ,
"elements" :
[
{
"name" : "cloud_network" ,
"address" : "10.229.136.185" ,
"mac" : "00:21:f6:5f:73:33"
}
]
} ,
"os" : "None" ,
"type" : "VIRTUAL"
}

59.3.1.3 Creating an Assembly Instance

Similar to VM creation, assembly instance creation can also be POSTed to both a Zone and an AssemblyTemplate.

The GET request configuration to view the Assembly instance resource details is shown below.

Table 59-21 GET Request Configuration for Viewing Details of the Assembly Instance Resource

Feature

Description

URI

/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC75E88B04D7FEDEDE040578CDA810E49%3A0.1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

Supported since release

12.1.0.4 Cloud Service Portal plug-in

A sample of the response received is shown below.

{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC75E88B04D7FEDEDE040578CDA810E49%3A0.1" ,
"name" : "sidb_assembly" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C75E88B04D7FEDEDE040578CDA810E49:0.1" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly" ,
"created" : "2012-08-16T11:02:38+0000" ,
"default_instance_media_type" : "application/oracle.com.cloud.common.AssemblyInstance+json" ,
"zones" :     {
"media_type" : "application/oracle.com.cloud.iaas.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "cloud_zone" ,
"media_type" : "application/oracle.com.cloud.iaas.Zone+json" ,
"service_family_type" : "iaas" ,
"type" : "VM_ZONE"
}
]
} ,
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"deployment_params" :
[
{
"name" : "zone" ,
"description" : "'zone' attribute is the URI of the zone that the 'application/oracle.com.cloud.common.AssemblyInstance' resource is to be created in" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "based_on" ,
"description" : "'based_on' attribute is the URI of the service template or format String of the originated source which the deployed 'application/oracle.com.cloud.common.AssemblyInstance' resource is to be followed" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
} ,
{
"name" : "deployment_plan" ,
"description" : "'deployment_plan' attribute describes the configuration of which the deployed 'application/oracle.com.cloud.common.AssemblyInstance' resource is to be used in the XML deployment plan format" ,
"type" : "STRING" ,
"require" : "false" ,
"sensitive" : "false"
}
] ,
"directory" : "COMP_Components" ,
"updated" : "2012-08-16T11:02:38+0000" ,
"creator" : "DMBHAT1" ,
"last_modified_by" : "DMBHAT1" ,
"componenttype" : "Virtualization" ,
"oracle_owned" : "false" ,
"deploy_plans" :
[
{
"name" : "cloud_zone" ,
"description" : "Default Assembly Deployment Plan for Service Template 'sidb_assembly' on Zone 'cloud_zone'" ,
"context_id" : "D73AF0D42C8459E11419862797D1F37D" ,
"xml" : "<?xml version=\"1.0\" encoding=\"UTF-8\"
standalone=\"yes\"?>\n<ns2:ConfigurationData
xmlns:ns2=\"http://www.oracle.com/sysman/vt/RequestConfigData\">\n
<AssemblyDeployment assemblyInstanceName=\"DEFAULT_PLEASE_CHANGE\">\n
<SourceBinary type=\"TYPE_SWLIB\"
name=\"oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C75E88B04D7FEDEDE040578CDA810E49:0.1\"/>\n
<DeploymentTarget type=\"oracle_vm_zone\"
name=\"D73AF0D42C8459E11419862797D1F37D\"/>\n
<AcceptedAllEULAs>false</AcceptedAllEULAs>\n
<InstallEMAgent>false</InstallEMAgent>\n
<DisableCleanup>false</DisableCleanup>\n
<EMAgentConfig installUserPassword=\"  \" installUserName=\"oracle\"/>\n
<AssemblyNetworkConfig>\n
<AssemblyNetwork name=\"network-1\"/>\n
</AssemblyNetworkConfig>\n
<VirtualSystemCollectionConfig id=\"sidbasmA_linuxx64_11203psu1\">\n
<ProductConfiguration>\n
<Product>\n
<Properties/>\n
<EMAgent>false</EMAgent>\n<
/Product>\n
</ProductConfiguration>\n
<VirtualSystemConfig agentPushInstallationEnabled=\"true\"agentInstallationType=\"Push Agent Installation\" vmInstance=\"true\" targetName=\"sidbasmA_linuxx64_11203psu1/sidbasm:%assembly_instance_name%\" id=\"sidbasmA_linuxx64_11203psu1/sidbasm\">\n
<ProductConfiguration>\n
<Product>\n
<Properties>\n
<Property id=\"ocm.runConfiguration\">\n<Name>ocm.runConfiguration</Name>\n<Required>false</Required>\n<Value>false</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"ocm.metalinkCsiRegistration.CSI\">\n<Name>ocm.metalinkCsiRegistration.CSI</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n
<Property id=\"ocm.metalinkCsiRegistration.metalinkId\">\n<Name>ocm.metalinkCsiRegistration.metalinkId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n<
Property id=\"ocm.proxyPassword\">\n<Name>ocm.proxyPassword</Name>\n<Required>false</Required>\n<Value>  </Value>\n<Secret>true</Secret>\n
</Property>\n  <Property id=\"ocm.metalinkCsiRegistration.countryCode\">\n<Name>ocm.metalinkCsiRegistration.countryCode</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_7|size-units\">\n<Name>system-fileset|db_asm_disk_7|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_1|size-units\">\n<Name>system-fileset|db_asm_disk_1|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_3|size-units\">\n<Name>system-fileset|db_asm_disk_3|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_0|size\">\n<Name>system-fileset|db_asm_disk_0|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_1|size\">\n<Name>system-fileset|db_asm_disk_1|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"asm-password\">\n<Name>asm-password</Name>\n<Required>true</Required>\n<Value>  </Value>\n<Secret>true</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_7|size\">\n<Name>system-fileset|db_asm_disk_7|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"ocm.metalinkEmailRegistration.metalinkEmailId\">\n<Name>ocm.metalinkEmailRegistration.metalinkEmailId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"input|listener-1|global-db-name\">\n<Name>input|listener-1|global-db-name</Name>\n<Required>false</Required>\n<Value>orcl.us.example.com</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_4|size-units\">\n<Name>system-fileset|db_asm_disk_4|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"ocm.proxyHost\">\n<Name>ocm.proxyHost</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"ocm.repeaterURI\">\n<Name>ocm.repeaterURI</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_2|size-units\">\n<Name>system-fileset|db_asm_disk_2|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"input|listener-1|port\">\n<Name>input|listener-1|port</Name>\n<Required>false</Required>\n<Value>1521</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"ocm.anonymousEmailRegistration.emailId\">\n<Name>ocm.anonymousEmailRegistration.emailId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"db-account-password\">\n<Name>db-account-password</Name>\n<Required>true</Required>\n<Value>  </Value>\n<Secret>true</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_3|size\">\n<Name>system-fileset|db_asm_disk_3|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_2|size\">\n<Name>system-fileset|db_asm_disk_2|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"ocm.proxyPort\">\n<Name>ocm.proxyPort</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"ocm.proxyUsername\">\n<Name>ocm.proxyUsername</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_6|size\">\n<Name>system-fileset|db_asm_disk_6|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_5|size\">\n<Name>system-fileset|db_asm_disk_5|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_4|size\">\n<Name>system-fileset|db_asm_disk_4|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"ocm.metalinkEmailRegistration.metalinkPassword\">\n<Name>ocm.metalinkEmailRegistration.metalinkPassword</Name>\n<Required>false</Required>\n<Value>  </Value>\n<Secret>true</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_6|size-units\">\n<Name>system-fileset|db_asm_disk_6|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_5|size-units\">\n<Name>system-fileset|db_asm_disk_5|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n                            <Property id=\"system-fileset|db_asm_disk_0|size-units\">\n<Name>system-fileset|db_asm_disk_0|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
</Properties>\n <EMAgent>false</EMAgent>\n
</Product>\n                </ProductConfiguration>\n                <HardwareConfiguration>\n
<Memory>2048</Memory>\n
<VCPUs>1</VCPUs>\n
<HaEnabled>false</HaEnabled>\n
<StartAfterCreation>true</StartAfterCreation>\n
<CPUSchedulingPriority>50</CPUSchedulingPriority>\n
<CPUCap>100</CPUCap>\n                    <LocalDisks>\n
<disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_System\">\n
<Size>5122</Size>\n
<Mode>Read-Write</Mode>\n
<CreatedByVmSize>false</CreatedByVmSize>\n
</disk>\n                        <disk fromDefinition=\"true\" name=\"AB\">\n
<Size>0</Size>\n                            <Mode>Read-Write</Mode>\n
<CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n
<disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-asm_base\">\n
<Size>502</Size>\n                            <Mode>Read-Write</Mode>\n
<CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n
<disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-asm_home\">\n
<Size>10307</Size>\n                            <Mode>Read-Write</Mode>\n
<CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n
<disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-db_base\">\n
<Size>502</Size>\n                            <Mode>Read-Write</Mode>\n
<CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n
<disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-db_home\">\n
<Size>9068</Size>\n                            <Mode>Read-Write</Mode>\n
<CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n
</LocalDisks>\n                    <SharedDisks>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_0\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_1\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_2\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_3\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_4\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_5\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_6\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_7\"/>\n
</SharedDisks>\n                    <Nics>\n
<NetworkInterface fromDefinition=\"true\" name=\"eth0\">\n
<IPAssignmentMode>Dhcp</IPAssignmentMode>\n
<QoS>Any_Network_QoS_Type</QoS>\n
<AssemblyNetwork name=\"network-1\"/>\n
</NetworkInterface>\n                    </Nics>\n
<RootPassword>  </RootPassword>\n
<LogLocation>/assemblybuilder/logs</LogLocation>\n
<VmSize>Custom</VmSize>\n
<NetworkConfigurationTimeout>60</NetworkConfigurationTimeout>\n
<ProductConfigurationTimeout>60</ProductConfigurationTimeout>\n
</HardwareConfiguration>\n            </VirtualSystemConfig>\n
</VirtualSystemCollectionConfig>\n
</AssemblyDeployment>\n</ns2:ConfigurationData>\n"
} ,
{
"uri" : "/em/cloud/iaas/servicetemplate/deploymentplan/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ADeployment+Plan%3AC7790791F0831736E040578CDA815673%3A0.1" ,
"name" : "sidb_deployplan" ,
"media_type" : "application/oracle.com.cloud.iaas.DeploymentPlan+json" ,
"type" : "Deployment Plan"
}
]
}

The "deploy_plans" attribute contains both the default deployment plan for each zone and the preconfigured deployment plans that are accessible by the user for this service template. To create an assembly instance, the deployment plan should be used.

The configuration specified in the "params" is the primary configuration. In addition, deployment plans can be used to describe detailed product and resource configurations. There are some product configurations where "<Required>true</Required>", and they should also be updated to capture the product configuration values.

The following table shows an example of a POST request to create an assembly instance:

Table 59-22 POST Request Configuration for Creating an Assembly Instance

Feature

Description

URL

/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC75E88B04D7FEDEDE040578CDA810E49%3A0.1

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.AssemblyInstance+json

Body

{
"zone":"/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D",
"params":{
"vnc_password":"welcome1",
"root_password":"welcome1",
"assembly_instance_name": "AITEST"
},
"deployment_plan":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<ns2:ConfigurationData xmlns:ns2\"http://www.oracle.com/sysman/vt/RequestConfigData\">\n
<AssemblyDeployment assemblyInstanceName=\"DEFAULT_PLEASE_CHANGE\">\n
<SourceBinary type=\"TYPE_SWLIB\" name=\"oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C75E88B04D7FEDEDE040578CDA810E49:0.1\"/>\n       <DeploymentTarget type=\"oracle_vm_zone\" name=\"D73AF0D42C8459E11419862797D1F37D\"/>\n
<AcceptedAllEULAs>false</AcceptedAllEULAs>\n
<InstallEMAgent>false</InstallEMAgent>\n
<DisableCleanup>false</DisableCleanup>\n
<EMAgentConfig installUserPassword=\"  \" installUserName=\"oracle\"/>\n
<AssemblyNetworkConfig>\n
<AssemblyNetwork name=\"network-1\"/>\n
</AssemblyNetworkConfig>\n
<VirtualSystemCollectionConfig id=\"sidbasmA_linuxx64_11203psu1\">\n
<ProductConfiguration>\n
<Product>\n
<Properties/>\n
<EMAgent>false</EMAgent>\n
</Product>\n
</ProductConfiguration>\n
<VirtualSystemConfig agentPushInstallationEnabled=\"true\" agentInstallationType=\"Push Agent Installation\" vmInstance=\"true\" targetName=\"sidbasmA_linuxx64_11203psu1/sidbasm:%assembly_instance_name%\" id=\"sidbasmA_linuxx64_11203psu1/sidbasm\">\n
<ProductConfiguration>\n
<Product>\n
<Properties>\n
<Property id=\"ocm.runConfiguration\">\n<Name>ocm.runConfiguration</Name>\n<Required>false</Required>\n<Value>false</Value>\n<Secret>false</Secret>\n         </Property>\n
<Property id=\"ocm.metalinkCsiRegistration.CSI\">\n<Name>ocm.metalinkCsiRegistration.CSI</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"ocm.metalinkCsiRegistration.metalinkId\">\n<Name>ocm.metalinkCsiRegistration.metalinkId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"ocm.proxyPassword\">\n<Name>ocm.proxyPassword</Name>\n<Required>false</Required>\n<Value>
</Value>\n<Secret>true</Secret>\n
</Property>\n
<Property id=\"ocm.metalinkCsiRegistration.countryCode\">\n<Name>ocm.metalinkCsiRegistration.countryCode</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_7|size-units\">\n<Name>system-fileset|db_asm_disk_7|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_1|size-units\">\n<Name>system-fileset|db_asm_disk_1|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_3|size-units\">\n<Name>system-fileset|db_asm_disk_3|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_0|size\">\n<Name>system-fileset|db_asm_disk_0|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_1|size\">\n<Name>system-fileset|db_asm_disk_1|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"asm-password\">\n<Name>asm-password</Name>\n<Required>true</Required>\n<Value>welcome1</Value>\n<Secret>true</Secret>\n                        </Property>\n
<Property id=\"system-fileset|db_asm_disk_7|size\">\n<Name>system-fileset|db_asm_disk_7|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"ocm.metalinkEmailRegistration.metalinkEmailId\">\n<Name>ocm.metalinkEmailRegistration.metalinkEmailId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"input|listener-1|global-db-name\">\n<Name>input|listener-1|global-db-name</Name>\n<Required>false</Required>\n<Value>orcl.us.example.com</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_4|size-units\">\n<Name>system-fileset|db_asm_disk_4|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"ocm.proxyHost\">\n<Name>ocm.proxyHost</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n
<Property id=\"ocm.repeaterURI\">\n<Name>ocm.repeaterURI</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                        </Property>\n
<Property id=\"system-fileset|db_asm_disk_2|size-units\">\n<Name>system-fileset|db_asm_disk_2|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"input|listener-1|port\">\n<Name>input|listener-1|port</Name>\n<Required>false</Required>\n<Value>1521</Value>\n<Secret>false</Secret>\n        </Property>\n
<Property id=\"ocm.anonymousEmailRegistration.emailId\">\n<Name>ocm.anonymousEmailRegistration.emailId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"db-account-password\">\n<Name>db-account-password</Name>\n<Required>true</Required>\n<Value>welcome1</Value>\n<Secret>true</Secret>\n          </Property>\n
<Property id=\"system-fileset|db_asm_disk_3|size\">\n<Name>system-fileset|db_asm_disk_3|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_2|size\">\n<Name>system-fileset|db_asm_disk_2|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"ocm.proxyPort\">\n<Name>ocm.proxyPort</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n
<Property id=\"ocm.proxyUsername\">\n<Name>ocm.proxyUsername</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                    </Property>\n
<Property id=\"system-fileset|db_asm_disk_6|size\">\n<Name>system-fileset|db_asm_disk_6|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_5|size\">\n<Name>system-fileset|db_asm_disk_5|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_4|size\">\n<Name>system-fileset|db_asm_disk_4|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"ocm.metalinkEmailRegistration.metalinkPassword\">\n<Name>ocm.metalinkEmailRegistration.metalinkPassword</Name>\n<Required>false</Required>\n<Value>
</Value>\n<Secret>true</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_6|size-units\">\n<Name>system-fileset|db_asm_disk_6|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_5|size-units\">\n<Name>system-fileset|db_asm_disk_5|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
<Property id=\"system-fileset|db_asm_disk_0|size-units\">\n<Name>system-fileset|db_asm_disk_0|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n
</Property>\n
</Properties>\n
<EMAgent>false</EMAgent>\n
</Product>\n
</ProductConfiguration>\n
<HardwareConfiguration>\n
<Memory>2048</Memory>\n
<VCPUs>1</VCPUs>\n
<HaEnabled>false</HaEnabled>\n
<StartAfterCreation>true</StartAfterCreation>\n
<CPUSchedulingPriority>50</CPUSchedulingPriority>\n
<CPUCap>100</CPUCap>\n
<LocalDisks>\n
<disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_System\">\n
<Size>5122</Size>\n
<Mode>Read-Write</Mode>\n
<CreatedByVmSize>false</CreatedByVmSize>\n
</disk>\n
<disk fromDefinition=\"true\" name=\"AB\">\n <Size>0</Size>\n
<Mode>Read-Write</Mode>\n <CreatedByVmSize>false</CreatedByVmSize>\n
</disk>\n <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-asm_base\">\n <Size>502</Size>\n
<Mode>Read-Write</Mode>\n <CreatedByVmSize>false</CreatedByVmSize>\n
</disk>\n <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-asm_home\">\n <Size>10307</Size>\n
<Mode>Read-Write</Mode>\n <CreatedByVmSize>false</CreatedByVmSize>\n
</disk>\n <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-db_base\">\n <Size>502</Size>\n
<Mode>Read-Write</Mode>\n <CreatedByVmSize>false</CreatedByVmSize>\n
</disk>\n <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-db_home\">\n <Size>9068</Size>\n
<Mode>Read-Write</Mode>\n <CreatedByVmSize>false</CreatedByVmSize>\n
</disk>\n </LocalDisks>\n
<SharedDisks>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_0\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_1\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_2\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_3\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_4\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_5\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_6\"/>\n
<SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_7\"/>\n
</SharedDisks>\n
<Nics>\n
<NetworkInterface fromDefinition=\"true\" name=\"eth0\">\n
<IPAssignmentMode>Dhcp</IPAssignmentMode>\n
<QoS>Any_Network_QoS_Type</QoS>\n
<AssemblyNetwork name=\"network-1\"/>\n
</NetworkInterface>\n
</Nics>\n
<RootPassword>
</RootPassword>\n
<LogLocation>/assemblybuilder/logs</LogLocation>\n
<VmSize>Custom</VmSize>\n
<NetworkConfigurationTimeout>60</NetworkConfigurationTimeout>\n
<ProductConfigurationTimeout>60</ProductConfigurationTimeout>\n
</HardwareConfiguration>\n
</VirtualSystemConfig>\n
</VirtualSystemCollectionConfig>\n
</AssemblyDeployment>\n</ns2:ConfigurationData>\n"
}

Request method

POST

A sample of the response received is shown below.

{
"uri" : "/em/cloud/iaas/assemblyrequest/223" ,
"name" : "VDOSI Assembly Creation 1345575147280" ,
"resource_state" :     {
"state" : "INITIATED" ,
"messages" :
[
{
"text" : "The Request with ID '223' is scheduled with Job Id 'C7CB0EBE83C22D70E040578CDA812E66'" ,
"date" : "2012-08-21T18:52:31+0000"
}
]
} ,
"context_id" : "223" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyInstance+json" ,
"service_family_type" : "iaas" ,
"status" : "SCHEDULED" ,
"created" : "2012-08-21T18:52:28+0000"
}

To track the status of the Assembly Instance creation issue a GET request on the returned URI. See the table below for details.

Table 59-23 GET Request Configuration for Viewing Details of the Assembly Instance Creation Status

Feature

Description

URL

/em/cloud/iaas/assemblyrequest/223

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

Supported since release

12.1.0.4 Cloud Service Portal plug-in

A sample of the response received is shown below.

{
"uri" : "/em/cloud/iaas/assemblyrequest/223" ,
"name" : "VDOSI Assembly Creation 1345575147280" ,
"resource_state" :     {
"state" : "CREATING" ,
"messages" :
[
{
"text" : "The Request with ID '223' is being processed, and has Job Id 'C7CB0EBE83C22D70E040578CDA812E66'" ,
"date" : "2012-08-21T18:54:25+0000"
}
]
} ,
"context_id" : "223" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyInstance+json" ,
"service_family_type" : "iaas" ,
"status" : "EXECUTING" ,
"created" : "2012-08-21T18:52:28+0000"
}

The status indicates that the process is being executed. After the assembly instance is created successfully, the response received is similar to what is shown below.

{
"uri" : "/em/cloud/iaas/assembly/C0AACCD8234BBAFBA7AF6CD3865B1FD3" ,
"name" : "AITEST" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "223" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyInstance+json" ,
"service_family_type" : "iaas" ,
"based_on" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AC75E88B04D7FEDEDE040578CDA810E49%3A0.1" ,
"reference" :     {
"ovf:id" : "sidbasmA_linuxx64_11203psu1"
} ,
"scalability_groups" :     {
"media_type" : "application/oracle.com.cloud.common.ScalabilityGroup+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"servers" :     {
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/server/vm/B28680F24303A42D6909FFC0F79F306C" ,
"name" : "sidbasmA_linuxx64_11203psu1/sidbasm:DEPPLAN_1345575147280" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"status" : "STARTED"
}
]
} ,
"deployment_plan" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<ns2:ConfigurationData xmlns:ns2=\"http://www.oracle.com/sysman/vt/RequestConfigData\">\n    <AssemblyDeployment assemblyInstanceName=\"AITEST\">\n        <SourceBinary type=\"TYPE_SWLIB\" name=\"oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C75E88B04D7FEDEDE040578CDA810E49:0.1\"/>\n        <DeploymentTarget type=\"oracle_vm_zone\" name=\"D73AF0D42C8459E11419862797D1F37D\"/>\n        <AcceptedAllEULAs>false</AcceptedAllEULAs>\n        <InstallEMAgent>false</InstallEMAgent>\n        <DisableCleanup>false</DisableCleanup>\n        <EMAgentConfig installUserPassword=\"  \" installUserName=\"oracle\"/>\n        <AssemblyNetworkConfig>\n            <AssemblyNetwork name=\"network-1\"/>\n        </AssemblyNetworkConfig>\n        <VirtualSystemCollectionConfig id=\"sidbasmA_linuxx64_11203psu1\">\n            <ProductConfiguration>\n                <Product>\n                    <Properties/>\n                    <EMAgent>false</EMAgent>\n                </Product>\n            </ProductConfiguration>\n            <VirtualSystemConfig agentPushInstallationEnabled=\"true\" agentInstallationType=\"Push Agent Installation\" vmInstance=\"true\" targetName=\"sidbasmA_linuxx64_11203psu1/sidbasm:%assembly_instance_name%\" id=\"sidbasmA_linuxx64_11203psu1/sidbasm\">\n                <ProductConfiguration>\n                    <Product>\n                        <Properties>\n                            <Property id=\"ocm.runConfiguration\">\n<Name>ocm.runConfiguration</Name>\n<Required>false</Required>\n<Value>false</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.metalinkCsiRegistration.CSI\">\n<Name>ocm.metalinkCsiRegistration.CSI</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.metalinkCsiRegistration.metalinkId\">\n<Name>ocm.metalinkCsiRegistration.metalinkId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.proxyPassword\">\n<Name>ocm.proxyPassword</Name>\n<Required>false</Required>\n<Value>  </Value>\n<Secret>true</Secret>\n                            </Property>\n                            <Property id=\"ocm.metalinkCsiRegistration.countryCode\">\n<Name>ocm.metalinkCsiRegistration.countryCode</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_7|size-units\">\n<Name>system-fileset|db_asm_disk_7|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_1|size-units\">\n<Name>system-fileset|db_asm_disk_1|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_3|size-units\">\n<Name>system-fileset|db_asm_disk_3|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_0|size\">\n<Name>system-fileset|db_asm_disk_0|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_1|size\">\n<Name>system-fileset|db_asm_disk_1|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"asm-password\">\n<Name>asm-password</Name>\n<Required>true</Required>\n<Value>  </Value>\n<ValueGuid>C7CC61AC07DC6E58E040578CDA8145F9</ValueGuid>\n<Secret>true</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_7|size\">\n<Name>system-fileset|db_asm_disk_7|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.metalinkEmailRegistration.metalinkEmailId\">\n<Name>ocm.metalinkEmailRegistration.metalinkEmailId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"input|listener-1|global-db-name\">\n<Name>input|listener-1|global-db-name</Name>\n<Required>false</Required>\n<Value>orcl.us.example.com</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_4|size-units\">\n<Name>system-fileset|db_asm_disk_4|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.proxyHost\">\n<Name>ocm.proxyHost</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.repeaterURI\">\n<Name>ocm.repeaterURI</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_2|size-units\">\n<Name>system-fileset|db_asm_disk_2|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"input|listener-1|port\">\n<Name>input|listener-1|port</Name>\n<Required>false</Required>\n<Value>1521</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.anonymousEmailRegistration.emailId\">\n<Name>ocm.anonymousEmailRegistration.emailId</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"db-account-password\">\n<Name>db-account-password</Name>\n<Required>true</Required>\n<Value>  </Value>\n<ValueGuid>C7CC61AC07DF6E58E040578CDA8145F9</ValueGuid>\n<Secret>true</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_3|size\">\n<Name>system-fileset|db_asm_disk_3|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_2|size\">\n<Name>system-fileset|db_asm_disk_2|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.proxyPort\">\n<Name>ocm.proxyPort</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.proxyUsername\">\n<Name>ocm.proxyUsername</Name>\n<Required>false</Required>\n<Value></Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_6|size\">\n<Name>system-fileset|db_asm_disk_6|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_5|size\">\n<Name>system-fileset|db_asm_disk_5|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_4|size\">\n<Name>system-fileset|db_asm_disk_4|size</Name>\n<Required>false</Required>\n<Value>2836</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"ocm.metalinkEmailRegistration.metalinkPassword\">\n<Name>ocm.metalinkEmailRegistration.metalinkPassword</Name>\n<Required>false</Required>\n<Value> </Value>\n<Secret>true</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_6|size-units\">\n<Name>system-fileset|db_asm_disk_6|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_5|size-units\">\n<Name>system-fileset|db_asm_disk_5|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                            <Property id=\"system-fileset|db_asm_disk_0|size-units\">\n<Name>system-fileset|db_asm_disk_0|size-units</Name>\n<Required>false</Required>\n<Value>MB</Value>\n<Secret>false</Secret>\n                            </Property>\n                        </Properties>\n                        <EMAgent>false</EMAgent>\n                    </Product>\n                </ProductConfiguration>\n                <HardwareConfiguration>\n                    <Memory>2048</Memory>\n                    <VCPUs>1</VCPUs>\n                    <HaEnabled>false</HaEnabled>\n                    <StartAfterCreation>true</StartAfterCreation>\n                    <CPUSchedulingPriority>50</CPUSchedulingPriority>\n                    <CPUCap>100</CPUCap>\n                    <LocalDisks>\n                        <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_System\">\n                            <Size>5122</Size>\n
<Mode>Read-Write</Mode>\n                            <CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n                        <disk fromDefinition=\"true\" name=\"AB\">\n                            <Size>0</Size>\n                            <Mode>Read-Write</Mode>\n                            <CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n                        <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-asm_base\">\n                            <Size>502</Size>\n                            <Mode>Read-Write</Mode>\n                            <CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n                        <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-asm_home\">\n                            <Size>10307</Size>\n                            <Mode>Read-Write</Mode>\n                            <CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n                        <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-db_base\">\n                            <Size>502</Size>\n                            <Mode>Read-Write</Mode>\n                            <CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n                        <disk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_sys-db_home\">\n                            <Size>9068</Size>\n                            <Mode>Read-Write</Mode>\n                            <CreatedByVmSize>false</CreatedByVmSize>\n                        </disk>\n                    </LocalDisks>\n                    <SharedDisks>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_0\"/>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_1\"/>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_2\"/>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_3\"/>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_4\"/>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_5\"/>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_6\"/>\n                        <SharedDisk fromDefinition=\"true\" name=\"2xZNMmSH5oZYW_db_asm_disk_7\"/>\n                    </SharedDisks>\n                    <Nics>\n                        <NetworkInterface fromDefinition=\"true\" name=\"eth0\">\n                            <IPAssignmentMode>Dhcp</IPAssignmentMode>\n                            <QoS>Any_Network_QoS_Type</QoS>\n                            <AssemblyNetwork name=\"network-1\"/>\n                        </NetworkInterface>\n                    </Nics>\n                    <RootPassword>  </RootPassword>\n                    <RootPasswordGuid>C7CC61AC07D96E58E040578CDA8145F9</RootPasswordGuid>\n                    <LogLocation>/assemblybuilder/logs</LogLocation>\n                    <VmSize>Custom</VmSize>\n                    <NetworkConfigurationTimeout>60</NetworkConfigurationTimeout>\n                    <ProductConfigurationTimeout>60</ProductConfigurationTimeout>\n                </HardwareConfiguration>\n            </VirtualSystemConfig>\n        </VirtualSystemCollectionConfig>\n    </AssemblyDeployment>\n</ns2:ConfigurationData>\n"
}

59.3.2 Updating a VM Service Instance

A service instance may be resized, its status updated, or additional resources added.

The VM resource supports the following changes:

- The "status" can be updated (for example, from STARTED to STOPPED or from STOPPED to STARTED). See, Section 59.3.2.1, "Changing the VM Status".

- The "cpu" and "memory" can be updated (for example to resize the VM). See, Section 59.3.2.2, "Changing the VM Size".

Note:
For the 12.1.0.4 Cloud Self Service Portal release, VM is no longer required to be STOPPED before modifying the "cpu" and "memory".

- Additional resources, for example a VM disk can be added. See, Section 59.3.2.3, "Adding a VM Disk".

- Any updates supported on the VM resource from 10000 version are also supported on the 10001 version of the resource.

59.3.2.1 Changing the VM Status

The following shows the GET of the VM's status:

Table 59-24 GET Request Configuration for Viewing the Current Status of the VM

Feature

Description

URI

/em/cloud/iaas/server/byrequest/101?status,uri

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

Supported since release

12.1.0.1 Cloud Service Portal plug-in

A sample of the response received is shown below.

{
"uri" : "/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095" ,
"status" : "STARTED"
}

To update the status, use the PUT method to the resource "uri". Note that the "uri" attribute is the one that directly references to the resource.

Table 59-25 PUT Request Configuration for Stopping the VM

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"status" : "STOPPED"
}

Request method

PUT

Supported since release

12.1.0.1 Cloud Service Portal plug-in

The Web service response displays the 200 response code, along with the current VM attributes.

To confirm the status of the VM issue the following GET request on the VM:

Table 59-26 GET Request Configuration for Confirming the Status Change of the VM

Feature

Description

URI

/em/cloud/iaas/server/byrequest/101?status,uri

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

Supported since release

12.1.0.1 Cloud Service Portal plug-in

The Web service returns the following:

{
"uri" : "/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095" ,
"status" : "STOPPED"
}

Attempting to submit a PUT transient status value would result in the following:

Table 59-27 PUT Request Configuration for Attempting a Transient Status Value

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095

Request header

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"status" : "STOPPING"
}

Request method

PUT

Supported since release

12.1.0.1 Cloud Service Portal plug-in

The following shows the Web service response:

{
"messages" :
[
{
"date" : "2012-08-19T17:22:04+0000" ,
"stack_trace" : "oracle.sysman.emInternalSDK.ssa.cloudapi.rest.RestServletException: Status 'STOPPING' specified by the PUT request is transient, and is not a valid status\n\tat oracle.sysman.ssa.cloudapi.iaas.VM.processVMStatusChange(VM.java:331)\n\tat oracle.sysman.ssa.cloudapi.iaas.VM.processVMChanges(VM.java:253)\n\tat oracle.sysman.ssa.cloudapi.iaas.VM.processRequest(VM.java:227)\n\tat oracle.sysman.ssa.cloudapi.iaas.IaasServiceProvider.processRequest(IaasServiceProvider.java:582)\n\tat oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.perform(EMCloudServlet.java:236)\n\tat oracle.sysman.emInternalSDK.ssa.cloudapi.EMCloudServlet.performPut(EMCloudServlet.java:351)\n\tat oracle.sysman.emInternalSDK.ssa.cloudapi.rest.AbstractRestServlet.doPut(AbstractRestServlet.java:163)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:730)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:820)\n\tat weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)\n\tat we" ,
"hint" : "Status 'STOPPING' specified by the PUT request is transient, and is not a valid status" ,
"text" : "Did not successfully execute 'PUT' resource operation on 'application/oracle.com.cloud.common.Cloud' identified by '/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095'"
}
]
}

Attempting to submit the existing status to the VM will result in the following interaction:

Table 59-28 PUT Request Configuration for Changing the VM Status to the Current Status

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095?resource_state

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"status" : "STOPPED"
}

Request method

PUT

Supported since release

12.1.0.1 Cloud Service Portal plug-in

The web service responds with the following:

{
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"date" : "2012-08-19T17:23:49+0000" ,
"text" : "Current Virtual Machine Status 'STOPPED' is the same as the requested status. Status change is not needed"
}
]
}
}

When modifying a service instance, the messages communicated will be encapsulated in the resource_state attribute. For example, to START the VM again, the following PUT request can be issued:

Table 59-29 PUT Request Configuration for Starting the VM

Feature

Description

URL

https://example.com/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095?resource_state

Headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"status" : "STARTED"
}

Method

PUT

Supported since release

12.1.0.1 Cloud Service Portal plug-in

The web service will respond with the following:

{
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"date" : "2012-08-19T17:25:29+0000" ,
"text" : "'START' resource operation on 'application/oracle.com.cloud.common.VM' identified by 'C5CA59AF9386975E8AEA45B0F040F095' is successfully submitted with reference 'C7A2713B9A4D29C1E040578CDA817561'"
}
]
}
}

59.3.2.2 Changing the VM Size

The CPU and Memory of a VM can be adjusted to increase or decrease the capacity. For example, to adjust the VM's CPU to 1 vCPU and increase the memory from 512 to 1024, the following PUT request can be issued:

Table 59-30 PUT Request Configuration for Changing the Size of the VM

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095?resource_state

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"cpu":[1,0],  "memory":"1024"
}

Request method

PUT

Supported since release

12.1.0.1 Cloud Service Portal plug-in

A sample of the response received is shown below.

{
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"text" : "'PUT' resource operation on 'application/oracle.com.cloud.common.VM' identified by 'C5CA59AF9386975E8AEA45B0F040F095' is successfully submitted with reference '106'" ,
"date" : "2012-08-20T01:15:28+0000"
}
]
}
}

After some time, the new capacity is reflected in the VM resource through the GET request:

Table 59-31 GET Request Configuration for Viewing the Current Size of the VM

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095?resource_state,cpu,memory,status

Request header

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the response received is shown below.

{
"resource_state" :     {
"state" : "READY"
} ,
"status" : "STARTED" ,
"cpu" :
[
"1" ,
"0"
] ,
"memory" : "1024"
}

59.3.2.3 Adding a VM Disk

An additional disk may be added to the VM resource. For example, to add two additional disks, the following PUT request can be issued:

Table 59-32 PUT Request Configuration for Adding a VM Disk

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095?resource_state

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.VM+json

Body

{
"disks": [
["additional_1", "5120"],
["additional_2", "10240"]
]
}

Parameters/Constraints

If an entry in the "disks" attribute is new, then a new disk would be added. If an entry in the "disks" attribute exists already, then, it would be ignored.

Request method

PUT

Supported since release

12.1.0.5 Cloud Service Portal plug-in

A sample of the response received is shown below.

"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"text" : "'PUT' resource operation on 'application/oracle.com.cloud.common.VM' identified by ' C5CA59AF9386975E8AEA45B0F040F095' is successfully submitted with reference '2'" ,
"date" : "2013-02-26T19:53:15+0000"
}
]
}
}

After some time, the new disks are reflected in the VM resource using the GET request.

Table 59-33 GET Request Configuration for Verifying Addition of New Disks in the VM Resource

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095?resource_state,disks

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the Web service response is shown below.

{
"resource_state" :     {
"state" : "READY"
} ,
"disks" :
[
[
"system.img (2)" ,
"1400"
] ,
[
"default_disk" ,
"10240"
] ,
[
"additional_1" ,
"5120"
] ,
[
"additional_2" ,
"10240"
]
]
}

59.3.3 Deleting a Service Instance

The DELETE request on the URI of the resource can be issued to delete a Service Instance. For example, the following DELETE request is issued:

Table 59-34 Delete Request Configuration for Deleting a Service Instance

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

DELETE

Supported since release

12.1.0.1 Cloud Service Portal plug-in

A sample of the response received is shown below.

{
"uri" : "/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095" ,
"resource_state" :     {
"state" : "READY" ,
"messages" :
[
{
"text" : "'DELETE' resource operation on 'application/oracle.com.cloud.common.VM' identified by 'C5CA59AF9386975E8AEA45B0F040F095' is successfully submitted with reference 'C7A83335CB63DA7BE040578CDA814DDC'" ,
"date" : "2012-08-20T01:24:38+0000"
}
]
} ,
"context_id" : "C5CA59AF9386975E8AEA45B0F040F095" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"service_family_type" : "iaas"
}

After some time, the GET request on the VM URI will result in the following interaction:

Table 59-35 GET Request Configuration for Verifying the Status of the VM

Feature

Description

URI

/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

A sample of the web service returned response is shown below.

{
"uri" : "/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095" ,
"resource_state" :     {
"state" : "READY"
} ,
"context_id" : "C5CA59AF9386975E8AEA45B0F040F095" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"service_family_type" : "iaas" ,
"status" : "DELETED"
}

Note the "status" of the VM has the "DELETED" value.

59.3.4 Listing Service Instances

There are various references to service instances in the resource model, and they are all in context of the resource themselves. For example, "service_instances" in the Zone resource would list the elements that are in that Zone, while "service_instances" in the ServiceTemplate resource would list the elements that are based on that service template.

For example, the following list the service instances in a zone.

Table 59-36 GET Request Configuration for Viewing Service Instances in a Zone

Feature

Description

URI

/em/cloud/iaas/zone/D73AF0D42C8459E11419862797D1F37D?service_instances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Request method

GET

Supported since release

12.1.0.4 Cloud Service Portal plug-in

The following response is received:

{
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "2" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/server/vm/523CAE80A305928C9C5BE8A67A4181FD" ,
"name" : "ZONEPOST" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"status" : "STARTED"
} ,
{
"uri" : "/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095" ,
"name" : "STPOST" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"status" : "STARTED"
}
]
}
}

Similarly, you can list the service instances from the service templates:

Table 59-37 GET Request Configuration for Viewing Service Instances Under a Service Template

Feature

Description

URL

/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AC76CEB5563EA5E13E040578CDA817FAF%3A0.1?service_instances

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

Supported since release

12.1.0.4 Cloud Service Portal plug-in

A sample of the response received is shown below.

{
"service_instances" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceInstance+json" ,
"total" : "2" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/server/vm/C5CA59AF9386975E8AEA45B0F040F095" ,
"name" : "STPOST" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"status" : "STARTED"
} ,
{
"uri" : "/em/cloud/iaas/server/vm/523CAE80A305928C9C5BE8A67A4181FD" ,
"name" : "ZONEPOST" ,
"media_type" : "application/oracle.com.cloud.common.VM+json" ,
"status" : "STARTED"
}
]
}
}

59.3.5 Searching Service Templates

Searching for a service template through cloud can be performed by constructing ServiceTemplateFinds resource. ServiceTemplateFinds is synonymous to a "report" that contains elements satisfying the condition specified.

For example, the following will return service template with the name OEL in it

Table 59-38 POST Request Configuration for Filtering Service Templates

Feature

Description

URI

/em/cloud

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.ServiceTemplateFinds+jsonAccept : application/oracle.com.cloud.common.ServiceTemplateFinds+json

Body

{
"filters":{
"name":"OEL"
}
}

Request method

POST

Supported since release

12.1.0.5 Cloud Service Portal plug-in

A sample of the response received is shown below.

{
"uri" : "/em/cloud/finds/service_template/bWVkaWFfdHlwZSUyNTNEYXBwbGljYXRpb24lMjUyRm9yYWNsZS5jb20uY2xvdWQuY29tbW9uLlNl%0AcnZpY2VUZW1wbGF0ZSUyRm5hbWUlMjUzRE9FTA%3D%3D" ,
"name" : "Service Template Finds" ,
"media_type" : "application/oracle.com.cloud.common.ServiceTemplateFinds+json" ,
"description" : "This is a Resource Finds for 'Service Template Finds' with media type 'application/oracle.com.cloud.common.ServiceTemplateFinds+json'" ,
"resource_state" :     {
"state" : "READY"
} ,
"filters" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"name" : "OEL"
} ,
"finds" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/servicetemplate/vm/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3ATemplate%3AD6A66B2DCAEAE177E040F20AB0527449%3A0.1" ,
"name" : "OEL4.0 For Testing" ,
"media_type" : "application/oracle.com.cloud.common.VMTemplate+json" ,
"type" : "Template"
}
]
}
}

Currently, the following attributes are supported by the "filters":

Table 59-39 Filters

Attributes

Description

Since

media_type

The specific service template media to search for. This would be an exact match of the media type.

12.1.0.5 Cloud Service Portal Plugin (IaaS service family type only)

name

A service template would be returned if the name contains the specified string, case insensitive (so, OEL and oel in the example above would return the same result).

12.1.0.5 Cloud Service Portal Plugin (IaaS service family type only)

If an attribute specified is not recognized by the system, it will be ignored. For example, the following will return service templates containing the name DUMMY:

Table 59-40 POST Request Configuration for an Unrecognized Attribute

Feature

Description

URI

/em/cloud

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=Content-Type: application/oracle.com.cloud.common.ServiceTemplateFinds+jsonAccept : application/oracle.com.cloud.common.ServiceTemplateFinds+json

Body

{
"filters":{
"name":"DUMMY"
}
}

Request method

POST

Supported since release

12.1.0.5 Cloud Service Portal plug-in

The response received is shown below.

{
"uri" : "/em/cloud/finds/service_template/bWVkaWFfdHlwZSUyNTNEYXBwbGljYXRpb24lMjUyRm9yYWNsZS5jb20uY2xvdWQuY29tbW9uLlNl%0AcnZpY2VUZW1wbGF0ZSUyRm5hbWUlMjUzRERVTU1Z" ,
"name" : "Service Template Finds" ,
"media_type" : "application/oracle.com.cloud.common.ServiceTemplateFinds+json" ,
"description" : "This is a Resource Finds for 'Service Template Finds' with media type 'application/oracle.com.cloud.common.ServiceTemplateFinds+json'" ,
"resource_state" :     {
"state" : "READY"
} ,
"filters" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"name" : "DUMMY"
} ,
"finds" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"total" : "0" ,
"elements" :
[      ]
}
}

Since there were no service templates with "DUMMY" as part of its name, no service templates are returned.

Please note, once the resource ServiceTemplateFinds is created, its URI can be used for performing the same query by issuing a GET request. If new templates were added that also satisfy the conditions, it would be returned as well.

For example, let's use the DUMMY example's URI, and this time, a service template with "DUMMY" in its name was created.

Table 59-41 GET Request Configuration for FIltering Service Templates Using the URI of a Preset POST Filter

Feature

Description

URI

/em/cloud/finds/service_template/bWVkaWFfdHlwZSUyNTNEYXBwbGljYXRpb24lMjUyRm9yYWNsZS5jb20uY2xvdWQuY29tbW9uLlNl%0AcnZpY2VUZW1wbGF0ZSUyRm5hbWUlMjUzRERVTU1Z

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=

Body

None

Request method

GET

Supported since release

12.1.0.5 Cloud Service Portal plug-in

Shown below is the response of the GET request after the service template was created and published by the administrator:

{
"uri" : "/em/cloud/finds/service_template/bWVkaWFfdHlwZSUyNTNEYXBwbGljYXRpb24lMjUyRm9yYWNsZS5jb20uY2xvdWQuY29tbW9uLlNl%0AcnZpY2VUZW1wbGF0ZSUyRm5hbWUlMjUzRERVTU1Z" ,
"name" : "Service Template Finds" ,
"media_type" : "application/oracle.com.cloud.common.ServiceTemplateFinds+json" ,
"description" : "This is a Resource Finds for 'Service Template Finds' with media type 'application/oracle.com.cloud.common.ServiceTemplateFinds+json'" ,
"resource_state" :     {
"state" : "READY"
} ,
"filters" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"name" : "DUMMY"
} ,
"finds" :     {
"media_type" : "application/oracle.com.cloud.common.ServiceTemplate" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/iaas/servicetemplate/assembly/oracle%3AdefaultService%3Aem%3Aprovisioning%3A1%3Acmp%3AVirtualization%3AAssembly%3AD6A7D3D84B605D11E040F20AB0524E1C%3A0.1" ,
"name" : "Dummy OEL Assembly" ,
"media_type" : "application/oracle.com.cloud.common.AssemblyTemplate+json" ,
"type" : "Assembly"
}
]
}
}

59.4 Support for Version 1000

As the document previous noted, this 12.1.0.4 Cloud Service Portal Plugin supports the specification version 10000. To start, issue the following HTTP request on the Enterprise Manager:

Table 59-42 GET Request Configuration for Viewing Details of the Cloud Resource for Version 10000

Feature

Description

URI

/em/cloud

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=X-Specification-Version: 10000Accept: application/oracle.com.cloud.common.Cloud+json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud" ,
"name" : "Infrastructure Cloud" ,
"description" : "Infrastructure Cloud with Self Service Portal and Virtualization Managements" , "service_templates" :     {
"uri" : "/em/cloud/collection/servicetemplates" ,
"type" : "application/oracle.com.cloud.common.ServiceTemplate+json" ,
"total" : "7" ,
"elements" :
[
{
"uri" : "/em/cloud/servicetemplate/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C75E88B04D7FEDEDE040578CDA810E49:0.1" ,
"name" : "sidb_assembly" ,
"type" : "Assembly" ,
"version" : "0.1"
} ,
{
"uri" : "/em/cloud/servicetemplate/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C769B1F361529309E040578CDA813D57:0.1" ,
"name" : "wls_assembly" ,
"type" : "Assembly" ,
"version" : "0.1"
} ,
{
"uri" : "/em/cloud/servicetemplate/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Template:C76CEB5563EA5E13E040578CDA817FAF:0.1" ,
"name" : "template_sanity" ,
"type" : "Template" ,
"version" : "0.1"
} ,
{
"uri" : "/em/cloud/servicetemplate/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C76F733BC7A41AF7E040578CDA812CDC:0.1" ,
"name" : "fmw_venkat" ,
"type" : "Assembly" ,
"version" : "0.1"
} ,
{
"uri" : "/em/cloud/servicetemplate/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C76C144A4A245B62E040578CDA8163B9:0.1" ,
"name" : "fmw_abby" ,
"type" : "Assembly" ,
"version" : "0.1"
} ,
{
"uri" : "/em/cloud/servicetemplate/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C77122B0A916D95CE040578CDA814854:0.1" ,
"name" : "sidbasmA_abby" ,
"type" : "Assembly" ,
"version" : "0.1"
} ,
{
"uri" : "/em/cloud/servicetemplate/oracle:defaultService:em:provisioning:1:cmp:Virtualization:Assembly:C76C8792DE2A0937E040578CDA81795E:0.1" ,
"name" : "WLS_abby" ,
"type" : "Assembly" ,
"version" : "0.1"
}
]
} ,
"zones" :     {
"uri" : "/em/cloud/collection/zones" ,
"type" : "application/oracle.com.cloud.common.Zone+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/zone/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "cloud_zone" ,
"type" : "oracle_vm_zone"
}
]
} ,
"vdcs" :     {
"uri" : "/em/cloud/collection/vdcs" ,
"type" : "application/oracle.com.cloud.common.VDC+json" ,
"total" : "1" ,
"elements" :
[
{
"uri" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "Oracle Enterprise Manager Virtual Data Center on Zone  cloud_zone"
}
]
} ,
"instance_options" :     {
"uri" : "/em/cloud/collection/instanceoptions" ,
"type" : "application/oracle.com.cloud.common.InstanceOption+json" ,
"total" : "3" ,
"elements" :
[
{
"uri" : "/em/cloud/instanceoption/virtual_machine_size/2" ,
"name" : "Medium" ,
"type" : "virtual_machine_size" ,
"memory" : "8192" ,
"cpu" : "4" ,
"local_storage" : "512000"
} ,
{
"uri" : "/em/cloud/instanceoption/virtual_machine_size/3" ,
"name" : "Large" ,
"type" : "virtual_machine_size" ,
"memory" : "15360" ,
"cpu" : "8" ,
"local_storage" : "1024000"
} ,
{
"uri" : "/em/cloud/instanceoption/virtual_machine_size/1" ,
"name" : "Small" ,
"type" : "virtual_machine_size" ,
"memory" : "4096" ,
"cpu" : "2" ,
"local_storage" : "256000"
}
]
} ,
"resource_state" :     {
"state" : "READY"
}
}

Similarly, to return the list of resources in the VDC, the following can be issued (note that X-specification-version must be included in the header whenever working with 10000 version resources):

Table 59-43 GET Request Configuration for Viewing Details of the VDC Resources

Feature

Description

URI

/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D

Request headers

Authorization: basic ZGVtb3VzZXI6ZGVtb3VzZXI=X-Specification-Version: 10000Accept: application/oracle.com.cloud.common.VDC+json

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"name" : "Oracle Enterprise Manager Virtual Data Center on Zone  cloud_zone" ,
"description" : "Virtual Data Center is a logical grouping of virtualized assets in a particular zone" ,
"scalability_groups" :     {
"uri" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D?scalability_groups" ,
"type" : "application/oracle.com.cloud.common.ScalabilityGroup+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"servers" :     {
"uri" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D?servers" ,
"type" : "application/oracle.com.cloud.common.Server+json" ,
"total" : "0" ,
"elements" :
[      ]
} ,
"vnets" :     {
"uri" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D?vnets" ,
"type" : "application/oracle.com.cloud.common.VNet+json" ,
"total" : "3" ,
"elements" :
[
{
"uri" : "/em/cloud/vnet/D73AF0D42C8459E11419862797D1F37D/oracle:defaultService:em:provisioning:1:netConfig:C76CEADBBBE6B23FE040578CDA817FB1" ,
"name" : "venkat_profile" ,
"id" : "oracle:defaultService:em:provisioning:1:netConfig:C76CEADBBBE6B23FE040578CDA817FB1"
} ,
{
"uri" : "/em/cloud/vnet/D73AF0D42C8459E11419862797D1F37D/oracle:defaultService:em:provisioning:1:netConfig:C77076C8FDEC6BD7E040578CDA813B2B" ,
"name" : "nwprofile_abby" ,
"id" : "oracle:defaultService:em:provisioning:1:netConfig:C77076C8FDEC6BD7E040578CDA813B2B"
} ,
{
"uri" : "/em/cloud/vnet/D73AF0D42C8459E11419862797D1F37D/oracle:defaultService:em:provisioning:1:netConfig:C76F741AFD7EB760E040578CDA812CD8" ,
"name" : "bmp_profile" ,
"id" : "oracle:defaultService:em:provisioning:1:netConfig:C76F741AFD7EB760E040578CDA812CD8"
}
]
} ,
"zone" : "/em/cloud/zone/D73AF0D42C8459E11419862797D1F37D" ,
"resource_state" :     {
"state" : "READY"
} ,
"assembly_instances" :     {
"uri" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D?assemblies" ,
"type" : "application/oracle.com.cloud.common.AssemblyInstance+json" ,
"total" : "11" ,
"elements" :
[
{
"uri" : "/em/cloud/assembly/byrequest/64" ,
"name" : "WLS_abby" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "FD4F3945CDD6BD6EEEFFAB064735ECDD"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/81" ,
"name" : "WLS_abby_0" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "79006B5C36F6ED90FC82EB58BB9580F2"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/82" ,
"name" : "fmw_abby" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "C7852B2D7740F4FAE040578CDA811EF3"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/26" ,
"name" : "latest_attempt_wls_withagent_dinesh" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "4DE0D2D8C81D0C09E665484BA9DBE668"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/61" ,
"name" : "sidb_assembly" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "235D95A93ABA2B50AFF5486540F48690"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/62" ,
"name" : "sidb_assembly_0" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "BFA65EC9A5FB97AD2B971EE8FB5E91AC"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/27" ,
"name" : "venkat_fmw" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "3DBE707B981DEDA5380ED6DBD8BF399C"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/23" ,
"name" : "venkat_nw_profile" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "05C1F96EE6FBD049BFE1D57AA89CB0D0"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/1" ,
"name" : "venkat_sidb" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "3A5C3917D18E276BDC7D08949F1851D1"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/22" ,
"name" : "wls_dinesh_32bit_agent" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "896B27C0963AF3B5C5C69D62614D63ED"
} ,
{
"uri" : "/em/cloud/assembly/byrequest/21" ,
"name" : "wls_vt_dinesh" ,
"contained_in" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D" ,
"guid" : "E54B51C4FCFF6C56AE393C3B1EEA8464"
}
]
} ,
"dbplatform_instances" :     {
"uri" : "/em/cloud/vdc/default/D73AF0D42C8459E11419862797D1F37D?dbplatform_instances" ,
"type" : "application/oracle.com.cloud.common.DbPlatformInstance+json" ,
"total" : "0" ,
"elements" :
[      ]
}
}

If the X-Specification-Version header was not specified, the response received would be similar to the following:

{
"messages" :
[
{
"text" : "Media Type 'application/oracle.com.cloud.common.VDC' specified in the request cannot be supported by the Cloud Resource. Cloud Resource supports Media Type 'application/oracle.com.cloud.common.Cloud+json'" ,
"date" : "2012-08-19T15:17:08+0000"
}
]
}

Note:
Only Infrastructure Service resources are supported on 10000 version. Features supported are the same as the previous version.

60 Testing as a Service REST APIs

This chapter describes the resource models for Testing as a Service (TaaS) REST API and the REST request/response interactions.

This chapter contains the sections listed below. The first section provides a summary of all the REST APIs covered in this chapter, whereas the following sections provide an introduction to TaaS, the TaaS resource models and the REST API examples.

- Summary of Testing as a Service REST APIs

- Introduction to Testing as a Service REST API

- Testing as a Service Resource Model

- Application Resource

- TestDriverType Resource

- TestDriver Resource

- QuotaUsage Resource

- TestAsset

- OltScenario

- CustomParameters

- OFTAssetScript Resource

- OftAssetScriptCsvDatabanks

- OftPlaybackSettings Resource

- OftDatabaseDatabanks

- TestEnvironment

- Test

- Trial

- Metric

- MetricValue

- OltSession

- OltCounter

- OltCounterValue

- OftTrialAssetExecution

- TestDriverInstance

- TestEnvironmentInstance Resource

- Operation

- TestType

- Target

- OltAgent

- Testing as a Service REST API Examples

60.1 Summary of Testing as a Service REST APIs

The table below shows a summary of all the TaaS REST APIs covered in this chapter.

Table 60-1 Summary of TaaS REST APIs

Resource

Data Model

GET

POST

PUT

DELETE

Application Resource

Table 60-2

- Section 60.4.1

- Section 60.4.2

Not supported

Not supported

Not supported

Test driver type

Table 60-4

Section 60.4.9

Not supported

Not supported

Not supported

Test driver

Table 60-6

- Section 60.4.7

- Section 60.4.9

Not supported

Not supported

Not supported

Quota usage

Table 60-9

Supported

Not supported

Not supported

Not supported

Test asset

Table 60-11

- Section 60.4.3

- Section 60.4.4

Not supported

Not supported

Not supported

OLT scenario

Table 60-16

Supported

Not supported

Not supported

Not supported

Custom parameters

Table 60-19

Supported

Not supported

Not supported

Not supported

OFT asset script

Table 60-22

Supported

Not supported

Not supported

Not supported

OFT asset script CSV databanks

Table 60-26

Supported

Not supported

Not supported

Not supported

OFT playback settings

Table 60-29

Supported

Not supported

Not supported

Not supported

OFT database databanks

Table 60-31

Supported

Not supported

Not supported

Not supported

Test environment

Table 60-34

- Section 60.4.5

- Section 60.4.6

Not supported

Not supported

Not supported

Test

Table 60-36

- Section 60.4.19

- Section 60.4.20

Section 60.4.21

Section 60.4.22

Section 60.4.23

Trial

Table 60-40

- Section 60.4.24

- Section 60.4.25

Section 60.4.26

Section 60.4.27

Section 60.4.28

Metric

Table 60-47

Supported

Not supported

Not supported

Not supported

Metric value

Table 60-49

Supported

Not supported

Not supported

Not supported

OLT session

Table 60-51

Supported

Not supported

Not supported

Not supported

OLT counter

Table 60-53

Supported

Not supported

Not supported

Not supported

OLT counter value

Table 60-55

Supported

Not supported

Not supported

Not supported

OFT trial asset execution

Table 60-57

Supported

Not supported

Not supported

Not supported

Test driver instance

Table 60-64

- Section 60.4.15

- Section 60.4.16

Section 60.4.17

Not supported

Section 60.4.18

Test environment instance

Table 60-66

- Section 60.4.10

- Section 60.4.11

- Section 60.4.12

- Section 60.4.13

Not supported

Section 60.4.14

Operation

Table 60-68

Supported

Supported

Not supported

Not supported

Test type

Table 60-71

Supported

Not supported

Not supported

Not supported

Target

Table 60-73

Supported

Not supported

Not supported

Not supported

OLT agent

Table 60-75

Supported

Not supported

Not supported

Not supported

Note:
In the table above, ”supported” indicates that the operation is supported on the resource. However, there is no example in the chapter for this operation.

60.2 Introduction to Testing as a Service REST API

Using the TaaS REST API, you can:

- Interact with the TaaS application without accessing the TaaS user interface.

- Run TaaS functions in script form.

- Easily integrate TaaS with your existing applications and systems.

The TaaS REST API is implemented using the RESTful (Representational State Transfer) Web Service.A complete explanation about the Cloud REST APIs is available in Chapter 45, "Introduction to Cloud APIs."

60.2.1 How to Use Testing as a Service REST API

The following diagram shows how a Tester uses Testing as a Service:

Figure 60-1 Testing Cloud End User Activities

Here are a few tasks and operations you can perform using the TaaS REST API:

- Tests
List/view/create/update/delete tests and list all trials that belong to a test.

- Quota and Usage
See overall quota usage of a user.

- Trials
View/create/update/delete trials of a trial and its operations/details on Trial Home page.

- Test Asset/Test Environment
List/view test asset and test environments being published to TaaS user.

- Test Driver/Environment Instances
List/view/create/update/delete/start/stop instances of test driver and test environment.

60.2.2 How Resource Models Are Used in TaaS

The purpose of using Testing as a Service is to create tests and then run trials using the tests. Figure 60-2 shows the resources used to define tests and the trials.

Simply put:

1. Test driver types are used when defining test assets.

2. Test assets, test environments, targets, and test drivers are used when defining tests.

3. Tests, test environment instances, and test driver instances are used when defining trials.

Figure 60-2 shows these resources and their relationships.

Figure 60-2 TaaS Resources Relationship Diagram

60.3 Testing as a Service Resource Model

Most resources have common attributes such as context_id and uri. context_id is an identifier which could be a GUID or a unique ID of the corresponding entity in the database table.

Methods GET/POST/PUT/DELETE (corresponding to read/create/update/delete methods) are standard HTTP methods. Usually GET means find/query, POST means create, PUT means update, and DELETE means delete/remove. For example, when a field is marked as '[POST] required', this means that when you create a resource (use the POST method), you must provide this field.

The available resources are:

- Application Resource

- TestDriverType Resource

- TestDriver Resource

- QuotaUsage Resource

- TestAsset

- OltScenario

- CustomParameters

- OFTAssetScript Resource

- OftAssetScriptCsvDatabanks

- OftPlaybackSettings Resource

- OftDatabaseDatabanks

- TestEnvironment

- Test

- Trial

- Metric

- MetricValue

- OltSession

- OltCounter

- OltCounterValue

- OftTrialAssetExecution

- TestDriverInstance

- TestEnvironmentInstance Resource

- Operation

- TestType

- Target

- OltAgent

60.3.1 Application Resource

Application types are used by Test Designers when creating Test Assets and Test Environments. The application type is metadata used to organize test related activities

The following table describes the Application resource model.

Table 60-2 Application Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the application

contextId(id)

Long

Context ID of the application

The following table lists the methods supported in the Application resource.

Table 60-3 Supported Methods for Application Resource

Method

Description

Sample URI

LIST (GET without contextId)

Returns a list of applications

/em/websvcs/restful/extws/cloudservices/taas/v1/applications

GET

Returns an application by ID.

/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1

60.3.2 TestDriverType Resource

The TestDriverType (Test Driver Type) resource defines the type of Test Driver.

Table 60-4 TestDriverType Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the custom test driver type

contextId(id)

Long

Context ID of the test driver type

testTypeUri

String

URI of test type (Oracle Load Testing, Oracle Functional Testing, or Custom)

testTypeName

String

Name of test type

The following table lists the methods supported in the TestDriverType resource.

Table 60-5 Supported Methods for TestDriverType Resource

Method

Description

Sample URI

LIST (GET without context_id)

Returns a list of a test driver types

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types

GET

Returns a test driver type by ID.

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1

60.3.3 TestDriver Resource

The TestDriver (Test Driver) resource is the package of software that Enterprise Manager uses to generate tests or workload against test systems based on a deployment plan.

Table 60-6 TestDriver Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the test driver

testDriverTypeUri

String

URI of the test driver type being set to this test driver

testDriverTypeName

String

Test driver type name of the test driver

version

String

Version of the test driver

description

String

Description of the test driver

contextId(guid)

String

Context ID of the test driver

resultsStorage

String

Result storage type of the Oracle Functional Testing test driver

resultFileSystem

OftRfsEntity

Detailed result file system information for Oracle Functional Testing test driver, if the 'resultsStorage' attribute is 'rfs'.

Table 60-7 Supported Methods for the TestDriver Resource

Method

Description

Sample URI

LIST (GET without context_id)

Returns a list of test drivers

/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers

GET

Returns a test driver by GUID

/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/C0D0F1A8F11A2EA1E040E50A42BB70CF

OftRfsEntity Subtype

The OftRfsEntity (Oracle Functional Testing RFS Entity) subtype represents a NFS (Network File System) that provides the file storage service, and optional access to the stored file with HTTP protocol, for the end user.

Table 60-8 OftRfsEntity Subtype

Field

Type

Description

name

String

Name of the result file system

exportPath

String

Export path for the result file system

httpAccessUrl

String

HTTP URL to access the result file system

60.3.4 QuotaUsage Resource

The QuotaUsage (Quota Usage) resource represents usage quotas for Testers by specific roles, including the Number of Guest VMs (Virtual Machines), Number of CPUs, Memory (GB), Storage Size (GB), and Number of VUs (Virtual Users).

Table 60-9 QuotaUsage Resource Data Model

Field

Type

Description

uri

String

URI of the resource

maxNumberOfGuestVM

Long

Maximum number of guest Virtual Machines that are allowed to be assigned to the role

maxNumberOfCpu

Long

Maximum number of CPUs that are allowed to be assigned to the role

maxMemory

Double

Maximum amount of memory that is allowed to be assigned to the role

maxStorageSize

Double

Maximum amount of storage that is allowed to be assigned to the role

maxNumberOfVU

Long

Maximum number Virtual Users that are allowed to be assigned to the role

numberOfCpu

Long

Number of CPUs used

numberOfGuestVM

Long

Number of guest Virtual Machines used

memory

Double

Amount of memory

storageSize

Double

Amount of storage used

numberOfVU

Long

Number of Virtual Users used

The following table lists the methods supported in the QuotaUsage resource.

Table 60-10 Supported Methods for QuotaUsage Resource

Method

Description

Sample URI

GET

Returns quota and usage of current user.

/em/websvcs/restful/extws/cloudservices/taas/v1/quota_usage/user_quota_usage

60.3.5 TestAsset

A Test Asset is a collection of test artifacts (scenarios, scripts, tests) that can be executed on a test environment. A test asset defines the actions that need to be executed to reproduce the workload against the test environment.

Table 60-11 Test Asset Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the test asset

testDriverTypeUri

String

URI of the test driver type of the test asset. (Oracle Functional Testing, Oracle Load Testing, or Custom test drivers)

testDriverTypeName

String

Name of the test driver type of the test asset (Oracle Functional Testing, Oracle Load Testing or Custom test drivers)

applicationUri

String

URI of the application being associated with this test asset

applicationName

String

Name of the application being associated with this test asset

tags

String

Tags of the test asset. A tag is a keyword assigned to an asset. Tags help describe the test asset and allows it to be found again in browsing or searching.

lastModified

String (ISO 8601 date)

Last time the test asset was modified

owner

String

User name of the owner

contextId(guid)

String

Context ID of the test asset

oltTestAssetSettings

OltTestAssetSettings

Specific test asset settings for Oracle Load Testing test asset.

oftTestAssetSettings

OftTestAssetSettings

Specific test asset settings for Oracle Functional Testing test asset

customTestAssetSettings

CustomTestAssetSettings

Specific test asset settings for Custom test asset

The following table lists the methods supported in the TestAsset resource.

Table 60-12 Supported Methods for TestAsset Resource

Method

Description

Sample URI

LIST (GET without context_id)

Returns a list of test assets being published to current user

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets

GET

Returns attributes of test asset by GUID.

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/C0D0F1A8F11A2EA1E040E50A42BB70CF

OltTestAssetSettings Subtype

Use the OltTestAssetSettings subtype to provide specific test settings for the Oracle Load Testing test asset.

Table 60-13 OltTestAssetSettings Subtype

Field

Type

Description

vuCountEditable

Boolean

Whether script VU counts are editable

rampupSettingEditable

Boolean

Whether rampup is editable

endConditionEditable

Boolean

Whether end condition is editable

oltScenarioFileDownloadUri

String

URI of the Oracle Load Testing test scenario file download location

oltScenarioUri

String

URI of the Oracle Load Testing scenario details

OftTestAssetSettings Subtype

Use OftTestAssetSettings subtype to provide specific test settings for the Oracle Functional Testing test asset.

Table 60-14 OftTestAssetSettings Subtype

Field

Type

Description

scriptDetailsUri

String

URI for the Oracle Functional Testing script details

scriptFileUri

String

URI used to indicate the download URL for the Oracle Functional Testing script zip file

CustomTestAssetSettings Subtype

Use the CustomTestAssetSettings subtype to provide specific test settings for the Oracle Custom test asset.

Table 60-15 CustomTestAssetSettings Subtype

Field

Type

Description

scriptFileDownloadUri

String

URI of the custom script file download location

customParametersUri

String

URI of the custom parameters

60.3.6 OltScenario

OltScenario (Oracle Load Testing OLT Scenario) represents detail scenario information for an Oracle Load Testing Test Asset.

Table 60-16 OltScenario Resource Data Model

Field

Type

Description

uri

String

URI of the resource

testAssetContextId

String

Context ID of the test asset

testAssetUri

Strong

URI of the test asset

hardwareEstimationAvailable

Boolean

Whether hardware estimation is available for this scenario

ramupDescription

String

Description of test asset default rampup setting

endConditionDescription

String

Description of test asset default end condition

scriptVuCounts

OltScript

VU counts for scripts in the scenario

The following table lists the method supported in the OltScenario resource.

Table 60-17 Supported Method for OltScenario Resource

Method

Description

Sample URI

GET

Returns Oracle Load Testing Scenario

em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DFF34956DD08E27AE040F50A351D3DB5/olt_scenario

OltScript Subtype

Use the OltScript subtype to identify the Oracle Load Testing script.

Table 60-18 OltScript Subtype

Field

Type

Description

name

String

Name of the script

vuCount

Integer

Number of virtual user count

60.3.7 CustomParameters

Custom Parameters is a collection of custom parameter settings for custom Test Asset or custom Trial.

Table 60-19 CustomParameters Resource Data Model

Field

Type

Description

uri

String

URI of the resource

parameters

List of CustomParameter

List of custom parameter

The following table lists the method supported in the CustomParameters resource.

Table 60-20 Supported Method for CustomParameter Resource

Method

Description

Sample URI

GET

Returns custom parameters

- From custom test asset:

em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DFF34956DD08E27AE040F50A351D3DB5/custom_parameters

- From custom trial:

em/websvcs/restful/extws/cloudservices/taas/v1/trials/E06DE62ACC497B71E040F50A351D66D0/custom_parameters

CustomParameter Subtype

The customParameter subtype is used in custom test asset or custom trial. Each customParameter represents a custom defined parameter.

Table 60-21 CustomParameter Subtype

Field

Type

Description

name

String

Name of the parameter

value

String

Value of the parameter

defaultValue

String

Default value of the parameter

configurable

Boolean

Is the parameter configurable

60.3.8 OFTAssetScript Resource

OFTAssetScript (Oracle Functional Testing Asset Script) represents the detailed data for a script (in zip format) of an Oracle Functional Testing test asset. URI for more detailed data (if available), for example, the Open Script script information, databanks, playback settings, are retrievable from this resource.

Table 60-22 OFTAssetScript Resource Data Model

Field

Type

Description

uri

String

URI of the resource

testAssetContextId

String

Context ID for the test asset

testAssetUri

String

URI for the test asset

scripts

List of OftScriptEntity

List of detailed data for each Open Script script inside this asset script zip file

urlsInsideScripts

List of String

List of URLS inside the Open Script scripts of this Oracle Functional Testing asset script zip file

csvDatabanksUri

String

URI for the resource that represents the comma-separated value (CSV) databanks

playbackSettingsUri

String

URI for the resource that represents the playback settings

dbDatabanksUri

String

URI the resource that represents the database databanks

The following table lists the methods supported in the OFTAssetScript resource.

Table 60-23 Supported Methods for OFTAssetScript Resource

Method

Description

Sample URI

GET

Returns Oracle Functional Testing test asset script by asset GUID.

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/E3F48FC047CCE9E5E040F50A2D1E128E/oft_script_details

OftScriptEntity Subtype

Use the OftScriptEntity subtype to provide the specific details for the Oracle Functional Testing script entity.

Table 60-24 OftScriptEntity Subtype

Field

Type

Description

name

String

Name of the Open Script script

type

String

Type of Open Script script

version

String

Version of the Open Script script

encrypted

Boolean

Indicates if the script is encrypted or not

modules

List of OftScriptModuleEntity

Modules defined and used in this Open Script script

OftScriptModuleEntity Subtype

Use the OftScriptModuleEntity subtype to provide the specific details for the Oracle Functional Testing script module entity.

Table 60-25 OftScriptModuleEntity Subtype

Field

Type

Description

name

String

Name of the Open Script module

60.3.9 OftAssetScriptCsvDatabanks

The OftAssetScriptCsvDatabanks (Oracle Functional Testing Asset Script Comma-Separated Values Databanks) resource represents a list of CSV databank. The OFT Asset Script CSV Databanks resource is represented with type CsvDatabankCollection.

Databanks are used to hold unlimited amounts of input data that can be automatically fed into your Web application.

Table 60-26 OftAssetScriptCsvDatabanks Resource Data Model

Field

Type

Description

uri

String

URI of the resource

testAssetContextId

String

Context ID of the test asset

testAssetUri

String

URI for the test asset

scriptDetails

String

URI for the asset script details

csvDatabanks

List of OftAssetCsvDatabankEntity

List of detailed data for all CSV databanks inside the Oracle Functional Testing asset script

The following table lists the method supported in the OftAssetScriptCsvDatabanks resource.

Table 60-27 Supported Method for OftAssetScriptCsvDatabanks Resource

Method

Description

Sample URI

LIST (GET without context_id)

Returns a list of csv databanks for the specified test asset script

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/E3F48FC047CCE9E5E040F50A2D1E128E/oft_script_details/csv_data_banks

CsvDatabank Subtype

Use the CsvDatabank subtype to provide the specific details for the Oracle Functional Testing asset script resource.

Table 60-28 CsvDatabank Subtype

Field

Type

Description

name

String

Name of the csv databank

contents

String

Contents inside the comma-separated value (CSV) databank

60.3.10 OftPlaybackSettings Resource

The OftPlaybackSettings (Oracle Functional Testing Playback Settings) resource represents all the playback settings configuration for a script.

Table 60-29 OftPlaybackSettings Resource Data Model

Field

Type

Description

uri

String

URI of the resource

testAssetContextId

String

Context ID for the test asset

TestAssetUri

String

URI for the test asset

scriptDetailsUri

Script

URI for the asset script details

values

String

Playback settings configuration contents for the asset script

The following table lists the method supported in the OftPlaybackSettings resource.

Table 60-30 Supported Methods for OftPlaybackSetting Resource

Method

Description

Sample URI

GET

Returns playback settings for specified Oracle Functional Testing asset script

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/E3F48FC047CCE9E5E040F50A2D1E128E/oft_script_details/playback_settings

60.3.11 OftDatabaseDatabanks

The OftDatabaseDatabanks (Oracle Functional Testing Database Databanks) resource represents a list of database databanks for a specified Oracle Functional Testing test asset. OftDatabaseDatabanks is represented with type DbDatabankCollection.

Databanks are used to hold unlimited amounts of input data that can be automatically fed into your Web application.

Table 60-31 OftDatabaseDatabanks Resource Data Model

Field

Type

Description

uri

String

URI of the resource

testAssetContextId

String

Context ID for the test asset

testAssetUri

String

URI for the test asset

scriptDetailsUri

String

URI for the asset script details

databaseDatabanks

List of OftScriptDbDatabankEntity

List of detailed data for all database databanks inside the Oracle Functional Testing asset script

The following table lists the methods supported in the OftDatabaseDatabanks resource.

Table 60-32 Supported Methods for OftDatabaseDatabanks Resource

Method

Description

Sample URI

LIST (GET without id parameter)

Returns a list of database databanks for the specified test asset script

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/E3F708CCD6CAC1E6E040F50A2D1E4ADE/oft_script_details/db_data_banks

OftScriptDbDatabankEntity Subtype

Use the OftScriptDbDatabankEntity subtype to provide the specific details for the Oracle Functional Testing script database databank entity resource.

Table 60-33 OftScriptDbDatabankEntity Subtype

Field

Type

Description

alias

String

Alias of the database databank

driver

String

Driver for the database databank

connectUrl

String

Connection URL for the database databank

userName

String

User name for the database databank

sql

String

SQL string defined inside the database databank

60.3.12 TestEnvironment

TestEnvironment is a collection of resources that represents the entire application stack.

Table 60-34 TestEnvironment Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the test environment

applicationUri

String

URI of the application of this test environment.

applicationName

String

Name of the application of this test environment

tags

String

Tags of the test environment

owner

String

User name of the owner of this test environment

description

String

Description of the test environment

lastModified

String (ISO 8601 date)

Last modified date of the test environment

contextId

String

Context ID (GUID) of the test environment

The following table lists the methods supported in the TestEnvironment resource.

Table 60-35 Supported Methods for TestEnvironment Resource

Method

Description

Sample URI

LIST (GET without ID parameter)

Returns a list of test environments being published to current user

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments

GET

Returns test environment by GUID

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/C0D0F1A8F11A2EA1E040E50A42BB70CF

60.3.13 Test

Note: Test is a parent resource of the Trial resource.

Testers use this resource to create tests from test assets and test environments to perform testing activities. Testers create tests using test assets and environments that have been assigned to them by the Test Administrator.

Table 60-36 Test Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the test. When using the POST method, name is required. When using the PUT method, name is optional.

testDriverTypeUri

String

URI of the test driver type

testDriverTypeName

String

Name of the test driver type

description

String

Description of the test. [POST] [PUT] optional

testAssets

List of AssetInTestEntity

List of the test assets of this test. For Oracle Load Testing or custom test, one asset is used. For Oracle Functional Testing test, one or more test assets could be defined.[POST][PUT] required

testEnvironmentUri

String

URI of the test environment of this test

testEnvironmentName

String

Name of the test environment of this test

useEnvironmentLibrary

Boolean

Returns true if the associated test environment is from 'my library'. Returns false if the associated test environment is an existing Enterprise Manager target

systemTargetUri

String

Returns true if the associated test environment is from 'my library'. Returns false if the associated test environment is an existing Enterprise Manager target

testDriverUri

String

URI of the test driver of this test

testDriverName

String

Name of the test driver of this test

replaceUrls

List of ReplaceUrl

A list of replace URLs for this test asset. Only for Oracle Functional Testing test, multi (more than one) replace URLs are supported. [POST][PUT] optional, if null using default setting.

trialsUri

String

URI of all trials of this test

contextId(guid)

String

GUID of the test

testEnvironmentContextId

String

GUID of the test environment. [POST][PUT] optional.

systemTargetContextId

String

GUID of the Enterprise Manager target. [POST][PUT] optional.

testDriverContextId

String

GUID of the test driver. [POST][PUT] optional.

The following table lists the methods supported in the Test resource.

Table 60-37 Supported Methods for Test Resource

Method

Description

Sample URI

LIST (GET without context_id)

Returns a list of tests of the current user

/em/websvcs/restful/extws/cloudservices/taas/v1/tests

GET

Returns test by GUID as context_id

/em/websvcs/restful/extws/cloudservices/taas/v1/tests/C0D0F1A8F11A2EA1E040E50A42BB70CF

POST

Create a new test. context_id should be null in request. It returns the URI of new created test.

/em/websvcs/restful/extws/cloudservices/taas/v1/tests/

PUT

Update attributes of a test

/em/websvcs/restful/extws/cloudservices/taas/v1/tests/C0D0F1A8F11A2EA1E040E50A42BB70CF

DELETE

Delete a test

/em/websvcs/restful/extws/cloudservices/taas/v1/tests/C0D0F1A8F11A2EA1E040E50A42BB70CF

AssetInTestEntity Subtype

Use the AssetInTestEntity subtype to provide the specific details for the test asset used in the Test resource.

Table 60-38 AssetInTestEntity Subtype

Field

Type

Description

testAssetContextId

String

Context ID of the test asset resource

testAssetUri

String

GUID of the test environment. [POST][PUT] optional.

testAssetName

String

Name of the test asset

ReplaceUrl Subtype

Represents a URL replacing a recorded script within test asset. While a trial is running, a URL starting with the specified segment will be replaced by the given string before the URL request is sent.

Table 60-39 ReplaceUrl Subtype

Field

Type

Description

originalUrl

String

Original recorded URL in the script of the Test Asset. This field is optional for the POST and PUT methods.

newUrl

String

New URL to replace original URL This field is optional for the POST and PUT methods.

replaceType

String

Value of KEEP_SAME, FROM_APPLIANCE, SPECIFIED. KEEP_SAME: newUrl is ignored. FROM_APPLIANCE newUrl is set from test environment appliance. SPECIFIED: originalUrl is replaced by newUrl that provided by user.

60.3.14 Trial

Note: Trial is a child resource of Test.

Testers to create and run trials from the test instances that have been created. The Tester runs trials on the test asset and environment, monitors ongoing trials, and analyzes the results of completed trials.

Table 60-40 Trial Resource Model Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the trial. [POST] required [PUT] optional

testUri

String

URI of the associated test

testName

String

Name of the associated test

testContextId

String

Context ID of the test. [POST][PUT] required

testEnvironmentInstanceContextId

String

Context ID of the test environment instance. [POST][PUT] required if Test Environment is selected by its Test, and testEnvironmentInstanceName testEnvironmentInstancePassword are not provided

testEnvironmentInstanceUri

String

URI of the associated test environment instance

testEnvironmentInstanceName

String

Name of the associated test environment instance. [POST][PUT] required if Test Environment is selected by its Test, and testEnvironmentInstanceContextId is not provided

testEnvironmentInstancePassword

String

Password of the new environment instance is going to create. [POST][PUT] required if Test Environment is selected by its Test, and testEnvironmentInstanceContextId is not provided

testEnvironmentInstanceStopDelaySeconds

Long

Stop test environment instance delay seconds after trial complete. [POST][PUT] optional

testEnvironmentInstanceDeleteDelaySeconds

Long

Delete test environment instance delay seconds after trial complete. [POST][PUT] optional, ignored if the testEnvironmentInstanceContextId is provided.

testDriverInstanceContextId

String

Context ID of the test driver instance. [POST][PUT] required if testDriverInstanceName and testDriverInstancePassword are not provided

testDriverInstanceUri

String

URI of the test driver instance

testDriverInstanceName

String

Name of test driver instance. [POST][PUT] required if testDriverInstanceContextId is not provided.

testDriverInstancePassword

String

Password of the new test driver instance is going to create. [POST][PUT] required if testDriverInstanceContextId is not provided.

testDriverInstanceStopDelaySeconds

Long

Delay seconds to stop the test driver instance after trial complete. [POST][PUT] optional

testDriverInstanceDeleteDelaySeconds

Long

Delay seconds to delete test driver instance after trial is complete. [POST][PUT] optional, ignored if the testDriverInstanceContextId is provided.

description

String

Description of the trial. [POST][PUT] optional

owner

String

User name of the user of this trial

status

String

Status of this trial

startTime

String (ISO 8601 date time)

Scheduled start time of this trial. [POST][PUT] optional

endTime

String (ISO 8601 date time)

End time of this trial.

testingExistedSystem

Boolean

Test is defined as testing existed target system

executionLog

String

Execution log of the trial

metricsUri

String

URI of the Enterprise Manager metrics collected by the trial.

awrDownloadUri

String

URI of the AWR report download place generated by the trial.

operationsUri

String

URI of the operations available for the trial.

contextId(guid)

String

GUID of the trial

oltTrialSettings

String

Specific trial settings for Oracle Load Testing. [POST][PUT] optional, using default setting from test asset if null

customTrialSettings

String

Specific trial settings for Custom.[POST][PUT] optional, using default setting from test asset if null.

oftAssetExecutions

String

Specific Oracle Functional Testing trial asset execution configuration and result data. [POST][PUT] optional, using default settings from test assets if this is null

The following table lists the methods supported in the Trial resource.

Table 60-41 Supported Methods for Trial Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

Returns a list of trials of a test being owned by current user.

/em/websvcs/restful/extws/cloudservices/taas/v1/trials

GET

Returns a trial by context_id (GUID)

/em/websvcs/restful/extws/cloudservices/taas/v1/trials/C0D0F1A8F11A2EA1E040E50A42BB70CE

POST

Creates a new trial

/em/websvcs/restful/extws/cloudservices/taas/v1/trials

PUT

Updates a trial by context_id.

/em/websvcs/restful/extws/cloudservices/taas/v1/trials/C0D0F1A8F11A2EA1E040E50A42BB70CE

DELETE

Deletes a trial by context_id.

/em/websvcs/restful/extws/cloudservices/taas/v1/trials/C0D0F1A8F11A2EA1E040E50A42BB70CE

OltTrialSettings Subtype

Use the OltTrialSettings subtype to provide specific trial settings for the Oracle Load Testing trial.

Table 60-42 Oracle Load Testing Trial Settings Subtype

Field

Type

Description

oltSessionName

String

Name of the Oracle Load Testing session

oltSessionUri

String

URI of the Oracle Load Testing session resource

rampup

OltRampup

Oracle Load Testing rampup setting. [POST][PUT] optional, using default setting from test asset if null

endCondition

OltEndCondition

Oracle Load Testing trial end condition setting. [POST][PUT] optional, using default setting from test asset if null

scriptVuCounts

OltScript

Script VU counts setting. Refer to the details on OltScript in OltTestAssetSettings. [POST][PUT] optional, using default setting from test asset if null

numberOfAgentDeployments

Long

Number of agent deployments

OltRampup Subtype

Use the OltRampup subtype to provide the specific details for the rampup settings used in the Oracle Load Testing trial. OltRampup represents the rate at which an OLT trial starts running virtual users.

Table 60-43 OltRampup Subtype

Field

Type

Description

rampupOption

Integer

Rampup setting option. Value from 1,2,3,4.

1. X user every X seconds

2. X user every X iterations

3. X percent every X seconds

4. X percent every X iterations

user

Integer

Number of users [POST][PUT] required if rampupOption 1,2

percent

Double

Number of percent [POST][PUT] required if rampupOption 3,4

percent - Specifies a percentage of the virtual users to start at a time based on the After setting.

After every - Specifies how often the specified number or percentage of virtual users start running. After every has the following options: seconds, iterations.

seconds

Long

Number of seconds [POST][PUT] required if rampupOption 1,3

iterations

Long

Number of iterations [POST][PUT] required if rampupOption 2,4

OltEndCondition Subtype

Use the OltEndCondition subtype to provide the specific end conditions used in the Oracle Load Testing trial.

Table 60-44 OltEndCondition Subtype

Field

Type

Description

endConditionOption

Integer

End condition option. Value from 1,2. 1: end after X seconds 2: end after X iterations

afterSeconds

Long

Number of seconds. [POST][PUT] required if endConditionOption 1

afterIterations

Long

Number of iterations. [POST][PUT] required if endConditionOption 2

CustomTrialSettings Subtype

Use the CustomTrial Settings subtype to provide the specific custom trial settings used in the trial resource.

Table 60-45 CustomTrialSettings Subtype

Field

Type

Description

resultAvailable

Boolean

States whether the custom result is available. This field is read only.

resultStatus

String

Status of custom result. Value from RESULT_PASSED, RESULT_FAILED, RESULT_PASSED_WITH_WARN

resultDownloadUri

String

URI of result file download place.

customParametersUri

String

URI of custom parameters.

parameters

List of CustomParameter

The custom parameters setting for custom trial. Refer to CustomParameter definition on CutomTestAssetSettings. [POST][PUT] optional, using default setting from test asset if null.

OftAssetExecutionCollection Subtype

Use the OftAssetExecutionCollection subtype to provide the specific Oracle Functional Testing asset execution collection settings used in the trial resource.

Table 60-46 OftAssetExecutionCollection Subtype

Field

Type

Description

trialContextId

String

Context ID for the trial

trialUri

String

URI for the trial

totalAssets

Integer

Number of total assets for this trial.

passedAssets

Integer

Number of passed assets for this trial.

failedAssets

Integer

Number of failed assets for this trial.

warningAssets

Integer

Number of warning assets for this trial.

notExecutedAssets

Integer

Number of not executed assets for this trial.

assetExecutions

List of OftTrialAssetExecution

List of executions that represent the execution and playback of all asset scripts for this trial.

60.3.15 Metric

Enterprise Manager target metric monitored by a Trial.

Table 60-47 Metric Resource Data Model

Field

Type

Description

uri

String

URI of the resource

contextId(trial_metric_id)

String

Trial metric ID of the metric.

trialContextId

Long

Context ID the trial refers to

trialUri

String

URI of the trial

metricName

String

Name of the metric

metricValuesUri

String

URI of MetricValues

The following table lists the methods supported in the Metric resource.

Table 60-48 Supported Methods for Metric Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

Returns a list of metrics

em/websvcs/restful/extws/cloudservices/taas/v1/trials/E0306FAA6635149DE040F50A351D0350/metrics

GET

Returns a metric

em/websvcs/restful/extws/cloudservices/taas/v1/metrics/1085

60.3.16 MetricValue

Note: Enterprise Manager metric value.

The value of a metric at a specific time stamp.

Table 60-49 MetricValue Resource Data Model

Field

Type

Description

metricContextId

String

Trial metric ID of the metric

metricUri

String

URI of the metric

metricName

String

Name of the metric

metricValue

Double

Number of metric value

collectionDate

String (ISO 8601 date)

Date and time value when metric value is collected.

The following table lists the method supported in the MetricValue resource.

Table 60-50 Supported Method for MetricValue Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

Returns a list of metric values

em/websvcs/restful/extws/cloudservices/taas/v1/metrics/1085/metric_values

60.3.17 OltSession

Note: Only application to Oracle Load Testing trial.

The OltSession (Oracle Load Testing Session) associated with a Oracle Load Testing trial.

Table 60-51 OltSession Resource Data Model

Field

Type

Description

uri

String

URI of this entity

contextId(olt session run id)

String

Session run ID of the Oracle Load Testing session

trialUri

String

URI of the trial

trialContextId

String

Context of the trial

oltCountersUri

String

URI of the Oracle Load Testing counters

sessionName

String

Name of the Oracle Load Testing session

startTime

String (ISO 8601 date)

Start time of the session

finishTime

String (ISO 8601 date)

Finish time of the session

The following table lists the methods supported in the OltSession resource.

Table 60-52 Supported Methods for OltSession Resource

Method

Description

Sample URI

GET

Returns an Oracle Load Testing session

em/websvcs/restful/extws/cloudservices/taas/v1/trials/E082496BD7336A9EE040F50A351D4F28/olt_session

60.3.18 OltCounter

Note: Only applicable to Oracle Load Testing trial.

The OltCounter (Oracle Load Testing Counter) monitored by Oracle Load Testing trial.

Table 60-53 OltCounter Resource Data Model

Field

Type

Description

uri

String

URI of this entity

oltSessionContextId

String

ID of the counter

oltSessionUri

String

URI of the Oracle Load Testing session

counterName

String

Name of the counter. For example, Hits/sec, Number of VUs, and Trans/sec

objectName

String

Script object name of the counter

instanceName

String

Step instance name of the counter. E.g. {Run: MedRecAppScript}.{[2] Oracle WebLogic Server - Medical Record Sample Application}

niceName

String

User-friendly display name of the counter

oltCounterValuesUri

String

URI of OltCounterValues

The following table lists the methods supported in the OltCounter resource.

Table 60-54 Supported Methods for OltCounter Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

Returns a list of Oracle Load Testing counters

em/websvcs/restful/extws/cloudservices/taas/v1/olt_sessions/81/olt_counters

GET

Returns an Oracle Load Testing counter

em/websvcs/restful/extws/cloudservices/taas/v1/olt_counters/81/1671

60.3.19 OltCounterValue

The value of Oracle Load Testing counter at specific time stamp.

Table 60-55 OltCounterValue Resource Data Model

Field

Type

Description

oltSessionUri

String

URI of the Oracle Load Testing session

oltCounterUri

String

URI of the Oracle Load Testing counter

counterValue

Double

Value of the counter

couterTime

String (ISO 8601 date)

Time the counter value is collected.

The following table lists the method supported in the OltCounterValue resource.

Table 60-56 Supported Method for OltCounterValue Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

Returns a list of Oracle Load Testing counters

em/websvcs/restful/extws/cloudservices/taas/v1/olt_counters/81/1671/olt_counter_values

60.3.20 OftTrialAssetExecution

This resource represents details (configuration and results) of an Oracle Functional Testing test asset script execution (playback).

Table 60-57 OftTrialAssetExecution Resource Data Model

Field

Type

Description

uri

String

URI of the resource

contextId

String

Context ID for the Oracle Functional Testing trial asset execution.

trialContextId

String

Context ID of the Oracle Functional Testing trial

trialUri

String

URI of the Oracle Functional Testing trial

assetContextId

String

Context ID of the asset

assetUri

String

URI of the asset

configuration

AssetConfigurationEntity

Configuration of the Oracle Functional Testing trial asset execution.

executionResult

AssetResultEntity

Result of the Oracle Functional Testing trial asset execution.

The following table lists the method supported in the OftTrialAssetExecution resource.

Table 60-58 Supported Method for OftTrialAssetExecution Resource

Method

Description

Sample URI

GET

Returns data of an Oracle Functional Testing trial execution by trial and execution context ID

/em/websvcs/restful/extws/cloudservices/taas/v1/trials
/E3F85B2946C890BAE040F50A2D1E2D1B/executions
/E3F85B2946C990BAE040F50A2D1E2D1B

AssetConfigurationEntity Subtype

Use the AssetConfigurationEntity subtype to provide the specific asset configuration entity settings used in the Oracle Functional Testing Trial Asset Execution resource.

Table 60-59 AssetConfigurationEntity Subtype

Field

Type

Description

runAlways

Boolean

Configure if the execution will always run without considering previous errors.

continueOnWarning

Boolean

Configure if the execution will always run without considering previous errors.

continueOnError

Boolean

Configure if the execution will continue to run in the event there are errors in the previous execution.

playbackSettings

List of PlaybackSettingEntity

List of playback settings configuration.

csvDatabanks

List of CsvDatabankEntity

List of csv databanks configuration.

databaseDatabanks

List of DbDatabankEntity

List of database databanks configuration.

playbackSettingsUri

String

URI to access the modified playback settings configuration

csvDatabanksUri

String

URI to access the modified csv databanks configuration

dbDatabanksUri

String

URI to access the modified database databanks configuration

PlaybackSettingEntity Subtype

Use the PlaybackSettingEntity subtype to provide the specific playback entity settings used in the Oracle Functional Testing Trial Asset Execution resource.

Table 60-60 PlaybackSettingEntity Subtype

Field

Type

Description

name

String

Name of the playback setting field

value

String

Value of the playback setting field

CsvDatabankEntity Subtype

Use the CsvDatabankEntity subtype to provide the specific comma-separated databank entity settings used in the Oracle Functional Testing Trial Asset Execution resource.

Table 60-61 CSV Databank Entity Subtype

Field

Type

Description

name

String

Name of the csv databank

contents

String

Contents of the csv databank file

DbDatabankEntity Subtype

Use the DbDatabankEntity subtype to provide the specific database databank entity settings used in the Oracle Functional Testing Trial Asset Execution resource.

Table 60-62 Database Databank Entity Subtype

Field

Type

Description

alias

String

Alias of the database databank

driver

String

Driver of the database databank

connectUrl

String

Connection URL for the database databank.

userName

String

User name for the database databank.

password

String

Password for the database databank. [GET] not available for GET method.

sql

String

SQL string defined inside the database databank.

AssetResultEntity Subtype

Use the AssetResultEntity subtype to provide the specific asset result entity settings used in the Oracle Functional Testing Trial Asset Execution resource.

Table 60-63 Asset Result Entity Subtype

Field

Type

Description

trialContextId

String

Context ID for the trial

assetContextId

String

Context ID for the asset

executionResultUri

String

URI for the trial asset execution result.

overallResult

String

Overall result of the execution

status

String

Status of the asset result

iterations

Integer

Total iterations of the asset script execution.

totalUserDefinedTests

Integer

Amount of total user defined tests.

passedUserDefinedTests

Integer

Amount of passed user defined tests.

failedUserDefinedTests

Integer

Amount of failed user defined tests

warningUserDefinedTests

Integer

Amount of warning user defined tests.

totalScriptActions

Integer

Amount of total script actions.

passedScriptActions

Integer

Amount of passed script actions.

failedScriptActions

Integer

Amount of failed script actions.

warningScriptActions

Integer

Amount of warning script actions.

totalSteps

Integer

Amount of total steps

execOrder

Integer

Order of this execution inside the Oracle Functional Testing trial all assets executions.

uniqueName

String

Unique name of the asset execution.

scriptName

String

Name of the script.

resultStorage

String

Result storage (local or rfs) of the asset execution.

zipResultUri

String

URI to the execution result zip

rfsLocation

String

Location of the asset execution stored on rfs.

stepDetailsUri

String

URI to the steps details of the executions.

60.3.21 TestDriverInstance

The instance of Test Driver.

Table 60-64 TestDriverInstance Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the test driver instance. [POST] required

status

String

Status of the test driver instance.

testDriverUri

String

URI of the test driver of the instance.

testDriverContextId

String

ID of the test driver. [POST] required

testDriverName

String

Name of the test driver of the instance.

owner

String

Owner of the test driver instance.

creationDate

String (ISO 8601 date)

Creation date of the test driver instance.

contextId(id)

Long

Context ID of the test driver instance

testDriverInstancePassword

String

Password of the new test driver instance. [POST] required

scheduledStartTime

String (ISO 8601 date)

Scheduled start time of the new instance. [POST] optional

scheduledDeleteTime

String (ISO 8601 date)

Scheduled delete time of the new instance. [POST] optional

operationsUri

String

URI of all available operations.

The following table lists the methods supported in the TestDriverInstance resource.

Table 60-65 Supported Methods for Test Driver Instance Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

List all test driver instances.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_driver_instances

GET

Returns data of a test driver instance by context ID.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_driver_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF

POST

Create a test driver instance.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_driver_instances

DELETE

Delete the test driver instance by context ID.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_driver_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF

60.3.22 TestEnvironmentInstance Resource

The instance of Test Environment.

Table 60-66 TestEnvironmentInstance Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Name of the test environment instance. [POST] required

status

String

Status of the test environment instance

testEnvironmentContextId

String

Context id of the test environment. [POST] required

testEnvironmentUri

String

URI of the test environment of this instance.

testEnvironmentName

String

Name of the test environment of this instance.

owner

String

Owner of the test environment instance.

creationDate

String (ISO 8601 date)

Creation date of the instance.

contextId

Long

ID of the test environment instance

testEnvironmentInstancePassword

String

Password of the new test driver instance. [POST] required

scheduledStartTime

String (ISO 8601 date)

Scheduled start time of the new instance. [POST] optional

scheduledDeleteTime

String (ISO 8601 date)

Scheduled delete time of the new instance. [POST] optional

operationsUri

String

URI of available operations.

The following table lists the methods supported in the TestEnvironmentInstance resource.

Table 60-67 Supported Methods for Test Environment Instance Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

List all test environment instances.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_environment_instances

GET

Returns data of a test environment instance by context ID.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_environment_instances
/C0D0F1A8F11A2EA1E040E50A42BB70CF

POST

Create a test environment instance.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_environment_instances

DELETE

Delete the test environment instance by context id.

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_environment_instances
/C0D0F1A8F11A2EA1E040E50A42BB70CF

60.3.23 Operation

An Operation represents one allowed operation on a resource, for example, TestEnvironmentInstance/TestDriverInstance/Trial.

The supported operations for test environment instance are: start, stop, restart.

The supported operations for test driver instance are: start, stop, restart, add_agents, remove_agent, acquire_agent.

The supported operation for trial is stop.

Table 60-68 Operation Resource Data Model

Field

Type

Description

uri

String

URI of the operation

name

String

Name of the operation

method

String

Method of the operation (POST)

parameters

List of OperationParameter

Parameters for Method

The following table lists the methods supported in the Operation resource.

Table 60-69 Supported Methods for Operation Resource

Method

Description

Sample URI

LIST (GET without context_id parameter)

List all operations of test environment/driver instances

/em/websvcs/restful/extws/cloudservices/taas/v1
/test_environment_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF
/operations

POST

Perform an operation on instance.

1./em/websvcs/restful/extws/cloudservices/taas/v1
/test_environment_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF
/operations/start
2./em/websvcs/restful/extws/cloudservices/taas/v1
/test_environment_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF
/operations/stop
3./em/websvcs/restful/extws/cloudservices/taas/v1
/test_driver_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF
/operations/add_agents
Parameter:number of agent want to add.
4./em/websvcs/restful/extws/cloudservices/taas/v1
/test_driver_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF
/operations/remove_agent
Parameters:context id of agent.
5./em/websvcs/restful/extws/cloudservices/taas/v1/tests
/C0D0F1A8F11A2EA1E040E50A42BB70CF/trials
/C0D0F1A8F11A2EA1E040E50A42BB70CE/operations/stop
6./em/websvcs/restful/extws/cloudservices/taas/v1
/test_driver_instances/C0D0F1A8F11A2EA1E040E50A42BB70CF
/operations/acquire_agent
Parameters:context id of agent.

OperationParameter Subtype

Use the OperationParameter subtype to provide the specific operation parameter settings used in the Operation resource.

Table 60-70 OperationParameter Subtype

Field

Type

Description

name

String

Name of the parameter

value

String

The parameter value

defaultValue

String

Default parameter value

isRequiredValue

Boolean

Whether the parameter is required

possibleValues

List of String

Possible values for the parameter

description

String

Description of parameter

60.3.24 TestType

The type of Test

Table 60-71 TestType Resource Data Model

Field

Type

Description

uri

String

URI of the resource

name

String

Test type name

contextId(id)

Long

ID of the test type

The following table lists the methods supported in the TestType resource.

Table 60-72 Supported Methods for Test Type Resource Model

Method

Description

Sample URI

LIST (GET without context_id parameter)

List all test types.

/em/websvcs/restful/extws/cloudservices/taas/v1/test_types

GET

Returns a test type

/em/websvcs/restful/extws/cloudservices/taas/v1/test_types/1

60.3.25 Target

Enterprise Manager target.

Table 60-73 Target Resource Data Model

Field

Type

Description

uri

String

URI of the resource

contextId

String

GUID of the target

targetName

String

Name of the target

targetType

String

Type of the target

status

Integer

Status of the target

statusDisplay

String

The display status of the target. For example, up, down, and so on

hostName

String

The host name of the target that on

The following table lists the methods supported in the Target resource.

Table 60-74 Supported Methods for Target Resource

Method

Description

Sample URI

LIST

Returns a list of targets

/em/websvcs/restful/extws/cloudservices/taas/v1/targets

GET

Returns a target

/em/websvcs/restful/extws/cloudservices/taas/v1/targets
/C0D0F1A8F11A2EA1E040E50A42BB70CF

60.3.26 OltAgent

OltAgent (Oracle Load Testing Agent) represents an agent machine that can be used to run an Oracle Load Testing trial.

Table 60-75 OltAgent Resource Data Model

Field

Type

Description

uri

String

URI of the OLT agent

contextId

String

GUID of the OLT agent

hostName

String

Name of the OLT agent

status

String

Status of the OLT agent

ip

String

IP address of the OLT agent

port

String

Port of Agent service of Olt Agent

version

String

Version of OLT Agent

cpu

String

CPU count of OLT Agent

memory

String

Memory of OLT Agent, unit is MB.

storage

String

Storage of OLT Agent, unit is MB.

The following table lists the methods supported in the OltAgent resource.

Table 60-76 Supported Methods for OltAgent Resource

Method

Description

Sample URI

LIST

Returns a list of OLT Agent

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances
/C0D0F1A8F11A2EA1E040E50A42BB70CF
/OltAgents

GET

Returns an Agent

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances
/C0D0F1A8F11A2EA1E040E50A42BB70CF
/OltAgents/C0D0F1A8F11A2EA1E040E50A42BB70CF

60.4 Testing as a Service REST API Examples

The following are examples of how to use the TaaS REST API.

- Viewing Details of all Applications

- Querying an Application by Context ID

- Viewing Details of All Test Assets

- Querying a Test Asset by Context ID

- Viewing Details of all Test Environments

- Querying a Test Environment by Context ID

- Viewing Details of all Test Drivers

- Querying a Test Driver by Context ID

- Querying Test Driver Type by Context ID

- Viewing Details of all Test Environment Instances

- Querying a Test Environment Instance by Context ID

- Creating a Test Environment Instance

- Executing an Operation on Test Environment / Driver Instance

- Deleting a Stopped Test Environment Instance

- Viewing Details of All Test Driver Instances

- Querying a Test Driver Instance by Context ID

- Creating a Test Driver Instance

- Deleting a Stopped Test Driver Instance

- Viewing Details of all Tests

- Querying a Test by Context ID

- Creating a Test

- Deleting a Test

- Viewing Details of All Trials

- Querying a Trial by Context ID

- Creating a New Trial

- Updating a Trial

- Deleting a Trial

60.4.1 Viewing Details of all Applications

The table below shows the GET request configuration.

Table 60-77 GET Request Configuration for Listing all Applications

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/applications

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/applications",
"items": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1",
"contextId": "1",
"name": "medrec"
}
}

60.4.2 Querying an Application by Context ID

The table below shows the GET request configuration.

Table 60-78 GET Request Configuration for Querying an Application by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1", "contextId": "1",
"name": "medrec"
}

60.4.3 Viewing Details of All Test Assets

The table below shows the GET request configuration.

Table 60-79 GET Request Configuration for Listing all Test Assets

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets", "items": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492", "contextId": "DCBDEA617F62EC63E040F20AA0512492",
"name": "Asset001",
"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OLT",
"applicationUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1", "applicationName": "medrec",
"lastModified": "1368603913000",
"owner": "TAASUSER1",
"vuCountEditable": "true",
"rampupSettingEditable": "true",
"endConditionEditable": "true"
}
}

60.4.4 Querying a Test Asset by Context ID

The table below shows the GET request configuration.

Table 60-80 GET Request Configuration for Querying a Test Assets by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492", "contextId": "DCBDEA617F62EC63E040F20AA0512492",
"name": "Asset001",
"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OLT",
"applicationUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1", "applicationName": "medrec",
"lastModified": "1368603913000",
"owner": "TAASUSER1",
"oltScenario": {
"scripts": {
"name": "MedRec1Script",
"vuCount": "1"
},
"rampupOptionIndex": "3",
"rampupOptionLabel": "X Percent every Y Seconds",
"rampupUserOrPercent": "10.0",
"rampupSecondOrIteration": "10.0",
"endCondition": "As defined in the scenario: After each user plays 2 Iterations"
},
"vuCountEditable": "true",
"rampupSettingEditable": "true",
"endConditionEditable": "true"
}

60.4.5 Viewing Details of all Test Environments

The table below shows the GET request configuration.

Table 60-81 GET Request Configuration for Viewing all the Test Environments

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments", "items": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "contextId": "DCBDF6F2FFC90069E040F20AA051215F",
"name": "MedrecEnv",
"applicationUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1", "applicationName": "medrec",
"owner": "TAASUSER1",
"lastModified": "1368604061000"
}
}

60.4.6 Querying a Test Environment by Context ID

The table below shows the GET request configuration.

Table 60-82 GET Request Configuration for Querying a Test Environment by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "contextId": "DCBDF6F2FFC90069E040F20AA051215F",
"name": "MedrecEnv",
"applicationUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/applications/1", "applicationName": "medrec",
"owner": "TAASUSER1",
"lastModified": "1368604061000"
}

60.4.7 Viewing Details of all Test Drivers

The table below shows the GET request configuration.

Table 60-83 GET Request Configuration for Listing all Test Drivers

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers", "items": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "contextId": "DCBD49A045FFD35BE040F20AA05150F5",
"name": "Default OLT",
"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OLT"
}
}

60.4.8 Querying a Test Driver by Context ID

The table below shows the GET request configuration.

Table 60-84 GET Request Configuration for Querying a Test Driver by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "contextId": "DCBD49A045FFD35BE040F20AA05150F5",
"name": "Default OLT",
"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OLT"
}

60.4.9 Querying Test Driver Type by Context ID

The table below shows the GET request configuration.

Table 60-85 GET Request Configuration for Querying a Test Driver Type by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "contextId": "1",
"name": "OLT",
"testTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_types/1", "testTypeName": "OLT"
}

60.4.10 Viewing Details of all Test Environment Instances

The table below shows the GET request configuration.

Table 60-86 GET Request Configuration for Viewing all Test Environment Instances

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances", "items": [
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1", "contextId": "1",
"name": "Medrec_11",
"status": "Ready",
"testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv",
"owner": "TAASUSER1",
"creationDate": "1368604209000",
"operations": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1/operations",\\\\ "items": [
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1/operations/stop",\\\\ "contextId": "stop",
"method": "POST"
},
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1/operations/restart", "contextId": "restart",
"method": "POST"
}
]
}
}
]
}

60.4.11 Querying a Test Environment Instance by Context ID

The table below shows the GET request configuration.

Table 60-87 GET Request Configuration for Querying a Test Environment Instance by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1", "contextId": "1",
"name": "Medrec_11",
"status": "Ready",
"testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv",
"owner": "TAASUSER1",
"creationDate": "1368604209000",
"operations": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1/operations", "items": [
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1/operations/stop", "contextId": "stop",
"method": "POST"
},
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1/operations/restart", "contextId": "restart",
"method": "POST"
}
]
}
}

60.4.12 Creating a Test Environment Instance

The table below shows the POST request configuration.

Table 60-88 POST Request Configuration for Creating a Test Environment Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances

Body

{
"name": "testEnvInst1",
"testEnvironmentContextId": "DCBDF6F2FFC90069E040F20AA051215F",
"testEnvironmentInstancePassword": "Oracle123"
"scheduledStartTime": null,
"scheduledDeleteTime": null

}

Request method

POST

A sample of the response received is shown below.

Method: POST

URI: https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances

Request:

Response:
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/41", "contextId": "41",
"name": "testEnvInst1",
"status": "Scheduled",
"testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv",
"owner": "TAASUSER1",
"creationDate": "1368772865392",
"operations": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/41/operations" }
}

60.4.13 Executing an Operation on Test Environment / Driver Instance

Note:
The executable operation depends on the status of the test environment instance. Operations are start, stop, and restart.

The table below shows the POST request configuration.

Table 60-89 POST Request Configuration for Executing an Operation on a Test Environment / Driver Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1/operations/stop

Body

None

Request method

POST

A sample of the response received is shown below.

Operation request has been submitted.

60.4.14 Deleting a Stopped Test Environment Instance

The table below shows the DELETE request configuration.

Table 60-90 DELETE Request Configuration for Deleting a Stopped Test Environment Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/21

Body

None

Request method

DELETE

A sample of the response received is shown below.

TestEnvironmentInstanceEntity has been deleted.Context Id:21

60.4.15 Viewing Details of All Test Driver Instances

The table below shows the GET request configuration.

Table 60-91 GET Request Configuration for Viewing all Test Driver Instances

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances

Body

None

Request method

GET

A sample of the response received is shown below.

{ "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances", "items": { "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1", "contextId": "1", "name": "ManualTDInst", "status": "Ready", "testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT", "owner": "TAASUSER1", "creationDate": "1368576000000", "operations": { "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1/operations", "items": [ { "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1/operations/stop", "contextId": "stop", "method": "POST" }, { "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1/operations/restart", "contextId": "restart", "method": "POST" } ] } } }

60.4.16 Querying a Test Driver Instance by Context ID

The table below shows the GET request configuration.

Table 60-92 GET Request Configuration for Querying a Test Driver Instance by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1", "contextId": "1",
"name": "ManualTDInst",
"status": "Ready",
"testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT",
"owner": "TAASUSER1",
"creationDate": "1368576000000",
"operations": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1/operations", "items": [
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1/operations/stop", "contextId": "stop",
"method": "POST"
},
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1/operations/restart", "contextId": "restart",
"method": "POST"
}
]
}
}

60.4.17 Creating a Test Driver Instance

The table below shows the POST request configuration.

Table 60-93 POST Request Configuration for Creating a Test Driver Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1

Body

{
"name": "testDriverInst1",
"testDriverContextId": "DCBD49A045FFD35BE040F20AA05150F5",
"testDriverInstancePassword": "Oracle123"
"scheduledStartTime": null,
"scheduledDeleteTime": null
}

Request method

POST

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/25", "contextId": "25",
"name": "testDrvInst1",
"status": "NotAvailable",
"testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers", "owner": "TAASUSER1",
"creationDate": "1368774079487",
"operations": {
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/25/operations" }
}

60.4.18 Deleting a Stopped Test Driver Instance

The table below shows the DELETE request configuration.

Table 60-94 DELETE Request Configuration for Deleting a Stopped Test Driver Instance

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/25

Body

None

Request method

DELETE

A sample of the response received is shown below.

TestDriverInstanceEntity has been deleted. Context Id:25

60.4.19 Viewing Details of all Tests

The table below shows the GET request configuration.

Table 60-95 GET Request Configuration for Viewing all Tests

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/tests

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests", "items": [
{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC", "contextId": "DCC7AC5803CF97B2E040F20AA05152EC",
"name": "Test1",
"testDriverTypeContextId": "1",

"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OFT",
"testAssets": {
"testAssetContextId": "DCBDEA617F62EC63E040F20AA0512492",
"testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492",
"testAssetName": "Asset001"
},
"testEnvironmentContextId": "DCBDF6F2FFC90069E040F20AA051215F",
"testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F",\\ "testEnvironmentName": "MedrecEnv",
"useEnvironmentLibrary": "false"
"testDriverContextId": "DCBD49A045FFD35BE040F20AA05150F5",
"testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT",
"mappingUrls": "xx.example.com:7011|FROM_APPLIANCE|MedRec/MedRec1/MedRecServer",
"trialsUri"://slc03rgd:5416/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC/trials"

}
]
}

60.4.20 Querying a Test by Context ID

The table below shows the GET request configuration.

Table 60-96 GET Request Configuration for Querying a Test by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC

Body

None

Request method

GET

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC", "contextId": "DCC7AC5803CF97B2E040F20AA05152EC",
"name": "Test1",
"testDriverTypeContextId": "1",
"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OLT",
"testAssets": {
"testAssetContextId": "DCBDEA617F62EC63E040F20AA0512492",
"testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492",
"testAssetName": "Asset001"
},
"testEnvironmentContextId": "DCBDF6F2FFC90069E040F20AA051215F",
"testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv",
"useEnvironmentLibrary": "false",
"testDriverContextId": "DCBD49A045FFD35BE040F20AA05150F5",
"testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT",
"replaceUrls": {
"originalUrl": "testserver2.us.example.com",
"newUrl": "MedRec/MedRec1/MedRecServer",
"replaceType": "FROM_APPLIANCE"
},
"trialsUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC/trials" }

60.4.21 Creating a Test

The table below shows the POST request configuration.

Table 60-97 POST Request Configuration for Creating a Test

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/tests

Body

{
"name": "Test100",
"testAssets": {
"testAssetContextId": "DCBDEA617F62EC63E040F20AA0512492"
},
"testEnvironmentContextId": "DCBDF6F2FFC90069E040F20AA051215F",
"testDriverContextId" : "DCBD49A045FFD35BE040F20AA05150F5",
"replaceUrls": {
"originalUrl": "testserver2.us.example.com",
"replaceType": "FROM_APPLIANCE"
}
}

Request method

POST

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCE58A1CBF8B0D06E040F20AA0511AB5", "contextId": "DCE58A1CBF8B0D06E040F20AA0511AB5",
"name": "Test100",
"testDriverTypeContextId": "1",
"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OLT",
"testAssets": {
"testAssetContextId": "DCBDEA617F62EC63E040F20AA0512492",
"testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492",
"testAssetName": "Asset001"
},
"testEnvironmentContextId": "DCBDF6F2FFC90069E040F20AA051215F",
"testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv",
"useEnvironmentLibrary": "false",
"testDriverContextId": "DCBD49A045FFD35BE040F20AA05150F5",
"testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT",
"replaceUrls": {
"originalUrl": "testserver2.us.example.com",
"replaceType": "FROM_APPLIANCE"
},
"trialsUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCE58A1CBF8B0D06E040F20AA0511AB5/trials" }

60.4.22 Updating a Test

The table below shows the PUT request configuration.

Table 60-98 PUT Request Configuration for Updating a Test

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCE58A1CBF8B0D06E040F20AA0511AB5

Body

{
"name": "Test101",
"testAssets":{
"testAssetContextId": "DCBDEA617F62EC63E040F20AA0512492",
},
"testEnvironmentContextId": "DCBDF6F2FFC90069E040F20AA051215F",
"testDriverContextId" : "DCBD49A045FFD35BE040F20AA05150F5"
}

Request method

PUT

A sample of the response received is shown below.

{
"uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCE58A1CBF8B0D06E040F20AA0511AB5", "contextId": "DCE58A1CBF8B0D06E040F20AA0511AB5",
"name": "Test101",
"testDriverTypeContextId": "1",
"testDriverTypeUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_types/1", "testDriverTypeName": "OLT",
"testAssets":{
"testAssetContextId": "DCBDEA617F62EC63E040F20AA0512492",
"testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492", "testAssetName": "Asset001"
},
"testEnvironmentContextId": "DCBDF6F2FFC90069E040F20AA051215F",
"testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv",
"useEnvironmentLibrary": "false",
"testDriverContextId": "DCBD49A045FFD35BE040F20AA05150F5",
"testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT",
"replaceUrls": {
"originalUrl":"burepv14.us.example.com:7011",
"replaceType":"FROM_APPLIANCE",
"newUrl":"MedRec/MedRec1/MedRecServer"
},
"trialsUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCE58A1CBF8B0D06E040F20AA0511AB5/trials" }

60.4.23 Deleting a Test

The table below shows the DELETE request configuration.

Table 60-99 DELETE Request Configuration for Deleteing a Test

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCE58A1CBF8B0D06E040F20AA0511AB5

Body

None

Request method

DELETE

A sample of the response received is shown below.

TestEntity has been deleted. Context Id:DCE58A1CBF8B0D06E040F20AA0511AB5

60.4.24 Viewing Details of All Trials

The table below shows the GET request configuration.

Table 60-100 GET Request Configuration for Viewing all the Trials

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/trials

Body

None

Request method

GET

A sample of the response received is shown below.

{ "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/trials", "items": [ { "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/trials/DCC75B3C889F0463E040F20AA0514349", "contextId": "DCC75B3C889F0463E040F20AA0514349", "name": "Trial1", "owner": "TAASUSER1", "status": "ERROR_SUBMITTING", "startTime": "1368671518000", "testUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC", "testName": "Test1", "testContextId": "DCC7AC5803CF97B2E040F20AA05152EC", "testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492", "testAssetName": "Asset001", "testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv", "testEnvironmentInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1", "testEnvironmentInstanceName": "MedrecEnv", "testEnvironmentInstanceContextId": "1", "testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT", "testDriverInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1", "testDriverInstanceContextId": "1", "testDriverInstanceName": "ManualTDInst", "oltTrialSettings": { "scriptVuCounts": { "name": "MedRec1Script", "value": "1" }, "rampupOptionIndex": "3", "rampupOptionLabel": "X Percent every Y Seconds", "rampupUserOrPercent": "0.1", "rampupSecondOrIteration": "5.0" } } ] }

60.4.25 Querying a Trial by Context ID

The table below shows the GET request configuration.

Table 60-101 GET Request Configuration for Querying a Trail by Context ID

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/trials/DCC75B3C889F0463E040F20AA0514349

Body

None

Request method

GET

A sample of the response received is shown below.

{ "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/trials/DCC75B3C889F0463E040F20AA0514349", "contextId": "DCC75B3C889F0463E040F20AA0514349", "name": "Trial1", "owner": "TAASUSER1", "status": "ERROR_SUBMITTING", "startTime": "1368671518000", "testUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC", "testName": "Test1", "testContextId": "DCC7AC5803CF97B2E040F20AA05152EC", "testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492", "testAssetName": "Asset001", "testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv", "testEnvironmentInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1", "testEnvironmentInstanceName": "MedrecEnv", "testEnvironmentInstanceContextId": "1", "testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT", "testDriverInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1", "testDriverInstanceContextId": "1", "testDriverInstanceName": "ManualTDInst", "oltTrialSettings": { "scriptVuCounts": { "name": "MedRec1Script", "value": "1" }, "rampupOptionIndex": "3", "rampupOptionLabel": "X Percent every Y Seconds", "rampupUserOrPercent": "0.1", "rampupSecondOrIteration": "5.0" } }

60.4.26 Creating a New Trial

The table below shows the POST request configuration.

Table 60-102 POST Request Configuration for Creating a Trail

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/trials

Body

{ "name": "APITrial1",
"testContextId": "DCC7AC5803CF97B2E040F20AA05152EC",
"testEnvironmentInstanceContextId": "1",
"testDriverInstanceContextId": "1",
"startTime": null,
"oltTrialSettings":
{ "scriptVuCounts":
{ "name": "MedRec1Script", "value": "3" },
"rampupOptionIndex": "3",
"rampupUserOrPercent": "0.1",
"rampupSecondOrIteration": "5.0" }
}

Request method

POST

A sample of the response received is shown below.

{ "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/trials/DCE58A1CBF8D0D06E040F20AA0511AB5", "contextId": "DCE58A1CBF8D0D06E040F20AA0511AB5", "name": "APITrial1", "owner": "TAASUSER1", "status": "SCHEDULED", "startTime": "1368800849000", "testUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC", "testName": "Test1", "testContextId": "DCC7AC5803CF97B2E040F20AA05152EC", "testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492", "testAssetName": "Asset001", "testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv", "testEnvironmentInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1", "testEnvironmentInstanceName": "MedrecEnv", "testEnvironmentInstanceContextId": "1", "testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT", "testDriverInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1", "testDriverInstanceContextId": "1", "testDriverInstanceName": "ManualTDInst", "oltTrialSettings": { "scriptVuCounts": { "name": "MedRec1Script", "value": "3" }, "rampupOptionIndex": "3", "rampupOptionLabel": "X Percent every Y Seconds", "rampupUserOrPercent": "0.1", "rampupSecondOrIteration": "5.0" } }

60.4.27 Updating a Trial

Note:
This is applicable only if the trial is in "Scheduled" status.

The table below shows the PUT request configuration.

Table 60-103 PUT Request Configuration for Updating a Trail

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/trials/DCE58A1CBF8D0D06E040F20AA0511AB5

Body

{ "name": "NewTrialName",
"testContextId": "DCC7AC5803CF97B2E040F20AA05152EC",
"testEnvironmentInstanceContextId": "1",
"testDriverInstanceContextId": "1",
"startTime":1398800849000,
"oltTrialSettings":
{ "scriptVuCounts":
{ "name": "MedRec1Script", "value": "3" },
"rampupOptionIndex": "3",
"rampupUserOrPercent": "0.1",
"rampupSecondOrIteration": "5.0" }
}

Request method

PUT

A sample of the response received is shown below.

{ "uri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/trials/DCE58A1CBF8D0D06E040F20AA0511AB5", "contextId": "DCE58A1CBF8D0D06E040F20AA0511AB5", "name": "NewTrialName", "owner": "TAASUSER1", "status": "SCHEDULED", "startTime": "1398800849000", "testUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/tests/DCC7AC5803CF97B2E040F20AA05152EC", "testName": "Test1", "testContextId": "DCC7AC5803CF97B2E040F20AA05152EC","testAssetContextId": "DCBDEA617F62EC63E040F20AA0512492", "testAssetUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_assets/DCBDEA617F62EC63E040F20AA0512492", "testAssetName": "Asset001", "testEnvironmentUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environments/DCBDF6F2FFC90069E040F20AA051215F", "testEnvironmentName": "MedrecEnv", "testEnvironmentInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_environment_instances/1", "testEnvironmentInstanceName": "MedrecEnv", "testEnvironmentInstanceContextId": "1", "testDriverUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_drivers/DCBD49A045FFD35BE040F20AA05150F5", "testDriverName": "Default OLT", "testDriverInstanceUri": "https://example.com/em/websvcs/restful/extws/cloudservices/taas/v1/test_driver_instances/1", "testDriverInstanceContextId": "1", "testDriverInstanceName": "ManualTDInst", "oltTrialSettings": { "scriptVuCounts": { "name": "MedRec1Script", "value": "3" }, "rampupOptionIndex": "3", "rampupOptionLabel": "X Percent every Y Seconds", "rampupUserOrPercent": "0.1", "rampupSecondOrIteration": "5.0" } }

60.4.28 Deleting a Trial

The table below shows the DELETE request configuration.

Table 60-104 DELETE Request Configuration for Deleting a Trail

Feature

Description

URI

/em/websvcs/restful/extws/cloudservices/taas/v1/trials/DCE5F68EEF937640E040F20AA0514029

Body

None

Request method

DELETE

A sample of the response received is shown below.

TrialEntity has been deleted. Context Id:DCE5F68EEF937640E040F20AA0514029

Part XVII

Appendixes

This part contains the following appendix:

- Appendix A, "Use Case: Refreshing Test Data"

A Use Case: Refreshing Test Data

This appendix demonstrates how Enterprise Manager can be used to enable application developers and testers to quickly and easily provision secure, storage-efficient database clones on-demand, whenever updates are made to production data.

This appendix contains the following sections:

- The Challenge of Refreshing Test Data

- The Enterprise Manager Solution

- Create the Test Master Database

- Mask and Subset Data on the Test Master Database

- Create Database Clones On-Demand

- Implementing the Example Scenario

- Ongoing Refresh of Test Data

A.1 The Challenge of Refreshing Test Data

IT environments typically require multiple copies of production databases for application development and testing purposes. However, provisioning a full clone of production data is a time-consuming process that not only involves coordination among database administrators, systems administrators and storage administrators, but also requires significant storage space.

When an application developer or tester needs a database clone, he or she must typically go through an approval cycle, which then initiates a cumbersome and time-consuming cloning process that may span days. Clones are shared by multiple users and applications, which results in degraded performance due to increased sharing by multiple users. In such an environment, refreshing test data to reflect changes made to a production database is typically done on a fixed schedule, and may not be done as often as needed. As a result, it may often not be feasible to ensure that developers and testers are testing with the latest data.

A.2 The Enterprise Manager Solution

The following sections provide a solution to the previously noted challenges that leverages the features of Enterprise Manager. The goal is to enable developers and testers to provision secure, reduced-size copies of production databases on-demand, whenever required due to production database updates.

Note that this solution requires that the enterprise already has the Database as a Service (DBaaS) Cloud feature enabled. See Chapter 12, "Enabling the DBaaS Cloud" for instructions on enabling DBaaS.

The basic flow of this example scenario is illustrated below:

Figure A-1 The Enterprise Manager Solution

A.3 Create the Test Master Database

This scenario assumes that an administrator-level role will create a "test master database" - a copy of the production database that will be used for application testing. Oracle offers various options for creating a test master database, but this scenario assumes that the administrator will use RMAN backup and RMAN restore operations to create a backup of the production database, then restore it as the test master.

The expectation is that RMAN backups will be used to refresh the test master database with current data from the production database at regularly scheduled intervals in a discrete manner.

A.4 Mask and Subset Data on the Test Master Database

To enable production data to be utilized in testing, data identified as sensitive should be masked - or scrambled - on the test master database. Ideally data subsetting should also be used to reduce the database size to include only the data that is needed for testing.

For example, assume a company is developing a human resources application, and needs to test it using employee Social Security and salary data. This sensitive data could be masked/scrambled, while at the same time extraneous data such as employee location could be excluded from the data subset actually needed for testing.

Oracle's inline masking and subsetting feature makes it possible to mask sensitive data and simultaneously reduce the size of the database, all within the same task flow. This serves the dual purpose of protecting sensitive production data while greatly reducing hardware costs related to storing large masked production databases for testing.

A.5 Create Database Clones On-Demand

After a process is in place to create and refresh the test master and protect and subset the data to be used in testing, application developers and testers - also called self service users in DBaaS parlance - can quickly and easily create clones of the test master database using Enterprise Manager's Self Service Portal, the primary user interface for Database as a Service.

This functionality is enabled through Snap Clone, a feature provided with Database as a Service that enables the creation of fully functional copies of Oracle databases with minimal storage requirements. With Snap Clone, users can create test master clones containing terabytes of data in just minutes instead of hours, while keeping storage requirements to a minimum.

A.6 Implementing the Example Scenario

This section outlines the tasks involved in implementing the test data refresh solution outlined in the previous section.

A.6.1 Assign and Create Roles in Enterprise Manager

Role: Super Administrator

Roles are used to manage system and object privileges within Enterprise Manager. Roles must be assigned to both administrators and self service users.

A.6.1.1 Assign Administrator Roles to Administrators

Assign the following administrator roles to users who will perform various DBaaS setup tasks within this scenario. These roles are provided out of the box within Enterprise Manager.

- EM_SSA_ADMINISTRATOR: Users with this role can define quotas and constraints for the self service users who will create clones.

- EM_STORAGE_ADMINISTRATOR: Users with this role will have privileges to register storage hardware required to use Snap Clone.

See Section 3.3, "Defining Roles and Assigning Users" for instructions on completing this task.

A.6.1.2 Create Custom Roles for Self Service Users

Custom self service user roles must be created for users who will use the Self Service Portal to create clones of the test master database. Typically you will create roles for each of the different functional groups involved in testing, such as application developers and functional testers.

All roles will be based on the EM_SSA_USER role provided with Enterprise Manager.

See Section 3.3.1, "Creating Custom Roles for Self Service Application Administrators and Users" for instructions on completing this task.

A.6.1.3 Create Self Service Users

After the various roles are created, create self-service user accounts for each individual tester or developer who will create clones. Each user will be assigned one of the custom roles defined in the previous task.

See Section 3.3.2, "Creating a User and Assigning Roles" for instructions on completing this task.

A.6.2 Create a Backup of the Production Database

Role: DBA

Use an Oracle RMAN backup operation to create a backup of the production database. This backup will then be restored to create the test master database from which clones will be created.

Although several options are available for creating a test master database, RMAN backup and restore is used because the backup database created can be masked and subsetted.

See the following documentation for instructions on creating the database backup:

http://www.oracle.com/pls/topic/lookup?ctx=em121&id=EMLCM93231

A.6.3 Prepare to Mask and Subset Data

Role: DBA and Security Analyst

The following steps must be completed to prepare for masking and subsetting data.

A.6.3.1 Plan the Masking and Subsetting Strategy

Before beginning, determine what data must be protected, what data is needed for testing, and how to best implement masking and subsetting.

- Identify the sensitive data that must be masked.

- Locate the tables and columns containing the sensitive data. The Data Discovery and Modeling feature in Oracle Enterprise Manager facilitates such data discovery using pattern search criteria.

- Determine which masking algorithms match the enterprise's needs. Can the Oracle-supplied formats for masking common types of sensitive database be used, or will custom formats need to be created?

- Determine how to best subset the data, such as deciding which tables are not needed and can be excluded.

A.6.3.2 Create the Application Data Model (ADM)

Both data subsetting and data masking depend on an Application Data Model (ADM). An ADM is a knowledge base within Enterprise Manager that captures and stores application metadata, such as referential relationships and sensitive columns within an application.

See the following documentation for instructions on creating the ADM:

http://www.oracle.com/pls/topic/lookup?ctx=em121&id=RATUG4045

A.6.3.3 Create the Masking Definition

Create the data masking definition using the Enterprise Manager user interface to apply the masking formats to the sensitive columns. Oracle supplies an extensive library of masking formats that can be used out of the box or modified as needed. Custom masking formats can also be created.

See the following documentation for instructions on completing this task:

http://www.oracle.com/pls/topic/lookup?ctx=em121&id=RATUG04000

A.6.4 Configure the Storage Server

Role: Storage Administrator

The Snap Clone feature requires adequate storage for the database clones that will be created. In addition to providing native storage support, Oracle also supports a software approach to Snap Clone using the Oracle Sun ZFS file system.

This scenario assumes that Oracle Sun ZFS file system storage will be utilized. The basic flow is to first configure the ZFS file system, then register the storage in Enterprise Manager. Note that as a first step, storage must be acquired and allocated to the ZFS storage server.

The key steps are:

- Configure or create a user who can administer the storage from Enterprise Manager.

- Configure the ZFS pool that is used to host the storage volumes, and grant privileges to the pool.

- Allocate quota to the ZFS pool and assigns permissions to the user.

- Register the ZFS file system with Enterprise Manager by specifying the user name, protocol, and storage credentials.

- Create the storage volumes

See Section 12.7.3.1, "Configuring Storage Servers" for instructions on completing this task.

A.6.5 Create the Test Master Database on the Storage Volume

The test master database must be created on the storage volume on which the snap clone copies will be created. The test master can be created from a snapshot or from an RMAN Backup profile taken at a prior point in time and refreshed at specific intervals.

See Section 20.5.6, "Creating a Discretely Synchronized Test Master" for instructions on completing this task.

A.6.6 Enable the Test Master Database to Use Snap Clone

Once the test master database is created, it must be enabled for snap clone.

- Return to the Storage Registration page in Enterprise Manager

- After the test master database configuration has been refreshed, the target is automatically detected and visible on the Storage Registration page. Select the test master database, then select the Enable Snap Clone option at the top of the page.
The test master database is now Snap Clone-ready. For more details, see Section 20.4.7, "Enabling the Test Master for Snap Clone"

A.6.7 Mask and Subset the Test Data

Role: Self Service Administrator

Once the test master is ready, the data can be masked and subsetted according to the rules defined.

When a change is made to the production database, the test master database must be refreshed. It may be necessary to revisit the masking and subsetting rules to reflect changes to the production database. A new subset definition can then be applied to the test master database.

A.6.7.1 Create the Subset Definition

Data masking and subsetting can be performed simultaneously by creating a subset definition through the Enterprise Manager user interface. The basic flow is:

- Select the test master as the source database.

- Define table rules to filter the data to include in the subset. Perform a space estimates action to determine how much the size of the database has been reduced. This can be an iterative process as you fine-tune the rules to resize the database subset.

- Reference the masking definition you created in Section A.6.3.3, "Create the Masking Definition".

- Optionally, use column rules to mask additional columns, typically vertical columns such as CLOB and BLOB columns. This can also aid in reducing the subset size.

See the following documentation for instructions on completing this task:

http://www.oracle.com/pls/topic/lookup?ctx=em121&id=RATUG4053

A.6.7.2 Save and Execute the Subset Script

Once the subset definition is created, apply it to the test master database. The key steps are:

- Save and subset the definition as a ZIP archive.

- Extract the archive on the test master database host.

- Execute the subset script against the test master database to apply the mask and subset the data.

See the following documentation for instructions on completing this task:

http://www.oracle.com/pls/topic/lookup?ctx=em121&id=RATUG4214

A.6.8 Configure the Database Cloud Self Service Portal

Role: Self Service Administrator

After the storage has been configured and the test master database has been set up, the self service portal, which will be used by self service users to create test master clones must be configured.

The first step is to create a Platform as a Service (PaaS) infrastructure zone. The PaaS zone defines placement policy constraints for a set of targets (database hosts) that clones will be created on, and the users (based on roles) who can access these targets. For example, you could create a PaaS zone for a group of developers (assigned the APP_DEV role) and give them access to a set of specific hosts, and another for a group of testers, giving them access to a different set of hosts.

Hosts within each zone are then grouped into pools, depending on the operating system and the type and version of Oracle database installed on each host. For example, one pool could be created for all hosts configured with single instance Oracle Database 12.1.01 on Linux, another for Oracle RAC on Solaris, and so on.

To enable users to create clones of the test master database using the Snap Clone feature, you must create a provisioning profile for the test master database. Clones created by users will be based on this profile.

Finally, a "Snap Clone service template" is created to encapsulate the above configuration. When self service users create a clone, they will select this template which defines the host and database on which the clones will be created.

A.6.8.1 Create the PaaS Infrastructure Zone

Create the PaaS infrastructure zone containing the hosts onto which test master clones will be deployed.

- Add one or more database host targets to the zone.

- Specify the placement policy constraints for each host.

- Select the self service user roles who can access this zone.

See Section 11.2.2.1, "Creating a PaaS Infrastructure Zone" for instructions on completing this task.

A.6.8.2 Create Database Pools

Within the PaaS infrastructure zone, create one or more database pools, one for each database type.

- Specify the host credentials required for Snap Clone.

- Select the PaaS infrastructure zone into which the database pool is to be created.

- Specify the configuration (single instance or cluster), platform and version of the database being deployed.

- Specify the number of database instances that can be running on each host within the pool.

See Section 11.2.2.2.1, "Creating a Database Pool" for instructions on completing this task.

A.6.8.3 Configure Request Settings

Configure the database request settings by specifying when a request can be made, its duration, and so on. To configure the request settings, you must specify the following:

- Future Reservation Length

- Maximum Archive Retention Period

- Default Retirement Period

See Section 11.2.3, "Configuring Request Settings" for instructions on completing this task.

A.6.8.4 Set Up User Quotas

Quotas control the amount of DBaaS resources that are available to each self service user. To assign quotas:

- Select the self service user role to which the quota is to be assigned.

- Specify the total memory and storage that can be assigned to all databases created by the self service user.

- Specify the number of databases that can be requested by the user.

See Section 11.2.4, "Setting Up Quotas"for instructions on completing this task.

A.6.8.5 Create a Database Provisioning Profile Using Snapshots

Create the provisioning profile for the test master database. The service template that will be created in the next step will use this profile.

- Select the test master database as the database you want to create a profile for. The database must be enabled for Snap Clone as described in Section A.6.6, "Enable the Test Master Database to Use Snap Clone".

- Specify the Named Credentials that will be required to access the database.

- Enter a unique name for the profile, for example "Snap Clone Profile".

See Section 20.4.8, "Creating a Database Provisioning Profile Using Snapshots" for instructions on completing this task.

A.6.8.6 Create the Service Template

Finally, create the service template that testers and developers will use to create clones of the test master database.

- Select the "Snap Clone Profile" created in the previous step as the profile to base the template on.

- Specify the database definition details such as database type (single instance or RAC), database SID, and domain name.

- Select the PaaS infrastructure zone and the database pool. Database clones created using this service template will be deployed onto this pool. The host target is populated in the Reference Host field.

- Configure the storage volumes that will be used by the database clones. Specify the prefix for the new mount point of the database being deployed and the amount of space required for block changes.

- Specify the number of snapshots that the self service user can take on the cloned database.

- Specify the snapshot policy and the credentials for the system schemas of the clones.

- Configure the initialization parameters that can affect the operation of the new database.

- Select the self service user roles that will have access to this service template.

See Section 20.4.9, "Creating Service Template Using Snap Clone Profile" for instructions on completing this task.

A.6.9 Create Database Clones to Use in Testing On-Demand

Role: Self Service Users

At this point, the Database Cloud Self Service Portal interface provided with Enterprise Manager Cloud Control can now be used by testers and developers to create thin clones of the test master database whenever needed. The essential steps self service users will follow are:

- Select the test master service template as the template to use.

- Select the PaaS infrastructure zone onto which the clone is to be deployed

See Section 22.2, "Requesting a Database" for instructions on completing this task.

A.7 Ongoing Refresh of Test Data

Once the infrastructure to support the refreshing of test data has been set up, a strategy for regularly refreshing the data to reflect updates made to the production data must be put in place. The following steps should be repeated each time a data refresh is needed.

- To get the latest production data, you must refresh the test master database. See Section 20.5.10, "Refreshing the Test Master Database" for instructions on completing this task.

- After the test master has been refreshed, you must create a new revision of the snapshot based database provisioning profile. See Section 20.5.11, "Refreshing the Snap Shot Profile" for instructions on completing this task.

- Using the new revision of the snapshot based database provisioning profile, the self service user can refresh his database instance to reflect the latest production data. See Section 22.3, "Refreshing a Database".

Index
A  B  C  D  E  F  G  H  I  J  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z

A

Accounts

vDC, 34.3.3

acknowledging OVM events, 5.18 activating and deactivating policies, 6.6 Add Content, 34.2.1 adding

hosts to PaaS infrastructure, 11.2.1

middleware pools to chargeback application, 25.7

Oracle VM Manager, picture of, 5.3

adding target

Chargeback, 43.2.6

Administration Dashboard

Refresh Database, 20.3.8

Administration Group feature, 2.2.5 administrative operations, performing on storage repository, 5.10.1 APIs

error response messages, 45.4.9

Testing as a Service, 60

Application Home page, viewing, 28.7 Application resource model, 60.3.1 assemblies, cloud setup, 5.12 assembly

binary file prerequisite, 9.8.3.1.1

components, creating, 9.8.3.1.1, 41.3

definition of, 9.8.3.1.1, 9.8.4

deploying, 9.8.4

instance, definition of, 9.8.4

Assembly Deployment

Deployment Configuration, picture of, 9.8.4

Instance Details, picture of, 9.8.4

Network and Agent, picture of, 9.8.4

Review page, picture of, 9.8.4

assembly instance

specifying public and private networks, 9.8.4

assembly network, definition of, 9.8.4 AssemblyInstance, definition of, 59.2.3 assigning

users, 3.3

virtual drives, .iso files, 5.12

authentication

protocol, 3.4

schemes, 3.4

Automatic Storage Management (ASM), 15.1.5

B

BI Publisher

integrate with Chargeback, 43.3.3

integrate with Consolidation Planner, 44.2.6.1, 44.2.6.2

Blueprints

About, 57.1

Deploy, 57.5

Graphical Representation, 57.7.3

Uses, 57.2

business hierarchy

Chargeback

business hierarchy, 43.1.2.3

import from LDAP server, 43.2.5.4

C

Cache-Control, 45.4.5

charge plan

assign to target, 43.2.8

charge trends

Chargeback, 43.3.1

Chargeback, 43.1.2.2

add target, 43.2.6

application, adding middleware pools to, 25.7

assign charge plan to target, 43.2.8

assign cost center to target, 43.2.7

BI Publisher, 43.3.3

configuring, 25.7

currency, 43.2.3

details, viewing, 8.6

report generation, 43.3.3

self service applications, 43.2.2

setting up, 42.2.9

universal metrics, 43.1.2.2

universal rate adjustment, 43.2.4.3

usage and charge trends, 43.3.1

usage metering

Chargeback, 43.1.2

Chargeback metrics

configuration-based, 43.2.1

cloning

guest virtual machine, 9.7.5

cloud

APIs

common behaviors, 45.4

computing, 45 defining performance policies, 6.4 definition of, 2.3.3 infrastructure, 5.1 installing plug-ins, 3.2 management

faster deployment, 2.1

provisioning, 2.1

quality of service, 2.1

resource elasticity, 2.1

Oracle Management Agent and Cloud Control, 11.2.1 policies

definition of, 6.1

monitoring, 6.2

policy groups, 6.8

types of, 6.1

viewing, 6.2

viewing for a target, 6.3, 6.3

resource data models, 46.3 cloud computing

Chargeback

cloud computing, 43.1.1

Cloud Control

and Management Agent, 11.2.1

Cloud Policy Home page, picture of, 6.2 Cloud Self Service Portal Home page, 8.1 Cloud Service Family, 11.1

Middleware, 13.1

Cluster Database Home page

QoS status on, 22.8

viewing, 22.8

collating targets into groups for better manageability, 2.2.5 common behaviors, cloud APIs, 45.4 common resource attributes, APIs, 45.4.7 configuring

chargeback, 25.7

guest virtual machine, 9.7.6

listener running from same Oracle Home, 12.6

listener running from SIHA Oracle Home, 12.6

privilege delegation settings, 3.5

request settings, 25.4

self service login page, 3.6.1

Self Service Portal, 7.1

Server Load Balancer (SLB), 3.6.3

software library user, 5.16.3

storage servers, 12.7.3.1

VLAN groups, 5.7.2, 5.7.3

YUM repository, 5.17.1

connecting to Management Agent, 12.7.4.1 consoldation planner

using, 44.2

consolidation constraints, 44.1.2 consolidation planner

overview, 44.1

Consolidation Planner

BI Publisher, 44.2.6.1, 44.2.6.2

Consolidation Planner, Enterprise Manager, 2.2.1 consolidation project

creating, 44.2.1

definition, 44.1.1

consolidation scenario

custom, 44.2.2

definition, 44.1.1

evaluating, 44.2.2, 44.2.4

pre-configured, 44.2.1.5

Contractual Service Level Agreements (SLAs), 2.2.5 cost center

assign to target, 43.2.7

Chargeback

cost center, 43.1.2.3

create, 43.2.5.3 Create a New Trial TaaS API example, 60.4.26 Create a Test Environment Instance TaaS API example, 60.4.12 Create a Test TaaS API example, 60.4.21 Create Credential, 34.2.1 Create Data Source page, picture of, 28.3.3 Create One Test Driver Instance TaaS API example, 60.4.17 Create Performance Policy page, picture of, 6.4 Create Schedule Policy page, picture of, 6.5 Create Storage Repository pop-up, picture of, 5.10 Create Template Upload Files page, 9.8.3.1.2 Create Test Master

Live Standby Database, 20.4.6

Create Virtual Disk Upload Files page, 9.8.3.1.4 Create Zone page, 5.15 creating

assembly components, 9.8.3.1.1

automated DRS and DPM policies, 6.9.1

custom SSA user role, 3.3.1.2, 3.3.1.3

database pool for schema as service, 16.2.1

deployment plans, 41.4

guest virtual machine, 9.7.1

ISO component, 9.8.3.1.3

middleware home, 13.3.2

middleware pool, 25.2, 26.4.1

multiple virtual LAN (VLANs), 5.7.2, 5.7.3

named credentials, 12.2

network profile, 5.8

networks, Configure Ports and VLAN Interfaces page, 5.7.4

networks, prerequisites for, 5.7.4

PaaS Infrastructure Zone, 11.2.2.1, 11.2.2.1

Paas pool in PaaS infrastructure, 11.2.2.2

provisioning profiles, 13.3.1

PXE bootable guest virtual machines, 9.8.7

repository export, prerequisites, 5.12.1

service template, 25.6

service template for schema as service, 16.6, 16.7

service template using DBCA template profile, 15.1.5

service template using RMAN backup profile, 19.1.5, 19.2.1, 20.4.13, 20.6.2

storage repository, 5.10

storage servers, illustration of, 5.9

template components, 9.8.3.1.2

test administrators, 41.2

users, 3.3.2

virtual disk component, 9.8.3.1.4

virtual machines, 9.8.4

virtual server pool, 5.14

Virtual IP address, 5.14

virtual server pools, 5.14 VLAN group, 5.7.2, 5.7.3 zones, 5.15, 9.4.2 zones, illustration of, 5.15 creating a cost center, 43.2.5.3 creating a universal charge plan, 43.2.4.2 creating an extended charge plan, 43.2.4.3 credentials

Management Agent, 12.7.4.1

setting for OMS requirement, 9.8.3.1.1

setting up for provisioning, 12.2

types of, 12.2

Crypto Units, 34.2.6.2.2 currency

Chargeback, 43.2.3

custom SSA user role, creating, 3.3.1.2, 3.3.1.3 customized

Post-Login page, picture of, 3.6.1

SSA Login page, picture of, 3.6.1

customizing

storage agent proxy, 12.7.3.2

CustomParameters resource model, 60.3.7

D

Data Lifecycle Management, 18.1

data sharing, 43.3.5

data source

editing, 28.3.3.1

database

container database, 12.5

creating

pool for schema as service, 16.2.1

service template for schema as service, 16.6, 16.7

deploying, 12.4 pluggable database, 17.6, 17.7

home, 22.9

service template, 17.6, 17.7

provisioning

using RMAN backup, 19.1, 50.7.1, 50.7.2

provisioning pluggable database, 17.1, 50.4 provisioning profile

creating using DBCA template, 15.1.2

creating using existing RMAN backup, 19.1.2.2, 20.6.1

creating using export schema objects, 16.3, 17.3

creating using RMAN backup, 19.1.2.1

creating using snapshots, 20.4.8

self service portal, 22.1 services, definition of, 22.5 starting, 22.6 stopping, 22.6 using self service portal, 22.1 Database

pluggable database

pool, 17.2.1

Database as a Service (DBaaS)

service model, 2.3.1

Database Instance Home page, viewing, 22.6 Database Pool Home page, viewing, 29.8 database provisioning profile, 2.3.4 Database Self Service Portal, 22.1, 22.1, 22.1 Database Service Home page, viewing, 22.5 Database Software Maintenance, 23.1

Create Gold Image, 23.2

Create New Image Version, 23.5.1

Deploy Image, 23.4

Subscribe to Image, 23.3

Update Database, 23.4.3

Workflow, 23.1

Database-as-a-Service (DBaaS) cloud, 2.2.2 databases software

provisioning, 12.3

DBaaS Use Cases, 14.1, 50.1 DBCA template profile, creating service template using, 15.1.5 default SDK, overriding, 12.7.3.2 defining

performance policies, 6.4

policy groups, 6.8

quotas, 25.5

request purging policy, 5.16.5

roles

EM_CLOUD_ADMINISTRATOR, 3.3

EM_SSA_ADMINISTRATOR, 3.3

EM_SSA_USER, 3.3

schedule-based policy, 6.5 storage QoS, 5.16 Delete a Stopped Test Driver Instance TaaS API example, 60.4.18 Delete a Stopped Test Environment Instance TaaS API example, 60.4.14 Delete a Test TaaS API example, 60.4.23 Delete a Trial TaaS API example, 60.4.28 deleting

deployed application, 28.3.1.2

PaaS Infrastructure Zone, 11.2.2.1.2

zones, 9.4.3, 9.4.4, 9.7.8, 9.7.9

Deploy Application page, picture of, 28.3.1 deploying

an assembly, 9.8.4

database, 12.4

ISO image, 9.8.6

preconfigured Java EE application, 28.3.1

templates, 9.8.5

virtual machine

infrastructure requirements, 9.8.3

provisioning, 9.8.2

deployment

information

viewing, 42.4.13

plans, creating, 41.4 Deployment plans

Oracle VM Server for SPARC, 34.2.6.4

discovering

Oracle VM Manager, 5.3.4

Oracle VM Server, 5.5

virtual servers, illustration of, 5.5

Discretely Synced Test Master

Create Snap Clone, 20.5

Distributed Power Management (DPM) policies, 6.9 DRS and DPM policies, creating automated policies, 6.9.1 Dynamic private networks, 34.3.2 Dynamic Resource Scheduling (DRS) policies, 6.9

E

editing

data source, 28.3.3.1

existing MWaaS service template, 25.6

guest virtual machine, 9.7.6

PaaS Infrastructure Zone, 11.2.2.1.1

storage ceiling, 12.7.6.1

virtual server, 9.6.2

virtual server pools, 5.14.1

zones, 9.4.2

EM_INFRASTRUCTURE_ADMIN privilege, 3.1.2 EM_SSA_ADMINISTRATOR, and provisioning database software, 12.3 EMCLI, setting up, 3.1.3 enable metric collection

for shared database, 43.2.6.1

Enterprise Manager

Incident Management system, 2.2.5

Enterprise Manager Consolidation Planner, 2.2.1 Enterprise Manager Store, available functional updates, 3.1 Enterprise user security based authentication, 3.4 Enterprise User Security (EUS), 3.4 error response messages, APIs, 45.4.9 Execute an Operation on Test Environment / Driver Instance TaaS API example, 60.4.13 extended charge plan

Chargeback

extended charge plan, 43.1.2.2

create, 43.2.4.3 update, 43.2.4.6

F

faster deployment, enabling, 2.1

file systems, illustration of, 5.9

Full Clone, 19.1

RMAN Backup, 19.1

RMAN Duplicate, 19.2

Full Clones, 18.2

RMAN Backup, 19.1

G

general privileges, granting, 3.3.3.1

generating reports

Chargeback, 43.3.3

Get One Test Asset by Context ID TaaS API example, 60.4.4 Get One Test by Context ID TaaS API example, 60.4.20 Get One Test Driver by Context ID TaaS API example, 60.4.8 Get One Test Driver Instance by Context ID TaaS API example, 60.4.16 Get One Test Environment by Context ID TaaS API example, 60.4.6 Get One Test Environment Instance by Context ID TaaS API example, 60.4.11 Get One Trial by Context ID TaaS API example, 60.4.25 Get Test Driver Type by Context ID TaaS API example, 60.4.9 granting

general privileges, 3.3.3.1

privileges for provisioning, 3.3.3.4

roles, 3.3.3.3

target privileges, 3.3.3.2

guest virtual machine

cloning, 9.7.5

creating, 9.7.1

definition of, 9.7.2

deploying, 9.8

deployment options, 9.8.2

editing, 9.7.6

enabling high availability, 9.8.4

infrastructure requirements, 9.8.3

instances

modifying resource configuration parameters, 9.8.4

prerequisites for creating, 9.7.1 provisioning using Oracle VM templates, 9.8.5 provisioning using OVA, 9.8.4 restarting, 9.7.4.2 restricting amount of physical CPU, 9.8.4 saving as template, 9.7.7 specifying priority to access physical CPUs, 9.8.4 starting, 9.7.4 stopping, 9.7.4 Guest Virtual Machine Home page, 9.7.2

H

HTTP Status Codes, 45.4.6

hypervisor, 9.6.1

I

Icons

Add Content, 34.2.1

Incident Management system, 2.2.5 Infrastructure as a Service (IaaS)

service model, 2.3.1

Infrastructure as a Service (PaaS)

setting up and using, 4.2

Infrastructure Cloud Home page

picture of, 5.3, 9.1

viewing, 9.1

Infrastructure-as-a-Service (IaaS) cloud, 2.2.2 installing

Management Agent on an unmanaged server, 11.2.1

Oracle Management Agents on unmanaged hosts, 11.2.1

plug-ins, 3.2

In-Sync Test Master

Create Snap Clones, 20.4

Intelligent Platform Management Interface (IPMI), 9.6.2 ISO component, creating, 9.8.3.1.3 ISO Deployment page, picture of, 9.8.6

J

Java EE component, uploading to Software Library, 28.6

JavaScript Object Notation, 45.4.3

L

LDAP server

import business hierarchy, 43.2.5.4

List All Applications TaaS API example, 60.4.1 List All Test Assets TaaS API example, 60.4.3 List All Test Drivers TaaS API example, 60.4.7 List All Test Environment Instances TaaS API example, 60.4.10, 60.4.15 List All Test Environments TaaS API example, 60.4.5 List All Tests TaaS API example, 60.4.19 List All Trials TaaS API example, 60.4.24 logical

pools, 2.3.2

zones, 2.3.2

M

machine sizes, setting up, 5.16.2

maintaining virtual servers, 9.6.5

maintenance mode, virtual servers, 9.6.5

MANAGE_SELF_UPDATE privileges, 3.1.2

Management Agent credentials, 12.7.4.1

managing

storage access privileges, 12.7.6.2

storage allocation, 12.7.6.1

storage servers, advisory information, 12.7.2

virtualization targets

OVM Manager Home page, 9.2

zones, 9.4.1 Maximum Transfer Unit size, setting, 5.7.2, 5.7.3 metering and chargeback features, 2.2.6 Metric resource model, 60.3.15 MetricValue resource model, 60.3.16 Microsoft Active Directory based authentication, 3.4 middleware

creating middleware home, 13.3.2

enabling as a service (MWaaS), 13.3, 26.1

viewing Middleware Pool Home page, 29.11

Middleware as a Service (MWaaS)

enabling, 13.3, 26.1

service model, 2.3.1

setting up and using, 4.5

middleware pool

creating, 25.2, 26.4.1

definition of, 2.3.4, 25.2, 26.4.1

getting detailed information on, 29.11

Middleware Pool Home page, viewing, 29.11 middleware provisioning profile, 2.3.4 Middleware Self Service Portal, purpose of, 28.1 Middleware Service Home page

picture of, 28.3

purpose of, 28.3

viewing, 28.3

middleware services

Middleware Self Service Portal, 28.1

Middleware-as-a-Service (MWaaS) cloud, 2.2.2 modifying configuration of guest virtual machine, 9.7.6 monitoring cloud policies, 6.2 MTU field, setting, 5.7.2, 5.7.3 MWaaS Application Home page, picture of, 28.7 MWaaS Self Service Portal

setting up, 25.1, 27.1

viewing, 28.1

MWaaS service template, editing, 25.6 My Oracle Support, Cloud management capabilities, 2.2.5

N

named credentials, creating, 12.2

NetApp hardware licenses, 12.7.3.1

NetApp storage server, setting up, 12.7.3.1

network bootable (PXE boot) virtual machine, 9.8.7

network profile

DNS servers, 5.8

domain name, 5.8

gateway, 5.8

Netmask, 5.8

setting up, 5.8

specifying IP addresses, 5.8

Network Profile page, picture of, 5.8 network roles

cluster heartbeat, 5.7.4

live migrate, 5.7.4

server management, 5.7.4

storage, 5.7.4

Virtual Machine, 5.7.4

network type, setting up, 5.16.1 NetworkInterface, 59.2.7 networks, setting up, 5.7 NVRAMRC Value, 34.2.6.2.4

O

OFTAssetScript resource model, 60.3.8

OftAssetScriptCsvDatabanks resource model, 60.3.9

OftDatabaseDatabanks resource model, 60.3.11

OftPlaybackSettings resource model, 60.3.10

OftTrialAssetExecution resource model, 60.3.20

OltAgent resource model, 60.3.26

OltCounter resource model, 60.3.18

OltCounterValue resource model, 60.3.19

OltScenario resource model, 60.3.6

OltSession resource model, 60.3.17

OMS

Agent File System, 9.8.3.1.3

location, 9.8.3.1.4

setting credentials, 9.8.3.1.1 OMS Shared File System location, 9.8.3.1.3, 9.8.3.1.4 Operation resource model, 60.3.23 Oracle Access Manager (OAM) SSO, 3.4 Oracle Cloud

logical pools, 2.3.2

logical zones, 2.3.2

Oracle Cloud Compute configuration, 44.1 Oracle Internet Directory (OID) based authentication, 3.4 Oracle Listener, setting up for database hosts, 12.6 Oracle Management Service (OMS), routing SSA requests, 3.6.3 Oracle Solaris 11 Software Update Library

adding content, 34.2.1

Oracle VM Manager

registering, 5.3, 5.3

Oracle VM Network, 5.7

Virtual Area Network (VLAN) Group, 5.7.2, 5.7.3

Oracle VM Server

creating virtual server pools, 5.14

discovering, 5.5

file systems, 5.9

patching, 5.17

storage servers, setting up, 5.9

virtual server, 5.5

virtual server pool, 5.14

virtualization software (hypervisor), 5.5

Oracle VM Server for SPARC

deployment plans, 34.2.6.4

requirements, 34.2.6.2.1, 34.2.6.2.2, 34.2.6.2.3

server pools, 34.2.6.4

overriding

default SDK, 12.7.3.2

third-party server components, 12.7.3.2

OVM events, acknowledging, 5.18 OVM Manager

Home page, 9.2

Home page, picture of, 9.2

OVM Manager targets, synchronizing, 5.4 OVM Managers, list of, 9.3

P

PaaS infrastructure

adding hosts, 11.2.1

creating PaaS pool, 11.2.2.2

Paas pool, picture of, 11.2.2.2

PaaS Infrastructure Zone, 2.3.4

creating, 11.2.2.1

creating middleware home, 13.3.2

Database Pool Home page, 29.8

deleting, 11.2.2.1.2

editing, 11.2.2.1.1

middleware pool, 25.2, 26.4.1

picture of, 11.2.2.1

prerequisites, 11.2.2.1

parent repository, 34.2.1 patching, Oracle VM server, 5.17 performance policies

defining, 6.4

Platform as a Service (PaaS)

service model, 2.3.1

setting up

and using, 4.3

plug-ins

definition of, 3.2

installing, 3.2

policies

activating and deactivating, 6.6

defining groups, 6.8

Distributed Power Management (DPM), 6.9

Dynamic Resource Scheduling (DRS), 6.9

schedule-based, 6.5

viewing, 8.8

policy group

defining, 6.7

definition of, 6.7

examples of, 6.8.2

PowerBroker, 3.5 Preboot Execution Environment (PXE), 9.8.7 preferences, viewing, 8.9 prerequisites

assembly binary file, 9.8.3.1.1

configuring YUM repository, 5.17.1

creating a zone, 5.15, 5.15

creating an assembly component, 9.8.3.1.1

creating database provisioning profile, 20.4.8

creating middleware home, 13.3.2

creating networks, 5.7.4

creating PaaS Infrastructure Zone, 11.2.2.1

creating PXE bootable guest virtual machines, 9.8.7

creating repository export, 5.12.1

provisioning guest virtual machine, 9.8.6

provisioning guest virtual machine using ISO image, 9.8.6

provisioning guest virtual machine using templates, 9.8.5

provisioning guest virtual machines, 9.8.3

registering storage servers, 12.7.3

Self Service Portal, 7.1

Self Update feature, 3.1

Testing as a Service, 42.1

virtual server pools, 5.14

Presented Servers page, picture of, 5.11 Private networks, 34.3.4.2

dynamic, 34.3.2

static, 34.3.2

Private vNets, 34.3.2

creating, 34.3.4.2

privilege delegation settings, configuring, 3.5 privilege delegation tools, Sudo and PowerBroker, 3.5 privileges

and roles, granting, 3.3.3

EM_INFRASTRUCTURE_ADMIN, 3.1.2

for provisioning, granting, 3.3.3.4

MANAGE_SELF_UPDATE, 3.1.2

managing storage access, 12.7.6.2

NetApp hardware users, 12.7.3.1

versus permissions, 12.7.3.1

VIEW_SELF_UPDATE, 3.1.2

Provision Oracle Database deployment procedure, 12.4 provisioning

credentials, setting up, 12.2

database instance within PaaS Infrastructure Zone, 29.8

database software, 12.3

database using RMAN backup, 19.1, 50.7.1, 50.7.2

guest virtual machine

using ISO image, 9.8.6

guest virtual machine using ISO image, 9.8.6 guest virtual machine using OVA, 9.8.4 guest virtual machine using templates

prerequisites, 9.8.5

guest virtual machines, 9.8.2 profiles, creating, 13.3.1 virtualized systems, 9.8.1 PXE bootable guest virtual machines, creating, 9.8.7

Q

QoS

Priority Class, 9.8.4

setting up, 5.16

status on Cluster Database Home page, 22.8

quality of service, increasing, 2.1 Query One Application by Context ID TaaS API example, 60.4.2 quota

definition of, 11.2.4, 25.5

sample validation log, 11.2.4

setting up, 11.2.4, 25.5

QuotaUsage Resource resource model, 60.3.4

R

redeploying preconfigured Java EE application, 28.3.1

redirecting SSA requests, 3.6.3

rediscovering virtual server, 5.6

Refresh Test Master, 20.5.10

registering

Oracle VM Manager, 5.3

storage servers

advisory information, 12.7.2

overview of, 12.7.1

prerequisites, 12.7.3

Repository-based authentication, 3.4 Representational State Transfer API, 45 request purging policy, defining, 5.16.5 request settings

configuring, 25.4

requesting

or reserving servers, 8.2

server resources, 8.1

resource attributes, APIs, 45.4.7 resource elasticity, providing, 2.1 resource models

in TaaS APIs, 60.3

used in TaaS, 60.2.2

Resource Provider, 11.2.2 restarting guest virtual machine, 9.7.4.2 RESTARTING, VM data model, 59.2.5 RESTful API, 45.1 RESTful APIs, 45.4 RESUMING, VM data model, 59.2.5 RMAN

full clone, 50.7.1, 50.7.2

RMAN backup profile, creating service template using, 19.1.5, 19.2.1, 20.4.13, 20.6.2 roles

defining, 3.3

definition of, 3.3

EM_CLOUD_ADMINISTRATOR, 3.3, 11.2.1

EM_SSA_ADMINISTRATOR, 3.3

provisioning database software, 12.3

EM_SSA_USER, 3.3 granting, 3.3.3.3 roles and privileges, granting, 3.3.3

S

sample quota validation log, 11.2.4

saving

guest virtual machine, 9.7.7

Scalability Group, 59.2.4 schedule-based policy, 6.5

examples of, 6.8.1

schema

as a service, creating database pool for, 16.2.1

as a service, creating service template for, 16.6, 16.7

defining one or more, 29.9

requesting, 22.2.1

Schema Pool Home page, viewing, 29.9 Schema Service Template, selecting, 22.2.1 security, Enterprise User Security (EUS), 3.4 self service

database portal, 22.1

login page, configuring, 3.6.1

self service applications

Chargeback, 43.2.2

Self Service Portal, 7.1

chargeback, illustration of, 7.1

configuring, 7.1

defining mapping between roles and other entities, 7.1

defining set of templates or assemblies, 7.1

Home page, picture of, 8.1

machine sizes, 7.1

prerequisites, 7.1

purpose of, 3.3, 7.1, 8.1

requesting or reserving servers, 8.2

requesting server resources, 8.1

setting up Chargeback Plan, 7.1

viewing storage, 8.5

Self Update

downloading assemblies and templates, 5.13

prerequisites, 3.1

Self Update Console page, picture of, 5.13 self-service users, accessing services without IT intervention, 2.4.2 server data model, 59.2.5 Server Load Balancer (SLB), configuring, 3.6.3 server pool, definition of, 2.3.3 Server pools

Oracle VM Server for SPARC, 34.2.6.4

servers, requesting or reserving, 8.2 service instance, deploying preconfigured Java EE application to, 28.3.1 service template, 2.3.4, 46.3.2

create

standby databases, 15.2.2

creating, 25.6 creating using DBCA template profile, 15.1.5 creating using RMAN backup profile, 19.1.5, 19.2.1, 20.4.13, 20.6.2 creating using snap clone profile, 20.4.9 definition of, 25.6 editing MWaaS, 25.6 setting

credentials for OMS, 9.8.3.1.1

Maximum Transfer Unit size, 5.7.2, 5.7.3

MTU field, 5.7.2, 5.7.3

setting up, 7.1

and using IaaS, 4.2

and using MWaaS, 4.5

and using TaaS, 4.6

Chargeback Plan for Self Service Portal, 7.1

Chargeback Service, 42.2.9

listener for database zone hosts, 12.6

machine sizes, 5.16.2

MWaaS Self Service Portal, 25.1, 27.1

NetApp storage server, 12.7.3.1

network profile, 5.8

networks, 5.7

network profile, 5.7.4

network type, 5.7.4

provisioning credentials, 12.2 QoS, 5.16 QoS for network, 5.16.1 quotas, 11.2.4, 25.5 Self Service Portal, 7.1 storage servers, 5.9 Sun ZFS storage server, 12.7.3.1 Testing as a Service, 41 virtualization infrastructure, 5.1 virtualized systems, 5.1 setting up and using PaaS, 4.3 shared datebase

enable metric collection, 43.2.6.1

shared resources

Chargeback

shared resources, 43.1.1

sharing Chargeback data, 43.3.5 snap clone

creating service template, 20.4.9

Snap Clone

About, 20.1

Snap Clones, 18.2 Software Library

creating virtualization components in, 9.8.3.1

uploading files from storage location, 9.8.3.1.3

uploading Java EE component to, 28.6

user, configuring, 5.16.3

software pool, definition of, 2.3.4 SSA requests, redirecting, 3.6.3 SSA User Portal page, picture of, 2.4.2 SSA user role, creating custom role, 3.3.1.2, 3.3.1.3 SSO-based authentication, 3.4 standby database

database pool, 15.2.1

primary database pool, 15.2.1.1

STARTED, VM data model, 59.2.5 starting

database, 22.6

guest virtual machine, 9.7.4

virtual server, 9.6.4

STARTING, VM data model, 59.2.5 Static private networks, 34.3.2 STOPPED, VM data model, 59.2.5 stopping

database, 22.6

guest virtual machine, 9.7.4

virtual server, 9.6.4

STOPPING, VM data model, 59.2.5 storage agent proxy, customizing, 12.7.3.2 storage allocation, managing, 12.7.6.1 storage ceiling

definition of, 12.7.6.1

editing, 12.7.6.1

storage entity, definition of, 2.3.3 storage pool, definition of, 2.3.3 storage QoS, defining, 5.16 Storage Quality of Service (QoS), setting up, 5.16 storage repository

assemblies, illustration of, 5.12

creating, 5.10

ISOs, 5.12

Oracle Virtual Assemblies, 5.12

Oracle VM templates, 5.12

performing administrative operations, 5.10.1

presenting to server pool, 5.11

virtual disks, 5.12

Virtual Disks, illustration of, 5.12

VM files, 5.12

VM Templates, illustration of, 5.12

Storage Repository page, picture of, 5.10 Storage Server page, picture of, 5.9 storage servers

configuring, 12.7.3.1

deregistering, 12.7.5.2

managing, 12.7.6

managing access privileges, 12.7.6.2

registering, 12.7.4.1, 12.7.4.2, 12.7.4.3

selecting type of storage array, 5.9

synchronizing, 12.7.5.1

storage vendor SDK, uploading, 12.7.3.2 Sudo, 3.5 Sun ZFS

hardware licenses, 12.7.3.1

storage server, setting up, 12.7.3.1

Super Administrator roles, tasks to perform, 4.2 SUSPENDED, VM data model, 59.2.5 SUSPENDING, VM data model, 59.2.5 synchronizing OVM Manager targets, 5.4

T

target privileges, granting, 3.3.3.2

Target resource model, 60.3.25

target resource usage

Chargeback

target resource usage, 43.3.2

template components

creating, 9.8.3.1.2

virtualization types, 9.8.3.1.2

Template Deployment - Deployment Configuration page, 9.8.5 template deployment, selecting target and source, 9.8.5 templates

deploying, 9.8.5

provisioning guest virtual machine, 9.8.5

test

activity and usage information, 42.4.12

administrators, 40.1.1

creating, 41.2

tasks, 42.2

assets, 42.2.8

creating, 42.3, 42.3.1

verifying, 42.4.1

designers, 40.1.2 environments, 42.2.8

creating, 42.3, 42.3.5

using, 42.4

verifying, 42.4.1

sharing, 42.4.11 testers, 40.1.3 trials

comparing results, 42.4.10

creating and running, 42.4.6

monitoring, 42.4.9

Test resource model, 60.3.13 TestAsset resource model, 60.3.5 TestDriver resource model, 60.3.3 TestDriverInstance resource model, 60.3.21 TestDriverType resource model, 60.3.2 TestEnvironment resource model, 60.3.12 TestEnvironmentInstance resource model, 60.3.22 testing

home page, 42.4.14

setting up

applications, 42.2.1

custom test driver types, 42.2.5

Oracle Load Testing Test Drivers, 42.2.3

quotas, 42.2.6

Testing as a Service

overview, 40

prerequisites, 42.1

setting up and using, 4.6

Testing as a Service (TaaS)

APIs, 60

TestType resource model, 60.3.24 third-party licenses, acquiring, 12.7.3.2 third-party server components, overriding, 12.7.3.2 Tier Deployment Configuration - Miscellaneous, picture of, 9.8.4 Tier Deployment Configuration Product Configuration, picture of, 9.8.4 topology of a zone, 5.15 Transport Protocol, 45.4.1 Trial Trial, 60.3.14

U

undeploying an application, 28.3.1.2

universal charge plan

Chargeback

universal charge plan, 43.1.2.2

create, 43.2.4.2 Update a Test TaaS API example, 60.4.22 Update a Trial TaaS API example, 60.4.27 updates available, Enterprise Manager Store, 3.1 updating an extended charge plan, 43.2.4.6 upgrading

virtual server, 5.17.2, 9.6.3

Upload to Software Library page, picture of, 28.6 uploading

Java EE component to Software Library, 28.6

storage vendor SDK, 12.7.3.2

URI Space, 45.4.2 usage trends

Chargeback, 43.3.1

usage-based, 43.2.1 users

assigning, 3.3

creating, 3.3.2

V

vDC

accounts, 34.3.3

vServer type

creating, 34.3.4.1

vServers, 34.3.4 VIEW_SELF_UPDATE privileges, 3.1.2 viewing

Application Home page, 28.7

chargeback details, 8.6

cloud policies, 6.2

cloud policies for a target, 6.3

Cluster Database Home page, 22.8

Database Instance Home page, 22.6

Database Pool Home page, 29.8

Database Service Home page, 22.5

Infrastructure Cloud Home page, 9.1

MWaaS Self Service Portal, 28.1

OVM Manager home page, 9.2

policies, 8.8

preferences, 8.9

Schema Pool Home page, 29.9

storage, Self Service Portal, 8.5

Zone Home page, 9.4.1

virtual

disk component, creating, 9.8.3.1.4

machine provisioning, 9.8.2

Virtual datacenter See vDC, 34.1 virtual drives, assigning using .iso files, 5.12 virtual machine

creating, 9.8.4

creating assembly component, 9.8.3.1.1

editing guest machine, 9.7.6

Virtual machines, 34.3.2, 34.3.4 Virtual Network Interface Card Manager, 5.7.1 Virtual Network Interfaces (VNICs), 5.7.1 virtual server

definition, 9.6.1

editing, 9.6.2

maintaining, 9.6.5

Oracle VM Server, 5.5

rediscovering, 5.6

starting, 9.6.4

stopping, 9.6.4

upgrading, 5.17.2, 9.6.3

Virtual Server Home page

picture of, 9.6.1

viewing, 9.6.1

Virtual Server Pool Home page, picture of, 9.5 Virtual Server Pool Home page, viewing, 9.5 virtual server pools

creating or editing, 5.14

definition, 9.5

editing, 5.14.1

prerequisites, 5.14

zone, creating, 5.15

virtualization

infrastructure, 5.1

infrastructure, setting up, 5.1

managing targets, 9.2

software (hypervisor), 5.5

targets, viewing members, 9.3

types, template components, 9.8.3.1.2

virtualization targets, managing members, 9.3 virtualized systems

provisioning, 9.8.1

setting up, 5.1

VLAN group

configuring, 5.7.2, 5.7.3

creating, 5.7.2, 5.7.3

VNet, definition of, 59.2.6 vServer type, 34.3.4.1 vServers

vDC, 34.3.4

W

WebLogic Domain Provisioning Profile

definition of, 13.3.1.1

Y

YUM repository

configuring, 5.17.1

upgrading virtual server, 9.6.3

Z

Zone Home page, 9.4.1

picture of, 9.4.1

zones

and server pools, 2.3.3

Create Zone page, 5.15

creating, 5.15, 9.4.2

definition, 5.15

definition of, 2.3.3, 46.3.3

deleting, 9.4.3, 9.4.3, 9.4.4, 9.4.4, 9.7.8, 9.7.8, 9.7.9, 9.7.9

editing, 9.4.2

managing, 9.4.1

prerequisites to creating, 5.15

topology of, 5.15

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2016, Oracle and/or its affiliates. All rights reserved.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

Alpha and Beta Draft Documentation Notice

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

Private Alpha and Beta Draft Documentation Notice

If this document is in private preproduction status:

The information contained in this document is for informational sharing purposes only and should be considered in your capacity as a customer advisory board member or pursuant to your beta trial agreement only. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle.

This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle Master Agreement, Oracle License and Services Agreement, Oracle PartnerNetwork Agreement, Oracle distribution agreement, or other license agreement which has been executed by you and Oracle and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.