Jump to: navigation, search

Difference between revisions of "UnifiedCLI/Mapping"

(Begin to reformat commands into tables to get some visual separation)
Line 146: Line 146:
 
os show token [--width <pki-token-display-width>]
 
os show token [--width <pki-token-display-width>]
 
</source>
 
</source>
 +
 +
{| class="wikitable"
 +
|-
 +
! OS Command !! !! Keystone Command
 +
|-
 +
|
 +
<source lang="bash">
 +
os show token
 +
    [--width <token-display-width>]
 +
</source>
 +
|| ||
 +
<source lang="bash">
 +
keystone token-get [--wrap <integer>]
 +
</source>
 +
|}
  
  
Line 196: Line 211:
  
  
'''endpoint'''
+
==== endpoint ====
  
 +
{| class="wikitable"
 +
|-
 +
! OS Command  !! !! Keystone Command
 +
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-create [--region <endpoint-region>]
 
                        [--service_id <service-id>]
 
                        [--publicurl <public-url>]
 
                        [--adminurl <admin-url>]
 
                        [--internalurl <internal-url>]
 
 
 
os create endpoint
 
os create endpoint
        [--region <endpoint-region>]
+
    [--region <endpoint-region>
        [--publicurl <public-url>]
+
    [--publicurl <public-url>]
        [--adminurl <admin-url>]
+
    [--adminurl <admin-url>]
        [--internalurl <internal-url>]
+
    [--internalurl <internal-url>]
        <service>
+
    <service>
 +
</source>
 +
|| ||
 +
<source lang="bash">
 +
keystone endpoint-create
 +
    [--region <endpoint-region>]
 +
    [--service_id <service-id>]
 +
    [--publicurl <public-url>]
 +
    [--adminurl <admin-url>]
 +
    [--internalurl <internal-url>]
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os delete endpoint <endpoint-id>
 
</source>
 
</source>
 
+
|| ||
 
 
 
<source lang="bash">
 
<source lang="bash">
 
keystone endpoint-delete <endpoint-id>
 
keystone endpoint-delete <endpoint-id>
 
os delete endpoint <endpoint-id>
 
 
</source>
 
</source>
 
+
|-
 
+
|
 +
<source lang="bash">
 +
os list endpoint [--long]
 +
</source>
 +
|| ||
 +
<source lang="bash">
 +
keystone endpoint-list
 +
</source>
 +
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-get --service <service-type>
 
                      [--endpoint_type <endpoint-type>]
 
                      [--attr <service-attribute>]
 
                      [--value <value>]
 
 
 
os show endpoint
 
os show endpoint
 
         [--type <endpoint-type>]
 
         [--type <endpoint-type>]
Line 232: Line 261:
 
         [--value <endpoint-value>]
 
         [--value <endpoint-value>]
 
         <service>
 
         <service>
 
os show endpoint
 
        [--all]
 
        <service>
 
 
</source>
 
</source>
 
+
|| ||
 
+
<source lang="bash">
 +
keystone endpoint-get
 +
    --service <service-type>
 +
    [--endpoint_type <endpoint-type>]
 +
    [--attr <service-attribute>]
 +
    [--value <value>]
 +
</source>
 +
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-list
+
os show endpoint
 
+
    [--all]
os list endpoint [--long]
+
    <service>
 
</source>
 
</source>
 +
|| ||
 +
|}
  
  

Revision as of 21:18, 1 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.


Option Environment Variable OSC Option Environment Variable
--version --version
--help --help
--debug --debug
--quiet
--verbose
--log-file <filename>
--os-auth-url <url> OS_AUTH_URL --os-auth-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

Keystone Option Environment Variable OSC 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_SERVICE_TOKEN --os-token <token> OS_TOKEN
--os-endpoint <url> OS_SERVICE_ENDPOINT --os-url <url> OS_URL
--os-cert <file> OS_CERT
--os-key <key-file> OS_KEY
--os-cache OS_CACHE
--force-new-token
--stale-duration <seconds>


API v2.0

token

keystone token-get [--wrap <integer>]

os show token [--width <pki-token-display-width>]
OS Command Keystone Command
os show token
    [--width <token-display-width>]
keystone token-get [--wrap <integer>]


catalog

keystone catalog [--service <service-type>]

os show service [--catalog <service-type>]


ec2-credentials

keystone ec2-credentials-create [--user <user-id>] 
                       [--tenant_id <tenant-id>]

os create ec2-credentials --tenant_id <tenant-id> [--user <user-id>]

## are both args really optional?


keystone ec2-credentials-delete [--user <user-id>] 
                       --access <access-key>

os delete ec2-credentials <access-key>

## what changes if --user is not provided?


keystone ec2-credentials-get [--user <user-id>] 
                             --access <access-key>

os show ec2-credentials <access-key>

## what changes if --user is not provided?


keystone ec2-credentials-list [--user <user-id>]

os list ec2-credentials [--user <user-id>]


endpoint

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


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


service

keystone service-create --name <name> 
                        --type <type>
                        [--description <service-description>]

os create service
        [--type <service-type>]
        [--description <service-description>]
        <service-name>


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]


tenant

keystone tenant-create --name <tenant-name>
                       [--description <tenant-description>]
                       [--enabled <true|false>]

os create tenant
        [--description <tenant-description>]
        [--enable | --disable]
        <tenant-name>


keystone tenant-delete <tenant-id>

os delete tenant <tenant>


keystone tenant-get <tenant-id>

os show tenant <tenant>


keystone tenant-list

os list tenant [--long]


keystone tenant-update
        [--name <tenant_name>]
        [--description <tenant-description>]
        [--enabled <true|false>]
        <tenant-id>

os set tenant
        [--name <new-tenant-name>]
        [--description <new-tenant-description>]
        [--enable | --disable]
        <tenant>


user

keystone user-create --name <user-name> 
                     [--tenant_id <tenant-id>]
                     [--pass <pass>] 
                     [--email <email>]
                     [--enabled <true|false>]

os create user 
        [--password <user-password>]
        [--email <user-email>]
        [--tenant <tenant>]
        [--enable | --disable]
        <user-name>


keystone user-delete <user-id>

os delete user <user>


keystone user-get <user-id>

os show user <user>


keystone user-list [<tenant-id>]

os list user [--tenant <tenant>] [--long]


keystone user-password-update --pass <password> <user-id>

os set user
        [--name <new-user-name>]
        [--password <user-password>]
        [--email <user-email>]
        [--tenant <tenant>]
        [--enable|--disable]
        <user>


user-role

keystone user-role-add --user <user-id> 
                       --role <role-id>
                       [--tenant_id <tenant-id>]

os add role-user
        [--tenant <tenant>]
        <role> <user>


keystone user-role-list [--user <user-id>] 
                   [--tenant_id <tenant-id>]

os list role-user
        [--tenant <tenant>]
        [<user>]


keystone user-role-remove --user <user-id> 
                          --role <role-id>
                          [--tenant_id <tenant-id>]

os remove role-user
        [--tenant <tenant>]
        <role> <user>


<other>

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

##TBD


keystone discover

##TBD


API v3

credential

keystone credential-create 	--user_id <user-id>
                       --type <credential-type>
                       --data <credential-data>
                       [--project_id <project-id>]

os create credential
        [--project <project>]
        <user>
        <type>
        <data>


keystone credential-delete <credential-id>

os delete credential <credential-id>


keystone credential-get <credential-id>

os show credential <credential-id>


keystone credential-list

os list credential [--long]


keystone credential-update
        [--user <user>]
        [--type <type>]
        [--data <data>]
        [--project <project>]
        <credential-id>

os set credential
        [--user <user>]
        [--type <type>]
        [--data <data>]
        [--project <project>]
        <credential-id>


domain

keystone domain-create --name <domain-name>
                       [--description <domain-description>]
                       [--enabled <true|false>]
                       [--private_project_names <true|false>]
                       [--private_user_names <true|false>]

os create domain
        [--description <domain-description>]
        [--enable | --disable]
        [--private_project_names]
        [--private_user_names]
        <domain-name>


keystone domain-delete <domain-id>

os delete domain <domain>


keystone domain-get <domain-id>

os show domain <domain>


keystone domain-list

os list domain [--long]


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 set domain
        [--name <new-domain-name>]
        [--description <new-domain-description>]
        [--private_project_names]
        [--private_user_names]
        [--enable | --disable]
        <domain>


endpoint

keystone endpoint-create --service_id <service-id>
			 --interface <endpoint-interface>
			 --url <endpoint-url>
			 [--region <endpoint-region>]
                         [--enabled <true|false>]

os create endpoint
	 [--region <endpoint-region>]
         [--enabled <true|false>]
	 <service-id> 
	 <endpoint-interface>
	 <endpoint-url>


keystone endpoint-delete <endpoint-id>

os delete endpoint <endpoint-id>


keystone endpoint-list

os list endpoint [--long]


keystone enpoint-get <endpoint-id>

os show endpoint <endpoint-id>


keystone endpoint-update --endpoint_id <endpoint-id>
	 [--region <endpoint-region>]
         [--enabled <true|false>]
	 [<service-id>]
	 [<endpoint-interface>]
	 [<endpoint-url>]

os update endpoint
	 [--region <endpoint-region>]
         [--enabled <true|false>]
	 [--service <service-id>]
	 [--interface <endpoint-interface>]
	 [--url <endpoint-url>]
         <endpoint-id>


group

keystone group-create --name <group-name>
                       [--domain_id <domain-id>]
                       [--description <group-description>]

os create group
        [--domain <domain>]
        [--description <group-description>]
        <group-name>


keystone group-delete <group-id>

os delete group <group>


keystone group-get <group-id>

os show group <group>


keystone group-list

os list group [--long]


keystone group-update
        [--name <group_name>]
        [--domain_id <domain-id>]
        [--description <group-description>]
        <group-id>

os set group
        [--name <new-group-name>]
        [--domain <domain>]
        [--description <new-group-description>]
        <group>


policy

keystone policy-create --type <policy-type>
                       --blob <policy-blob>

os create policy
        --type <policy-type>
        --blob <policy-blob>


keystone policy-delete <policy-id>

os delete policy <policy-id>


keystone policy-get <policy-id>

os show policy <policy-id>


keystone policy-list

os list policy [--long]


keystone policy-update
        [--type <policy-type>]
        [--blob <policy-blob>]
        <policy-id>

os set policy
        [--type <policy-type>]
        [--blob <policy-blob>]
        <policy-id>


project

keystone project-create --name <project-name>
                       [--domain_id <project-domain-id>]
                       [--description <project-description>]
                       [--enabled <true|false>]

os create project
        [--domain <project-domain>]
        [--description <project-description>]
        [--enable | --disable]
        <project-name>


keystone project-delete <project-id>

os delete project <project>


keystone project-get <project-id>

os show project <project>


keystone project-list

os list project [--long]


keystone project-update
        [--name <project_name>]
        [--domain_id <project-domain-id>]
        [--description <project-description>]
        [--enabled <true|false>]
        <project-id>

os set project
        [--name <new-project-name>]
        [--domain <project-domain>]
        [--description <new-project-description>]
        [--enable | --disable]
        <project>


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

keystone user-create --name <user-name> 
                     [--domain_id <domain-id>]
                     [--default_project_id <project-id>]
                     [--description <description>]
                     [--enabled <true|false>]
                     [--password <password>] 

os create user 
        [--domain_id <domain-id>]
        [--default_project_id <project-id>]
        [--description <description>]
        [--enabled <true|false>]
        [--password <password>] 
        <user-name>


keystone user-delete <user-id>

os delete user <user>


keystone user-get <user-id>

os show user <user>


keystone user-list 

os list user [--long]


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 set user
        [--domain_id <domain-id>]
        [--default_project_id <project-id>]
        [--description <description>]
        [--enabled <true|false>]
        [--password <password>] 
        [--user_name <user-name>]
        <user>


Compute

Nova Option Environment Variable OSC 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)

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

nova flavor-create [--ephemeral <ephemeral>] 
                   [--swap <swap>]
                   [--rxtx-factor <factor>]
                   <name> <id> <ram> <disk> <vcpus>

os create flavor
          [--disk <size-gb>]
          [--ephemeral-disk <size-gb>]
          [--id <id>]
          [--ram <size-mb>]
          [--swap <size-mb>]
          [--rxtx-factor <factor>]
          [--vcpus <num-cpu>]
          <name>


nova flavor-delete <id>

os delete flavor <flavor>


nova flavor-list

os list flavor


os show flavor <flavor>


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

nova host-action [--action <action>] <hostname>

os ?? host ...


nova host-update [--status <status>] 
                 [--maintenance <maintenance_mode>]
                 <hostname>

os set host ...


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

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 create server
          --image <image>
          --flavor <flavor>
          [--security-group <security-group-list> [...] ]
          [--key-name <key-name>]
          [--meta-data <key=value> [--meta-data <key=value] [...] ]
          [--file <dest-filename=source-filename> [--file <dest-filename=source-filename>] [...] ]
          [--user-data <user-data>]
          [--reservation-id <uuid>]
          [--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>


nova delete <server>

os delete server <server>


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 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]


nova lock <server>

os lock server <server>


nova live-migration [--block_migrate] 
                    [--disk_over_commit]
                    <server> <host>
nova migrate [--poll] <server>

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


nova pause <server>

os pause server <server>


nova reboot [--hard] [--poll] <server>

os reboot server [--hard|--soft] [--wait] <server>


nova rebuild [--rebuild_password <rebuild_password>] 
             [--poll]
             <server> <image>

os rebuild server 
          --image <image>
          [--rebuild-password <rebuild-password>] 
          [--wait]
          <server>


nova rename <server> <name>

os rename server <server> <new-name>


nova rescue <server>

os rescue server <server>


nova resize [--poll] <server> <flavor>

os resize server --flavor <flavor> [--wait] <server>


nova resize-confirm <server>

os resize server --confirm <server>


nova resume <server>

os resume server <server>


nova resize-revert <server>

os resize server --revert <server>


nova meta <server> <action> <key=value> [<key=value> ...]

os set server
          --meta-data <key=value>
          [--meta-data <key=value>] ...
          <server>
os unset server
          --meta-data <key>
          [--meta-data <key>] ...
          <server>


nova root-password <server>

os set server --root-password <server>


nova show <server>

os show server <server>


nova ssh [--port PORT] [--private] [--ipv6] [--login <login>] <server>

os ssh server
          [--port PORT]
          [--private]
          [--ipv6]
          [--login <login>]
          <server>


nova suspend <server>

os suspend server <server>


nova unlock <server>

os unlock server <server>


nova unpause <server>

os unpause server <server>


nova unrescue <server>

os unrescue server <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

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 create volume 
	[--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>


cinder delete <volume-id>

os delete volume <volume-id>


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

os list volume 
	--long


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

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


cinder show <volume-id>

os show volume <volume-id>


cinder force-delete <volume-id>

os tbd


cinder metadata
	<volume-id>
	<action>
	<key=value>

os tbd


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."