Explore the OpenStack REST APIs for PowerVC

Interface with IBM PowerVC Express Edition's OpenStack REST APIs and simplify virtual resource management

IBM® Power® Virtualization Center Express Edition (PowerVC) is an IaaS cloud solution designed to make it easier to build and manage virtual resources in a Power Systems Software Defined Environment or a cloud infrastructure. It is primarily based on OpenStack® and includes OpenStack industry-standard application programming interfaces. Learn about the APIs for each OpenStack component and the tasks they will help you complete.

Cholleti Ramyasree (ramyasree@in.ibm.com), Software Engineer, IBM

Cholleti Ramyasree is a software engineer at IBM India Pvt. Ltd. , currently working on PowerVC, who has four years of experience with the technology and holds a bachelor's degree in computer science from JNTU University, Hyderabad, India.



13 June 2014

Also available in Japanese

IBM Power Virtualization Center Express Edition (PowerVC) is an OpenStack-based Infrastructure as a Service cloud solution for the IBM Power platform designed to simplify the management of virtual resources in a Power Systems environment. PowerVC consists of both GUI and RESTful HTTP services (in the form of APIs) that let you perform virtual management tasks for your Power System. In this article, I highlight the REST APIs for PowerVC Express edition and provide a short description of each one's purpose, which should give you an understanding of how to manage Power virtual resources through web services.

Some background on PowerVC

PowerVC is an IaaS cloud solution that is built on OpenStack project technology and designed to simplify the management of virtual resources in a Power Systems environment. It uses the industry standard, open source community interfaces of OpenStack.

PowerVC resides between console-style interface tools and IBM SmartCloud infrastructure as a service (IaaS) offering; tools such as: 

  • IBM Hardware Management Console (HMC), a Linux® kernel using BusyBox that provides a  standard interface for configuring and operating partitioned (also known as an LPAR or virtualized system) and SMP systems (such as Power).
  • IBM Integrated Virtualization Manager (IVM), a browser-based tool that literally allows clients to point, click, and consolidate multiple virtual workloads onto one Power System without needing an appliance such as the HMC to manage LPARs on a single system.
  • The Kernel-based Virtual Machine (KVM) is an open source hypervisor that provides enterprise-class performance, scalability, and security to run Windows® and Linux workloads. KVM turns the Linux kernel into a bare-metal hypervisor that can access the hardware virtualization support built into processor hardware.

PowerVC brings the features of OpenStack APIs to Power cloud resource management.

PowerVC is designed to help users dynamically build an infrastructure that supports a Software Defined Environment (SDE) or a cloud infrastructure. It's interface supports management of RHEL, SLES, and AIX® operating systems on Power hardware by allowing you to register physical hosts, storage providers, and network resources with which you can deploy and capture virtual machines. Some of the tasks PowerVC helps with include:

  • Deploying images to create new virtual machines.
  • Resizing and attaching volumes to these new images.
  • Capturing the existing virtual machines.
  • Importing existing virtual machines and volumes so that they can be managed by IBM PowerVC.
  • Initiating start/stop/reboot/delete operations on created virtual machines or managed virtual machines.
  • Monitoring the utilization of the resources that are in your environment.
  • Supporting migration of virtual machines when they are running (or "hot migration").

PowerVC automatically captures the following management information:

  • Existing host/hypervisor configuration, including VIOS partition information.
  • The CPU, memory, and I/O settings for the existing virtual machine definitions in a Power host.
  • The existing volume definitions in the supported storage controllers.
  • The existing zoning information in the supported SAN switches.

PowerVC lets you capture and manage a library of VM images, making it easier to quickly deploy a VM environment by launching a stored image of that environment instead of having to manually recreate a particular environment. By saving and centralizing virtual images, you can migrate the images around and quickly deploy applications on them.

You can also create groups of resources needed to support workloads.

IBM PowerVC is available in two editions:

  • IBM PowerVC Express Edition is for entry environments where virtual machine hosts are Power 7, Power 7+, and Power 8 systems managed by the IVM.
  • IBM PowerVC Standard Edition is for enterprise-class virtualization environments where virtual machine hosts are Power 6, Power 7, Power 7+, and Power 8 servers managed by the HMC and Power KVM.

The following section introduces the Express Edition's OpenStack APIs and one PowerVC-specific validator API and their purposes. Although there are a few additional REST APIs that are specific to the Power Systems managed by HMC and KVM tools, I won't be covering those in this article.


OpenStack REST and PowerVC validator APIs

The following are the OpenStack component APIs and PowerVC validator API you can use for virtual resource management via PowerVC in a Power System (in this example, in the PowerVC Express Edition). Each API is categorized by the OpenStack component and comes with a definition of the component and sub-component the API addresses, the purpose of the API, and the operational command you use to enable the API.

Component: Keystone

Keystone is an OpenStack project that provides Identity, Token, Catalog, and Policy services for use specifically by projects in the OpenStack family. It implements OpenStack's Identity API.

Keystone v3: Tokens

A token is an arbitrary bit of text that is used to access resources. Each token has a scope that describes which resources are accessible with it. A token may be revoked at any time and is valid for a finite duration.

  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    Purpose: Returns an authentication token and service catalogue when credentials are supplied and authentication token returned via the X-Subject-Token return header.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    Purpose: Validates authentication token specified by the X-Subject-Token header and also returns service catalogue. Current authentication token must be specified via the X-Auth-Token request header.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    Purpose: Fast validation of authentication token. No service catalogue. 204 returns token is valid.
    Operation: HEAD
  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    Purpose: Immediately invalidates access token.
    Operation: DELETE

Keystone v3: Users

You can get the list of keystone users and its associated group using these APIs:

  • https://<powervc-ip>/powervc/openstack/identity/v3/users
    Purpose: Retrieves list of users.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/identity/v3/users/user_id
    Purpose: Retrieves a specific user.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/identity/v3/users/user_id/groups
    Purpose: Lists groups of which the user is a member.
    Operation: GET

Keystone v3: Groups

You can get the list of keystone groups and its associated users using these APIs:

  • https://<powervc-ip>/powervc/openstack/identity/v3/groups
    Purpose: Retrieves list of keystone groups.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/identity/v3/groups/group_id
    Purpose: Retrieves a specific group.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/identity/v3/groups/group_id/users
    Purpose: Lists users that are the members of specified group.
    Operation: GET

Keystone v3: IBM roles

A role is a personality that a user assumes when performing a specific set of operations. A role includes a set of rights and privileges. A user assuming that role inherits those rights and privileges.

  • https://<powervc-ip>/powervc/openstack/identity/v3/ibm-roles/users
    Purpose: Retrieves list of users with PowerVC role grants.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/identity/v3/ibm-roles/groups
    Purpose: Retrieves list of groups with PowerVC role grants.
    Operation: GET

Component: Nova

Nova is the project name for OpenStack Compute, a cloud computing fabric controller, the main part of an IaaS system. It manages lifecycle and operations of compute resources.

Nova servers

You can manage virtual servers using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers
    Purpose: Creates a new virtual server or virtual machine.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers
    Purpose: Gets a list of virtual servers.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/detail
    Purpose: Gets details on all virtual servers.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id
    Purpose: Gets details on a specified virtual server.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id
    Purpose: Deletes a specified virtual server.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/action
    Purpose: Resizes the specified server. Specify the resize action in the requested body.
    Purpose: Confirms a pending resize action. Specify the confirmResize action in the requested body.
    Purpose: Live-migrate a server to a new host without rebooting. Specify the os-migrateLive action in the request body.
    Purpose: Stops a running server and changes its status to STOPPED. Specify the os-stop action in the request body.
    Purpose: Starts a stopped server and changes its status to ACTIVE. Specify the os-start action in the request body.
    Purpose: Reboots the specified server. Specify the reboot action in the requested body.
    Purpose: Changes a stopped virtual server to active status.
    Purpose: Live-migrate a virtual server to a new host without rebooting.
    Purpose: Creating new image by capturing virtual machine.
    Operation: POST

Nova volume attachments

You can attach and detach the storage volumes to and from a virtual server using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments
    Purpose: Attaches a volume to the specified server.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments
    Purpose: Lists the volume attachments for the specified server.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments/attachment_id
    Purpose: Lists the volume details for the specified volume attachment ID.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments/attachment_id
    Purpose: Detaches the specified volume attachment from the specified server.
    Operation: DELETE

Nova extensions

You can get the list and details of all extensions available on servers:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/extensions
    Purpose: Lists all available extensions.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/extensions/{alias}
    Purpose: Gets details about a specific extension. Extensions enable the introduction of new features in the API without requiring a version change and they allow the introduction of vendor-specific functionality.
    Operation: GET

Nova flavors

You can manage the virtual server flavors (virtual hardware templates defining sizes for RAM, disk, number of cores, and so on) using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors
    Purpose: Creates a new flavor.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors
    Purpose: Gets list of flavors.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/detail
    Purpose: Gets list of flavors with details.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/detail/flavor_id
    Purpose: Gets details of specified flavor.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/detail/flavor_id
    Purpose: Deletes the specified flavor ID.
    Operation: DELETE

Nova extra flavor specifications

Lets you manage extra specifications of existing virtual server flavors (such as to set minimum and maximum of virtual processor or memory and setting dedicated or shared processor).

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs
    Purpose: Lists extra specs or the keys for the specified flavor.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs
    Purpose: Creates extra specs or the keys for the specified flavor.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs/key_id
    Purpose: Gets the value of the specified key.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs/key_id
    Purpose: Deletes a specified extra-spec by key.
    Operation: DELETE

Nova hosts

Registers and unregisters Power hosts into PowerVC.

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts
    Purpose: Lists all the hosts.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/host_name
    Purpose: Describes a specified host.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts
    Purpose: Registers a new compute host.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/host_name
    Purpose: Unregisters a compute host.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/host_name/update-registration
    Purpose: Reregisters a compute host.
    Operation: PUT

Nova hypervisors

You can get the hypervisor information of servers being managed by PowerVC using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors
    Purpose: Lists hypervisors information per server.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors/detail
    Purpose: Lists the details of the hypervisors being managed by the OpenStack installation.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors/hypervisor_id
    Purpose: Gives detailed information of specific hypervisor.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors/hypervisor_id/servers
    Purpose: Lists hypervisor servers or virtual machines.
    Operation: GET

Nova images

You can manage virtual server images using these APIs:

  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images
    Purpose: Lists all the images.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images/detail
    Purpose: Lists all the images with details.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images/image_id
    Purpose: Lists the details of the specified image.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images/image_id
    Purpose: Deletes the specified image.
    Operation: DELETE

Nova limits

You can get the details of limits configured for user accounts using this API:

  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/limits
    Purpose: Returns current limits for the account.
    Operation: GET

Nova placement policies

You can get the list and modify the attributes of placement policies using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/ego/policy/placement
    Purpose: Lists all the policies.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/ego/policy/placement/policy_id
    Purpose: Lists a specific policy.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/ego/policy/placement/policy_id
    Purpose: Modifies editable attributes of the specific policy.
    Operation: PUT

Nova key pairs

You can manage key pairs associated with user accounts of the virtual server using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs
    Purpose: Lists key pairs associated with the account.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs
    Purpose: Generates or imports a key pair.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs/keypair_name
    Purpose: Deletes a specified key pair.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs/keypair_name
    Purpose: Shows key pair associated with the account.
    Operation: GET

Nova virtual server onboarding

For broader management reach, you can import virtual servers into PowerVC that are created outside of PowerVC.

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/hostname/all-servers
    Purpose: Retrieves a list of all virtual machines that are on a given host (managed and not).
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/hostname/onboard
    Purpose: Imports one or more virtual machines for a given host so they are managed by PowerVC.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/hostname/unmanage
    Purpose: Removes one or more virtual machines for a host so they are no longer managed by PowerVC.
    Operation: POST

Nova host-shared Ethernet adapters

You can list the shared Ethernet adapters assigned to single host, all hosts, or those having the same UUID and VLAN ID using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas
    Purpose: Lists all host SEAs.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas/host_id
    Purpose: Lists specific host SEAs on given host.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas/host_id?vlanid=<VLANID>
    Purpose: Lists specific host SEAs passing in a VLAN ID.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas?vlanid=<VLANID>
    Purpose: Lists all host SEAs passing in a VLAN ID which matches PVID of one SEA.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas?network_id=<network_id>
    Purpose: Lists all host SEAs passing in a network UUID.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas?network_id=<network_id>&vlanid=<VLAN ID>
    Purpose: Lists all host SEAs passing in a network UUID and VLAN ID.
    Operation: GET

Nova host network mapping

You can get the list of existing network mappings and also create and update the network mapping on the host using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping
    Purpose: Lists network mappings.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping?network_id=<network_id>
    Purpose: Lists network mappings by network ID.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping/host_id
    Purpose: Lists network mappings for a given host.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping/host_id?network_id=<network_id>
    Purpose: Lists network mappings for a given host and network ID.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping
    Purpose: Creates a network mapping.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping
    Purpose: Modifies network mapping.
    Operation: PUT

Nova host network placement

You can get the list of possible network placements for specified hosts and also get the list of hosts, which can support the placement of specified VLAN.

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-placement
    Purpose: Lists possible network placements for all hosts.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-placement?network_id=<network_id>
    Purpose: Lists hosts that can support the specified network.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-placement/host_name
    Purpose: Lists possible network placements for the specified host.
    Operation: GET

Nova usage

You can get usage statistics (such as CPU, memory, and network usage) per host and per user account using these APIs:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-simple-tenant-usage
    Purpose: View usage for all tenants.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-simple-tenant-usage/tenant_id
    Purpose: Retrieve usage for a tenant.
    Operation: GET

Nova quotas

You can get information on allocated quotas and update it for user accounts.

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-quota-sets/tenant_id
    Purpose: Shows quotas for tenant.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-quota-sets/tenant_id
    Purpose: Updates quotas for tenant.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-quota-sets/tenant_id/defaults
    Purpose: Retrieves default quotas.
    Operation: GET

Component: Cinder

Cinder is the OpenStack project for managing block storage.

Cinder volumes

You can manage storage volumes using these APIs:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes
    Purpose: For creation of a volume.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes
    Purpose: For viewing a list of volumes.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/detail
    Purpose: For viewing a list of volumes with its details.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes?data_volumes
    Purpose: For viewing a list of data volumes.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/detail?data_volumes
    Purpose: For viewing a list of data volumes with its details.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    Purpose: For viewing all information of a single volume.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    Purpose: For updating a specific volume.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    Purpose: For deleting a single volume.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id/restricted_metadata
    Purpose: For viewing volume restricted metadata.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id/restricted_metadata
    Purpose: For modifying volume restricted metadata.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume-id/restricted_metadata/{key}
    Purpose: For deleting a volume from volume-restricted metadata.
    Operation: DELETE

Cinder hosts

You can configure storage providers in PowerVC using these APIs:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/connect
    Purpose: Returns a list of storage pools.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts
    Purpose: Registers a new cinder host.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts
    Purpose: Lists all cinder hosts.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name
    Purpose: Describes a specific host.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name
    Purpose: Unregisters a cinder host.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/update-registration
    Purpose: Reregisters a cinder host.
    Operation: PUT

Cinder volume onboarding

You can import storage volumes that are not managed by PowerVC using these APIs:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/all-volumes
    Purpose: Gives a list of all volumes that are on a given storage provider.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/onboard
    Purpose: Imports one or more volumes for a given storage provider so they are managed by PowerVC.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/unmanage
    Purpose: Removes one or more volumes for a storage provider so they are no longer managed by PowerVC.
    Operation: POST

Cinder storage providers

You can get the metrics and status of existing storage provides in PowerVC.

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/storage-providers
    Purpose: Gives list of the storage provider's status/metrics.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/storage-providers/detail
    Purpose: Gives status/metrics details for all storage providers.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/storage-providers/provider_id
    Purpose: Gives status/metrics details for a specific storage provider.
    Operation: GET

Cinder volume expansion

You can resize the storage volumes using this API:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    Purpose: Extends/resizes a volume when the volume is attached whose status is In-Use.
    Operation: GET

Cinder extensions

You can get the list and details of all extensions available on a storage volume:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/extensions
    Purpose: Lists available extensions.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/{alias}
    Purpose: Gets details about the specified extension.
    Operation: GET

Cinder types

You can manage the storage volume types using these APIs:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types
    Purpose: Creates a volume type.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types
    Purpose: Lists volume type.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types/volume_type_id
    Purpose: Shows the information of a specified volume type.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types/volume_type_id
    Purpose: Updates a volume type.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types/volume_type_id
    Purpose: Deletes a volume type.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types/volume_type_id/extra_specs/key_id
    Purpose: Updates an extra-specs item for a volume type.
    Operation: PUT

Component: Glance

Glance is an image service that provides discovery, registration, and delivery services for virtual disk images.

Glance images

You can manage images (create/delete/update/list/get details/download) using these RESTful services:

  • https://<powervc-ip>/powervc/openstack/image/v2/images
    Purpose: Creates an image.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/image/v2/images
    Purpose: Gets a list of images to which tenant has access.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id
    Purpose: Gets details of the specified image.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id
    Purpose: Updates a specified image.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id
    Purpose: Deletes a specified image.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id/file
    Purpose: Downloads binary image data.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id/file
    Purpose: Uploads binary image data.
    Operation: PUT

Component: Neutron

Neutron is the network management service for OpenStack.

Neutron networks

You can manage the network (create/delete/modify/list) using these RESTful services:

  • https://<powervc-ip>/powervc/openstack/network/v2/networks
    Purpose: Creates a new Neutron network.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/network/v2/networks/network_id
    Purpose: Updates the specified network.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/network/v2/networks/network_id
    Purpose: Deletes the specified network.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/network/v2/networks
    Purpose: Gives a summary of all networks defined in Neutron.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/network/v2/networks/network_id
    Purpose: Lists detailed information for the specified network.
    Operation: GET

Neutron subnets

You can manage network subnets using these RESTful services:

  • https://<powervc-ip>/powervc/openstack/network/v2/subnets
    Purpose: Creates a subnet on the specified network.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets/subnet_id
    Purpose: Updates the specified subnet.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets/subnet_id
    Purpose: Removes the specified subnet.
    Operation: DELETE
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets
    Purpose: Lists all subnets that are accessible to the tenant who submits the request.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets/subnet_id
    Purpose: Gives detailed information for specified subnet.
    Operation: GET

Neutron ports

You can manage network ports using these RESTful services:

  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports
    Purpose: Creates a port on specified network.
    Operation: POST
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports
    Purpose: Lists ports to which tenant has access.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports/port_id
    Purpose: Shows information for a specified port.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports/port_id
    Purpose: Updates a specified port.
    Operation: PUT
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports/port_id
    Purpose: Deletes a specified port.
    Operation: DELETE

The PowerVC service component: Validator

This service validates the existing PowerVC environment and displays results that can be useful to correct the configured PowerVC environment.

  • https://<powervc-ip>/powervc/openstack/validation/v1/validation
    Purpose: Initiates validation run.
    Operation: GET
  • https://<powervc-ip>/powervc/openstack/validation/v1/validation/result
    Purpose: Displays the results from the previous completed validation run.
    Operation: GET

Conclusion

I hope this quick reference guide to using OpenStack virtual resource management APIs via the PowerVC Express Edition helps to make your cloud management tasks easier and faster.

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Cloud computing on developerWorks


  • Bluemix Developers Community

    Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.

  • developerWorks Labs

    Experiment with new directions in software development.

  • DevOps Services

    Software development in the cloud. Register today to create a project.

  • Try SoftLayer Cloud

    Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Cloud computing, Open source, DevOps, Linux, AIX and UNIX
ArticleID=973574
ArticleTitle=Explore the OpenStack REST APIs for PowerVC
publish-date=06132014