Jump to: navigation, search

Difference between revisions of "UnifiedCLI/Mapping"

(user)
(API v3)
Line 664: Line 664:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! OSC Command !! Implemented !! !! Nova command
+
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
Line 744: Line 744:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! OSC Command !! Implemented !! !! Nova command
+
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
Line 911: Line 911:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! OSC Command !! Implemented !! !! Nova command
+
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
Line 987: Line 987:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! OSC Command !! Implemented !! !! Nova command
+
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
Line 1,060: Line 1,060:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! OSC Command !! Implemented !! !! Nova command
+
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|

Revision as of 22:06, 8 March 2013

OpenStackClient Commands

Part of the UnifiedCLI proposal

[Note that the use of the word object here is its generic meaning as the target of an action.]

Command Structure

Verbs

The verbs used by the default OpenStack clients have been mapped to the set below that attempts to define a consistent meaning to each action. Many of them have logical opposite actions. Those verbs with an opposite action is noted in parens if applicable.

  • add (remove) - add an object to a container which itself is usually another object; the command is built in the order of "add object1 to object2" (<object1>-<object2>), the positional arguments also appear in that order
  • attach (detach) - connect two objects (is this different from add/remove?)
  • create (delete) - create a new occurrance of the specified object
  • delete (create) - delete a specific occurrance of the specified object
  • detach (attach) - disconnect two objects (is this different from add/remove?)
  • list - display summary information about multiple objects
  • lock (unlock)
  • migrate - move a server to a different host; --live performs a live migration if possible
  • pause (unpause) - stop a server and leave it in memory
  • reboot - forcibly reboot a server
  • rebuild - rebuild a server using (most of) the same arguments as in the original create
  • remove (add) - remove an object from a group of objects
  • rescue (unrescue) - reboot a server in a special rescue mode allowing access to the original disks
  • resize - change a server's flavor
  • resume (suspend) - return a suspended server to running state
  • save - download an object locally
  • set (unset) - set an attribute of the object, often called metadata
  • show - display detailed information about the specifiec object
  • ssh
  • suspend (resume) - stop a server and save to disk freeing memory
  • unlock (lock)
  • unpause (pause) - return a paused server to running state
  • unrescue (rescue) - return a server to normal boot mode
  • unset (set) - remove an attribute of the object

Global Options

The common global options from the default OpenStack clients have been mapped to the set of global options below.


OSC Option Environment Variable Option Environment Variable
--version --version
--help --help
--debug --debug
--quiet
--verbose
--log-file <filename>
--os-auth-url <url> OS_AUTH_URL --os-auth-url <url> OS_AUTH_URL
--os-tenant-name <name> OS_TENANT_NAME --os-tenant-name <name> OS_TENANT_NAME
--os-tenant-id <id> OS_TENANT_ID --os-tenant-id <id> OS_TENANT_ID
--os-username <name> OS_USERNAME --os-username <name> OS_USERNAME
--os-password <pw> OS_PASSWORD --os-password <pw> OS_PASSWORD
--os-region-name <region> OS_REGION_NAME --os-region-name <region> OS_REGION_NAME
--os-cacert <file> OS_CACERT --os-cacert <file> OS_CACERT
--insecure
--os-use-keyring

Common Options

A number of options will appear in many commands and should have the same form in all commands to the extent possible.

Option Description Usual Default
--description describes an object none
--enable Used for setting the enabled state for an object n/a
--disable Used for setting the enabled state for an object n/a

Command Mapping Summary

This is an example mapping of the existing commands from Keystone (Identity), Nova (Compute), Glance (Image) and Cinder (Volume) to the <verb> <object> form for the OpenStackClient cli tool. It reduces both the number of verbs and objects by handling some of the smaller differences with command line options.

Further consolidation could be achieved by additional options or by introduction secondary objects to the syntax. For example, the credentials and x509-cert (and x509-root-cert) objects could be combined:


nova x509-create-cert [<pk-file>] [<x509-cert>] os create credentials --x509 [<pk-file>] [<x509-cert>]
nova credentials os show credentials
nova x509-get-root-cert os show credentials --x509 --root


Identity

OSC Option Environment Variable Keystone Option Environment Variable
--os-identity-api-version <ver> OS_IDENTITY_API_VERSION --os-identity-api-version <ver> OS_IDENTITY_API_VERSION
--os-token <token> OS_TOKEN --os-token <token> OS_SERVICE_TOKEN
--os-url <url> OS_URL --os-endpoint <url> OS_SERVICE_ENDPOINT
--os-cert <file> OS_CERT
--os-key <key-file> OS_KEY
--os-cache OS_CACHE
--force-new-token
--stale-duration <seconds>


API v2.0

catalog

OSC Command Implemented Keystone command
os show service
    [--catalog <service-type>]
yes
keystone catalog
    [--service <service-type>]


ec2-credentials

OSC Command Implemented Keystone command
os create ec2-credentials
    --tenant_id <tenant-id>
    [--user <user-id>]
no
keystone ec2-credentials-create
    [--user <user-id>] 
    [--tenant_id <tenant-id>]
## are both args really optional?
os delete ec2-credentials
    <access-key>

## what changes if --user is not provided?
no
keystone ec2-credentials-delete
    [--user <user-id>] 
    --access <access-key>
os list ec2-credentials
    [--user <user-id>]
no
keystone ec2-credentials-list
    [--user <user-id>]
os show ec2-credentials
    <access-key>

## what changes if --user is not provided?
no
keystone ec2-credentials-get
    [--user <user-id>] 
    --access <access-key>


endpoint

OSC Command Implemented Keystone command
os create endpoint
    [--region <endpoint-region>
    [--publicurl <public-url>]
    [--adminurl <admin-url>]
    [--internalurl <internal-url>]
    <service>
yes
keystone endpoint-create
    [--region <endpoint-region>]
    [--service_id <service-id>]
    [--publicurl <public-url>]
    [--adminurl <admin-url>]
    [--internalurl <internal-url>]
os delete endpoint
    <endpoint-id>
yes
keystone endpoint-delete
    <endpoint-id>
os list endpoint
    [--long]
yes
keystone endpoint-list
os show endpoint
    [--type <endpoint-type>]
    [--attr <endpoint-attribute>] 
    [--value <endpoint-value>]
    [--all]
    <service>
yes
keystone endpoint-get
    --service <service-type>
    [--endpoint_type <endpoint-type>]
    [--attr <service-attribute>] 
    [--value <value>]


role

OSC Command Implemented Keystone command
os create role
    <role-name>
yes
keystone role-create --name
    <role-name>
os delete role
    <role>
yes
keystone role-delete
    <role-id>
os list role
yes
keystone role-list
os show role
    <role>
yes
keystone role-get
    <role-id>


service

OSC Command Implemented Keystone command
os create service
    [--type <service-type>]
    [--description <service-description>]
    <service-name>
yes
keystone service-create
    --name <name> 
    --type <type>
    [--description <service-description>]
os delete service
    <service>
yes
keystone service-delete
    <service-id>
os list service [--long]
yes
keystone service-list
os show service
    <service>
yes
keystone service-get
    <service-id>


tenant

OSC Command Implemented Keystone command
os create tenant
    [--description <tenant-description>]
    [--enable | --disable]
    <tenant-name>
yes
keystone tenant-create
    --name <tenant-name>
    [--description <tenant-description>]
    [--enabled <true|false>]
os delete tenant
    <tenant>
yes
keystone tenant-delete
    <tenant-id>
os list tenant
    [--long]
yes
keystone tenant-list
os set tenant
    [--name <new-tenant-name>]
    [--description <new-tenant-description>]
    [--enable | --disable]
    <tenant>
yes
keystone tenant-update
    [--name <tenant_name>]
    [--description <tenant-description>]
    [--enabled <true|false>]
    <tenant-id>
os show tenant
    <tenant>
yes
keystone tenant-get
    <tenant-id>


token

OSC Command Implemented Keystone command
os show token
    [--width <token-display-width>]
 ??
keystone token-get [--wrap <integer>]


user

OSC Command Implemented Keystone command
os create user 
    [--password <user-password>]
    [--email <user-email>]
    [--tenant <tenant>]
    [--enable | --disable]
    <user-name>
yes
keystone user-create
    --name <user-name> 
    [--tenant_id <tenant-id>]
    [--pass <pass>] 
    [--email <email>]
    [--enabled <true|false>]
os delete user
    <user>
yes
keystone user-delete
    <user-id>
os list user
    [--tenant <tenant>]
    [--long]
yes
keystone user-list
    [<tenant-id>]
os set user
    [--name <new-user-name>]
    [--password <user-password>]
    [--email <user-email>]
    [--tenant <tenant>]
    [--enable|--disable]
    <user>
yes
keystone user-password-update
    --pass <password>
    <user-id>
os show user
    <user>
yes
keystone user-get
    <user-id>


user-role

OSC Command Implemented Keystone command
os add role-user
    [--tenant <tenant>]
    <role> <user>
yes
keystone user-role-add
    --user <user-id>
    --role <role-id>
    [--tenant_id <tenant-id>]
os list role-user
    [--tenant <tenant>]
    [<user>]
yes
keystone user-role-list
    [--user <user-id>]
    [--tenant_id <tenant-id>]
os remove role-user
    [--tenant <tenant>]
    <role> <user>
yes
keystone user-role-remove
    --user <user-id>
    --role <role-id>
    [--tenant_id <tenant-id>]


<other>

keystone bootstrap
        --pass <password>
        [--user-name <user-name>]
        [--role-name <role-name>]
        [--tenant-name <tenant-name>]

##TBD


keystone discover

##TBD

API v3

credential

OSC Command Implemented Keystone command
os create credential
    [--project <project>]
    [--type ec2|cert]
    <user>
    <data>
in progress
keystone credential-create
    --user_id <user-id>
    --type <credential-type>
    --data <credential-data>
    [--project_id <project-id>]
os delete credential
    <credential-id>
in progress
keystone credential-delete
    <credential-id>
os list credential
in progress
keystone credential-list
os set credential
    [--user <user>]
    [--type <type>]
    [--data <data>]
    [--project <project>]
    <credential-id>
in progress
keystone credential-update
    [--user <user>]
    [--type <type>]
    [--data <data>]
    [--project <project>]
    <credential-id>
os show credential
    <credential-id>
in progress
keystone credential-get
    <credential-id>


domain

OSC Command Implemented Keystone command
os create domain
    [--description <domain-description>]
    [--enable | --disable]
    <domain-name>
in progress
keystone domain-create
    --name <domain-name>
    [--description <domain-description>]
    [--enabled <true|false>]
    [--private_project_names <true|false>]
    [--private_user_names <true|false>]
os delete domain
    <domain>
in progress
keystone domain-delete
    <domain-id>
os list domain
in progress
keystone domain-list
os set domain
    [--name <new-domain-name>]
    [--description <new-domain-description>]
    [--enable | --disable]
    <domain>
in progress
keystone domain-update
    [--name <domain_name>]
    [--description <domain-description>]
    [--enabled <true|false>]
    [--private_project_names <true|false>]
    [--private_user_names <true|false>]
    <domain-id>
os show domain
    <domain>
in progress
keystone domain-get
    <domain-id>


endpoint

OSC Command Implemented Keystone command
os create endpoint
    [--region <endpoint-region>
    [--publicurl <public-url>]
    [--adminurl <admin-url>]
    [--internalurl <internal-url>]
    [--enable | --disable]
    <service>
    <endpoint-interface>
    <endpoint-url>
no
keystone endpoint-create
    --service_id <service-id>
    --interface <endpoint-interface>
    --url <endpoint-url>
    [--region <endpoint-region>]
    [--enabled <true|false>]
os delete endpoint
    <endpoint-id>
no
keystone endpoint-delete
    <endpoint-id>
os list endpoint
    [--long]
no
keystone endpoint-list
os set endpoint
    [--region <endpoint-region>]
    [--service <service-id>]
    [--interface <endpoint-interface>]
    [--url <endpoint-url>]
    [--enable | --disable]
    <endpoint>
no
keystone endpoint-update
    --endpoint_id <endpoint-id>
    [--region <endpoint-region>]
    [--enabled <true|false>]
    [<service-id>]
    [<endpoint-interface>]
    [<endpoint-url>]
os show endpoint
    <endpoint>
no
keystone endpoint-get
    <endpoint-id>

group

OSC Command Implemented Keystone command
os create group
    [--domain <domain>]
    [--description <group-description>]
    <group-name>
yes
keystone group-create
    --name <group-name>
    [--domain_id <domain-id>]
    [--description <group-description>]
os delete group
    <group>
yes
keystone group-delete
    <group-id>
os list group
    [--long]
yes
keystone group-list
os set group
    [--name <new-group-name>]
    [--domain <domain>]
    [--description <new-group-description>]
    <group>
yes
keystone group-update
    [--name <group_name>]
    [--domain_id <domain-id>]
    [--description <group-description>]
    <group-id>
os show group
    <group>
yes
keystone group-get
    <group-id>

policy

OSC Command Implemented Keystone command
os create policy
    [--type <policy-type>]
    --blob <policy-blob>
in progress
keystone policy-create
    --type <policy-type>
    --blob <policy-blob>
os delete policy
    <policy-id>
in progress
keystone policy-delete
    <policy-id>
os list policy
    [--include-blob]
in progress
keystone policy-list
os set policy
    [--type <policy-type>]
    [--blob <policy-blob>]
    <policy-id>
in progress
keystone policy-update
    [--type <policy-type>]
    [--blob <policy-blob>]
    <policy-id>
os show policy
    <policy-id>
in progress
keystone policy-get
    <policy-id>


project

OSC Command Implemented Keystone command
os create project
    [--domain <project-domain>]
    [--description <project-description>]
    [--enable | --disable]
    <project-name>
yes
keystone project-create
    --name <project-name>
    [--domain_id <project-domain-id>]
    [--description <project-description>]
    [--enabled <true|false>]
os delete project
    <project>
yes
keystone project-delete
    <project-id>
os list project [--long]
yes
keystone project-list
os set project
    [--name <new-project-name>]
    [--domain <project-domain>]
    [--description <new-project-description>]
    [--enable | --disable]
    <project>
yes
keystone project-update
    [--name <project_name>]
    [--domain_id <project-domain-id>]
    [--description <project-description>]
    [--enabled <true|false>]
    <project-id>
os show project
    <project>
yes
keystone project-get
    <project-id>


role

keystone role-create --name <role-name>

os create role <role-name>


keystone role-delete <role-id>

os delete role <role>


keystone role-get <role-id>

os show role <role>


keystone role-list

os list role


keystone role-update <role-id>

os update role <role>


service

keystone service-create --type <type>
			[--name <name>]
                        [--enabled <true|false>]

os create service
	[--name <name>]
        [--enabled <true|false>]
        <type>


keystone service-delete <service-id>

os delete service <service>


keystone service-get <service-id>

os show service <service>


keystone service-list

os list service [--long]


keystone service-update --service_id <service-id>
			[--type <type>]
			[--name <name>]
                        [--enabled <true|false>]

os update service
	[--type <type>]
	[--name <name>]
        [--enabled <true|false>]
        <service>


user

OSC Command Implemented Keystone command
os create user 
    [--password <password>] 
    [--project <project>]
    [--email <user-email>]
    [--enable | --disable]
    <name>
yes
keystone user-create
    --name <user-name> 
    [--domain_id <domain-id>]
    [--default_project_id <project-id>]
    [--description <description>]
    [--enabled <true|false>]
    [--password <password>]
os delete user
    <user>
yes
keystone user-delete
    <user-id>
os list user
    [--project <project>]
    [--long]
yes
keystone user-list
os set user
    [--name <new-name>]
    [--password <password>] 
    [--project <project>]
    [--email <user-email>]
    [--enable | --disable]
    <user>
yes
keystone user-update
    --user_id <user-id>
    [--name <user-name>]
    [--domain_id <domain-id>]
    [--default_project_id <project-id>]
    [--description <description>]
    [--enabled <true|false>]
    [--password <password>]
os show user
    <user>
yes
keystone user-get
    <user-id>

Compute

OSC Option Environment Variable Nova Option Environment Variable
--os-auth-system <auth-system> OS_AUTH_SYSTEM
--service-type <type>
--service-name <name> NOVA_SERVICE_NAME
--volume-service-name <name> NOVA_VOLUME_SERVICE_NAME
--endpoint-type <type> NOVA_ENDPOINT_TYPE
--os-compute-api-version <ver> OS_COMPUTE_API_VERSION --os-compute-api-version <ver> OS_COMPUTE_API_VERSION
--bypass-url <bypass-url>


API v2 (1.1)

agent

OSC Command Implemented Nova command
os create agent
    <os>
    <architecture>
    <version>
    <url>
    <md5hash>
    <hypervisor>
yes
os delete agent
    <id>
yes
os list agent
    [--hypervisor <hypervisor>]
yes
os set agent
    <id>
    <version>
    <url>
    <md5hash>
yes


aggregate

nova aggregate-create <name> <availability_zone>

os create aggregate ...


nova aggregate-delete <id>

os delete aggregate ...


nova aggregate-details <id>

os show aggregate ...


nova aggregate-list

os list aggregate


nova aggregate-update <id> <name> [<availability_zone>]

os set aggregate ...


nova aggregate-set-metadata <id> <key=value> [<key=value> ...]

os set aggregate --metadata ...


aggregate-host

nova aggregate-add-host <id> <host>

os add aggregate-host ...


nova aggregate-remove-host <id> <host>

os remove aggregate-host ...


bash-completion

nova bash-completion

os show bash-completion


cloudpipe

nova cloudpipe-create <project>

os create cloudpipe ...


nova cloudpipe-list

os list cloudpipe


console

nova console-log [--length <length>] <server>

os show console ...


nova get-vnc-console <server> <console_type>

os show console [--vnc] ...


credentials

nova credentials

os show credentials


diagnostics

nova diagnostics <server>

os show diagnostics ...


dns

nova dns-create [--type <type>] <ip> <name> <domain>

os create dns ...


nova dns-delete <domain> <name>

os delete dns ...


nova dns-list [--ip <ip>] [--name <name>] <domain>

os list dns ...


dns-domain

nova dns-create-private-domain [--availability_zone <availability_zone>]
                               <domain>

os create dns-domain [--private] ...


dns-public-domain

nova dns-create-public-domain [--project <project>] <domain>

os create dns-domain [--public] ...


nova dns-delete-domain <domain>

os delete dns-domain ...


nova dns-domains

os list dns-domains


endpoints

nova endpoints

os list endpoints

# does this overlap with keystone?


fixed-ip

nova add-fixed-ip <server> <network_id>

os add fixed-ip ...


nova remove-fixed-ip <server> <address>

os remove fixed-ip ...


flavor

OSC Command Implemented Nova command
os create flavor
    [--id <id>]
    [--ram <size-mb>]
    [--disk <size-gb>]
    [--ephemeral-disk <size-gb>]
    [--swap <size-mb>]
    [--vcpus <num-cpu>]
    [--rxtx-factor <factor>]
    [--public | --private]
    <name>
(partial)
default: auto
default: 256M
default: 0G
default: 0G
default: 0G
default: 1
default: 1
default: public
nova flavor-create
    [--ephemeral <ephemeral>] 
    [--swap <swap>]
    [--rxtx-factor <factor>]
    <name>
    <id>
    <ram>
    <disk>
    <vcpus>
os delete flavor
    <flavor>
yes
nova flavor-delete 
    <id>
os list flavor
yes
nova flavor-list
os show flavor
    <flavor>
yes


floating-ip

nova add-floating-ip <server> <address>

os add floating-ip ...


nova floating-ip-create [<floating_ip_pool>]

os create floating-ip ...


nova floating-ip-delete <address>

os delete floating-ip


nova floating-ip-list

os list floating-ip


nova remove-floating-ip <server> <address>

os remove floating-ip ...


floating-ip-pool

nova floating-ip-pool-list

os list floating-ip-pool


host

OSC Command Implemented Nova command
os list host
    [--zone <availability-zone>]
yes
nova host-action
    [--action <action>]
    <hostname>
os set host
    ...
no
nova host-update
    [--status <status>] 
    [--maintenance <maintenance_mode>]
    <hostname>
os show host
    <host>
yes


hypervisor

OSC Command Implemented Nova command
os list hypervisor
    [--matching <hostname>]
yes
os show hypervisor
    <id>
yes


image

nova image-create [--poll] <server> <name>

os create image ...


nova image-delete <image>

os delete image ...


nova image-list

os list image


nova image-meta <image> <action> <key=value> [<key=value> ...]

os set image ...


nova image-show <image>

os show image ...


keypair

nova keypair-add [--pub_key <pub_key>] <name>

os create keypair ...


nova keypair-delete <name>

os delete keypair


nova keypair-list

os list keypair


limits

nova absolute-limits

os show limits --absolute
## is there any other kind?


quota

nova quota-defaults <tenant_id>
nova quota-show <tenant_id>

os show quota <tenant> [--defaults]


nova quota-update [--instances <instances>] 
                  [--cores <cores>]
                  [--ram <ram>] 
                  [--volumes <volumes>]
                  [--gigabytes <gigabytes>]
                  [--floating-ips <floating_ips>]
                  [--metadata-items <metadata_items>]
                  [--injected-files <injected_files>]
                  [--injected-file-content-bytes <injected_file_content_bytes>]
                  <tenant_id>

os set quota ...


quota-class

nova quota-class-show <class>

os show quota-class ...


nova quota-class-update [--instances <instances>] 
                        [--cores <cores>]
                        [--ram <ram>] 
                        [--volumes <volumes>]
                        [--gigabytes <gigabytes>]
                        [--floating-ips <floating_ips>]
                        [--metadata-items <metadata_items>]
                        [--injected-files <injected_files>]
                        [--injected-file-content-bytes <injected_file_content_bytes>]
                        <class>

os set quota-class ...


rate-limits

nova rate-limits

os show rate-limits


resource

nova describe-resource <hostname>

os show resource ...


secgroup

nova secgroup-create <name> <description>

os create secgroup ...


nova secgroup-delete <secgroup>

os delete secgroup ...


nova secgroup-list

os list secgroup


secgroup-group-rule

nova secgroup-add-group-rule [--ip_proto <ip_proto>]
                             [--from_port <from_port>]
                             [--to_port <to_port>]
                             <secgroup> <source_group>

os create secgroup-group-rule


nova secgroup-delete-group-rule [--ip_proto <ip_proto>]
                                [--from_port <from_port>]
                                [--to_port <to_port>]
                                <secgroup> <source_group>

os delete secgroup-group-rule ...


secgroup-rule

nova secgroup-add-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr>

os create secgroup-rule


nova secgroup-delete-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr>

os delete secgroup-rule


nova secgroup-list-rules <secgroup>

os list secgroup-rule ...

server

OSC Command Implemented Nova command
os create server
    --image <image>
    --flavor <flavor>
    [--security-group <security-group-list> [...] ]
    [--key-name <key-name>]
    [--meta-data <key=value> [...] ]
    [--file <dest-filename=source-filename>] [...] ]
    [--user-data <user-data>]
    [--availability-zone <zone-name>]
    [--block-device-mapping <dev-name=mapping> [...] ]
    [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr> [...] ]
    [--hint <key=value> [...] ]
    [--config-drive <value>|True ]
    [--min <count>]
    [--max <count>]
    [--wait]
    <server-name>
yes
nova boot
    [--flavor <flavor>]
    [--image <image>]
    [--meta <key=value>]
    [--file <dst-path=src-path>]
    [--key_name <key_name>]
    [--user_data <user-data>]
    [--availability_zone <availability-zone>]
    [--security_groups <security_groups>]
    [--block_device_mapping <dev_name=mapping>]
    [--hint <key=value>]
    [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr>]
    [--config-drive <value>]
    [--poll]
    <name>
os delete server
    <server>
yes
nova delete
    <server>
os list server
    [--reservation-id <reservation-id>] 
    [--ip <ip-regex>]
    [--ip6 <ip6-regex>] 
    [--name <name-regex>]
    [--instance-name <instance-name-regex>] 
    [--status <status>]
    [--flavor <flavor>]
    [--image <image>] 
    [--host <hostname>]
    [--all-tenants]
yes
nova list
    [--reservation_id <reservation_id>] 
    [--ip <ip_regexp>]
    [--ip6 <ip6_regexp>] 
    [--name <name_regexp>]
    [--instance_name <name_regexp>] 
    [--status <status>]
    [--flavor <flavor>] [--image <image>] 
    [--host <hostname>]
    [--all_tenants [<0|1>]]
os lock server
    <server>
no
nova lock
    <server>
os migrate server
    --live
    [--block_migrate]
    [--disk_over_commit]
    <server>
    <host>

os migrate server
    [--wait]
    <server>
no
nova live-migration
    [--block_migrate] 
    [--disk_over_commit]
    <server>
<host>

nova migrate
    [--poll]
    <server>
os pause server
    <server>
yes
nova pause
    <server>
os reboot server
    [--hard | --soft]
    [--wait]
    <server>
yes
nova reboot
    [--hard]
    [--poll]
    <server>
os rebuild server 
    --image <image>
    [--password <password>] 
    [--wait]
    <server>
yes
nova rebuild
    [--rebuild_password <rebuild_password>] 
    [--poll]
    <server>
    <image>
os rename server
    <server>
    <new-name>
no
nova rename
    <server>
    <name>
os rescue server
    <server>
no
nova rescue
    <server>
os resize server 
    --flavor <flavor>
    [--wait]
    <server>
no
nova resize
    [--poll]
    <server>
    <flavor>
os resize server
    --confirm
    <server>
no
nova resize-confirm
    <server>
os resume server
    <server>
yes
nova resume
    <server>
os set server
    --meta-data <key=value>
    [--meta-data <key=value>] ...
    <server>
os unset server
    --meta-data <key>
    [--meta-data <key>] ...
    <server>
no
nova meta
    <server>
    <action>
    <key=value>
    [<key=value> ...]
os set server
    --root-password
    <server>
no
nova root-password
    <server>
os show server
    <server>
yes
nova show
    <server>
os ssh server
    [--port PORT]
    --private]
    [--ipv6]
    [--login <login>]
    <server>
no
nova ssh
    [--port PORT]
    [--private]
    [--ipv6]
    [--login <login>]
    <server>
os suspend server
    <server>
yes
nova suspend
    <server>
os unlock server
    <server>
no
nova unlock
    <server>
os unpause server
    <server>
yes
nova unpause
    <server>
os unrescue server
    <server>
no
nova unrescue
    <server>


usage

nova usage-list [--start <start>] [--end <end>]

os list usage ...


volume

nova volume-attach <server> <volume> <device>

os attach volume ...


nova volume-create [--snapshot_id <snapshot_id>]
                   [--display_name <display_name>]
                   [--display_description <display_description>]
                   [--volume_type <volume_type>]
                   <size>

os create volume ...


nova volume-delete <volume>

os delete volume ...


nova volume-detach <server> <volume>

os detach volume ...


nova nova volume-list

os list volume


nova volume-show <volume>

os show volume ...


volume-snapshot

nova volume-snapshot-create [--force <True|False>]
                            [--display_name <display_name>]
                            [--display_description <display_description>]
                            <volume_id>

os create volume-snapshot ...


nova volume-snapshot-delete <snapshot_id>

os delete volume-snapshot ...


nova volume-snapshot-list

os list volume-snapshot


nova volume-snapshot-show <snapshot>

os show volume-snapshot


volume-type

nova volume-type-create <name>

os create volume-type ...


nova volume-type-delete <id>

os delete volume-type ...


nova volume-type-list

os list volume-type


x509-cert

nova x509-create-cert [<private_key_file>] [<x509_cert>]

os create x509-cert ...


x509-root-cert

nova x509-get-root-cert [<filename>]

os show x509-root-cert ...


Image

Nova Option Environment Variable OSC Option Environment Variable
--force
--dry-run
--os-image-url <url> OS_IMAGE_URL
--os-image-api-version <ver> OS_IMAGE_API_VERSION --os-image-api-version <ver> OS_IMAGE_API_VERSION
--os-service-type <type> OS_SERVICE_TYPE
--os-endpoint-type <type> OS_ENDPOINT_TYPE
--cert-file <file>
--key-file <file>
--timeout <seconds>
--no-ssl-compression


API v2.0

image

glance image-create [--id <IMAGE_ID>] [--name <NAME>]
                                  [--disk-format <CONTAINER_FORMAT>]
                                  [--container-format <DISK_FORMAT>]
                                  [--owner <TENANT_ID>] [--size <SIZE>]
                                  [--min-disk <DISK_GB>] [--min-ram <DISK_RAM>]
                                  [--location <IMAGE_URL>] [--checksum <CHECKSUM>]
                                  [--copy-from <IMAGE_URL>] [--public] [--protected]
                                  [--property <key=value>]

os create image ...


glance image-delete <IMAGE_ID>

os delete image ...


glance image-list

os list image ...


glance image-show <IMAGE_ID>

os show image ...


glance member-images [options] <MEMBER>

os list image --member <member> [options]


glance show [options] <ID>

os show image ...


glance update [options] <ID> <field1=value1 field2=value2 ...>

os set image ...


image-member

glance member-create [--can-share] <IMAGE_ID> <TENANT_ID>

os create image-member ...


glance member-delete <IMAGE_ID> <TENANT_ID>

os list image-member <image> [options]


glance member-delete [options] <ID> <MEMBER>

os delete image-member ...


glance member-list [--image-id <IMAGE_ID>] [--tenant-id <TENANT_ID>]

os list image-member ...


Volume

Cinder Option Environment Variable OSC Option Environment Variable
--os-volume-api-version <ver> OS_VOLUME_API_VERSION --os-volume-api-version <ver> OS_VOLUME_API_VERSION
--service-type <type>
--service-name <name> CINDER_SERVICE_NAME
--volume-service-name <name> CINDER_VOLUME_SERVICE_NAME
--endpoint-type <type> CINDER_ENDPOINT_TYPE
--retries <int>


API v1.0

credentials

cinder credentials

os list credential

limits

cinder rate-limits

os list limit --rate


cinder absolute-limits

os list limit --absolute

snapshot

cinder snapshot-create
	<volume-id>
	--force <True|False>
	--display-name <display-name>
	--display-description <display-description>

os create snapshot
	--force
	--display-name <display-name>
	--display-description <display-description>
	<volume-id>


cinder snapshot-delete <snapshot-id>

os delete snapshot <snapshot-id>


cinder snapshot-list
	--all-tenants [<0|1>]
	--display-name <display-name>
	--status <status>
	--volume-id <volume-id>

os list snapshot
	--all-tenants [<0|1>]
	--display-name <display-name>
	--status <status>
	--volume-id <volume-id>


cinder snapshot-rename
	--display-description <display-description>
	<snapshot-id>
	<display-name>

os update snapshot
	--display-description <display-description>	
	<snapshot-id>
	<display-name>


cinder snapshot-show <snapshot-id>

os show snapshot <snapshot-id>

type

cinder type-create <type-name>

os create type <type-name>


cinder type-delete <type-id>

os delete type <type>


cinder type-list

os list type


cinder extra-specs-list

os tbd


cinder type-key <type-name-or-id> <action (set|unset)> <key=value>

os tbd


volume

OSC Command Implemented Cinder command
os create volume
    --size <size>
    [--description <description>]
    [--volume-type <volume-type>]
    [--snapshot-id <snapshot-id>]
    [--source <volid>]
    [--image <image-id>]
    [--availability-zone <availability-zone>]
    [--metadata <key=value>]
    <name>
wip
cinder create
    [--snapshot-id <snapshot-id>]
    [--source-volid <source-volid>]
    [--image-id <image-id>]
    [--display-name <display-name>]
    [--display-description <display-description>]
    [--volume-type <volume-type>]
    [--availability-zone <availability-zone>]
    [--metadata [<key=value>]]
    <size>
os delete volume
    <volume>
yes
cinder delete
    <volume-id>
os list volume
yes (no opts yet)
cinder list 
    --all-tenants [<0|1>]
    --display-name <display-name>
    --status <status>
os set volume
    --name <new-name>
    --description <description>
    <volume>
yes
cinder rename
    --display-description <display-description>
    <volume-id>
    <display-name>
os show volume
    <volume>
yes
cinder show
    <volume-id>
cinder force-delete
    <volume-id>
cinder metadata
    <volume-id>
    <action>
    <key=value>

Network

quantum

Command-line Option Environment Variable
--host=HOST
--port=PORT
--ssl
--verbose
--logfile=LOGFILE
--token=TOKEN
--version=VERSION QUANTUM_VERSION


API v2.0

  • Verbs:
    • quantum: create, delete, list, plug, show, update, unplug
    • os: add, create, delete, list, remove, set, show
  • Objects:
    • quantum: iface, net, port
    • os: interface, network, port

iface

plug_iface <tenant-id> <net-id> <port-id> <iface-id>

add interface <tenant> <network> <port> <interface>


show_iface <tenant-id> <net-id> <port-id>

show interface <tenant> <network> <port>


unplug_iface <tenant-id> <net-id> <port-id>

remove interface <tenant> <network> <port>


net

create_net <tenant-id> <net-name>

create network <tenant> <network-name>


delete_net <tenant-id> <net-id>

delete <tenant> <network>


list_nets <tenant-id>

list network <tenant>


list_nets_detail <tenant-id>

list network --detail <tenant>


show_net <tenant-id> <net-id>

show network <tenant> <network>


show_net_detail <tenant-id> <net-id>

show network --detail <tenant> <network>


update_net <tenant-id> <net-id> <new-name>

set network <tenant> <network> --name <name>


port

create_port <tenant-id> <net-id>

create port <tenant> <network>


delete_port <tenant-id> <net-id> <port-id>

delete port <tenant> <network> <port>


list_ports <tenant-id> <net-id>

list port <tenant> <network>


list_ports_detail <tenant-id> <net-id>

list port --detail <tenant> <network>


show_port <tenant-id> <net-id> <port-id>

show port <tenant> <network> <port>


show_port_detail <tenant-id> <net-id> <port-id>

show port --detail <tenant> <network> <port>


update_port <tenant-id> <net-id> <port-id> <params>

set port <tenant> <network> <port> <params>


Options

In general, options will be transformed into more UNIX-like usage

  • --enable true|false becomes --enable|--disable

(dhellmann) Not all boolean options have natural antonyms like enable/disable. It may be more consistent to use a --flag --no-flag style naming convention to indicate the opposites of flags.

"(dtroyer) Yup, except i really don't like --no-enable. I'm going to work through the switch mapping to see how many others we really have to deal with."