Jump to: navigation, search

UnifiedCLI/Mapping

< UnifiedCLI
Revision as of 00:53, 2 February 2013 by Dtroyer (talk | contribs) (Begin adjusting headers, alphabetizing command groups)

<<TableOfContents()>>

OSCLI

Part of the UnifiedCLI proposal

[Note that the use of the word object here is its generic meaning and not the computer science meaning. This should be changed for consisten usage and to reduce confusion.]

Command Structure

Verbs

The verbs used by the various OpenStack default 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

These options are common to all OpenStack clients.


#!csv ,
Option, Environment Variable, , OSCLI 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,


Command Mapping Summary

This is an example mapping of the existing commands from Keystone, Nova and Glance to the <verb> <object> form for the new 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:


#!csv ,
,
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


Keystone

#!csv ,
Keystone Option, Environment Variable, , OSCLI 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

#!bash
keystone token-get [--wrap <integer>]

os show token [--width <pki-token-display-width>]


catalog

#!bash
keystone catalog [--service <service-type>]

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


ec2-credentials

#!bash
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?


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

os delete ec2-credentials <access-key>

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


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

os show ec2-credentials <access-key>

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


#!bash
keystone ec2-credentials-list [--user <user-id>]

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


endpoint

#!bash
keystone endpoint-create [--region <endpoint-region>]
                         [--service_id <service-id>]
                         [--publicurl <public-url>]
                         [--adminurl <admin-url>]
                         [--internalurl <internal-url>]

os create endpoint
        [--region <endpoint-region>]
        [--publicurl <public-url>]
        [--adminurl <admin-url>]
        [--internalurl <internal-url>]
        <service>


#!bash
keystone endpoint-delete <endpoint-id>

os delete endpoint <endpoint-id>


#!bash
keystone endpoint-get --service <service-type>
                      [--endpoint_type <endpoint-type>]
                      [--attr <service-attribute>] 
                      [--value <value>]

os show endpoint
        [--type <endpoint-type>]
        [--attr <endpoint-attribute>] 
        [--value <endpoint-value>]
        <service>

os show endpoint
        [--all]
        <service>


#!bash
keystone endpoint-list

os list endpoint [--long]


role

#!bash
keystone role-create --name <role-name>

os create role <role-name>


#!bash
keystone role-delete <role-id>

os delete role <role>


#!bash
keystone role-get <role-id>

os show role <role>


#!bash
keystone role-list

os list role


service

#!bash
keystone service-create --name <name> 
                        --type <type>
                        [--description <service-description>]

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


#!bash
keystone service-delete <service-id>

os delete service <service>


#!bash
keystone service-get <service-id>

os show service <service>


#!bash
keystone service-list

os list service [--long]


tenant

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

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


#!bash
keystone tenant-delete <tenant-id>

os delete tenant <tenant>


#!bash
keystone tenant-get <tenant-id>

os show tenant <tenant>


#!bash
keystone tenant-list

os list tenant [--long]


#!bash
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

#!bash
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>


#!bash
keystone user-delete <user-id>

os delete user <user>


#!bash
keystone user-get <user-id>

os show user <user>


#!bash
keystone user-list [<tenant-id>]

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


#!bash
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

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

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


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

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


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

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


<other>

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

##TBD


#!bash
keystone discover

##TBD


API v3

credential

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

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


#!bash
keystone credential-delete <credential-id>

os delete credential <credential-id>


#!bash
keystone credential-get <credential-id>

os show credential <credential-id>


#!bash
keystone credential-list

os list credential [--long]


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

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


domain

#!bash
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>


#!bash
keystone domain-delete <domain-id>

os delete domain <domain>


#!bash
keystone domain-get <domain-id>

os show domain <domain>


#!bash
keystone domain-list

os list domain [--long]


#!bash
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

#!bash
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>
        


#!bash
keystone endpoint-delete <endpoint-id>

os delete endpoint <endpoint-id>


#!bash
keystone endpoint-list

os list endpoint [--long]


#!bash
keystone enpoint-get <endpoint-id>

os show endpoint <endpoint-id>


#!bash
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

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

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


#!bash
keystone group-delete <group-id>

os delete group <group>


#!bash
keystone group-get <group-id>

os show group <group>


#!bash
keystone group-list

os list group [--long]


#!bash
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

#!bash
keystone policy-create --type <policy-type>
                       --blob <policy-blob>

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


#!bash
keystone policy-delete <policy-id>

os delete policy <policy-id>


#!bash
keystone policy-get <policy-id>

os show policy <policy-id>


#!bash
keystone policy-list

os list policy [--long]


#!bash
keystone policy-update
        [--type <policy-type>]
        [--blob <policy-blob>]
        <policy-id>

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


project

#!bash
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>


#!bash
keystone project-delete <project-id>

os delete project <project>


#!bash
keystone project-get <project-id>

os show project <project>


#!bash
keystone project-list

os list project [--long]


#!bash
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

#!bash
keystone role-create --name <role-name>

os create role <role-name>


#!bash
keystone role-delete <role-id>

os delete role <role>


#!bash
keystone role-get <role-id>

os show role <role>


#!bash
keystone role-list

os list role


#!bash
keystone role-update <role-id>

os update role <role>


service

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

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


#!bash
keystone service-delete <service-id>

os delete service <service>


#!bash
keystone service-get <service-id>

os show service <service>


#!bash
keystone service-list

os list service [--long]


#!bash
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

#!bash
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>


#!bash
keystone user-delete <user-id>

os delete user <user>


#!bash
keystone user-get <user-id>

os show user <user>


#!bash
keystone user-list 

os list user [--long]


#!bash
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>


Nova

#!csv ,
Nova Option, Environment Variable, , OSCLI 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 v1.1

aggregate

#!bash
nova aggregate-create <name> <availability_zone>

os create aggregate ...


#!bash
nova aggregate-delete <id>

os delete aggregate ...


#!bash
nova aggregate-details <id>

os show aggregate ...


#!bash
nova aggregate-list

os list aggregate


#!bash
nova aggregate-update <id> <name> [<availability_zone>]

os set aggregate ...


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

os set aggregate --metadata ...


aggregate-host

#!bash
nova aggregate-add-host <id> <host>

os add aggregate-host ...


#!bash
nova aggregate-remove-host <id> <host>

os remove aggregate-host ...


bash-completion

#!bash
nova bash-completion

os show bash-completion


cloudpipe

#!bash
nova cloudpipe-create <project>

os create cloudpipe ...


#!bash
nova cloudpipe-list

os list cloudpipe


console

#!bash
nova console-log [--length <length>] <server>

os show console ...


#!bash
nova get-vnc-console <server> <console_type>

os show console [--vnc] ...


credentials

#!bash
nova credentials

os show credentials


diagnostics

#!bash
nova diagnostics <server>

os show diagnostics ...


dns

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

os create dns ...


#!bash
nova dns-delete <domain> <name>

os delete dns ...


#!bash
nova dns-list [--ip <ip>] [--name <name>] <domain>

os list dns ...


dns-domain

#!bash
nova dns-create-private-domain [--availability_zone <availability_zone>]
                               <domain>

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


dns-public-domain

#!bash
nova dns-create-public-domain [--project <project>] <domain>

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


#!bash
nova dns-delete-domain <domain>

os delete dns-domain ...


#!bash
nova dns-domains

os list dns-domains


endpoints

#!bash
nova endpoints

os list endpoints

# does this overlap with keystone?


fixed-ip

#!bash
nova add-fixed-ip <server> <network_id>

os add fixed-ip ...


#!bash
nova remove-fixed-ip <server> <address>

os remove fixed-ip ...


flavor

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

os create flavor ...


#!bash
nova flavor-delete <id>

os delete flavor ...


#!bash
nova flavor-list

os list flavor


floating-ip

#!bash
nova add-floating-ip <server> <address>

os add floating-ip ...


#!bash
nova floating-ip-create [<floating_ip_pool>]

os create floating-ip ...


#!bash
nova floating-ip-delete <address>

os delete floating-ip


#!bash
nova floating-ip-list

os list floating-ip


#!bash
nova remove-floating-ip <server> <address>

os remove floating-ip ...


floating-ip-pool

#!bash
nova floating-ip-pool-list

os list floating-ip-pool


host

#!bash
nova host-action [--action <action>] <hostname>

os ?? host ...


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

os set host ...


image

#!bash
nova image-create [--poll] <server> <name>

os create image ...


#!bash
nova image-delete <image>

os delete image ...


#!bash
nova image-list

os list image


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

os set image ...


#!bash
nova image-show <image>

os show image ...


keypair

#!bash
nova keypair-add [--pub_key <pub_key>] <name>

os create keypair ...


#!bash
nova keypair-delete <name>

os delete keypair


#!bash
nova keypair-list

os list keypair


limits

#!bash
nova absolute-limits

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


quota

#!bash
nova quota-defaults <tenant_id>
nova quota-show <tenant_id>

os show quota <tenant> [--defaults]


#!bash
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

#!bash
nova quota-class-show <class>

os show quota-class ...


#!bash
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

#!bash
nova rate-limits

os show rate-limits


resource

#!bash
nova describe-resource <hostname>

os show resource ...


secgroup

#!bash
nova secgroup-create <name> <description>

os create secgroup ...


#!bash
nova secgroup-delete <secgroup>

os delete secgroup ...


#!bash
nova secgroup-list

os list secgroup


secgroup-group-rule

#!bash
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


#!bash
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

#!bash
nova secgroup-add-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr>

os create secgroup-rule


#!bash
nova secgroup-delete-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr>

os delete secgroup-rule


#!bash
nova secgroup-list-rules <secgroup>

os list secgroup-rule ...


server

#!bash
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>


#!bash
nova delete <server>

os delete server <server>


#!bash
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]


#!bash
nova lock <server>

os lock server <server>


#!bash
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>


#!bash
nova pause <server>

os pause server <server>


#!bash
nova reboot [--hard] [--poll] <server>

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


#!bash
nova rebuild [--rebuild_password <rebuild_password>] 
             [--poll]
             <server> <image>

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


#!bash
nova rename <server> <name>

os rename server <server> <new-name>


#!bash
nova rescue <server>

os rescue server <server>


#!bash
nova resize [--poll] <server> <flavor>

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


#!bash
nova resize-confirm <server>

os resize server --confirm <server>


#!bash
nova resume <server>

os resume server <server>


#!bash
nova resize-revert <server>

os resize server --revert <server>


#!bash
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>


#!bash
nova root-password <server>

os set server --root-password <server>


#!bash
nova show <server>

os show server <server>


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

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


#!bash
nova suspend <server>

os suspend server <server>


#!bash
nova unlock <server>

os unlock server <server>


#!bash
nova unpause <server>

os unpause server <server>


#!bash
nova unrescue <server>

os unrescue server <server>


usage

#!bash
nova usage-list [--start <start>] [--end <end>]

os list usage ...


volume

#!bash
nova volume-attach <server> <volume> <device>

os attach volume ...


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

os create volume ...


#!bash
nova volume-delete <volume>

os delete volume ...


#!bash
nova volume-detach <server> <volume>

os detach volume ...


#!bash
nova nova volume-list

os list volume


#!bash
nova volume-show <volume>

os show volume ...


volume-snapshot

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

os create volume-snapshot ...


#!bash
nova volume-snapshot-delete <snapshot_id>

os delete volume-snapshot ...


#!bash
nova volume-snapshot-list

os list volume-snapshot


#!bash
nova volume-snapshot-show <snapshot>

os show volume-snapshot


volume-type

#!bash
nova volume-type-create <name>

os create volume-type ...


#!bash
nova volume-type-delete <id>

os delete volume-type ...


#!bash
nova volume-type-list

os list volume-type


x509-cert

#!bash
nova x509-create-cert [<private_key_file>] [<x509_cert>]

os create x509-cert ...


x509-root-cert

#!bash
nova x509-get-root-cert [<filename>]

os show x509-root-cert ...


Glance

#!csv ,
Nova Option, Environment Variable, , OSCLI 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

image

#!bash
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 ...


#!bash
glance image-delete <IMAGE_ID>

os delete image ...


#!bash
glance image-list

os list image ...


#!bash
glance image-show <IMAGE_ID>

os show image ...


#!bash
glance member-images [options] <MEMBER>

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


#!bash
glance show [options] <ID>

os show image ...


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

os set image ...


image-member

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

os create image-member ...


#!bash
glance member-delete <IMAGE_ID> <TENANT_ID>

os list image-member <image> [options]


#!bash
glance member-delete [options] <ID> <MEMBER>

os delete image-member ...


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

os list image-member ...


Quantum

quantum

#!csv ,
Command-line Option,Environment Variable
-H HOST|--host=HOST
-p PORT|--port=PORT
-s|--ssl
-v|--verbose
-f LOGFILE|--logfile=LOGFILE
-t TOKEN|--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

#!bash
plug_iface <tenant-id> <net-id> <port-id> <iface-id>

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


#!bash
show_iface <tenant-id> <net-id> <port-id>

show interface <tenant> <network> <port>


#!bash
unplug_iface <tenant-id> <net-id> <port-id>

remove interface <tenant> <network> <port>


net

#!bash
create_net <tenant-id> <net-name>

create network <tenant> <network-name>


#!bash
delete_net <tenant-id> <net-id>

delete <tenant> <network>


#!bash
list_nets <tenant-id>

list network <tenant>


#!bash
list_nets_detail <tenant-id>

list network --detail <tenant>


#!bash
show_net <tenant-id> <net-id>

show network <tenant> <network>


#!bash
show_net_detail <tenant-id> <net-id>

show network --detail <tenant> <network>


#!bash
update_net <tenant-id> <net-id> <new-name>

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


port

#!bash
create_port <tenant-id> <net-id>

create port <tenant> <network>


#!bash
delete_port <tenant-id> <net-id> <port-id>

delete port <tenant> <network> <port>


#!bash
list_ports <tenant-id> <net-id>

list port <tenant> <network>


#!bash
list_ports_detail <tenant-id> <net-id>

list port --detail <tenant> <network>


#!bash
show_port <tenant-id> <net-id> <port-id>

show port <tenant> <network> <port>


#!bash
show_port_detail <tenant-id> <net-id> <port-id>

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


#!bash
update_port <tenant-id> <net-id> <port-id> <params>

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


Cinder

API v1

type

#!bash
cinder type-create <type-name>

os create type <type-name>


#!bash
cinder type-delete <type-id>

os delete type <type>


#!bash
cinder type-list

os list type


#!bash
cinder extra-specs-list

os tbd


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

os tbd


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