Jump to: navigation, search

Difference between revisions of "OpenStackClient/Commands"

(volume)
(Replaced content with "''[Note: The former content of this page was removed on 23Mar2016 as it was over 15 months out of date. The current information that was formerly on this page can be foun...")
 
(167 intermediate revisions by 7 users not shown)
Line 1: Line 1:
__TOC__
+
''[Note: The former content of this page was removed on 23Mar2016 as it was over 15 months out of dateThe current information that was formerly on this page can be found at [http://docs.openstack.org/developer/python-openstackclient/command-list.html OpenStack Documentation]'']
 
 
= Command Structure =
 
 
 
The detailed command structure is described in [[OpenStackClient/HumanInterfaceGuidelines#Command_Structure]].
 
 
 
== Command Arguments ==
 
 
 
* 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).
 
 
 
 
 
== 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>agent</code> - [[#Compute|Compute]] - [[#agent|agent]]
 
* <code>aggregate</code> - [[#Compute|Compute]] - [[#aggregate|aggregate]]
 
* <code>bash-completion</code> - [[#Compute|Compute]] - [[#bash-completion|bash-completion]]
 
* <code>catalog</code> - [[#Identity|Identity]] - [[#catalog|catalog]]
 
* <code>cloudpipe</code> - [[#Compute|Compute]] - [[#cloudpipe|cloudpipe]]
 
* <code>console</code> - [[#Compute|Compute]] - [[#console|console]]
 
* <code>consumer</code> - [[#Identity|Identity]] - an OAuth [[#consumer|consumer]]
 
* <code>credential</code> - [[#API_v3|Identity v3]] - [[#credential|credential]]
 
* <code>credentials</code> - [[#Compute|Compute]] - [[#credentials|credentials]]
 
* <code>diagnostics</code> - [[#Compute|Compute]] - [[#diagnostics|diagnostics]]
 
* <code>dns</code> - [[#Compute|Compute]] - [[#dns|dns]]
 
* <code>domain</code> - [[#API_v3|Identity v3]] - [[#domain|domain]]
 
* <code>ec2-credentials</code> - [[#Identity|Identity]] - [[#ec2-credentials|ec2-credentials]]
 
* <code>endpoint</code> - [[#Identity|Identity]] - [[#endpoint|endpoint]]
 
* <code>endpoints</code> - [[#Compute|Compute]] - [[#endpoints|endpoints]]
 
* <code>fixed-ip</code> - [[#Compute|Compute]] - [[#fixed-ip|fixed-ip]]
 
* <code>flavor</code> - [[#Compute|Compute]] - [[#flavor|flavor]]
 
* <code>floating-ip</code> - [[#Compute|Compute]] - [[#floating-ip|floating-ip]]
 
* <code>floating-ip-pool</code> - [[#Compute|Compute]] - [[#floating-ip-pool|floating-ip-pool]]
 
* <code>group</code> - [[#API_v3|Identity v3]] - [[#group|group]]
 
* <code>host</code> - [[#Compute|Compute]] - [[#host|host]]
 
* <code>hypervisor</code> - [[#Compute|Compute]] - [[#hypervisor|hypervisor]]
 
* <code>keypair</code> - [[#Compute|Compute]] - [[#keypair|keypair]]
 
* <code>limits</code> - [[#Compute|Compute]] - [[#limits|limits]]
 
* <code>policy</code> - [[#API_v3|Identity v3]] - [[#policy|policy]]
 
* <code>project</code> - [[#API_v3|Identity v3]] - [[#project|project]]
 
* <code>quota</code> - [[#Compute|Compute]] - [[#quota|quota]]
 
* <code>quota</code> - [[#Volume|Volume]] - [[#quota|quota]]
 
* <code>request-token</code> - [[#Identity|Identity]] - OAuth [[#request-token|request-token]]
 
* <code>role</code> - [[#Identity|Identity]] - [[#role|role]]
 
* <code>secgroup</code> - [[#Compute|Compute]] - [[#secgroup|secgroup]]
 
* <code>secgroup-group-rule</code> - [[#Compute|Compute]] - [[#secgroup-group-rule|secgroup-group-rule]]
 
* <code>secgroup-rule</code> - [[#Compute|Compute]] - [[#secgroup-rule|secgroup-rule]]
 
* <code>server</code> - [[#Compute|Compute]] - [[#server|server]]
 
* <code>service</code> - [[#Identity|Identity]] - [[#service|service]]
 
* <code>snapshot</code> - [[#Volume|Volume]] - [[#snapshot|snapshot]]
 
* <code>tenant</code> - [[#API_v2.0|Identity v2.0]] - [[#tenant|tenant]]
 
* <code>token</code> - [[#Identity|Identity]] - [[#token|token]]
 
* <code>user</code> - [[#Identity|Identity]] - [[#user|user]]
 
* <code>user role</code> - [[#Identity|Identity]] - [[#user-role|user-role]]
 
* <code>volume</code> - [[#Volume|Volume]] - [[#volume|volume]]
 
* <code>volume-type</code> - [[#Volume|Volume]] - [[#volume-type|volume-type]]
 
 
 
 
 
== Actions ==
 
 
 
The actions used by OpenStackClient are defined below to provide a consistent meaning to each action.  Many of them have logical opposite actions.  Those actions with an opposite action are noted in parens if applicable.
 
 
 
* <code>authorize</code> - authorize a token (used in OAuth)
 
* <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>attach</code> (<code>detach</code>) - deprecated; use <code>add</code>/<code>remove</code>
 
* <code>create</code> (<code>delete</code>) - create a new occurrance of the specified object
 
* <code>delete</code> (<code>create</code>) - delete a specific occurrance of the specified object
 
* <code>detach</code> (<code>attach</code>) - deprecated; use <code>add</code>/<code>remove</code>
 
* <code>list</code> - display summary information about multiple objects
 
* <code>lock</code> (<code>unlock</code>)
 
* <code>migrate</code> - move a server to a different host; <code><nowiki>--live</nowiki></code> performs a live migration if possible
 
* <code>pause</code> (<code>unpause</code>) - stop a server and leave it in memory
 
* <code>reboot</code> - forcibly reboot a server
 
* <code>rebuild</code> - rebuild a server using (most of) the same arguments as in the original <code><nowiki>create</nowiki></code>
 
* <code>remove</code> (<code>add</code>) - remove an object from a group of objects
 
* <code>rescue</code> (<code>unrescue</code>) - reboot a server in a special rescue mode allowing access to the original disks
 
* <code>resize</code> - change a server's flavor
 
* <code>resume</code> (<code>suspend</code>) - return a suspended server to running state
 
* <code>save</code> - download an object locally
 
* <code>set</code> (<code>unset</code>) - set a property on the object, formerly called <code>metadata</code>
 
* <code>show</code> - display detailed information about the specific object
 
* <code>ssh</code>
 
* <code>suspend</code> (<code>resume</code>) - stop a server and save to disk freeing memory
 
* <code>unlock</code> (<code>lock</code>)
 
* <code>unpause</code> (<code>pause</code>) - return a paused server to running state
 
* <code>unrescue</code> (<code>rescue</code>) - return a server to normal boot mode
 
* <code>unset</code> (<code>set</code>) - remove an attribute of the object
 
 
 
== Global Options ==
 
 
 
The common global options from the default [[OpenStack]] clients have been mapped to the set of global options below.
 
 
 
{| class="wikitable"
 
|-
 
! 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.
 
 
 
{| class="wikitable"
 
|-
 
! 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 <code><nowiki><verb> <object></nowiki></code> 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:
 
 
 
 
 
{| class="wikitable"
 
|-
 
| 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]''
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os credentials create
 
    --x509
 
    [<private-key-file>]
 
    [<certificate-file>]
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova x509-create-cert
 
    [<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>
 
|}
 
 
 
==== limits ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os limits show
 
    --absolute [--reserved] | --rate
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova absolute-limits
 
    [--reserved]
 
 
 
nova rate-limits
 
 
 
cinder absolute-limits
 
 
 
cinder rate-limits
 
</source>
 
|}
 
 
 
==== quota ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
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>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova quota-update
 
    [--instances <instances>]
 
    [--cores <cores>]
 
    [--ram <ram>]
 
    [--volumes <volumes>]
 
    [--gigabytes <gigabytes>]
 
    [--floating-ips <floating_ips>]
 
    [--metadata-items <metadata_items>]
 
    [--injected-files <injected_files>]
 
    [--injected-file-content-bytes <injected_file_content_bytes>]
 
    <tenant_id>
 
 
 
cinder quota-update
 
    [--volumes <volumes>]
 
    [--snapshots <snapshots>]
 
    [--gigabytes <gigabytes>]
 
    <tenant_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
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>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova quota-class-update
 
    [--instances <instances>]
 
    [--cores <cores>]
 
    [--ram <ram>]
 
    [--volumes <volumes>]
 
    [--gigabytes <gigabytes>]
 
    [--floating-ips <floating_ips>]
 
    [--metadata-items <metadata_items>]
 
    [--injected-files <injected_files>]
 
    [--injected-file-content-bytes <injected_file_content_bytes>]
 
    <class>
 
 
 
cinder quota-class-update
 
    [--volumes <volumes>]
 
    [--snapshots <snapshots>]
 
    [--gigabytes <gigabytes>]
 
    <tenant_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os quota show
 
    [--default]
 
    <project>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova quota-show
 
    [--tenant <tenant-id>]
 
 
 
cinder quota-show
 
    <tenant_id>
 
 
 
nova quota-defaults
 
    <tenant_id>
 
 
 
cinder quota-defaults
 
    <tenant_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os quota show
 
    --class
 
    <class>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova quota-class-show
 
    <class>
 
 
 
cinder quota-class-show
 
    <class>
 
</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">
 
os agent create
 
    <os>
 
    <architecture>
 
    <version>
 
    <url>
 
    <md5hash>
 
    <hypervisor>
 
</source>
 
|| yes
 
|| ||
 
|-
 
|
 
<source lang="bash">
 
os agent delete
 
    <id>
 
</source>
 
|| yes
 
|| ||
 
|-
 
|
 
<source lang="bash">
 
os agent list
 
    [--hypervisor <hypervisor>]
 
</source>
 
|| yes
 
|| ||
 
|-
 
|
 
<source lang="bash">
 
os agent set
 
    <id>
 
    <version>
 
    <url>
 
    <md5hash>
 
</source>
 
|| yes
 
|| ||
 
|}
 
 
 
 
 
==== aggregate ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os aggregate add host
 
    <aggregate>
 
    <host>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova aggregate-add-host
 
    <id>
 
    <host>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os aggregate create
 
    [--zone <availability-zone>]
 
    [--property <key=value>]
 
    <name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova aggregate-create
 
    <name>
 
    [<availability_zone>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os aggregate delete
 
    <aggregate>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova aggregate-delete
 
    <id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os aggregate list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova aggregate-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os aggregate remove host
 
    <aggregate>
 
    <host>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova aggregate-remove-host
 
    <id>
 
    <host>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os aggregate set
 
    [--name <new-name>]
 
    [--zone <availability-zone>]
 
    [--property <key=value>]
 
    <aggregate>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova aggregate-update
 
    <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>
 
|}
 
 
 
==== bash-completion ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
TBD
 
|| no
 
|| ||
 
<source lang="bash">
 
nova bash-completion
 
</source>
 
|}
 
 
 
==== cloudpipe ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os create cloudpipe
 
    <project>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova cloudpipe-create
 
    <project>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os list cloudpipe
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova cloudpipe-list
 
</source>
 
|}
 
 
 
==== console ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os console log show
 
    [--lines <num-lines>]
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova console-log
 
    [--length <length>]
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os console url show
 
    [--novnc | --xvpvnc | --spice]
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova get-vnc-console
 
    <server>
 
    <console_type>
 
</source>
 
|}
 
 
 
==== credentials ====
 
 
 
See [[#credentials|credentials]] in the [[#Cross_API|cross API section]].
 
 
 
==== diagnostics ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os server show
 
    --diagnostics
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova diagnostics
 
    <server>
 
</source>
 
|}
 
 
 
==== 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?''
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os create dns
 
    [--type <type>]
 
    <ip>
 
    <name>
 
    <domain>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova dns-create
 
    [--type <type>]
 
    <ip>
 
    <name>
 
    <domain>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os delete dns
 
    <domain>
 
    <name>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova dns-delete
 
    <domain>
 
    <name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os list dns
 
    [--ip <ip>]
 
    [--name <name>]
 
    <domain>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova dns-list
 
    [--ip <ip>]
 
    [--name <name>]
 
    <domain>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os create dns-domain
 
    [--project <project>]
 
    [--availability-zone <availability-zone>]
 
    [--public | --private]
 
    <domain>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova dns-create-private-domain
 
    [--availability_zone <availability_zone>]
 
    <domain>
 
 
 
nova dns-create-public-domain
 
    [--project <project>]
 
    <domain>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os delete dns-domain
 
    <domain>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova dns-delete-domain
 
    <domain>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os list dns-domains
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova dns-domains
 
</source>
 
|}
 
 
 
==== endpoints ====
 
 
 
''Totally duplicates Identity catalog command''
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os endpoint list
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova endpoints
 
</source>
 
|}
 
 
 
==== fixed-ip ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os ip fixed add
 
    <network>
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova add-fixed-ip
 
    <server>
 
    <network_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ip fixed remove
 
    <ip-address>
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova remove-fixed-ip
 
    <server>
 
    <address>
 
</source>
 
|}
 
 
 
 
 
==== flavor ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
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>
 
</source>
 
||
 
<source lang="bash">
 
(partial)
 
default: auto
 
default: 256M
 
default: 0G
 
default: 0G
 
default: 0G
 
default: 1
 
default: 1
 
default: public
 
 
 
</source>
 
|| ||
 
<source lang="bash">
 
nova flavor-create
 
    [--ephemeral <ephemeral>]
 
    [--swap <swap>]
 
    [--rxtx-factor <factor>]
 
    <name>
 
    <id>
 
    <ram>
 
    <disk>
 
    <vcpus>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os flavor delete
 
    <flavor>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova flavor-delete
 
    <id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os flavor list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova flavor-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os flavor show
 
    <flavor>
 
</source>
 
|| yes
 
|| ||
 
|}
 
 
 
 
 
==== floating-ip ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os ip floating add
 
    <ip-address>
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova add-floating-ip
 
    <server>
 
    <address>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ip floating create
 
    [<pool>]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova floating-ip-create
 
    [<floating_ip_pool>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ip floating delete
 
    <ip-address>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova floating-ip-delete
 
    <address>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ip floating list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova floating-ip-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ip floating remove
 
    <ip-address>
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova remove-floating-ip
 
    <server>
 
    <address>
 
</source>
 
|}
 
 
 
 
 
==== floating-ip-pool ====
 
 
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os ip floating pool list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova floating-ip-pool-list
 
</source>
 
|}
 
 
 
 
 
==== host ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os host list
 
    [--zone <availability-zone>]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova host-action
 
    [--action <action>]
 
    <hostname>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os host set
 
    ...
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova host-update
 
    [--status <status>]
 
    [--maintenance <maintenance_mode>]
 
    <hostname>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os host show
 
    <host>
 
</source>
 
|| yes
 
|| ||
 
|}
 
 
 
 
 
==== hypervisor ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os hypervisor list
 
    [--matching <hostname>]
 
</source>
 
|| yes
 
|| ||
 
|-
 
|
 
<source lang="bash">
 
os hypervisor show
 
    <id>
 
</source>
 
|| yes
 
|| ||
 
|}
 
 
 
 
 
==== keypair ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os keypair create
 
    [--public-key <file>]
 
    <name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova keypair-add
 
    [--pub_key <pub_key>]
 
    <name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os keypair delete
 
    <name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova keypair-delete
 
    <name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os keypair list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova keypair-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os keypair show
 
    [--public-key]
 
    <name>
 
</source>
 
|| yes
 
|| ||
 
|}
 
 
 
 
 
==== limits ====
 
 
 
See [[#limits|limits]] in the [[#Cross_API|cross API section]].
 
 
 
 
 
==== quota ====
 
 
 
See [[#quota|quota]] in the [[#Cross_API|cross API section]].
 
 
 
 
 
==== secgroup ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os secgroup add
 
 
 
(see server add secgroup)
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova add-secgroup
 
    <server>
 
    <secgroup>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup create
 
    [--description <description>]
 
    <name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova secgroup-create
 
    <name>
 
    <description>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup delete
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova secgroup-delete
 
    <secgroup>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup list
 
    [--all-projects]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova secgroup-list
 
    [--all-tenants [<0|1>]]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup remove
 
 
 
(see server remove secgroup)
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova remove-secgroup
 
    <server>
 
    <secgroup>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup set
 
    [--name <new-name>]
 
    [--description [<new-description>]
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova secgroup-update
 
    <secgroup>
 
    <name>
 
    <description>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup show
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
n/a
 
</source>
 
|}
 
 
 
==== secgroup-group-rule ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os secgroup group rule create
 
    [--proto <protocol>]
 
    [--port <port>:<port>]
 
    <source-group>
 
    <secgroup>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova secgroup-add-group-rule
 
    [--ip_proto <ip_proto>]
 
    [--from_port <from_port>]
 
    [--to_port <to_port>]
 
    <secgroup>
 
    <source_group>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup group rule delete
 
    [--proto <protocol>]
 
    [--port <port>:<port>]
 
    <source-group>
 
    <secgroup>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova secgroup-delete-group-rule
 
    [--ip_proto <ip_proto>]
 
    [--from_port <from_port>]
 
    [--to_port <to_port>]
 
    <secgroup>
 
    <source_group>
 
</source>
 
|}
 
 
 
==== secgroup-rule ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os secgroup rule create
 
    [--proto <proto>]
 
    [--src-ip <ip-address>]
 
    [--dst-port <port-range>]
 
    <group>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova secgroup-add-rule
 
    <secgroup>
 
    <ip_proto>
 
    <from_port>
 
    <to_port>
 
    <cidr>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup rule delete
 
    [--proto <proto>]
 
    [--src-ip <ip-address>]
 
    [--dst-port <port-range>]
 
    <group>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova secgroup-delete-rule
 
    <secgroup>
 
    <ip_proto>
 
    <from_port>
 
    <to_port>
 
    <cidr>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os secgroup rule list
 
    <group>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova secgroup-list-rules
 
    <secgroup>
 
</source>
 
|}
 
 
 
====server====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os server add secgroup
 
    <server>
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova add-secgroup
 
    <server>
 
    <secgroup>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
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>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova boot
 
    [--flavor <flavor>]
 
    [--image <image>]
 
    [--meta <key=value>]
 
    [--file <dst-path=src-path>]
 
    [--key_name <key_name>]
 
    [--user_data <user-data>]
 
    [--availability_zone <availability-zone>]
 
    [--security_groups <security_groups>]
 
    [--block_device_mapping <dev_name=mapping>]
 
    [--hint <key=value>]
 
    [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr>]
 
    [--config-drive <value>]
 
    [--poll]
 
    <name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server delete
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova delete
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
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]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova list
 
    [--reservation_id <reservation_id>]
 
    [--ip <ip_regexp>]
 
    [--ip6 <ip6_regexp>]
 
    [--name <name_regexp>]
 
    [--instance_name <name_regexp>]
 
    [--status <status>]
 
    [--flavor <flavor>] [--image <image>]
 
    [--host <hostname>]
 
    [--all_tenants [<0|1>]]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server lock
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova lock
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server migrate
 
    --live
 
    [--block_migrate]
 
    [--disk_over_commit]
 
    <server>
 
    <host>
 
 
 
os server migrate
 
    [--wait]
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova live-migration
 
    [--block_migrate]
 
    [--disk_over_commit]
 
    <server>
 
<host>
 
 
 
nova migrate
 
    [--poll]
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server pause
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova pause
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server reboot
 
    [--hard | --soft]
 
    [--wait]
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova reboot
 
    [--hard]
 
    [--poll]
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server rebuild
 
    --image <image>
 
    [--password <password>]
 
    [--wait]
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova rebuild
 
    [--rebuild_password <rebuild_password>]
 
    [--poll]
 
    <server>
 
    <image>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server remove secgroup
 
    <server>
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova remove-secgroup
 
    <server>
 
    <secgroup>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server rescue
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova rescue
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server resize
 
    --flavor <flavor>
 
    [--wait]
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova resize
 
    [--poll]
 
    <server>
 
    <flavor>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server resize
 
    --confirm
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova resize-confirm
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server resume
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova resume
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server set
 
    --name <new-name>
 
    --property <key=value>
 
    [--property <key=value>] ...
 
    --root-password
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova meta
 
    <server>
 
    <action>
 
    <key=value>
 
    [<key=value> ...]
 
 
 
nova rename
 
    <server>
 
    <name>
 
 
 
nova root-password
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server show
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova show
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server ssh
 
    [--port PORT]
 
    --private]
 
    [--ipv6]
 
    [--login <login>]
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova ssh
 
    [--port PORT]
 
    [--private]
 
    [--ipv6]
 
    [--login <login>]
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server suspend
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova suspend
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server unlock
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova unlock
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server unpause
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova unpause
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os server unrescue
 
    <server>
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova unrescue
 
    <server>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os unset server
 
    --property <key>
 
    [--property <key>] ...
 
    <server>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
nova meta
 
    <server>
 
    <action>
 
    <key=value>
 
    [<key=value> ...]
 
</source>
 
|}
 
 
 
==== usage ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Nova command
 
|-
 
|
 
<source lang="bash">
 
os usage list
 
    [--start <start>]
 
    [--end <end>]
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
nova usage-list
 
    [--start <start>]
 
    [--end <end>]
 
</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]].
 
 
 
 
 
== 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">
 
os catalog show
 
    [--service <service>]
 
</source>
 
|| no
 
|| ||
 
<source lang="bash">
 
keystone catalog
 
    [--service <service-type>]
 
</source>
 
|}
 
 
 
==== ec2 credentials ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os ec2 credentials create
 
    [--project <project>]
 
    [--user <user>]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone ec2-credentials-create
 
    [--user <user-id>]
 
    [--tenant_id <tenant-id>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ec2 credentials delete
 
    [--user <user>]
 
    <access-key>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone ec2-credentials-delete
 
    [--user <user-id>]
 
    --access <access-key>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ec2 credentials list
 
    [--user <user>]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone ec2-credentials-list
 
    [--user <user-id>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os ec2 credentials show
 
    [--user <user>]
 
    <access-key>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone ec2-credentials-get
 
    [--user <user-id>]
 
    --access <access-key>
 
</source>
 
|}
 
 
 
==== endpoint ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os endpoint create
 
    --publicurl <public-url>
 
    [--adminurl <admin-url>]
 
    [--internalurl <internal-url>]
 
    [--region <endpoint-region>]
 
    <service>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-create
 
    [--region <endpoint-region>]
 
    [--service_id <service-id>]
 
    [--publicurl <public-url>]
 
    [--adminurl <admin-url>]
 
    [--internalurl <internal-url>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint delete
 
    <endpoint-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-delete
 
    <endpoint-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint show
 
    [--type <endpoint-type>]
 
    [--attr <endpoint-attribute>]
 
    [--value <endpoint-value>]
 
    [--all]
 
    <service-type>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-get
 
    --service <service-type>
 
    [--endpoint_type <endpoint-type>]
 
    [--attr <service-attribute>]
 
    [--value <value>]
 
</source>
 
|}
 
 
 
==== role ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os role create
 
    <role-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone role-create --name
 
    <role-name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role delete
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone role-delete
 
    <role-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone role-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role show
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone role-get
 
    <role-id>
 
</source>
 
|}
 
 
 
==== service ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os service create
 
    [--type <service-type>]
 
    [--description <service-description>]
 
    <service-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-create
 
    --name <name>
 
    --type <type>
 
    [--description <service-description>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os service delete
 
    <service>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-delete
 
    <service-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os service list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os service show
 
    [--catalog]
 
    <service>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-get
 
    <service-id>
 
</source>
 
|}
 
 
 
==== tenant ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os tenant create
 
    [--description <description>]
 
    [--enable | --disable]
 
    <tenant-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone tenant-create
 
    --name <tenant-name>
 
    [--description <tenant-description>]
 
    [--enabled <true|false>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os tenant delete
 
    <tenant>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone tenant-delete
 
    <tenant>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os tenant list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone tenant-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os tenant set
 
    [--name <new-tenant-name>]
 
    [--description <new-tenant-description>]
 
    [--enable | --disable]
 
    <tenant>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone tenant-update
 
    [--name <tenant_name>]
 
    [--description <tenant-description>]
 
    [--enabled <true|false>]
 
    <tenant-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os tenant show
 
    <tenant>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone tenant-get
 
    <tenant-id>
 
</source>
 
|}
 
 
 
==== token ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os token show
 
    [--width <token-display-width>]
 
</source>
 
|| ??
 
|| ||
 
<source lang="bash">
 
keystone token-get [--wrap <integer>]
 
</source>
 
|}
 
 
 
==== user ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os user create
 
    [--password <user-password>]
 
    [--email <user-email>]
 
    [--tenant <tenant>]
 
    [--enable | --disable]
 
    <user-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-create
 
    --name <user-name>
 
    [--tenant_id <tenant-id>]
 
    [--pass <pass>]
 
    [--email <email>]
 
    [--enabled <true|false>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user delete
 
    <user>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-delete
 
    <user-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user list
 
    [--tenant <tenant>]
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-list
 
    [<tenant-id>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user set
 
    [--name <new-user-name>]
 
    [--password <user-password>]
 
    [--email <user-email>]
 
    [--tenant <tenant>]
 
    [--enable|--disable]
 
    <user>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-password-update
 
    --pass <password>
 
    <user-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user show
 
    <user>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-get
 
    <user-id>
 
</source>
 
|}
 
 
 
==== user role ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os user role add
 
    [--tenant <tenant>]
 
    <user>
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-role-add
 
    --user <user-id>
 
    --role <role-id>
 
    [--tenant_id <tenant-id>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user role list
 
    [--tenant <tenant>]
 
    [<user>]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-role-list
 
    [--user <user-id>]
 
    [--tenant_id <tenant-id>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user role remove
 
    [--tenant <tenant>]
 
    <user>
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-role-remove
 
    --user <user-id>
 
    --role <role-id>
 
    [--tenant_id <tenant-id>]
 
</source>
 
|}
 
 
 
==== <other> ====
 
 
 
These keystone commands are not planned for re-implementation in OpenStackClient
 
 
 
<source lang="bash">
 
keystone bootstrap
 
        --pass <password>
 
        [--user-name <user-name>]
 
        [--role-name <role-name>]
 
        [--tenant-name <tenant-name>]
 
</source>
 
 
 
<source lang="bash">
 
keystone discover
 
</source>
 
 
 
=== API v3 ===
 
 
 
==== credential ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os credential create
 
    [--project <project>]
 
    [--type ec2|cert]
 
    <user>
 
    <data>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone credential-create
 
    --user_id <user-id>
 
    --type <credential-type>
 
    --data <credential-data>
 
    [--project_id <project-id>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os credential delete
 
    <credential-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone credential-delete
 
    <credential-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os credential list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone credential-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os credential set
 
    [--user <user>]
 
    [--type ec2|cert]
 
    [--data <data>]
 
    [--project <project>]
 
    <credential-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone credential-update
 
    [--user <user>]
 
    [--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>
 
|}
 
 
 
==== domain ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os domain create
 
    [--description <domain-description>]
 
    [--enable | --disable]
 
    <domain-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone domain-create
 
    --name <domain-name>
 
    [--description <domain-description>]
 
    [--enabled <true|false>]
 
    [--private_project_names <true|false>]
 
    [--private_user_names <true|false>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os domain delete
 
    <domain>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone domain-delete
 
    <domain-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os domain list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone domain-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os domain set
 
    [--name <new-domain-name>]
 
    [--description <new-domain-description>]
 
    [--enable | --disable]
 
    <domain>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone domain-update
 
    [--name <domain_name>]
 
    [--description <domain-description>]
 
    [--enabled <true|false>]
 
    [--private_project_names <true|false>]
 
    [--private_user_names <true|false>]
 
    <domain-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os domain show
 
    <domain>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone domain-get
 
    <domain-id>
 
</source>
 
|}
 
 
 
==== endpoint ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os endpoint create
 
    [--region <endpoint-region>
 
    [--enable | --disable]
 
    <service>
 
    <interface admin|public|internal>
 
    <url>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-create
 
    [--region <endpoint-region>
 
    [--enable | --disable]
 
    <service_id>
 
    <interface admin|public|internal>
 
    <url>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint delete
 
    <endpoint-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint set
 
    [--interface <endpoint-interface>]
 
    [--url <endpoint-url>]
 
    [--service <service-id>]
 
    [--region <endpoint-region>]
 
    [--enable | --disable]
 
    <endpoint>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-set
 
    [--interface <endpoint-interface>]
 
    [--url <endpoint-url>]
 
    [--service <service-id>]
 
    [--region <endpoint-region>]
 
    [--enable | --disable]
 
    <endpoint>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os endpoint show
 
    <endpoint>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone endpoint-get
 
    <endpoint>
 
</source>
 
|}
 
 
 
==== group ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os group create
 
    [--domain <domain>]
 
    [--description <group-description>]
 
    <group-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone group-create
 
    --name <group-name>
 
    [--domain_id <domain-id>]
 
    [--description <group-description>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os group delete
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone group-delete
 
    <group-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os group list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone group-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os group set
 
    [--name <new-group-name>]
 
    [--domain <domain>]
 
    [--description <new-group-description>]
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone group-update
 
    [--name <group_name>]
 
    [--domain_id <domain-id>]
 
    [--description <group-description>]
 
    <group-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os group show
 
    <group>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone group-get
 
    <group-id>
 
</source>
 
|}
 
 
 
==== oauth ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os oauth request token create
 
    --consumer-key <consumer-key>
 
    --consumer-secret <consumer-secret>
 
    --roles <requested-roles>
 
</source>
 
|| yes
 
|| ||
 
n /a
 
|-
 
|
 
<source lang="bash">
 
os oauth request token authorize
 
    --request-key <request-key>
 
    --roles <requested-roles>
 
</source>
 
|| yes
 
|| ||
 
n /a
 
|-
 
|
 
<source lang="bash">
 
os oauth access token create
 
    --consumer-key <consumer-key>
 
    --consumer-secret <consumer-secret>
 
    --request-key <request-key>
 
    --request-secret <request-secret>
 
    --verifier <pin>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
n/a
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os oauth access token authenticate
 
    --consumer-key <consumer-key>
 
    --consumer-secret <consumer-secret>
 
    --access-key <access-key>
 
    --access-secret <access-secret>
 
</source>
 
|| yes
 
|| ||
 
n /a
 
|-
 
|
 
<source lang="bash">
 
os oauth authorization list
 
    user <user>
 
</source>
 
|| yes
 
|| ||
 
n /a
 
|-
 
|
 
<source lang="bash">
 
os oauth authorization delete
 
    user <user>
 
    access-id <access-id>
 
</source>
 
|| yes
 
|| ||
 
n /a
 
|-
 
|
 
<source lang="bash">
 
os oauth authorization show
 
    request-id <request-id>
 
</source>
 
|| yes
 
|| ||
 
n /a
 
|-
 
| look at some alternatives: || || ||
 
|-
 
|
 
<source lang="bash">
 
os oauth token create
 
    --consumer-key <consumer-key>
 
    --consumer-secret <consumer-secret>
 
    --request-key <request-key>
 
    --request-secret <request-secret>
 
    --verifier <pin>
 
</source>
 
|| nyet
 
|| ||
 
<source lang="bash">
 
* makes the token specific to oauth
 
* add [--oauth-ver X] if versioning for oauth2 is an issue?
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os oauth token create
 
    --request
 
    --consumer-key <consumer-key>
 
    --roles <roles>
 
</source>
 
|| nyet
 
|| ||
 
<source lang="bash">
 
* collapse 'access token' and 'request token' into 'oauth token'?
 
</source>
 
|}
 
 
 
==== policy ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os policy create
 
    [--type <policy-type>]
 
    --blob-file <blob-file>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone policy-create
 
    --type <policy-type>
 
    --blob <policy-blob>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os policy delete
 
    <policy-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone policy-delete
 
    <policy-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os policy list
 
    [--include-blob]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone policy-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os policy set
 
    [--type <policy-type>]
 
    [--blob-file<blob-file>]
 
    <policy-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone policy-update
 
    [--type <policy-type>]
 
    [--blob <policy-blob>]
 
    <policy-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os policy show
 
    <policy-id>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone policy-get
 
    <policy-id>
 
</source>
 
|}
 
 
 
==== project ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os project create
 
    [--domain <project-domain>]
 
    [--description <project-description>]
 
    [--enable | --disable]
 
    <project-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone project-create
 
    [--domain_id <domain_id>]
 
    [--description <description>]
 
    [--enable | --disable]
 
    <name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os project delete
 
    <project>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
os project-delete
 
    <project_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os project list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone project-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os project set
 
    [--name <new-project-name>]
 
    [--domain <project-domain>]
 
    [--description <new-project-description>]
 
    [--enable | --disable]
 
    <project>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone project-set
 
    [--name <new-project-name>]
 
    [--domain <project-domain>]
 
    [--description <new-project-description>]
 
    [--enable | --disable]
 
    <project_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os project show
 
    <project>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone project-get
 
    <project_id>
 
</source>
 
|}
 
 
 
==== role ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os role add
 
    [--user <user> | --group <group>]
 
    [--domain <domain> | --project <project>]
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role create
 
    <role-name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role delete
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role list
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role remove
 
    [--user <user> | --group <group>]
 
    [--domain <domain> | --project <project>]
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role set
 
    [--name <new-role-name>]
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os role show
 
    <role>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|}
 
 
 
==== service ====
 
 
 
{| class="wikitable"
 
|-
 
! 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 lang="bash">
 
os service delete
 
    <service>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-delete
 
    <service_id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os list service
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os service set
 
    [--type <service-type>]
 
    [--name <new-name>]
 
    [--enable | --disable]
 
    <service>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-set
 
    [--type <service-type>]
 
    [--name <new-name>]
 
    [--enable | --disable]
 
    <service>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os service show
 
    <service>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone service-get
 
    <service_id>
 
</source>
 
|}
 
 
 
==== user ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Keystone command
 
|-
 
|
 
<source lang="bash">
 
os user create
 
    [--password <password>]
 
    [--project <project>]
 
    [--email <user-email>]
 
    [--enable | --disable]
 
    <name>
 
</source>
 
|| yes
 
|| ||
 
<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 lang="bash">
 
os user delete
 
    <user>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-delete
 
    <user-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user list
 
    [--project <project>]
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user set
 
    [--name <new-name>]
 
    [--password <password>]
 
    [--project <project>]
 
    [--email <user-email>]
 
    [--enable | --disable]
 
    <user>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-update
 
    --user_id <user-id>
 
    [--name <user-name>]
 
    [--domain_id <domain-id>]
 
    [--default_project_id <project-id>]
 
    [--description <description>]
 
    [--enabled <true|false>]
 
    [--password <password>]
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os user show
 
    <user>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
keystone user-get
 
    <user-id>
 
</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 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 ...
 
</source>
 
 
 
 
 
<source lang="bash">
 
glance member-delete <IMAGE_ID> <TENANT_ID>
 
 
 
os list image-member <image> [options]
 
</source>
 
 
 
 
 
<source lang="bash">
 
glance member-delete [options] <ID> <MEMBER>
 
 
 
os delete image-member ...
 
</source>
 
 
 
 
 
<source lang="bash">
 
glance member-list [--image-id <IMAGE_ID>] [--tenant-id <TENANT_ID>]
 
 
 
os list image-member ...
 
</source>
 
 
 
== Volume ==
 
 
 
{| class="wikitable"
 
|-
 
! 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|limits]] in the [[#Cross_API|cross API section]].
 
 
 
==== quota ====
 
 
 
See [[#quota|quota]] in the [[#Cross_API|cross API section]].
 
 
 
==== snapshot ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Cinder command
 
|-
 
|
 
<source lang="bash">
 
os snapshot create
 
    --name <name>
 
    [--description <description>]
 
    [--force]
 
    <volume>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder snapshot-create
 
    --force <True|False>
 
    --display-name <display-name>
 
    --display-description <display-description>
 
    <volume-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os snapshot delete
 
    <snapshot>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder snapshot-delete
 
    <snapshot-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os snapshot list
 
</source>
 
|| yes (no opts yet)
 
|| ||
 
<source lang="bash">
 
cinder snapshot-list
 
    --all-tenants [<0|1>]
 
    --display-name <display-name>
 
    --status <status>
 
    --volume-id <volume-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os snapshot set
 
    [--name <new-name>]
 
    [--description <new-description>]
 
    <snapshot>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder snapshot-rename
 
    --display-description <display-description>
 
    --display-name <display-name>
 
    <snapshot-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os snapshot show
 
    <snapshot>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder snapshot-show
 
    <snapshot-id>
 
</source>
 
|}
 
 
 
==== volume ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Cinder command
 
|-
 
|
 
<source lang="bash">
 
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>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
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>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume delete
 
    [--force]
 
    <volume>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder delete
 
    <volume-id>
 
 
 
cinder force-delete
 
    <volume-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume list
 
    [--name <name>]
 
    [--status <status>]
 
    [--long]
 
    [--all-tenants]          # admin only
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder list
 
    --all-tenants [<0|1>]
 
    --display-name <display-name>
 
    --status <status>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume set
 
    [--name <new-name>]
 
    [--description <new-description>]
 
    [--property <key=value>]
 
    <volume>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder metadata
 
    <volume-id>
 
    <action>
 
    <key=value>
 
 
 
cinder rename
 
    --display-description <display-description>
 
    <volume-id>
 
    <display-name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume show
 
    <volume>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder show
 
    <volume-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume unset
 
    [--property <key>]
 
    <volume>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
</source>
 
|}
 
 
 
==== volume type ====
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Cinder command
 
|-
 
|
 
<source lang="bash">
 
os volume type create
 
    [--property <key=value>]
 
    <name>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder type-create
 
    <type-name>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume type delete
 
    <volume-type>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder type-delete
 
    <type-id>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume type list
 
    [--long]
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder type-list
 
 
 
cinder extra-specs-list
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume type set
 
    [--property <key=value>]
 
    <volume-type>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder type-key
 
    <type-id>
 
    <set>
 
    <key=value>
 
</source>
 
|-
 
|
 
<source lang="bash">
 
os volume type unset
 
    [--property <key>]
 
    <volume-type>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder type-key
 
    <type-id>
 
    <unset>
 
    <key>
 
</source>
 
|}
 
 
 
== Network ==
 
 
 
The Network commands in <code>quantum</code> have been in a bit of flux and are currently out of scope for OpenStackClient.
 
 
 
{| class="wikitable"
 
|-
 
! Command-line Option !! Environment Variable
 
|-
 
| -H HOST|--host=HOST
 
|-
 
| -p PORT|--port=PORT
 
|-
 
| -s|--ssl
 
|-
 
| -v|--verbose
 
|-
 
| -f LOGFILE|--logfile=LOGFILE
 
|-
 
| -t TOKEN|--token=TOKEN
 
|-
 
| --version=VERSION || QUANTUM_VERSION
 
|}
 
 
 
 
 
=== API v2.0 ===
 
 
 
* Verbs:
 
** quantum: create, delete, list, plug, show, update, unplug
 
** os: add, create, delete, list, remove, set, show
 
* Objects:
 
** quantum: iface, net, port
 
** os: interface, network, port
 
 
 
'''iface'''
 
 
 
<source lang="bash">
 
plug_iface <tenant-id> <net-id> <port-id> <iface-id>
 
 
 
add interface <tenant> <network> <port> <interface>
 
</source>
 
 
 
 
 
<source lang="bash">
 
show_iface <tenant-id> <net-id> <port-id>
 
 
 
show interface <tenant> <network> <port>
 
</source>
 
 
 
 
 
<source lang="bash">
 
unplug_iface <tenant-id> <net-id> <port-id>
 
 
 
remove interface <tenant> <network> <port>
 
</source>
 
 
 
 
 
'''net'''
 
 
 
<source lang="bash">
 
create_net <tenant-id> <net-name>
 
 
 
create network <tenant> <network-name>
 
</source>
 
 
 
 
 
<source lang="bash">
 
delete_net <tenant-id> <net-id>
 
 
 
delete <tenant> <network>
 
</source>
 
 
 
 
 
<source lang="bash">
 
list_nets <tenant-id>
 
 
 
list network <tenant>
 
</source>
 
 
 
 
 
<source lang="bash">
 
list_nets_detail <tenant-id>
 
 
 
list network --detail <tenant>
 
</source>
 
 
 
 
 
<source lang="bash">
 
show_net <tenant-id> <net-id>
 
 
 
show network <tenant> <network>
 
</source>
 
 
 
 
 
<source lang="bash">
 
show_net_detail <tenant-id> <net-id>
 
 
 
show network --detail <tenant> <network>
 
</source>
 
 
 
 
 
<source lang="bash">
 
update_net <tenant-id> <net-id> <new-name>
 
 
 
set network <tenant> <network> --name <name>
 
</source>
 
 
 
 
 
'''port'''
 
 
 
<source lang="bash">
 
create_port <tenant-id> <net-id>
 
 
 
create port <tenant> <network>
 
</source>
 
 
 
 
 
<source lang="bash">
 
delete_port <tenant-id> <net-id> <port-id>
 
 
 
delete port <tenant> <network> <port>
 
</source>
 
 
 
 
 
<source lang="bash">
 
list_ports <tenant-id> <net-id>
 
 
 
list port <tenant> <network>
 
</source>
 
 
 
 
 
<source lang="bash">
 
list_ports_detail <tenant-id> <net-id>
 
 
 
list port --detail <tenant> <network>
 
</source>
 
 
 
 
 
<source lang="bash">
 
show_port <tenant-id> <net-id> <port-id>
 
 
 
show port <tenant> <network> <port>
 
</source>
 
 
 
 
 
<source lang="bash">
 
show_port_detail <tenant-id> <net-id> <port-id>
 
 
 
show port --detail <tenant> <network> <port>
 
</source>
 
 
 
 
 
<source lang="bash">
 
update_port <tenant-id> <net-id> <port-id> <params>
 
 
 
set port <tenant> <network> <port> <params>
 
</source>
 
 
 
= Options =
 
 
 
In general, options will be transformed into more UNIX-like usage
 
 
 
* <code><nowiki>--enable true|false</nowiki></code> becomes <code><nowiki>--enable|--disable</nowiki></code>
 
 
 
''(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."
 
 
 
----
 
[[Category:Client]]
 

Latest revision as of 17:26, 23 March 2016

[Note: The former content of this page was removed on 23Mar2016 as it was over 15 months out of date. The current information that was formerly on this page can be found at OpenStack Documentation]