Jump to: navigation, search

Difference between revisions of "UnifiedCLI/Mapping"

(tenant)
(Redirected page to OpenStackClient/Commands)
 
(52 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
#REDIRECT [[OpenStackClient/Commands]]
  
'''''Note: The command format change was committed on 13May2013.  This page has not been completely updated to reflect that yet.'''''
+
'''''Note: this page is being deprecated in favor of a new [[OpenStackClient/Commands|OpenStackClient Commands]] page with the correct name.'''''
  
 
__TOC__
 
__TOC__
 
'''''Note: The command format change was committed on 13May2013.  This page has not been completely updated to reflect that yet.'''''
 
  
 
= [[OpenStackClient]] Commands =
 
= [[OpenStackClient]] Commands =
Line 18: Line 17:
 
* The top level command name is <code>openstack</code>
 
* The top level command name is <code>openstack</code>
 
* Sub-commands take the form:
 
* Sub-commands take the form:
  <code>openstack [<global-options>] <object> <verb> [<command-local-arguments>]</code>
+
  <code>openstack [<global-options>] <object> <verb> [<second-object>] [<command-local-arguments>]</code>
 
'''''Note: The command format change was committed on 13May2013.  This is the new format.'''''
 
'''''Note: The command format change was committed on 13May2013.  This is the new format.'''''
 +
  
 
== Command Arguments ==
 
== Command Arguments ==
Line 26: Line 26:
 
* Authentication options conform to [[/Authentication| a revised version of]] the original [[CLIAuth]]
 
* Authentication options conform to [[/Authentication| a revised version of]] the original [[CLIAuth]]
 
* Global arguments generally have a corresponding environment variable that may also be used to set the value.  If both are present, the command-line option takes priority.  The environment variable names can be derived from the option by dropping the leading '--', converting all embedded dashes ('-') to underscores ('_'), and converting to upper case.
 
* Global arguments generally have a corresponding environment variable that may also be used to set the value.  If both are present, the command-line option takes priority.  The environment variable names can be derived from the option by dropping the leading '--', converting all embedded dashes ('-') to underscores ('_'), and converting to upper case.
* Positional arguments trail command options. Some commands require two objects be acted upon, both objects will appear in the command object and both positional arguments appear in the same order as in the command object.
+
* Positional arguments trail command options.  
 +
* Some commands require two objects be acted upon, both objects appear in the command and if both are positional arguments they appear in the same order as in the command.  In words it can be expressed as "(given) object1 add object2 (to it)"
 +
  * <object-1> <verb> <object-2>
 +
    * group add user
 +
    * access token list  (here, 'access token' is a two-word single object)
 +
    * user list role (needs more thinking)
 +
 
 +
== Other ==
 +
 
 +
* Arguments that normally require an ID in the OS-API may also use the name or other short identifier where reasonable to support
 +
* Optional machine-parsable format is available with list and show commands.  List has an option for CSV-formatted output (see --format, --quote options for a list command) while show has an option for shell-assignment formatted output (see --format option for a show command).
  
 
== Verbs ==
 
== Verbs ==
Line 33: Line 43:
  
 
* <code>authorize</code> - authorize a token (used in OAuth)
 
* <code>authorize</code> - authorize a token (used in OAuth)
* <code><nowiki>add</nowiki></code> (<code><nowiki>remove</nowiki></code>) - 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
+
* <code>add</code> (<code>remove</code>) - add some object to a container object; the command is built in the order of "container add object" (<container> <object>), the positional arguments appear in the same order
* <code><nowiki>attach</nowiki></code> (<code><nowiki>detach</nowiki></code>) - connect two objects (is this different from add/remove?)
+
* <code>attach</code> (<code>detach</code>) - connect two objects (is this different from add/remove? not really, use the same argument order as <code>add</code>)
 
* <code><nowiki>create</nowiki></code> (<code><nowiki>delete</nowiki></code>) - create a new occurrance of the specified object
 
* <code><nowiki>create</nowiki></code> (<code><nowiki>delete</nowiki></code>) - create a new occurrance of the specified object
 
* <code><nowiki>delete</nowiki></code> (<code><nowiki>create</nowiki></code>) - delete a specific occurrance of the specified object
 
* <code><nowiki>delete</nowiki></code> (<code><nowiki>create</nowiki></code>) - delete a specific occurrance of the specified object
Line 57: Line 67:
 
* <code><nowiki>unrescue</nowiki></code> (<code><nowiki>rescue</nowiki></code>) - return a server to normal boot mode
 
* <code><nowiki>unrescue</nowiki></code> (<code><nowiki>rescue</nowiki></code>) - return a server to normal boot mode
 
* <code><nowiki>unset</nowiki></code> (<code><nowiki>set</nowiki></code>) - remove an attribute of the object
 
* <code><nowiki>unset</nowiki></code> (<code><nowiki>set</nowiki></code>) - remove an attribute of the object
 +
  
 
== Objects ==
 
== Objects ==
 +
 +
'''''Note: these need a review to sync up with the revised object names without dashes ('-') in them.'''''
  
 
* <code>access-token</code> - [[#Identity|Identity]] - OAuth [[#access-token|access-token]]
 
* <code>access-token</code> - [[#Identity|Identity]] - OAuth [[#access-token|access-token]]
Line 103: Line 116:
 
* <code>volume</code> - [[#Volume|Volume]] - [[#volume|volume]]
 
* <code>volume</code> - [[#Volume|Volume]] - [[#volume|volume]]
 
* <code>volume-type</code> - [[#Volume|Volume]] - [[#volume-type|volume-type]]
 
* <code>volume-type</code> - [[#Volume|Volume]] - [[#volume-type|volume-type]]
 +
  
 
== Global Options ==
 
== Global Options ==
  
 
The common global options from the default [[OpenStack]] clients have been mapped to the set of global options below.
 
The common global options from the default [[OpenStack]] clients have been mapped to the set of global options below.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 143: Line 156:
 
| --os-use-keyring ||  || ||  ||
 
| --os-use-keyring ||  || ||  ||
 
|}
 
|}
 +
  
 
== Common Options ==
 
== Common Options ==
Line 158: Line 172:
 
| --disable || 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 =
 
= Command Mapping Summary =
Line 176: Line 191:
  
  
== Identity ==
+
== Cross API ==
  
 +
Object names that appear in multiple APIs, like quota, are handled by putting their command handler classes in openstackclient.common.  If the number of these becomes large they should be moved into a subdirectory.
  
{| class="wikitable"
+
==== credentials ====
|-
 
! 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> ||
 
|-
 
|}
 
  
 
+
''[consider rolling the ec2 creds into this too]''
=== API v2.0 ===
 
 
 
==== catalog ====
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 212: Line 205:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os catalog show
+
os credentials create
     [--service <service>]
+
    --x509
 +
     [<private-key-file>]
 +
    [<certificate-file>]
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone catalog
+
nova x509-create-cert
     [--service <service-type>]
+
     [<pk-file>]
 +
    [<x509-cert>]
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os credentials show
 +
    [--token]
 +
    [--user]
 +
    [--x509 [--root]]
 +
</source>
 +
|| no
 +
|| ||
 +
<source lang="bash">
 +
nova credentials
 +
    [--wrap <integer>]
 +
 
 +
nova x509-get-root-cert
 +
    [<filename>]
 
</source>
 
</source>
 
|}
 
|}
  
==== ec2-credentials ====
+
==== limits ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 231: Line 244:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os ec2-credentials create
+
os limits show
     [--project <project>]
+
     --absolute [--reserved] | --rate
    [--user <user>]
 
 
 
 
</source>
 
</source>
|| in progress
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone ec2-credentials-create
+
nova absolute-limits
     [--user <user-id>]  
+
     [--reserved]
    [--tenant_id <tenant-id>]
+
 
 +
nova rate-limits
 +
 
 +
cinder absolute-limits
 +
 
 +
cinder rate-limits
 
</source>
 
</source>
 +
|}
 +
 +
==== quota ====
 +
 +
{| class="wikitable"
 
|-
 
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 +
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os ec2-credentials delete
+
os quota set
     [--user <user>]
+
    # Compute settings
     <access-key>
+
    [--cores <num-cores>]
 +
    [--fixed-ips <num-fixed-ips>]
 +
    [--floating-ips <num-floating-ips>]
 +
     [--injected-file-size <injected-file-bytes>]
 +
     [--injected-files <num-injected-files>]
 +
    [--instances <num-instances>]
 +
    [--key-pairs <num-key-pairs>]
 +
    [--properties <num-properties>]
 +
    [--ram <ram-mb>]
 +
 
 +
    # Volume settings
 +
    [--gigabytes <new-gigabytes>]
 +
    [--snapshots <new-snapshots>]
 +
    [--volumes <new-volumes>]
 +
 
 +
    <project>
 
</source>
 
</source>
|| in progress
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone ec2-credentials-delete
+
nova quota-update
     [--user <user-id>]  
+
    [--instances <instances>]
     --access <access-key>
+
    [--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>
 +
 
 +
cinder quota-update
 +
    [--volumes <volumes>]
 +
     [--snapshots <snapshots>]
 +
    [--gigabytes <gigabytes>]
 +
    <tenant_id>
 
</source>
 
</source>
|-
+
|-  
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os ec2-credentials list
+
os quota set
     [--user <user>]
+
    --class
 +
    # Compute settings
 +
    [--cores <num-cores>]
 +
    [--fixed-ips <num-fixed-ips>]
 +
    [--floating-ips <num-floating-ips>]
 +
    [--injected-file-size <injected-file-bytes>]
 +
    [--injected-files <num-injected-files>]
 +
    [--instances <num-instances>]
 +
    [--key-pairs <num-key-pairs>]
 +
    [--properties <num-properties>]
 +
    [--ram <ram-mb>]
 +
 
 +
    # Volume settings
 +
     [--gigabytes <new-gigabytes>]
 +
    [--snapshots <new-snapshots>]
 +
    [--volumes <new-volumes>]
 +
 
 +
    <class>
 
</source>
 
</source>
|| in progress
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone ec2-credentials-list
+
nova quota-class-update
     [--user <user-id>]
+
     [--instances <instances>]
</source>
+
    [--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>
 +
 
 +
cinder quota-class-update
 +
    [--volumes <volumes>]
 +
    [--snapshots <snapshots>]
 +
    [--gigabytes <gigabytes>]
 +
    <tenant_id>
 +
</source>
 +
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
os ec2-credentials show
+
os quota show
     [--user <user>]
+
     [--default]
     <access-key>
+
     <project>
 
</source>
 
</source>
|| in progress
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone ec2-credentials-get
+
nova quota-show
     [--user <user-id>]  
+
     [--tenant <tenant-id>]
    --access <access-key>
+
 
</source>
+
cinder quota-show
|}
+
    <tenant_id>
  
==== endpoint ====
+
nova quota-defaults
 +
    <tenant_id>
  
{| class="wikitable"
+
cinder quota-defaults
|-
+
    <tenant_id>
! OSC Command !! Implemented !! !! Keystone command
+
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint create
+
os quota show
     --publicurl <public-url>
+
     --class
    [--adminurl <admin-url>]
+
     <class>
    [--internalurl <internal-url>]
 
    [--region <endpoint-region>]
 
     <service>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-create
+
nova quota-class-show
    [--region <endpoint-region>]
+
     <class>
    [--service_id <service-id>]
+
 
    [--publicurl <public-url>]
+
cinder quota-class-show
    [--adminurl <admin-url>]
+
     <class>
     [--internalurl <internal-url>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint delete
 
    <endpoint-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-delete
 
     <endpoint-id>
 
 
</source>
 
</source>
 +
|}
 +
 +
== Identity ==
 +
 +
{| class="wikitable"
 +
|-
 +
! 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 ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint list
+
os catalog show
     [--long]
+
     [--service <service>]
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-list
+
keystone catalog
 +
    [--service <service-type>]
 
</source>
 
</source>
 +
|}
 +
 +
==== ec2 credentials ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint show
+
os ec2 credentials create
     [--type <endpoint-type>]
+
     [--project <project>]
     [--attr <endpoint-attribute>]
+
     [--user <user>]
    [--value <endpoint-value>]
 
    [--all]
 
    <service-type>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-get
+
keystone ec2-credentials-create
    --service <service-type>
+
     [--user <user-id>]  
     [--endpoint_type <endpoint-type>]
+
     [--tenant_id <tenant-id>]
     [--attr <service-attribute>]
 
    [--value <value>]
 
 
</source>
 
</source>
|}
 
 
==== role ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role create
+
os ec2 credentials delete
     <role-name>
+
    [--user <user>]
 +
     <access-key>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone role-create --name
+
keystone ec2-credentials-delete
     <role-name>
+
    [--user <user-id>]
 +
     --access <access-key>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role delete
+
os ec2 credentials list
     <role>
+
     [--user <user>]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone role-delete
+
keystone ec2-credentials-list
     <role-id>
+
     [--user <user-id>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role list
+
os ec2 credentials show
 +
    [--user <user>]
 +
    <access-key>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone role-list
+
keystone ec2-credentials-get
</source>
+
    [--user <user-id>]
|-
+
     --access <access-key>
|
 
<source lang="bash">
 
os role show
 
     <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone role-get
 
    <role-id>
 
 
</source>
 
</source>
 
|}
 
|}
  
==== service ====
+
==== endpoint ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 415: Line 507:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service create
+
os endpoint create
     [--type <service-type>]
+
    --publicurl <public-url>
     [--description <service-description>]
+
    [--adminurl <admin-url>]
     <service-name>
+
     [--internalurl <internal-url>]
 +
     [--region <endpoint-region>]
 +
     <service>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-create
+
keystone endpoint-create
     --name <name>  
+
    [--region <endpoint-region>]
     --type <type>
+
    [--service_id <service-id>]
     [--description <service-description>]
+
     [--publicurl <public-url>]
 +
     [--adminurl <admin-url>]
 +
     [--internalurl <internal-url>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service delete
+
os endpoint delete
     <service>
+
     <endpoint-id>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-delete
+
keystone endpoint-delete
     <service-id>
+
     <endpoint-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service list
+
os endpoint list
 
     [--long]
 
     [--long]
 
</source>
 
</source>
Line 449: Line 545:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-list
+
keystone endpoint-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service show
+
os endpoint show
     <service>
+
    [--type <endpoint-type>]
 +
    [--attr <endpoint-attribute>]
 +
    [--value <endpoint-value>]
 +
    [--all]
 +
     <service-type>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-get
+
keystone endpoint-get
     <service-id>
+
    --service <service-type>
 +
    [--endpoint_type <endpoint-type>]
 +
     [--attr <service-attribute>]
 +
    [--value <value>]
 
</source>
 
</source>
 
|}
 
|}
  
==== tenant ====
+
==== role ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 473: Line 576:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os tenant create
+
os role create
     [--description <description>]
+
     <role-name>
    [--enable | --disable]
 
    <tenant-name>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone tenant-create
+
keystone role-create --name
    --name <tenant-name>
+
     <role-name>
     [--description <tenant-description>]
 
    [--enabled <true|false>]
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os tenant delete
+
os role delete
     <tenant>
+
     <role>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone tenant-delete
+
keystone role-delete
     <tenant>
+
     <role-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os tenant list
+
os role list
    [--long]
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone tenant-list
+
keystone role-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os tenant set
+
os role show
     [--name <new-tenant-name>]
+
     <role>
    [--description <new-tenant-description>]
 
    [--enable | --disable]
 
    <tenant>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone tenant-update
+
keystone role-get
    [--name <tenant_name>]
+
     <role-id>
    [--description <tenant-description>]
 
    [--enabled <true|false>]
 
     <tenant-id>
 
 
</source>
 
</source>
 +
|}
 +
 +
==== service ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os tenant show
+
os service create
     <tenant>
+
     [--type <service-type>]
 +
    [--description <service-description>]
 +
    <service-name>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone tenant-get
+
keystone service-create
     <tenant-id>
+
     --name <name>
 +
    --type <type>
 +
    [--description <service-description>]
 
</source>
 
</source>
|}
 
 
==== token ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os token show
+
os service delete
     [--width <token-display-width>]
+
     <service>
 
</source>
 
</source>
|| ??
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone token-get [--wrap <integer>]
+
keystone service-delete
 +
    <service-id>
 
</source>
 
</source>
|}
 
 
==== user ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user create
+
os service list
     [--password <user-password>]
+
     [--long]
    [--email <user-email>]
 
    [--tenant <tenant>]
 
    [--enable | --disable]
 
    <user-name>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-create
+
keystone service-list
    --name <user-name>
 
    [--tenant_id <tenant-id>]
 
    [--pass <pass>]
 
    [--email <email>]
 
    [--enabled <true|false>]
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user delete
+
os service show
     <user>
+
    [--catalog]
 +
     <service>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-delete
+
keystone service-get
     <user-id>
+
     <service-id>
 
</source>
 
</source>
 +
|}
 +
 +
==== tenant ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user list
+
os tenant create
     [--tenant <tenant>]
+
     [--description <description>]
     [--long]
+
     [--enable | --disable]
 +
    <tenant-name>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-list
+
keystone tenant-create
     [<tenant-id>]
+
    --name <tenant-name>
 +
     [--description <tenant-description>]
 +
    [--enabled <true|false>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user set
+
os tenant delete
    [--name <new-user-name>]
+
     <tenant>
    [--password <user-password>]
+
</source>
    [--email <user-email>]
 
     [--tenant <tenant>]
 
    [--enable|--disable]
 
    <user>
 
</source>
 
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-password-update
+
keystone tenant-delete
     --pass <password>
+
     <tenant>
    <user-id>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user show
+
os tenant list
     <user>
+
     [--long]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-get
+
keystone tenant-list
    <user-id>
 
 
</source>
 
</source>
|}
 
 
==== user role ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user role add
+
os tenant set
     [--tenant <tenant>]
+
     [--name <new-tenant-name>]
     <user>
+
     [--description <new-tenant-description>]
     <role>
+
    [--enable | --disable]
 +
     <tenant>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-role-add
+
keystone tenant-update
     --user <user-id>
+
     [--name <tenant_name>]
     --role <role-id>
+
     [--description <tenant-description>]
     [--tenant_id <tenant-id>]
+
     [--enabled <true|false>]
 +
    <tenant-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user role list
+
os tenant show
     [--tenant <tenant>]
+
     <tenant>
    [<user>]
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-role-list
+
keystone tenant-get
    [--user <user-id>]
+
     <tenant-id>
     [--tenant_id <tenant-id>]
 
 
</source>
 
</source>
 +
|}
 +
 +
==== token ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user role remove
+
os token show
     [--tenant <tenant>]
+
     [--width <token-display-width>]
    <user>
 
    <role>
 
 
</source>
 
</source>
|| yes
+
|| ??
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-role-remove
+
keystone token-get [--wrap <integer>]
    --user <user-id>
 
    --role <role-id>
 
    [--tenant_id <tenant-id>]
 
 
</source>
 
</source>
 
|}
 
|}
  
====<other>====
+
==== user ====
  
<source lang="bash">
+
{| class="wikitable"
keystone bootstrap
+
|-
        --pass <password>
 
        [--user-name <user-name>]
 
        [--role-name <role-name>]
 
        [--tenant-name <tenant-name>]
 
 
 
## do not create in openstackclient, since it is in contribute
 
</source>
 
 
 
<source lang="bash">
 
keystone discover
 
 
 
## do not create in openstackclient, obsolete.
 
</source>
 
 
 
=== API v3 ===
 
 
 
==== access token ====
 
 
 
{| class="wikitable"
 
|-
 
 
! OSC Command !! Implemented !! !! Keystone command
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os access token create
+
os user create
     --consumer-key <consumer-key>
+
     [--password <user-password>]
     --consumer-secret <consumer-secret>
+
     [--email <user-email>]
     --request-key <request-key>
+
     [--tenant <tenant>]
     --request-secret <request-secret>
+
     [--enable | --disable]
     --verifier <pin>
+
     <user-name>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
n/a
+
keystone user-create
 +
    --name <user-name>
 +
    [--tenant_id <tenant-id>]
 +
    [--pass <pass>]
 +
    [--email <email>]
 +
    [--enabled <true|false>]
 
</source>
 
</source>
|}
+
|-
 
+
|
==== credential ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
 
<source lang="bash">
 
<source lang="bash">
os credential create
+
os user delete
    [--project <project>]
 
    [--type ec2|cert]
 
 
     <user>
 
     <user>
    <data>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone credential-create
+
keystone user-delete
     --user_id <user-id>
+
     <user-id>
    --type <credential-type>
 
    --data <credential-data>
 
    [--project_id <project-id>]
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os credential delete
+
os user list
     <credential-id>
+
     [--tenant <tenant>]
 +
    [--long]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone credential-delete
+
keystone user-list
     <credential-id>
+
     [<tenant-id>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os credential list
+
os user set
 +
    [--name <new-user-name>]
 +
    [--password <user-password>]
 +
    [--email <user-email>]
 +
    [--tenant <tenant>]
 +
    [--enable|--disable]
 +
    <user>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone credential-list
+
keystone user-password-update
 +
    --pass <password>
 +
    <user-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os credential set
+
os user show
     [--user <user>]
+
     <user>
    [--type ec2|cert]
 
    [--data <data>]
 
    [--project <project>]
 
    <credential-id>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone credential-update
+
keystone user-get
    [--user <user>]
+
     <user-id>
    [--type <type>]
 
    [--data <data>]
 
    [--project <project>]
 
    <credential-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os credential show
 
    <credential-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone credential-get
 
     <credential-id>
 
 
</source>
 
</source>
 
|}
 
|}
  
==== domain ====
+
==== user role ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 823: Line 864:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os domain create
+
os user role add
     [--description <domain-description>]
+
     [--tenant <tenant>]
     [--enable | --disable]
+
     <user>
     <domain-name>
+
     <role>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone domain-create
+
keystone user-role-add
     --name <domain-name>
+
     --user <user-id>
     [--description <domain-description>]
+
     --role <role-id>
     [--enabled <true|false>]
+
     [--tenant_id <tenant-id>]
    [--private_project_names <true|false>]
 
    [--private_user_names <true|false>]
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os domain delete
+
os user role list
     <domain>
+
     [--tenant <tenant>]
 +
    [<user>]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone domain-delete
+
keystone user-role-list
     <domain-id>
+
     [--user <user-id>]
 +
    [--tenant_id <tenant-id>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os domain list
+
os user role remove
 +
    [--tenant <tenant>]
 +
    <user>
 +
    <role>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone domain-list
+
keystone user-role-remove
 +
    --user <user-id>
 +
    --role <role-id>
 +
    [--tenant_id <tenant-id>]
 
</source>
 
</source>
|-
+
|}
|
+
 
 +
==== <other> ====
 +
 
 +
These keystone commands are not planned for re-implementation in OpenStackClient
 +
 
 
<source lang="bash">
 
<source lang="bash">
os domain set
+
keystone bootstrap
    [--name <new-domain-name>]
+
        --pass <password>
    [--description <new-domain-description>]
+
        [--user-name <user-name>]
    [--enable | --disable]
+
        [--role-name <role-name>]
    <domain>
+
        [--tenant-name <tenant-name>]
 
</source>
 
</source>
|| yes
+
 
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
keystone domain-update
+
keystone discover
    [--name <domain_name>]
 
    [--description <domain-description>]
 
    [--enabled <true|false>]
 
    [--private_project_names <true|false>]
 
    [--private_user_names <true|false>]
 
    <domain-id>
 
 
</source>
 
</source>
|-
 
|
 
<source lang="bash">
 
os domain show
 
    <domain>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone domain-get
 
    <domain-id>
 
</source>
 
|}
 
  
==== endpoint ====
+
=== API v3 ===
 +
 
 +
==== credential ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 902: Line 935:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint create
+
os credential create
     [--region <endpoint-region>
+
     [--project <project>]
     [--enable | --disable]
+
     [--type ec2|cert]
     <service>
+
     <user>
    <interface admin|public|internal>
+
     <data>
     <url>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-create  
+
keystone credential-create
     [--region <endpoint-region>
+
     --user_id <user-id>
     [--enable | --disable]
+
     --type <credential-type>
    <service_id>
+
     --data <credential-data>
     <interface admin|public|internal>
+
     [--project_id <project-id>]
     <url>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint delete
+
os credential delete
     <endpoint-id>
+
     <credential-id>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone credential-delete
 +
    <credential-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint list
+
os credential list
    [--long]
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-list
+
keystone credential-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint set
+
os credential set
     [--interface <endpoint-interface>]
+
     [--user <user>]
     [--url <endpoint-url>]
+
     [--type ec2|cert]
     [--service <service-id>]
+
     [--data <data>]
     [--region <endpoint-region>]
+
     [--project <project>]
     [--enable | --disable]
+
     <credential-id>
    <endpoint>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-set
+
keystone credential-update
     [--interface <endpoint-interface>]
+
     [--user <user>]
     [--url <endpoint-url>]
+
     [--type <type>]
     [--service <service-id>]
+
     [--data <data>]
     [--region <endpoint-region>]
+
     [--project <project>]
     [--enable | --disable]
+
     <credential-id>
    <endpoint>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os endpoint show
+
os credential show
     <endpoint>
+
     <credential-id>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone endpoint-get  
+
keystone credential-get
     <endpoint>
+
     <credential-id>
 
</source>
 
</source>
 
|}
 
|}
  
==== group ====
+
==== domain ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 984: Line 1,014:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os group create
+
os domain create
     [--domain <domain>]
+
     [--description <domain-description>]
     [--description <group-description>]
+
     [--enable | --disable]
     <group-name>
+
     <domain-name>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone group-create
+
keystone domain-create
     --name <group-name>
+
     --name <domain-name>
     [--domain_id <domain-id>]
+
     [--description <domain-description>]
     [--description <group-description>]
+
     [--enabled <true|false>]
 +
    [--private_project_names <true|false>]
 +
    [--private_user_names <true|false>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os group delete
+
os domain delete
     <group>
+
     <domain>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone group-delete
+
keystone domain-delete
     <group-id>
+
     <domain-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os group list
+
os domain list
    [--long]
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone group-list
+
keystone domain-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os group set
+
os domain set
     [--name <new-group-name>]
+
     [--name <new-domain-name>]
     [--domain <domain>]
+
     [--description <new-domain-description>]
     [--description <new-group-description>]
+
     [--enable | --disable]
     <group>
+
     <domain>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone group-update
+
keystone domain-update
     [--name <group_name>]
+
     [--name <domain_name>]
     [--domain_id <domain-id>]
+
     [--description <domain-description>]
     [--description <group-description>]
+
     [--enabled <true|false>]
     <group-id>
+
    [--private_project_names <true|false>]
 +
    [--private_user_names <true|false>]
 +
     <domain-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os group show
+
os domain show
     <group>
+
     <domain>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone group-get
+
keystone domain-get
     <group-id>
+
     <domain-id>
 
</source>
 
</source>
 
|}
 
|}
  
==== policy ====
+
==== endpoint ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 1,060: Line 1,093:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os policy create
+
os endpoint create
     [--type <policy-type>]
+
     [--region <endpoint-region>
     --blob-file <blob-file>
+
     [--enable | --disable]
 +
    <service>
 +
    <interface admin|public|internal>
 +
    <url>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone policy-create
+
keystone endpoint-create  
     --type <policy-type>
+
     [--region <endpoint-region>
     --blob <policy-blob>
+
     [--enable | --disable]
 +
    <service_id>
 +
    <interface admin|public|internal>
 +
    <url>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os policy delete
+
os endpoint delete
     <policy-id>
+
     <endpoint-id>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone policy-delete
 
    <policy-id>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os policy list
+
os endpoint list
     [--include-blob]
+
     [--long]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone policy-list
+
keystone endpoint-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os policy set
+
os endpoint set
     [--type <policy-type>]
+
     [--interface <endpoint-interface>]
     [--blob-file<blob-file>]
+
     [--url <endpoint-url>]
     <policy-id>
+
    [--service <service-id>]
 +
     [--region <endpoint-region>]
 +
    [--enable | --disable]
 +
    <endpoint>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone policy-update
+
keystone endpoint-set
     [--type <policy-type>]
+
     [--interface <endpoint-interface>]
     [--blob <policy-blob>]
+
     [--url <endpoint-url>]
     <policy-id>
+
     [--service <service-id>]
 +
    [--region <endpoint-region>]
 +
    [--enable | --disable]
 +
    <endpoint>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os policy show
+
os endpoint show
     <policy-id>
+
     <endpoint>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone policy-get
+
keystone endpoint-get  
     <policy-id>
+
     <endpoint>
 
</source>
 
</source>
 
|}
 
|}
  
==== project ====
+
==== group ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 1,132: Line 1,175:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os project create
+
os group create
     [--domain <project-domain>]
+
     [--domain <domain>]
     [--description <project-description>]
+
     [--description <group-description>]
    [--enable | --disable]
+
     <group-name>
     <project-name>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone project-create
+
keystone group-create
     [--domain_id <domain_id>]
+
     --name <group-name>
     [--description <description>]
+
     [--domain_id <domain-id>]
     [--enable | --disable]
+
     [--description <group-description>]
    <name>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os project delete
+
os group delete
     <project>
+
     <group>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
os project-delete
+
keystone group-delete
     <project_id>
+
     <group-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os project list
+
os group list
 
     [--long]
 
     [--long]
 
</source>
 
</source>
Line 1,168: Line 1,209:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone project-list
+
keystone group-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os project set
+
os group set
     [--name <new-project-name>]
+
     [--name <new-group-name>]
     [--domain <project-domain>]
+
     [--domain <domain>]
     [--description <new-project-description>]
+
     [--description <new-group-description>]
    [--enable | --disable]
+
     <group>
     <project>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone project-set
+
keystone group-update
     [--name <new-project-name>]
+
     [--name <group_name>]
     [--domain <project-domain>]
+
     [--domain_id <domain-id>]
     [--description <new-project-description>]
+
     [--description <group-description>]
     [--enable | --disable]
+
     <group-id>
    <project_id>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os project show
+
os group show
     <project>
+
     <group>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone project-get
+
keystone group-get
     <project_id>
+
     <group-id>
 
</source>
 
</source>
 
|}
 
|}
  
==== request token ====
+
==== oauth ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 1,212: Line 1,251:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os request token authorize
+
os access token create
 
     --consumer-key <consumer-key>
 
     --consumer-key <consumer-key>
 
     --consumer-secret <consumer-secret>
 
     --consumer-secret <consumer-secret>
 
     --request-key <request-key>
 
     --request-key <request-key>
 
     --request-secret <request-secret>
 
     --request-secret <request-secret>
     --user-token <token>
+
     --verifier <pin>
    --roles <roles>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
Line 1,225: Line 1,263:
 
n/a
 
n/a
 
</source>
 
</source>
 +
|-
 +
| look at some alternatives: || || ||
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os request token create
+
os oauth token create
 
     --consumer-key <consumer-key>
 
     --consumer-key <consumer-key>
 
     --consumer-secret <consumer-secret>
 
     --consumer-secret <consumer-secret>
     [--roles <roles>]
+
     --request-key <request-key>
 +
    --request-secret <request-secret>
 +
    --verifier <pin>
 
</source>
 
</source>
|| yes
+
|| nyet
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
n/a
+
* makes the token specific to oauth
 +
* add [--oauth-ver X] if versioning for oauth2 is an issue?
 
</source>
 
</source>
|}
 
 
==== role ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os group-role list
+
os oauth token create
</source>
+
    --access
|| yes
+
    --consumer-key <consumer-key>
|| ||
+
    --consumer-secret <consumer-secret>
 +
    --request-key <request-key>
 +
    --request-secret <request-secret>
 +
    --verifier <pin>
 +
 
 +
os oauth token create
 +
    --request
 +
    --consumer-key <consumer-key>
 +
    --roles <roles>
 +
</source>
 +
|| nyet
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
* collapse 'access token' and 'request token' into 'oauth token'?
 
</source>
 
</source>
 +
|}
 +
 +
==== policy ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user-role list
+
os policy create
 +
    [--type <policy-type>]
 +
    --blob-file <blob-file>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone policy-create
 +
    --type <policy-type>
 +
    --blob <policy-blob>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role add
+
os policy delete
     [--user <user> | --group <group>]
+
     <policy-id>
    [--domain <domain> | --project <project>]
 
    <role>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone policy-delete
 +
    <policy-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role create
+
os policy list
     <role-name>
+
     [--include-blob]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone policy-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role delete
+
os policy set
     <role>
+
     [--type <policy-type>]
 +
    [--blob-file<blob-file>]
 +
    <policy-id>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone policy-update
 +
    [--type <policy-type>]
 +
    [--blob <policy-blob>]
 +
    <policy-id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role list
+
os policy show
 +
    <policy-id>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone policy-get
 +
    <policy-id>
 
</source>
 
</source>
 +
|}
 +
 +
==== project ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role remove
+
os project create
     [--user <user> | --group <group>]
+
     [--domain <project-domain>]
     [--domain <domain> | --project <project>]
+
    [--description <project-description>]
     <role>
+
     [--enable | --disable]
 +
     <project-name>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone project-create
 +
    [--domain_id <domain_id>]
 +
    [--description <description>]
 +
    [--enable | --disable]
 +
    <name>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role set
+
os project delete
     [--name <new-role-name>]
+
     <project>
    <role>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
os project-delete
 +
    <project_id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os role show
+
os project list
     <role>
+
     [--long]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
 +
keystone project-list
 
</source>
 
</source>
|}
 
 
==== service ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service create
+
os project set
[--name <name>]
+
    [--name <new-project-name>]
        [--enabled <true|false>]
+
    [--domain <project-domain>]
        <type>
+
    [--description <new-project-description>]
 +
    [--enable | --disable]
 +
    <project>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-create
+
keystone project-set
[--name <name>]
+
    [--name <new-project-name>]
        [--enabled <true|false>]
+
    [--domain <project-domain>]
        <type>
+
    [--description <new-project-description>]
 +
    [--enable | --disable]
 +
    <project_id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service delete
+
os project show
     <service>
+
     <project>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-delete
+
keystone project-get
     <service_id>
+
     <project_id>
 
</source>
 
</source>
 +
|}
 +
 +
==== role ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list service
+
os role add
 +
    [--user <user> | --group <group>]
 +
    [--domain <domain> | --project <project>]
 +
    <role>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-list
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service set
+
os role create
     [--type <service-type>]
+
     <role-name>
    [--name <new-name>]
 
    [--enable | --disable]
 
    <service>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-set
 
    [--type <service-type>]
 
    [--name <new-name>]
 
    [--enable | --disable]
 
    <service>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os service show
+
os role delete
     <service>
+
     <role>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone service-get
 
    <service_id>
 
 
</source>
 
</source>
|}
 
 
==== user ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user create
+
os role list
    [--password <password>]
 
    [--project <project>]
 
    [--email <user-email>]
 
    [--enable | --disable]
 
    <name>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-create
 
    --name <user-name>
 
    [--domain_id <domain-id>]
 
    [--default_project_id <project-id>]
 
    [--description <description>]
 
    [--enabled <true|false>]
 
    [--password <password>]
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user delete
+
os role remove
     <user>
+
    [--user <user> | --group <group>]
 +
     [--domain <domain> | --project <project>]
 +
    <role>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-delete
 
    <user-id>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user list
+
os role set
     [--project <project>]
+
     [--name <new-role-name>]
     [--long]
+
     <role>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-list
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user set
+
os role show
     [--name <new-name>]
+
     <role>
    [--password <password>]
 
    [--project <project>]
 
    [--email <user-email>]
 
    [--enable | --disable]
 
    <user>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-update
+
</source>
    --user_id <user-id>
+
|}
    [--name <user-name>]
+
 
    [--domain_id <domain-id>]
+
==== service ====
    [--default_project_id <project-id>]
+
 
    [--description <description>]
+
{| class="wikitable"
    [--enabled <true|false>]
+
|-
    [--password <password>]
+
! OSC Command !! Implemented !! !! Keystone command
 +
|-
 +
|
 +
<source lang="bash">
 +
os service create
 +
[--name <name>]
 +
        [--enabled <true|false>]
 +
        <type>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
keystone service-create
 +
[--name <name>]
 +
        [--enabled <true|false>]
 +
        <type>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os user show
+
os service delete
     <user>
+
     <service>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
keystone user-get
+
keystone service-delete
     <user-id>
+
     <service_id>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os list service
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
keystone service-list
 
</source>
 
</source>
|}
 
 
== Compute ==
 
 
 
{| class="wikitable"
 
|-
 
! 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 ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create agent
+
os service set
     <os>
+
     [--type <service-type>]
     <architecture>
+
     [--name <new-name>]
     <version>
+
     [--enable | --disable]
    <url>
+
     <service>
    <md5hash>
 
     <hypervisor>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
|-
 
|
 
 
<source lang="bash">
 
<source lang="bash">
os delete agent
+
keystone service-set
     <id>
+
     [--type <service-type>]
 +
    [--name <new-name>]
 +
    [--enable | --disable]
 +
    <service>
 
</source>
 
</source>
|| yes
 
|| ||
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list agent
+
os service show
     [--hypervisor <hypervisor>]
+
     <service>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
|-
 
|
 
 
<source lang="bash">
 
<source lang="bash">
os set agent
+
keystone service-get
     <id>
+
     <service_id>
    <version>
 
    <url>
 
    <md5hash>
 
 
</source>
 
</source>
|| yes
 
|| ||
 
 
|}
 
|}
  
 
+
==== user ====
==== aggregate ====
 
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! OSC Command !! Implemented !! !! Nova command
+
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os add aggregate
+
os user create
     <aggregate>
+
     [--password <password>]
     <host>
+
     [--project <project>]
 +
    [--email <user-email>]
 +
    [--enable | --disable]
 +
    <name>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova aggregate-add-host
+
keystone user-create
     <id>
+
    --name <user-name>
     <host>
+
     [--domain_id <domain-id>]
 +
     [--default_project_id <project-id>]
 +
    [--description <description>]
 +
    [--enabled <true|false>]
 +
    [--password <password>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create aggregate
+
os user delete
     <name>
+
     <user>
    <availability_zone>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova aggregate-create
+
keystone user-delete
     <name>
+
     <user-id>
    <availability_zone>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete aggregate
+
os user list
     <aggregate>
+
     [--project <project>]
 +
    [--long]
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova aggregate-delete
+
keystone user-list
    <id>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list aggregate
+
os user set
 +
    [--name <new-name>]
 +
    [--password <password>]
 +
    [--project <project>]
 +
    [--email <user-email>]
 +
    [--enable | --disable]
 +
    <user>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova aggregate-list
+
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>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os remove aggregate
+
os user show
     <aggregate>
+
     <user>
    <host>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova aggregate-remove-host
+
keystone user-get
     <id>
+
     <user-id>
    <host>
 
 
</source>
 
</source>
|-
+
|}
|
+
 
<source lang="bash">
+
== Compute ==
os set aggregate
+
 
    [--name <new-name>]
+
 
    [--zone <availability-zone>]
+
{| class="wikitable"
    [--property <key=value>]
+
|-
    <aggregate>
+
! OSC Option !! Environment Variable !! !! Nova Option !! Environment Variable
</source>
+
|-
|| no
+
| || || || --os-auth-system <auth-system> || OS_AUTH_SYSTEM
|| ||
+
|-  
<source lang="bash">
+
| || || || --service-type <type> ||
nova aggregate-update
+
|-  
    <id>
+
| || || || --service-name <name> || NOVA_SERVICE_NAME
    <name>
+
|-
    [<availability_zone>]
+
| || || || --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 ====
  
nova aggregate-set-metadata
+
{| class="wikitable"
     <id>
+
|-
     <key=value>
+
! OSC Command !! Implemented !! !! Nova command
     [<key=value> ...]
+
|-
</source>
+
|
 +
<source lang="bash">
 +
os agent create
 +
    <os>
 +
    <architecture>
 +
    <version>
 +
     <url>
 +
    <md5hash>
 +
     <hypervisor>
 +
</source>
 +
|| yes
 +
|| ||
 +
|-
 +
|
 +
<source lang="bash">
 +
os agent delete
 +
     <id>
 +
</source>
 +
|| yes
 +
|| ||
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show aggregate
+
os agent list
     <aggregate>
+
     [--hypervisor <hypervisor>]
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 +
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
nova aggregate-details
+
os agent set
 
     <id>
 
     <id>
 +
    <version>
 +
    <url>
 +
    <md5hash>
 
</source>
 
</source>
 +
|| yes
 +
|| ||
 
|}
 
|}
  
  
==== bash-completion ====
+
==== aggregate ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 1,687: Line 1,779:
 
|-
 
|-
 
|
 
|
TBD
 
|| no
 
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
nova bash-completion
+
os aggregate add host
 +
    <aggregate>
 +
    <host>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
nova aggregate-add-host
 +
    <id>
 +
    <host>
 
</source>
 
</source>
|}
 
 
==== cloudpipe ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create cloudpipe
+
os aggregate create
     <project>
+
     [--zone <availability-zone>]
 +
    [--property <key=value>]
 +
    <name>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova cloudpipe-create
+
nova aggregate-create
     <project>
+
     <name>
 +
    [<availability_zone>]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list cloudpipe
+
os aggregate delete
 +
    <aggregate>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova cloudpipe-list
+
nova aggregate-delete
 +
    <id>
 
</source>
 
</source>
|}
 
 
==== console ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show console-log
+
os aggregate list
     [--lines <num-lines>]
+
     [--long]
    <server>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova console-log
+
nova aggregate-list
    [--length <length>]
 
    <server>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show console-url
+
os aggregate remove host
     [--novnc | --xvpvnc | --spice]
+
     <aggregate>
     <server>
+
     <host>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova get-vnc-console
+
nova aggregate-remove-host
     <server>
+
     <id>
     <console_type>
+
     <host>
 
</source>
 
</source>
|}
 
 
==== credentials ====
 
 
''This may be better handled as part of the Identity API''
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
TBD
+
os aggregate set
 +
    [--name <new-name>]
 +
    [--zone <availability-zone>]
 +
    [--property <key=value>]
 +
    <aggregate>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova credentials
+
nova aggregate-update
</source>
+
    <id>
|}
+
    <name>
 +
    [<availability_zone>]
 +
 
 +
nova aggregate-set-metadata
 +
    <id>
 +
    <key=value>
 +
    [<key=value> ...]
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os aggregate show
 +
    <aggregate>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
nova aggregate-details
 +
    <id>
 +
</source>
 +
|}
  
==== diagnostics ====
+
==== bash-completion ====
  
''Consider implementing this as: show server --diagnostics <server>''
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 1,785: Line 1,886:
 
|-
 
|-
 
|
 
|
<source lang="bash">
+
TBD
os show diagnostics
 
    <server>
 
</source>
 
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova diagnostics
+
nova bash-completion
    <server>
 
 
</source>
 
</source>
 
|}
 
|}
  
==== dns ====
+
==== cloudpipe ====
  
''These commands need some attention...an IP shouldn't be required for all record types.  They need to be more DNS-y.  Zone anyone?''
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 1,806: Line 1,902:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create dns
+
os create cloudpipe
     [--type <type>]
+
     <project>
    <ip>
 
    <name>
 
    <domain>
 
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova dns-create
+
nova cloudpipe-create
    [--type <type>]
+
     <project>
    <ip>
 
    <name>
 
     <domain>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete dns
+
os list cloudpipe
    <domain>
 
    <name>
 
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova dns-delete
+
nova cloudpipe-list
    <domain>
 
    <name>
 
 
</source>
 
</source>
 +
|}
 +
 +
==== console ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list dns
+
os console log show
     [--ip <ip>]
+
     [--lines <num-lines>]
    [--name <name>]
+
     <server>
     <domain>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova dns-list
+
nova console-log
     [--ip <ip>]
+
     [--length <length>]
    [--name <name>]
+
     <server>
     <domain>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create dns-domain
+
os console url show
     [--project <project>]
+
     [--novnc | --xvpvnc | --spice]
    [--availability-zone <availability-zone>]
+
     <server>
    [--public | --private]
 
     <domain>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova dns-create-private-domain
+
nova get-vnc-console
     [--availability_zone <availability_zone>]
+
     <server>
     <domain>
+
     <console_type>
 +
</source>
 +
|}
 +
 
 +
==== credentials ====
 +
 
 +
See [[#credentials|credentials]] in the [[#Cross_API|cross API section]].
 +
 
 +
==== diagnostics ====
  
nova dns-create-public-domain
+
''Consider implementing this as: show server --diagnostics <server>''
    [--project <project>]
+
{| class="wikitable"
    <domain>
+
|-
</source>
+
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete dns-domain
+
os diagnostics show
     <domain>
+
     <server>
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova dns-delete-domain
+
nova diagnostics
     <domain>
+
     <server>
 
</source>
 
</source>
|-
+
|}
|
+
 
<source lang="bash">
+
==== dns ====
os list dns-domains
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova dns-domains
 
</source>
 
|}
 
  
==== endpoints ====
+
''These commands need some attention...an IP shouldn't be required for all record types.  They need to be more DNS-y.  Zone anyone?''
 
 
''Totally duplicates Identity catalog command''
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 1,904: Line 1,991:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list endpoints
+
os create dns
 +
    [--type <type>]
 +
    <ip>
 +
    <name>
 +
    <domain>
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova endpoints
+
nova dns-create
 +
    [--type <type>]
 +
    <ip>
 +
    <name>
 +
    <domain>
 
</source>
 
</source>
|}
 
 
==== fixed-ip ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os add fixed-ip
+
os delete dns
     <network>
+
     <domain>
     <server>
+
     <name>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova add-fixed-ip
+
nova dns-delete
     <server>
+
     <domain>
     <network_id>
+
     <name>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os remove fixed-ip
+
os list dns
     <ip-address>
+
    [--ip <ip>]
     <server>
+
     [--name <name>]
 +
     <domain>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova remove-fixed-ip
+
nova dns-list
     <server>
+
    [--ip <ip>]
     <address>
+
     [--name <name>]
 +
     <domain>
 
</source>
 
</source>
|}
 
 
 
==== flavor ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create flavor
+
os create dns-domain
    [--id <id>]
+
     [--project <project>]
    [--ram <size-mb>]
+
     [--availability-zone <availability-zone>]
    [--disk <size-gb>]
 
     [--ephemeral-disk <size-gb>]
 
     [--swap <size-mb>]
 
    [--vcpus <num-cpu>]
 
    [--rxtx-factor <factor>]
 
 
     [--public | --private]
 
     [--public | --private]
     <name>
+
     <domain>
 
</source>
 
</source>
||
+
|| no
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
(partial)
+
nova dns-create-private-domain
default: auto
+
    [--availability_zone <availability_zone>]
default: 256M
+
    <domain>
default: 0G
 
default: 0G
 
default: 0G
 
default: 1
 
default: 1
 
default: public
 
  
</source>
+
nova dns-create-public-domain
|| ||
+
     [--project <project>]
<source lang="bash">
+
     <domain>
nova flavor-create
 
    [--ephemeral <ephemeral>]
 
    [--swap <swap>]
 
     [--rxtx-factor <factor>]
 
     <name>
 
    <id>
 
    <ram>
 
    <disk>
 
    <vcpus>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete flavor
+
os delete dns-domain
     <flavor>
+
     <domain>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova flavor-delete  
+
nova dns-delete-domain
     <id>
+
     <domain>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list flavor
+
os list dns-domains
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova flavor-list
+
nova dns-domains
 
</source>
 
</source>
 +
|}
 +
 +
==== endpoints ====
 +
 +
''Totally duplicates Identity catalog command''
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show flavor
+
os endpoint list
    <flavor>
 
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 +
<source lang="bash">
 +
nova endpoints
 +
</source>
 
|}
 
|}
  
 
+
==== fixed-ip ====
==== floating-ip ====
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 2,034: Line 2,106:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os add floating-ip
+
os ip fixed add
     <ip-address>
+
     <network>
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,041: Line 2,113:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova add-floating-ip
+
nova add-fixed-ip
 
     <server>
 
     <server>
     <address>
+
     <network_id>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create floating-ip
+
os ip fixed remove
     [<pool>]
+
    <ip-address>
 +
     <server>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova floating-ip-create
+
nova remove-fixed-ip
    [<floating_ip_pool>]
+
     <server>
</source>
+
     <address>
|-
 
|
 
<source lang="bash">
 
os delete floating-ip
 
    <ip-address>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova floating-ip-delete
 
    <address>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os list floating-ip
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova floating-ip-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os remove floating-ip
 
    <ip-address>
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova remove-floating-ip
 
     <server>
 
     <address>
 
 
</source>
 
</source>
 
|}
 
|}
  
  
==== floating-ip-pool ====
+
==== flavor ====
 
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 2,105: Line 2,142:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list floating-ip-pool
+
os flavor create
</source>
+
    [--id <id>]
|| yes
+
    [--ram <size-mb>]
|| ||
+
    [--disk <size-gb>]
 +
    [--ephemeral-disk <size-gb>]
 +
    [--swap <size-mb>]
 +
    [--vcpus <num-cpu>]
 +
    [--rxtx-factor <factor>]
 +
    [--public | --private]
 +
    <name>
 +
</source>
 +
||
 
<source lang="bash">
 
<source lang="bash">
nova floating-ip-pool-list
+
(partial)
</source>
+
default: auto
|}
+
default: 256M
 
+
default: 0G
 
+
default: 0G
==== host ====
+
default: 0G
 +
default: 1
 +
default: 1
 +
default: public
  
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os list host
 
    [--zone <availability-zone>]
 
 
</source>
 
</source>
|| yes
 
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova host-action
+
nova flavor-create
     [--action <action>]
+
     [--ephemeral <ephemeral>]  
     <hostname>
+
    [--swap <swap>]
 +
    [--rxtx-factor <factor>]
 +
    <name>
 +
    <id>
 +
    <ram>
 +
    <disk>
 +
     <vcpus>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set host
+
os flavor delete
     ...
+
     <flavor>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova host-update
+
nova flavor-delete
    [--status <status>]
+
     <id>
    [--maintenance <maintenance_mode>]
 
     <hostname>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show host
+
os flavor list
    <host>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
|}
 
 
 
==== hypervisor ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
 
<source lang="bash">
 
<source lang="bash">
os list hypervisor
+
nova flavor-list
    [--matching <hostname>]
 
 
</source>
 
</source>
|| yes
 
|| ||
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show hypervisor
+
os flavor show
     <id>
+
     <flavor>
 
</source>
 
</source>
 
|| yes
 
|| yes
Line 2,182: Line 2,211:
  
  
==== keypair ====
+
==== floating-ip ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 2,190: Line 2,219:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create keypair
+
os ip floating add
     [--public-key <file>]
+
     <ip-address>
     <name>
+
    <server>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
nova add-floating-ip
 +
    <server>
 +
     <address>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os ip floating create
 +
    [<pool>]
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova keypair-add
+
nova floating-ip-create
     [--pub_key <pub_key>]
+
     [<floating_ip_pool>]
    <name>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete keypair
+
os ip floating delete
     <name>
+
     <ip-address>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova keypair-delete
+
nova floating-ip-delete
     <name>
+
     <address>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list keypair
+
os ip floating list
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova keypair-list
+
nova floating-ip-list
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show keypair
+
os ip floating remove
     [--public-key]
+
     <ip-address>
     <name>
+
     <server>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 +
<source lang="bash">
 +
nova remove-floating-ip
 +
    <server>
 +
    <address>
 +
</source>
 
|}
 
|}
  
  
==== limits ====
+
==== floating-ip-pool ====
 +
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 2,243: Line 2,290:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show limits
+
os ip floating pool list
    --absolute [--reserved] | --rate
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova absolute-limits
+
nova floating-ip-pool-list
 
 
nova rate-limits
 
 
</source>
 
</source>
 
|}
 
|}
  
==== quota ====
+
 
 +
==== host ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 2,263: Line 2,308:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set quota
+
os host list
     [--instances <instances>]
+
     [--zone <availability-zone>]
    [--cores <cores>]
 
    [--ram <ram>]
 
    [--volumes <volumes>]
 
    [--gigabytes <gigabytes>]
 
    [--floating-ips <floating-ips>]
 
    [--property-items <property-items>]
 
    [--injected-files <injected-files>]
 
    [--injected-file-content-bytes <injected-file-content-bytes>]
 
    <project>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova quota-update
+
nova host-action
     [--instances <instances>]
+
     [--action <action>]
    [--cores <cores>]
+
     <hostname>
    [--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>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set quota
+
os host set
     --class
+
     ...
    [--instances <instances>]
+
</source>
    [--cores <cores>]
+
|| no
    [--ram <ram>]
+
|| ||
    [--volumes <volumes>]
 
    [--gigabytes <gigabytes>]
 
    [--floating-ips <floating-ips>]
 
    [--property-items <property-items>]
 
    [--injected-files <injected-files>]
 
    [--injected-file-content-bytes <injected-file-content-bytes>]
 
    <class>
 
</source>
 
|| no
 
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
nova quota-class-update  
+
nova host-update
     [--instances <instances>]
+
     [--status <status>]  
    [--cores <cores>]
+
     [--maintenance <maintenance_mode>]
    [--ram <ram>]
+
     <hostname>
    [--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>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show quota
+
os host show
    [--defaults]
+
     <host>
     <project>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
<source lang="bash">
+
|}
nova quota-defaults
+
 
    <tenant_id>
+
 
 +
==== hypervisor ====
  
nova quota-show
+
{| class="wikitable"
    <tenant_id>
+
|-
</source>
+
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show quota
+
os hypervisor list
     --class
+
     [--matching <hostname>]
    <class>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 +
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
nova quota-class-show
+
os hypervisor show
     <class>
+
     <id>
 
</source>
 
</source>
 +
|| yes
 +
|| ||
 
|}
 
|}
  
  
 
+
==== keypair ====
'''resource'''
 
 
 
<source lang="bash">
 
nova describe-resource <hostname>
 
 
 
os show resource ...
 
</source>
 
 
 
==== secgroup ====
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 2,370: Line 2,375:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os add secgroup
+
os keypair create
     <secgroup>
+
     [--public-key <file>]
     <server>
+
     <name>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova add-secgroup
+
nova keypair-add
     <server>
+
     [--pub_key <pub_key>]
     <secgroup>
+
     <name>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create secgroup
+
os keypair delete
    [--description <description>]
 
 
     <name>
 
     <name>
 
</source>
 
</source>
Line 2,391: Line 2,395:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova secgroup-create
+
nova keypair-delete
 
     <name>
 
     <name>
    <description>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete secgroup
+
os keypair list
    <secgroup>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova secgroup-delete
+
nova keypair-list
    <secgroup>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list secgroup
+
os keypair show
     [--all-tenants]
+
     [--public-key]
 +
    <name>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
<source lang="bash">
+
|}
nova secgroup-list
+
 
    [--all-tenants [<0|1>]]
+
 
</source>
+
==== limits ====
 +
 
 +
See [[#limits|limits]] in the [[#Cross_API|cross API section]].
 +
 
 +
==== quota ====
 +
 
 +
See [[#quota|quota]] in the [[#Cross_API|cross API section]].
 +
 
 +
 
 +
==== resource ====
 +
 
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os remove secgroup
+
os show resource
     <secgroup>
+
     <hostname>
    <server>
 
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova remove-secgroup
+
nova describe-resource
     <server>
+
     <hostname>
    <secgroup>
 
 
</source>
 
</source>
 
|}
 
|}
  
==== secgroup-group-rule ====
+
==== secgroup ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 2,443: Line 2,456:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create secgroup-group-rule
+
os secgroup add
    [--proto <protocol>]
+
 
    [--port <port>:<port>]
+
(see server add secgroup)
    <source-group>
 
    <secgroup>
 
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova secgroup-add-group-rule
+
nova add-secgroup
    [--ip_proto <ip_proto>]
+
     <server>
     [--from_port <from_port>]
 
    [--to_port <to_port>]
 
 
     <secgroup>
 
     <secgroup>
    <source_group>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete secgroup-group-rule
+
os secgroup create
    [--proto <protocol>]
+
     [--description <description>]
     [--port <port>:<port>]
+
     <name>
     <source-group>
 
    <secgroup>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova secgroup-delete-group-rule
+
nova secgroup-create
     [--ip_proto <ip_proto>]
+
     <name>
     [--from_port <from_port>]
+
     <description>
    [--to_port <to_port>]
 
    <secgroup>
 
    <source_group>
 
 
</source>
 
</source>
|}
 
 
==== secgroup-rule ====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create secgroup-rule
+
os secgroup delete
     [--proto <proto>]
+
     <group>
    [--src-ip <ip-address>]
 
    [--src-port <port>]
 
    [--dst-port <port>]
 
    <secgroup>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova secgroup-add-rule
+
nova secgroup-delete
 
     <secgroup>
 
     <secgroup>
    <ip_proto>
 
    <from_port>
 
    <to_port>
 
    <cidr>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete secgroup-rule
+
os secgroup list
     [--proto <proto>]
+
     [--all-projects]
    [--src-ip <ip-address>]
+
</source>
    [--src-port <port>]
+
|| yes
    [--dst-port <port>]
+
|| ||
    <secgroup>
+
<source lang="bash">
 +
nova secgroup-list
 +
    [--all-tenants [<0|1>]]
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os secgroup remove
 +
 
 +
(see server remove secgroup)
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova secgroup-delete-rule
+
nova remove-secgroup
 +
    <server>
 
     <secgroup>
 
     <secgroup>
    <ip_proto>
 
    <from_port>
 
    <to_port>
 
    <cidr>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list secgroup-rule
+
os secgroup set
     <secgroup>
+
    [--name <new-name>]
 +
    [--description [<new-description>]
 +
     <group>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova secgroup-list-rules
+
nova secgroup-update
 
     <secgroup>
 
     <secgroup>
 +
    <name>
 +
    <description>
 
</source>
 
</source>
|}
 
 
====server====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create server
+
os secgroup show
     --image <image>
+
     <group>
    --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>
 
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova boot
+
n/a
    [--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>
 
 
</source>
 
</source>
 +
|}
 +
 +
==== secgroup-group-rule ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete server
+
os secgroup group rule create
     <server>
+
     [--proto <protocol>]
 +
    [--port <port>:<port>]
 +
    <source-group>
 +
    <secgroup>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova delete
+
nova secgroup-add-group-rule
     <server>
+
     [--ip_proto <ip_proto>]
 +
    [--from_port <from_port>]
 +
    [--to_port <to_port>]
 +
    <secgroup>
 +
    <source_group>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list server
+
os secgroup group rule delete
     [--reservation-id <reservation-id>]
+
     [--proto <protocol>]
    [--ip <ip-regex>]
+
     [--port <port>:<port>]
    [--ip6 <ip6-regex>]  
+
     <source-group>
     [--name <name-regex>]
+
     <secgroup>
    [--instance-name <instance-name-regex>]
 
    [--status <status>]
 
     [--flavor <flavor>]
 
    [--image <image>]
 
     [--host <hostname>]
 
    [--all-tenants]
 
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova list
+
nova secgroup-delete-group-rule
    [--reservation_id <reservation_id>]
+
     [--ip_proto <ip_proto>]
    [--ip <ip_regexp>]
+
     [--from_port <from_port>]
     [--ip6 <ip6_regexp>]  
+
     [--to_port <to_port>]
     [--name <name_regexp>]
+
     <secgroup>
     [--instance_name <name_regexp>]  
+
     <source_group>
     [--status <status>]
 
     [--flavor <flavor>] [--image <image>]
 
    [--host <hostname>]
 
    [--all_tenants [<0|1>]]
 
 
</source>
 
</source>
 +
|}
 +
 +
==== secgroup-rule ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os lock server
+
os secgroup rule create
     <server>
+
     [--proto <proto>]
 +
    [--src-ip <ip-address>]
 +
    [--dst-port <port-range>]
 +
    <group>
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova lock
+
nova secgroup-add-rule
     <server>
+
     <secgroup>
 +
    <ip_proto>
 +
    <from_port>
 +
    <to_port>
 +
    <cidr>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os migrate server
+
os secgroup rule delete
    --live
+
     [--proto <proto>]
     [--block_migrate]
+
     [--src-ip <ip-address>]
     [--disk_over_commit]
+
     [--dst-port <port-range>]
    <server>
+
     <group>
    <host>
 
 
 
os migrate server
 
     [--wait]
 
     <server>
 
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova live-migration
+
nova secgroup-delete-rule
    [--block_migrate]
+
     <secgroup>
     [--disk_over_commit]
+
     <ip_proto>
     <server>
+
    <from_port>
<host>
+
     <to_port>
 
+
     <cidr>
nova migrate
 
     [--poll]
 
     <server>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os pause server
+
os secgroup rule list
     <server>
+
     <group>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova pause
+
nova secgroup-list-rules
     <server>
+
     <secgroup>
 
</source>
 
</source>
 +
|}
 +
 +
====server====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os reboot server
+
os server add secgroup
    [--hard | --soft]
 
    [--wait]
 
 
     <server>
 
     <server>
 +
    <group>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova reboot
+
nova add-secgroup
    [--hard]
 
    [--poll]
 
 
     <server>
 
     <server>
 +
    <secgroup>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os rebuild server  
+
os server create
 
     --image <image>
 
     --image <image>
     [--password <password>]  
+
    --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]
 
     [--wait]
     <server>
+
     <server-name>
 
</source>
 
</source>
 
|| yes
 
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova rebuild
+
nova boot
     [--rebuild_password <rebuild_password>]  
+
     [--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]
 
     [--poll]
     <server>
+
     <name>
    <image>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os rename server
+
os server delete
 
     <server>
 
     <server>
    <new-name>
 
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova rename
+
nova delete
 
     <server>
 
     <server>
    <name>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os rescue server
+
os server 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]
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova rescue
+
nova list
     <server>
+
     [--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>]]
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os resize server  
+
os server lock
    --flavor <flavor>
 
    [--wait]
 
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,747: Line 2,759:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova resize
+
nova lock
    [--poll]
 
 
     <server>
 
     <server>
    <flavor>
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os resize server
+
os server migrate
     --confirm
+
     --live
 +
    [--block_migrate]
 +
    [--disk_over_commit]
 +
    <server>
 +
    <host>
 +
 
 +
os server migrate
 +
    [--wait]
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,762: Line 2,779:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova resize-confirm
+
nova live-migration
 +
    [--block_migrate]
 +
    [--disk_over_commit]
 +
    <server>
 +
<host>
 +
 
 +
nova migrate
 +
    [--poll]
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,768: Line 2,792:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os resume server
+
os server pause
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,774: Line 2,798:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova resume
+
nova pause
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,780: Line 2,804:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set server
+
os server reboot
     --meta-data <key=value>
+
     [--hard | --soft]
    [--meta-data <key=value>] ...
+
     [--wait]
    <server>
 
os unset server
 
    --meta-data <key>
 
     [--meta-data <key>] ...
 
 
     <server>
 
     <server>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova meta
+
nova reboot
 +
    [--hard]
 +
    [--poll]
 
     <server>
 
     <server>
    <action>
 
    <key=value>
 
    [<key=value> ...]
 
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set server
+
os server rebuild
     --root-password
+
     --image <image>
 +
    [--password <password>]
 +
    [--wait]
 
     <server>
 
     <server>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova root-password
+
nova rebuild
 +
    [--rebuild_password <rebuild_password>]
 +
    [--poll]
 
     <server>
 
     <server>
 +
    <image>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show server
+
os server remove secgroup
 
     <server>
 
     <server>
 +
    <group>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova show
+
nova remove-secgroup
 
     <server>
 
     <server>
 +
    <secgroup>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os ssh server
+
os server rename
    [--port PORT]
 
    --private]
 
    [--ipv6]
 
    [--login <login>]
 
 
     <server>
 
     <server>
 +
    <new-name>
 
</source>
 
</source>
 
|| no
 
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova ssh
+
nova rename
    [--port PORT]
 
    [--private]
 
    [--ipv6]
 
    [--login <login>]
 
 
     <server>
 
     <server>
 +
    <name>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os suspend server
+
os server rescue
 
     <server>
 
     <server>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova suspend
+
nova rescue
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,858: Line 2,878:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os unlock server
+
os server resize
 +
    --flavor <flavor>
 +
    [--wait]
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,864: Line 2,886:
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova unlock
+
nova resize
 +
    [--poll]
 
     <server>
 
     <server>
 +
    <flavor>
 
</source>
 
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os unpause server
+
os server resize
 +
    --confirm
 
     <server>
 
     <server>
 
</source>
 
</source>
|| yes
+
|| no
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova unpause
+
nova resize-confirm
 
     <server>
 
     <server>
 
</source>
 
</source>
Line 2,882: Line 2,907:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os unrescue server
+
os server resume
 
     <server>
 
     <server>
 
</source>
 
</source>
|| no
+
|| yes
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
nova unrescue
+
nova resume
 
     <server>
 
     <server>
 
</source>
 
</source>
|}
+
|-
 
+
|
 
 
'''usage'''
 
 
 
 
<source lang="bash">
 
<source lang="bash">
nova usage-list [--start <start>] [--end <end>]
+
os server set
 
+
    --meta-data <key=value>
os list usage ...
+
    [--meta-data <key=value>] ...
 +
    <server>
 +
os unset server
 +
    --meta-data <key>
 +
    [--meta-data <key>] ...
 +
    <server>
 
</source>
 
</source>
 
+
|| no
 
+
|| ||
'''volume'''
 
 
 
 
<source lang="bash">
 
<source lang="bash">
nova volume-attach <server> <volume> <device>
+
nova meta
 
+
    <server>
os attach volume ...
+
    <action>
 +
    <key=value>
 +
    [<key=value> ...]
 
</source>
 
</source>
 
+
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
nova volume-detach <server> <volume>
+
os server set
 
+
    --root-password
os detach volume ...
+
    <server>
 
</source>
 
</source>
 
+
|| no
 
+
|| ||
'''x509-cert'''
 
 
 
 
<source lang="bash">
 
<source lang="bash">
nova x509-create-cert [<private_key_file>] [<x509_cert>]
+
nova root-password
 
+
    <server>
os create x509-cert ...
 
 
</source>
 
</source>
 
+
|-
 
+
|
'''x509-root-cert'''
+
<source lang="bash">
 
+
os server show
 +
    <server>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
nova show
 +
    <server>
 +
</source>
 +
|-
 +
|
 
<source lang="bash">
 
<source lang="bash">
nova x509-get-root-cert [<filename>]
+
os server ssh
 
+
    [--port PORT]
os show x509-root-cert ...
+
    --private]
 +
    [--ipv6]
 +
    [--login <login>]
 +
    <server>
 +
</source>
 +
|| no
 +
|| ||
 +
<source lang="bash">
 +
nova ssh
 +
    [--port PORT]
 +
    [--private]
 +
    [--ipv6]
 +
    [--login <login>]
 +
    <server>
 
</source>
 
</source>
 
== Image ==
 
 
 
{| class="wikitable"
 
|-
 
! OSC Option !!  Environment Variable !!  !!  Glance Option !!  Environment Variable
 
|-
 
| --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
 
|-
 
| --os-token <token> || OS_TOKEN || || --os-auth-token <token> || OS_AUTH_TOKEN
 
|-
 
| --os-url <url> || OS_URL || || --os-image-url <url> || OS_IMAGE_URL
 
|-
 
|  ||  || || --os-cacert <file> || OS_CACERT
 
|-
 
|  ||  || || --cert-file <file> || CERT_FILE
 
|-
 
|  ||  || || --key-file <key-file> || KEY_FILE
 
|-
 
|  ||  || || --no-ssl-compression ||
 
|-
 
|}
 
 
 
=== API v1 ===
 
 
'''image'''
 
 
{| class="wikitable"
 
 
|-
 
|-
! OSC Command !! Implemented !! !! Glance command
+
|
 +
<source lang="bash">
 +
os server suspend
 +
    <server>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
nova suspend
 +
    <server>
 +
</source>
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create image
+
os server unlock
     [--id <id>]
+
     <server>
    [--store <store>]
+
</source>
    [--container-format <format>]
+
|| no
    [--disk-format <format>]
 
    [--owner <tenant>]
 
    [--size <size-bytes>]
 
    [--min-disk <disk-gb>]
 
    [--min-ram <ram-mg>]
 
    [--location <image-url>]
 
    [--copy-from <image-url>]
 
    [--file <local-filename>]
 
    [--checksum <checksum>]
 
    [--protected | --unprotected]
 
    [--public | --private]
 
    [--property <key=value>]
 
    <name>
 
</source>
 
|| yes
 
 
|| ||
 
|| ||
 
<source lang="bash">
 
<source lang="bash">
glance image-create
+
nova unlock
     [--id <IMAGE_ID>]
+
     <server>
    [--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>]
 
 
</source>
 
</source>
|}
 
 
=== API v2 ===
 
 
'''image'''
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Glance command
 
 
|-
 
|-
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete image
+
os server unpause
     <id>
+
    <server>
</source>
+
</source>
|| yes
+
|| yes
|| ||
+
|| ||
<source lang="bash">
+
<source lang="bash">
glance image-delete
+
nova unpause
     <IMAGE_ID>
+
    <server>
</source>
+
</source>
|}
+
|-
 
+
|
 
+
<source lang="bash">
 
+
os server unrescue
<source lang="bash">
+
    <server>
glance image-list
+
</source>
 
+
|| no
os list image ...
+
|| ||
</source>
+
<source lang="bash">
 
+
nova unrescue
 
+
    <server>
<source lang="bash">
+
</source>
glance image-show <IMAGE_ID>
+
|}
 
+
 
os show image ...
+
==== usage ====
</source>
+
 
 
+
{| class="wikitable"
 
+
|-
<source lang="bash">
+
! OSC Command !! Implemented !! !! Keystone command
glance member-images [options] <MEMBER>
+
|-
 
+
|
os list image --member <member> [options]
+
<source lang="bash">
</source>
+
os usage list
 
+
    [--start <start>]
 
+
    [--end <end>]
<source lang="bash">
+
</source>
glance show [options] <ID>
+
|| no
 
+
|| ||
os show image ...
+
<source lang="bash">
</source>
+
nova usage-list
 
+
    [--start <start>]
 
+
    [--end <end>]
<source lang="bash">
+
</source>
glance update [options] <ID> <field1=value1 field2=value2 ...>
+
|}
 
+
 
os set image ...
+
 
</source>
+
==== volume ====
 
+
 
 
+
{| class="wikitable"
'''image-member'''
+
|-
 
+
! OSC Command !! Implemented !! !! Keystone command
<source lang="bash">
+
|-
glance member-create [--can-share] <IMAGE_ID> <TENANT_ID>
+
|
 +
<source lang="bash">
 +
os volume attach
 +
    <volume>
 +
    <server>
 +
    <device>
 +
</source>
 +
|| no
 +
|| ||
 +
<source lang="bash">
 +
nova volume-attach
 +
    <server>
 +
    <volume>
 +
    <device>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os volume detach
 +
    <server>
 +
    <volume>
 +
</source>
 +
|| no
 +
|| ||
 +
<source lang="bash">
 +
nova volume-detach
 +
    <server>
 +
    <volume>
 +
</source>
 +
|}
 +
 
 +
 
 +
==== x509-cert ====
 +
 
 +
See [[#credentials|credentials]] in the [[#Cross_API|cross API section]].
 +
 
 +
==== x509-root-cert ====
 +
 
 +
See [[#credentials|credentials]] in the [[#Cross_API|cross API section]].
 +
 
 +
== Image ==
 +
 
 +
{| class="wikitable"
 +
|-
 +
! OSC Option !!  Environment Variable !!  !!  Glance Option !!  Environment Variable
 +
|-
 +
| --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
 +
|-
 +
| --os-token <token> || OS_TOKEN || || --os-auth-token <token> || OS_AUTH_TOKEN
 +
|-
 +
| --os-url <url> || OS_URL || || --os-image-url <url> || OS_IMAGE_URL
 +
|-
 +
|  ||  || || --os-cacert <file> || OS_CACERT
 +
|-
 +
|  ||  || || --cert-file <file> || CERT_FILE
 +
|-
 +
|  ||  || || --key-file <key-file> || KEY_FILE
 +
|-
 +
|  ||  || || --no-ssl-compression ||
 +
|-
 +
|}
 +
 
 +
 
 +
=== API v1 ===
 +
 
 +
==== image ====
 +
 
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Glance command
 +
|-
 +
|
 +
<source lang="bash">
 +
os image create
 +
    [--id <id>]
 +
    [--store <store>]
 +
    [--container-format <format>]
 +
    [--disk-format <format>]
 +
    [--owner <tenant>]
 +
    [--size <size-bytes>]
 +
    [--min-disk <disk-gb>]
 +
    [--min-ram <ram-mg>]
 +
    [--location <image-url>]
 +
    [--copy-from <image-url>]
 +
    [--file <local-filename>]
 +
    [--checksum <checksum>]
 +
    [--protected | --unprotected]
 +
    [--public | --private]
 +
    [--property <key=value>]
 +
     <name>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-create
 +
    [--id <IMAGE_ID>]
 +
    [--name <NAME>]
 +
    [--disk-format <DISK_FORMAT>]
 +
    [--container-format <CONTAINER_FORMAT>]
 +
    [--owner <TENANT_ID>]
 +
    [--size <SIZE>]
 +
    [--min-disk <DISK_GB>]
 +
    [--min-ram <DISK_RAM>]
 +
    [--location <IMAGE_URL>]
 +
    [--checksum <CHECKSUM>]
 +
    [--copy-from <IMAGE_URL>]
 +
    [--is-public [True|False]]
 +
    [--is-protected [True|False]]
 +
    [--property <key=value>]
 +
    [--human-readable]
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image delete
 +
    <image>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-delete
 +
     <IMAGE_ID>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image list
 +
    [--page-size <size>]
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-list
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image save
 +
    [--file <filename>]
 +
    <image>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-download
 +
    [--file <FILE>]
 +
    <IMAGE>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image set
 +
    [--name <name>]
 +
    [--owner <tenant>]
 +
    [--min-disk <disk-gb>]
 +
    [--min-ram <ram-mg>]
 +
    [--protected | --unprotected]
 +
    [--public | --private]
 +
    [--property <key=value>]
 +
    <image>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-update
 +
    [--name <NAME>]
 +
    [--disk-format <DISK_FORMAT>]
 +
    [--container-format <CONTAINER_FORMAT>]
 +
    [--owner <TENANT_ID>]
 +
    [--size <SIZE>]
 +
    [--min-disk <DISK_GB>]
 +
    [--min-ram <DISK_RAM>]
 +
    [--location <IMAGE_URL>]
 +
    [--file <FILE>]
 +
    [--checksum <CHECKSUM>]
 +
    [--copy-from <IMAGE_URL>]
 +
    [--is-public [True|False]]
 +
    [--is-protected [True|False]]
 +
    [--property <key=value>]
 +
    [--purge-props]
 +
    [--human-readable]
 +
    <IMAGE>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image show
 +
    <image>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-show
 +
    [--human-readable]
 +
    <IMAGE>
 +
</source>
 +
|}
 +
 
 +
=== API v2 ===
 +
 
 +
==== image ====
 +
 
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Glance command
 +
|-
 +
|
 +
<source lang="bash">
 +
os image delete
 +
    <image>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-delete
 +
    <IMAGE_ID>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image list
 +
    [--page-size <size>]
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-list
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
</source>
 +
|| no
 +
|| ||
 +
<source lang="bash">
 +
glance member-images
 +
    [options]
 +
    <MEMBER>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image save
 +
    [--file <filename>]
 +
    <image>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-download
 +
    [--file <FILE>]
 +
    <IMAGE>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image set
 +
    [--id <id>]
 +
    [--store <store>]
 +
    [--container-format <format>]
 +
    [--disk-format <format>]
 +
    [--owner <tenant>]
 +
    [--size <size-bytes>]
 +
    [--min-disk <disk-gb>]
 +
    [--min-ram <ram-mg>]
 +
    [--location <image-url>]
 +
    [--copy-from <image-url>]
 +
    [--file <local-filename>]
 +
    [--checksum <checksum>]
 +
    [--protected | --unprotected]
 +
    [--public | --private]
 +
    [--property <key=value>]
 +
    <name>
 +
</source>
 +
|| no
 +
|| ||
 +
<source lang="bash">
 +
glance image-update
 +
    [--name <NAME>]
 +
    [--disk-format <DISK_FORMAT>]
 +
    [--container-format <CONTAINER_FORMAT>]
 +
    [--owner <TENANT_ID>]
 +
    [--size <SIZE>]
 +
    [--min-disk <DISK_GB>]
 +
    [--min-ram <DISK_RAM>]
 +
    [--location <IMAGE_URL>]
 +
    [--file <FILE>]
 +
    [--checksum <CHECKSUM>]
 +
    [--copy-from <IMAGE_URL>]
 +
    [--is-public [True|False]]
 +
    [--is-protected [True|False]]
 +
    [--property <key=value>]
 +
    [--purge-props]
 +
    [--human-readable]
 +
    <IMAGE>
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os image show
 +
    <image>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
glance image-show
 +
    [--human-readable]
 +
    <IMAGE>
 +
</source>
 +
|}
 +
 
 +
 
 +
==== image-member ====
 +
 
 +
Need to discuss the future of these commands with markwash...
 +
 
 +
<source lang="bash">
 +
glance member-create [--can-share] <IMAGE_ID> <TENANT_ID>
  
 
os create image-member ...
 
os create image-member ...
Line 3,099: Line 3,408:
  
 
== Volume ==
 
== Volume ==
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 3,121: Line 3,429:
  
 
=== API v1.0 ===
 
=== API v1.0 ===
 +
 +
==== limits ====
 +
 +
See [[#limits|limits]] in the [[#Cross_API|cross API section]].
  
 
==== quota ====
 
==== quota ====
  
{| class="wikitable"
+
See [[#quota|quota]] in the [[#Cross_API|cross API section]].
|-
 
! OSC Command !! Implemented !! !! Cinder command
 
|-
 
|
 
<source lang="bash">
 
os list quota
 
    <tenant>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os set quota
 
    [--volumes] <new-volumes>]
 
    [--gigabytes <new-gigabytes>]
 
    <tenant>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder quota-update
 
    [--volumes <volumes>]
 
    [--snapshots <snapshots>]
 
    [--gigabytes <gigabytes>]
 
    <tenant_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os show quota
 
    <tenant>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder quota-show
 
    <tenant_id>
 
</source>
 
|}
 
  
 
==== snapshot ====
 
==== snapshot ====
Line 3,176: Line 3,446:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create snapshot
+
os snapshot create
 
     --name <name>
 
     --name <name>
 
     [--description <description>]
 
     [--description <description>]
Line 3,194: Line 3,464:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete snapshot
+
os snapshot delete
 
     <snapshot>
 
     <snapshot>
 
</source>
 
</source>
Line 3,206: Line 3,476:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list snapshot
+
os snapshot list
 
</source>
 
</source>
 
|| yes (no opts yet)
 
|| yes (no opts yet)
Line 3,220: Line 3,490:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set snapshot
+
os snapshot set
 
     [--name <new-name>]
 
     [--name <new-name>]
 
     [--description <new-description>]
 
     [--description <new-description>]
Line 3,236: Line 3,506:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show snapshot
+
os snapshot show
 
     <snapshot>
 
     <snapshot>
 
</source>
 
</source>
Line 3,255: Line 3,525:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create volume
+
os volume create
 
     --size <size>
 
     --size <size>
 
     [--description <description>]
 
     [--description <description>]
Line 3,285: Line 3,555:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete volume
+
os volume delete
 
     [--force]
 
     [--force]
 
     <volume>
 
     <volume>
Line 3,301: Line 3,571:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list volume
+
os volume list
 
     [--name <name>]
 
     [--name <name>]
 
     [--status <status>]
 
     [--status <status>]
Line 3,318: Line 3,588:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set volume
+
os volume set
 
     [--name <new-name>]
 
     [--name <new-name>]
 
     [--description <new-description>]
 
     [--description <new-description>]
Line 3,340: Line 3,610:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os show volume
+
os volume show
 
     <volume>
 
     <volume>
 
</source>
 
</source>
Line 3,352: Line 3,622:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os unset volume
+
os volume unset
 
     [--property <key=value>]
 
     [--property <key=value>]
 
     <volume>
 
     <volume>
Line 3,370: Line 3,640:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os create volume-type
+
os volume type create
 
     [--property <key=value>]
 
     [--property <key=value>]
 
     <name>
 
     <name>
Line 3,383: Line 3,653:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os delete volume-type
+
os volume type delete
 
     <volume-type>
 
     <volume-type>
 
</source>
 
</source>
Line 3,395: Line 3,665:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os list volume-type
+
os volume type list
 
     [--long]
 
     [--long]
 
</source>
 
</source>
Line 3,408: Line 3,678:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os set volume-type
+
os volume type set
 
     [--property <key=value>]
 
     [--property <key=value>]
 
     <volume-type>
 
     <volume-type>
Line 3,423: Line 3,693:
 
|
 
|
 
<source lang="bash">
 
<source lang="bash">
os unset volume-type
+
os volume type unset
 
     [--property <key>]
 
     [--property <key>]
 
     <volume-type>
 
     <volume-type>
Line 3,439: Line 3,709:
 
== Network ==
 
== Network ==
  
'''quantum'''
+
The Network commands in <code>quantum</code> have been in a bit of flux and are currently out of scope for OpenStackClient.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 3,593: Line 3,863:
 
set port <tenant> <network> <port> <params>
 
set port <tenant> <network> <port> <params>
 
</source>
 
</source>
 
  
 
= Options =
 
= Options =

Latest revision as of 02:10, 19 July 2013

Note: this page is being deprecated in favor of a new OpenStackClient Commands page with the correct name.

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

The OpenStackClient has a consistent and predictable format for all of its commands.

  • The top level command name is openstack
  • Sub-commands take the form:
openstack [<global-options>] <object> <verb> [<second-object>] [<command-local-arguments>]

Note: The command format change was committed on 13May2013. This is the new format.


Command Arguments

  • All long options names shall use '-' as the interpolation character (--like-this)
  • Authentication options conform to a revised version of the original CLIAuth
  • Global arguments generally have a corresponding environment variable that may also be used to set the value. If both are present, the command-line option takes priority. The environment variable names can be derived from the option by dropping the leading '--', converting all embedded dashes ('-') to underscores ('_'), and converting to upper case.
  • Positional arguments trail command options.
  • Some commands require two objects be acted upon, both objects appear in the command and if both are positional arguments they appear in the same order as in the command. In words it can be expressed as "(given) object1 add object2 (to it)"
 * <object-1> <verb> <object-2>
   * group add user
   * access token list   (here, 'access token' is a two-word single object)
   * user list role (needs more thinking)

Other

  • Arguments that normally require an ID in the OS-API may also use the name or other short identifier where reasonable to support
  • Optional machine-parsable format is available with list and show commands. List has an option for CSV-formatted output (see --format, --quote options for a list command) while show has an option for shell-assignment formatted output (see --format option for a show command).

Verbs

The verbs used by the default OpenStack clients are defined below to provide a consistent meaning to each action. Many of them have logical opposite actions. Those verbs with an opposite action are noted in parens if applicable.

  • authorize - authorize a token (used in OAuth)
  • add (remove) - add some object to a container object; the command is built in the order of "container add object" (<container> <object>), the positional arguments appear in the same order
  • attach (detach) - connect two objects (is this different from add/remove? not really, use the same argument order as add)
  • 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


Objects

Note: these need a review to sync up with the revised object names without dashes ('-') in them.


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


Cross API

Object names that appear in multiple APIs, like quota, are handled by putting their command handler classes in openstackclient.common. If the number of these becomes large they should be moved into a subdirectory.

credentials

[consider rolling the ec2 creds into this too]

OSC Command Implemented Keystone command
os credentials create
    --x509
    [<private-key-file>]
    [<certificate-file>]
no
nova x509-create-cert
    [<pk-file>]
    [<x509-cert>]
os credentials show
    [--token]
    [--user]
    [--x509 [--root]]
no
nova credentials
    [--wrap <integer>]

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

limits

OSC Command Implemented Keystone command
os limits show
    --absolute [--reserved] | --rate
yes
nova absolute-limits
    [--reserved]

nova rate-limits

cinder absolute-limits

cinder rate-limits

quota

OSC Command Implemented Keystone command
os quota set
    # Compute settings
    [--cores <num-cores>]
    [--fixed-ips <num-fixed-ips>]
    [--floating-ips <num-floating-ips>]
    [--injected-file-size <injected-file-bytes>]
    [--injected-files <num-injected-files>]
    [--instances <num-instances>] 
    [--key-pairs <num-key-pairs>]
    [--properties <num-properties>]
    [--ram <ram-mb>] 

    # Volume settings
    [--gigabytes <new-gigabytes>]
    [--snapshots <new-snapshots>]
    [--volumes <new-volumes>]

    <project>
yes
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>

cinder quota-update
    [--volumes <volumes>]
    [--snapshots <snapshots>]
    [--gigabytes <gigabytes>]
    <tenant_id>
os quota set
    --class
    # Compute settings
    [--cores <num-cores>]
    [--fixed-ips <num-fixed-ips>]
    [--floating-ips <num-floating-ips>]
    [--injected-file-size <injected-file-bytes>]
    [--injected-files <num-injected-files>]
    [--instances <num-instances>] 
    [--key-pairs <num-key-pairs>]
    [--properties <num-properties>]
    [--ram <ram-mb>] 

    # Volume settings
    [--gigabytes <new-gigabytes>]
    [--snapshots <new-snapshots>]
    [--volumes <new-volumes>]

    <class>
yes
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>

cinder quota-class-update
    [--volumes <volumes>]
    [--snapshots <snapshots>]
    [--gigabytes <gigabytes>]
    <tenant_id>
os quota show
    [--default]
    <project>
yes
nova quota-show
    [--tenant <tenant-id>]

cinder quota-show
    <tenant_id>

nova quota-defaults
    <tenant_id>

cinder quota-defaults
    <tenant_id>
os quota show
    --class
    <class>
yes
nova quota-class-show
    <class>

cinder quota-class-show
    <class>

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 catalog show
    [--service <service>]
no
keystone catalog
    [--service <service-type>]

ec2 credentials

OSC Command Implemented Keystone command
os ec2 credentials create
    [--project <project>]
    [--user <user>]
yes
keystone ec2-credentials-create
    [--user <user-id>] 
    [--tenant_id <tenant-id>]
os ec2 credentials delete
    [--user <user>]
    <access-key>
yes
keystone ec2-credentials-delete
    [--user <user-id>] 
    --access <access-key>
os ec2 credentials list
    [--user <user>]
yes
keystone ec2-credentials-list
    [--user <user-id>]
os ec2 credentials show
    [--user <user>]
    <access-key>
yes
keystone ec2-credentials-get
    [--user <user-id>] 
    --access <access-key>

endpoint

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

role

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

service

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

tenant

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

token

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

user

OSC Command Implemented Keystone command
os user create
    [--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 user delete
    <user>
yes
keystone user-delete
    <user-id>
os user list
    [--tenant <tenant>]
    [--long]
yes
keystone user-list
    [<tenant-id>]
os user set
    [--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 user show
    <user>
yes
keystone user-get
    <user-id>

user role

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

<other>

These keystone commands are not planned for re-implementation in OpenStackClient

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

API v3

credential

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

domain

OSC Command Implemented Keystone command
os domain create
    [--description <domain-description>]
    [--enable | --disable]
    <domain-name>
yes
keystone domain-create
    --name <domain-name>
    [--description <domain-description>]
    [--enabled <true|false>]
    [--private_project_names <true|false>]
    [--private_user_names <true|false>]
os domain delete
    <domain>
yes
keystone domain-delete
    <domain-id>
os domain list
yes
keystone domain-list
os domain set
    [--name <new-domain-name>]
    [--description <new-domain-description>]
    [--enable | --disable]
    <domain>
yes
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 domain show
    <domain>
yes
keystone domain-get
    <domain-id>

endpoint

OSC Command Implemented Keystone command
os endpoint create
    [--region <endpoint-region>
    [--enable | --disable]
    <service>
    <interface admin|public|internal>
    <url>
yes
keystone endpoint-create 
    [--region <endpoint-region>
    [--enable | --disable]
    <service_id>
    <interface admin|public|internal>
    <url>
os endpoint delete
    <endpoint-id>
yes
os endpoint list
    [--long]
yes
keystone endpoint-list
os endpoint set
    [--interface <endpoint-interface>]
    [--url <endpoint-url>]
    [--service <service-id>]
    [--region <endpoint-region>]
    [--enable | --disable]
    <endpoint>
yes
keystone endpoint-set
    [--interface <endpoint-interface>]
    [--url <endpoint-url>]
    [--service <service-id>]
    [--region <endpoint-region>]
    [--enable | --disable]
    <endpoint>
os endpoint show
    <endpoint>
yes
keystone endpoint-get 
    <endpoint>

group

OSC Command Implemented Keystone command
os group create
    [--domain <domain>]
    [--description <group-description>]
    <group-name>
yes
keystone group-create
    --name <group-name>
    [--domain_id <domain-id>]
    [--description <group-description>]
os group delete
    <group>
yes
keystone group-delete
    <group-id>
os group list
    [--long]
yes
keystone group-list
os group set
    [--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 group show
    <group>
yes
keystone group-get
    <group-id>

oauth

OSC Command Implemented Keystone command
os access token create
    --consumer-key <consumer-key>
    --consumer-secret <consumer-secret>
    --request-key <request-key>
    --request-secret <request-secret>
    --verifier <pin>
yes
n/a
look at some alternatives:
os oauth token create
    --consumer-key <consumer-key>
    --consumer-secret <consumer-secret>
    --request-key <request-key>
    --request-secret <request-secret>
    --verifier <pin>
nyet
* makes the token specific to oauth
* add [--oauth-ver X] if versioning for oauth2 is an issue?
os oauth token create
    --access
    --consumer-key <consumer-key>
    --consumer-secret <consumer-secret>
    --request-key <request-key>
    --request-secret <request-secret>
    --verifier <pin>

os oauth token create
    --request
    --consumer-key <consumer-key>
    --roles <roles>
nyet
* collapse 'access token' and 'request token' into 'oauth token'?

policy

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

project

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

role

OSC Command Implemented Keystone command
os role add
    [--user <user> | --group <group>]
    [--domain <domain> | --project <project>]
    <role>
yes
os role create
    <role-name>
yes
os role delete
    <role>
yes
os role list
yes
os role remove
    [--user <user> | --group <group>]
    [--domain <domain> | --project <project>]
    <role>
yes
os role set
    [--name <new-role-name>]
    <role>
yes
os role show
    <role>
yes

service

OSC Command Implemented Keystone command
os service create
	[--name <name>]
        [--enabled <true|false>]
        <type>
yes
keystone service-create
	[--name <name>]
        [--enabled <true|false>]
        <type>
os service delete
    <service>
yes
keystone service-delete
    <service_id>
os list service
yes
keystone service-list
os service set
    [--type <service-type>]
    [--name <new-name>]
    [--enable | --disable]
    <service>
yes
keystone service-set
    [--type <service-type>]
    [--name <new-name>]
    [--enable | --disable]
    <service>
os service show
    <service>
yes
keystone service-get 
    <service_id>

user

OSC Command Implemented Keystone command
os user create
    [--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 user delete
    <user>
yes
keystone user-delete
    <user-id>
os user list
    [--project <project>]
    [--long]
yes
keystone user-list
os user set
    [--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 user show
    <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 agent create
    <os>
    <architecture>
    <version>
    <url>
    <md5hash>
    <hypervisor>
yes
os agent delete
    <id>
yes
os agent list 
    [--hypervisor <hypervisor>]
yes
os agent set
    <id>
    <version>
    <url>
    <md5hash>
yes


aggregate

OSC Command Implemented Nova command
os aggregate add host
    <aggregate>
    <host>
yes
nova aggregate-add-host
    <id>
    <host>
os aggregate create
    [--zone <availability-zone>]
    [--property <key=value>]
    <name>
yes
nova aggregate-create
    <name>
    [<availability_zone>]
os aggregate delete
    <aggregate>
yes
nova aggregate-delete
    <id>
os aggregate list
    [--long]
yes
nova aggregate-list
os aggregate remove host
    <aggregate>
    <host>
yes
nova aggregate-remove-host
    <id>
    <host>
os aggregate set
    [--name <new-name>]
    [--zone <availability-zone>]
    [--property <key=value>]
    <aggregate>
yes
nova aggregate-update
    <id>
    <name>
    [<availability_zone>]

nova aggregate-set-metadata
    <id>
    <key=value>
    [<key=value> ...]
os aggregate show
    <aggregate>
yes
nova aggregate-details
    <id>

bash-completion

OSC Command Implemented Nova command

TBD

no
nova bash-completion

cloudpipe

OSC Command Implemented Nova command
os create cloudpipe
    <project>
no
nova cloudpipe-create
    <project>
os list cloudpipe
no
nova cloudpipe-list

console

OSC Command Implemented Nova command
os console log show
    [--lines <num-lines>]
    <server>
yes
nova console-log
    [--length <length>]
    <server>
os console url show
    [--novnc | --xvpvnc | --spice]
    <server>
yes
nova get-vnc-console
    <server>
    <console_type>

credentials

See credentials in the cross API section.

diagnostics

Consider implementing this as: show server --diagnostics <server>

OSC Command Implemented Nova command
os diagnostics show
    <server>
no
nova diagnostics
    <server>

dns

These commands need some attention...an IP shouldn't be required for all record types. They need to be more DNS-y. Zone anyone?

OSC Command Implemented Nova command
os create dns
    [--type <type>]
    <ip>
    <name>
    <domain>
no
nova dns-create
    [--type <type>]
    <ip>
    <name>
    <domain>
os delete dns
    <domain>
    <name>
no
nova dns-delete
    <domain>
    <name>
os list dns
    [--ip <ip>]
    [--name <name>]
    <domain>
no
nova dns-list
    [--ip <ip>]
    [--name <name>]
    <domain>
os create dns-domain
    [--project <project>]
    [--availability-zone <availability-zone>]
    [--public | --private]
    <domain>
no
nova dns-create-private-domain
    [--availability_zone <availability_zone>]
    <domain>

nova dns-create-public-domain
    [--project <project>]
    <domain>
os delete dns-domain
    <domain>
no
nova dns-delete-domain
    <domain>
os list dns-domains
no
nova dns-domains

endpoints

Totally duplicates Identity catalog command

OSC Command Implemented Nova command
os endpoint list
no
nova endpoints

fixed-ip

OSC Command Implemented Nova command
os ip fixed add
    <network>
    <server>
yes
nova add-fixed-ip
    <server>
    <network_id>
os ip fixed remove
    <ip-address>
    <server>
yes
nova remove-fixed-ip
    <server>
    <address>


flavor

OSC Command Implemented Nova command
os flavor create
    [--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 flavor delete
    <flavor>
yes
nova flavor-delete 
    <id>
os flavor list
yes
nova flavor-list
os flavor show
    <flavor>
yes


floating-ip

OSC Command Implemented Nova command
os ip floating add
    <ip-address>
    <server>
yes
nova add-floating-ip
    <server>
    <address>
os ip floating create
    [<pool>]
yes
nova floating-ip-create
    [<floating_ip_pool>]
os ip floating delete
    <ip-address>
yes
nova floating-ip-delete
    <address>
os ip floating list
yes
nova floating-ip-list
os ip floating remove
    <ip-address>
    <server>
yes
nova remove-floating-ip
    <server>
    <address>


floating-ip-pool

OSC Command Implemented Nova command
os ip floating pool list
yes
nova floating-ip-pool-list


host

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


hypervisor

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


keypair

OSC Command Implemented Nova command
os keypair create
    [--public-key <file>]
    <name>
yes
nova keypair-add
    [--pub_key <pub_key>]
    <name>
os keypair delete
    <name>
yes
nova keypair-delete
    <name>
os keypair list
yes
nova keypair-list
os keypair show
    [--public-key]
    <name>
yes


limits

See limits in the cross API section.

quota

See quota in the cross API section.


resource

OSC Command Implemented Nova command
os show resource
    <hostname>
no
nova describe-resource
    <hostname>

secgroup

OSC Command Implemented Nova command
os secgroup add

(see server add secgroup)
no
nova add-secgroup
    <server>
    <secgroup>
os secgroup create
    [--description <description>]
    <name>
yes
nova secgroup-create
    <name>
    <description>
os secgroup delete
    <group>
yes
nova secgroup-delete
    <secgroup>
os secgroup list
    [--all-projects]
yes
nova secgroup-list
     [--all-tenants [<0|1>]]
os secgroup remove

(see server remove secgroup)
no
nova remove-secgroup
    <server>
    <secgroup>
os secgroup set
    [--name <new-name>]
    [--description [<new-description>]
    <group>
yes
nova secgroup-update
    <secgroup>
    <name>
    <description>
os secgroup show
    <group>
yes
n/a

secgroup-group-rule

OSC Command Implemented Nova command
os secgroup group rule create
    [--proto <protocol>]
    [--port <port>:<port>]
    <source-group>
    <secgroup>
no
nova secgroup-add-group-rule
    [--ip_proto <ip_proto>]
    [--from_port <from_port>]
    [--to_port <to_port>]
    <secgroup>
    <source_group>
os secgroup group rule delete
    [--proto <protocol>]
    [--port <port>:<port>]
    <source-group>
    <secgroup>
no
nova secgroup-delete-group-rule
    [--ip_proto <ip_proto>]
    [--from_port <from_port>]
    [--to_port <to_port>]
    <secgroup>
    <source_group>

secgroup-rule

OSC Command Implemented Nova command
os secgroup rule create
    [--proto <proto>]
    [--src-ip <ip-address>]
    [--dst-port <port-range>]
    <group>
no
nova secgroup-add-rule
    <secgroup>
    <ip_proto>
    <from_port>
    <to_port>
    <cidr>
os secgroup rule delete
    [--proto <proto>]
    [--src-ip <ip-address>]
    [--dst-port <port-range>]
    <group>
no
nova secgroup-delete-rule
    <secgroup>
    <ip_proto>
    <from_port>
    <to_port>
    <cidr>
os secgroup rule list
    <group>
no
nova secgroup-list-rules
    <secgroup>

server

OSC Command Implemented Nova command
os server add secgroup
    <server>
    <group>
no
nova add-secgroup
    <server>
    <secgroup>
os server create
    --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 server delete
    <server>
yes
nova delete
    <server>
os server list
    [--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 server lock
    <server>
no
nova lock
    <server>
os server migrate
    --live
    [--block_migrate]
    [--disk_over_commit]
    <server>
    <host>

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

nova migrate
    [--poll]
    <server>
os server pause
    <server>
yes
nova pause
    <server>
os server reboot
    [--hard | --soft]
    [--wait]
    <server>
yes
nova reboot
    [--hard]
    [--poll]
    <server>
os server rebuild
    --image <image>
    [--password <password>] 
    [--wait]
    <server>
yes
nova rebuild
    [--rebuild_password <rebuild_password>] 
    [--poll]
    <server>
    <image>
os server remove secgroup
    <server>
    <group>
no
nova remove-secgroup
    <server>
    <secgroup>
os server rename
    <server>
    <new-name>
no
nova rename
    <server>
    <name>
os server rescue
    <server>
no
nova rescue
    <server>
os server resize
    --flavor <flavor>
    [--wait]
    <server>
no
nova resize
    [--poll]
    <server>
    <flavor>
os server resize
    --confirm
    <server>
no
nova resize-confirm
    <server>
os server resume
    <server>
yes
nova resume
    <server>
os server set
    --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 server set
    --root-password
    <server>
no
nova root-password
    <server>
os server show
    <server>
yes
nova show
    <server>
os server ssh
    [--port PORT]
    --private]
    [--ipv6]
    [--login <login>]
    <server>
no
nova ssh
    [--port PORT]
    [--private]
    [--ipv6]
    [--login <login>]
    <server>
os server suspend
    <server>
yes
nova suspend
    <server>
os server unlock
    <server>
no
nova unlock
    <server>
os server unpause
    <server>
yes
nova unpause
    <server>
os server unrescue
    <server>
no
nova unrescue
    <server>

usage

OSC Command Implemented Keystone command
os usage list
    [--start <start>]
    [--end <end>]
no
nova usage-list
    [--start <start>]
    [--end <end>]


volume

OSC Command Implemented Keystone command
os volume attach
    <volume>
    <server>
    <device>
no
nova volume-attach
    <server>
    <volume>
    <device>
os volume detach
    <server>
    <volume>
no
nova volume-detach
    <server>
    <volume>


x509-cert

See credentials in the cross API section.

x509-root-cert

See credentials in the cross API section.

Image

OSC Option Environment Variable Glance Option Environment Variable
--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
--os-token <token> OS_TOKEN --os-auth-token <token> OS_AUTH_TOKEN
--os-url <url> OS_URL --os-image-url <url> OS_IMAGE_URL
--os-cacert <file> OS_CACERT
--cert-file <file> CERT_FILE
--key-file <key-file> KEY_FILE
--no-ssl-compression


API v1

image

OSC Command Implemented Glance command
os image create
    [--id <id>]
    [--store <store>]
    [--container-format <format>]
    [--disk-format <format>]
    [--owner <tenant>]
    [--size <size-bytes>]
    [--min-disk <disk-gb>]
    [--min-ram <ram-mg>]
    [--location <image-url>]
    [--copy-from <image-url>]
    [--file <local-filename>]
    [--checksum <checksum>]
    [--protected | --unprotected]
    [--public | --private]
    [--property <key=value>]
    <name>
yes
glance image-create
    [--id <IMAGE_ID>]
    [--name <NAME>]
    [--disk-format <DISK_FORMAT>]
    [--container-format <CONTAINER_FORMAT>]
    [--owner <TENANT_ID>]
    [--size <SIZE>]
    [--min-disk <DISK_GB>]
    [--min-ram <DISK_RAM>]
    [--location <IMAGE_URL>]
    [--checksum <CHECKSUM>]
    [--copy-from <IMAGE_URL>]
    [--is-public [True|False]]
    [--is-protected [True|False]]
    [--property <key=value>]
    [--human-readable]
os image delete
    <image>
yes
glance image-delete
    <IMAGE_ID>
os image list
    [--page-size <size>]
yes
glance image-list
os image save
    [--file <filename>]
    <image>
yes
glance image-download
    [--file <FILE>]
    <IMAGE>
os image set
    [--name <name>]
    [--owner <tenant>]
    [--min-disk <disk-gb>]
    [--min-ram <ram-mg>]
    [--protected | --unprotected]
    [--public | --private]
    [--property <key=value>]
    <image>
yes
glance image-update
    [--name <NAME>]
    [--disk-format <DISK_FORMAT>]
    [--container-format <CONTAINER_FORMAT>]
    [--owner <TENANT_ID>]
    [--size <SIZE>]
    [--min-disk <DISK_GB>]
    [--min-ram <DISK_RAM>]
    [--location <IMAGE_URL>]
    [--file <FILE>]
    [--checksum <CHECKSUM>]
    [--copy-from <IMAGE_URL>]
    [--is-public [True|False]]
    [--is-protected [True|False]]
    [--property <key=value>]
    [--purge-props]
    [--human-readable]
    <IMAGE>
os image show
    <image>
yes
glance image-show
    [--human-readable]
    <IMAGE>

API v2

image

OSC Command Implemented Glance command
os image delete
    <image>
yes
glance image-delete
    <IMAGE_ID>
os image list
    [--page-size <size>]
yes
glance image-list
no
glance member-images
    [options]
    <MEMBER>
os image save
    [--file <filename>]
    <image>
yes
glance image-download
    [--file <FILE>]
    <IMAGE>
os image set
    [--id <id>]
    [--store <store>]
    [--container-format <format>]
    [--disk-format <format>]
    [--owner <tenant>]
    [--size <size-bytes>]
    [--min-disk <disk-gb>]
    [--min-ram <ram-mg>]
    [--location <image-url>]
    [--copy-from <image-url>]
    [--file <local-filename>]
    [--checksum <checksum>]
    [--protected | --unprotected]
    [--public | --private]
    [--property <key=value>]
    <name>
no
glance image-update
    [--name <NAME>]
    [--disk-format <DISK_FORMAT>]
    [--container-format <CONTAINER_FORMAT>]
    [--owner <TENANT_ID>]
    [--size <SIZE>]
    [--min-disk <DISK_GB>]
    [--min-ram <DISK_RAM>]
    [--location <IMAGE_URL>]
    [--file <FILE>]
    [--checksum <CHECKSUM>]
    [--copy-from <IMAGE_URL>]
    [--is-public [True|False]]
    [--is-protected [True|False]]
    [--property <key=value>]
    [--purge-props]
    [--human-readable]
    <IMAGE>
os image show
    <image>
yes
glance image-show
    [--human-readable]
    <IMAGE>


image-member

Need to discuss the future of these commands with markwash...

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

limits

See limits in the cross API section.

quota

See quota in the cross API section.

snapshot

OSC Command Implemented Cinder command
os snapshot create
    --name <name>
    [--description <description>]
    [--force]
    <volume>
yes
cinder snapshot-create
    --force <True|False>
    --display-name <display-name>
    --display-description <display-description>
    <volume-id>
os snapshot delete
    <snapshot>
yes
cinder snapshot-delete
    <snapshot-id>
os snapshot list
yes (no opts yet)
cinder snapshot-list 
    --all-tenants [<0|1>]
    --display-name <display-name>
    --status <status>
    --volume-id <volume-id>
os snapshot set
    [--name <new-name>]
    [--description <new-description>]
    <snapshot>
yes
cinder snapshot-rename
    --display-description <display-description>
    --display-name <display-name>
    <snapshot-id>
os snapshot show
    <snapshot>
yes
cinder snapshot-show
    <snapshot-id>

volume

OSC Command Implemented Cinder command
os volume create
    --size <size>
    [--description <description>]
    [--volume-type <volume-type>]
    [--snapshot-id <snapshot-id>]
    [--source <volid>]
    [--image <image-id>]
    [--availability-zone <availability-zone>]
    [--property <key=value>]
    [--user <user>]           # admin only
    [--project <project>]     # admin only
    <name>
yes
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 volume delete
    [--force]
    <volume>
yes
cinder delete
    <volume-id>

cinder force-delete
    <volume-id>
os volume list
    [--name <name>]
    [--status <status>]
    [--long]
    [--all-tenants]           # admin only
yes
cinder list 
    --all-tenants [<0|1>]
    --display-name <display-name>
    --status <status>
os volume set
    [--name <new-name>]
    [--description <new-description>]
    [--property <key=value>]
    <volume>
yes
cinder metadata
    <volume-id>
    <action>
    <key=value>

cinder rename
    --display-description <display-description>
    <volume-id>
    <display-name>
os volume show
    <volume>
yes
cinder show
    <volume-id>
os volume unset
    [--property <key=value>]
    <volume>
yes

volume-type

OSC Command Implemented Cinder command
os volume type create
    [--property <key=value>]
    <name>
yes
cinder type-create
    <type-name>
os volume type delete
    <volume-type>
yes
cinder type-delete
    <type-id>
os volume type list
    [--long]
yes
cinder type-list 

cinder extra-specs-list
os volume type set
    [--property <key=value>]
    <volume-type>
yes
cinder type-key
    <type-id>
    <set>
    <key=value>
os volume type unset
    [--property <key>]
    <volume-type>
yes
cinder type-key
    <type-id>
    <unset>
    <key>

Network

The Network commands in quantum have been in a bit of flux and are currently out of scope for OpenStackClient.

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