Difference between revisions of "UnifiedCLI/Mapping"
(→limits) |
(→limits) |
||
Line 197: | Line 197: | ||
<source lang="bash"> | <source lang="bash"> | ||
os limits show | os limits show | ||
− | --absolute | --rate | + | --absolute [--reserved] | --rate |
</source> | </source> | ||
|| no | || no |
Revision as of 20:52, 3 July 2013
Contents
- 1 OpenStackClient Commands
- 2 Command Structure
- 3 Command Mapping Summary
- 3.1 Cross API
- 3.2 Identity
- 3.3 Compute
- 3.3.1 API v2 (1.1)
- 3.3.1.1 agent
- 3.3.1.2 aggregate
- 3.3.1.3 bash-completion
- 3.3.1.4 cloudpipe
- 3.3.1.5 console
- 3.3.1.6 credentials
- 3.3.1.7 diagnostics
- 3.3.1.8 dns
- 3.3.1.9 endpoints
- 3.3.1.10 fixed-ip
- 3.3.1.11 flavor
- 3.3.1.12 floating-ip
- 3.3.1.13 floating-ip-pool
- 3.3.1.14 host
- 3.3.1.15 hypervisor
- 3.3.1.16 keypair
- 3.3.1.17 limits
- 3.3.1.18 quota
- 3.3.1.19 resource
- 3.3.1.20 secgroup
- 3.3.1.21 secgroup-group-rule
- 3.3.1.22 secgroup-rule
- 3.3.1.23 server
- 3.3.1.24 usage
- 3.3.1.25 volume
- 3.3.1.26 x509-cert
- 3.3.1.27 x509-root-cert
- 3.3.1 API v2 (1.1)
- 3.4 Image
- 3.5 Volume
- 3.6 Network
- 4 Options
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 * compute service list (here, 'access token' is a two-work single object) * user list role (needs more thinking)
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 asadd
) -
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 originalcreate
-
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 calledmetadata
-
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.
-
access-token
- Identity - OAuth access-token -
agent
- Compute - agent -
aggregate
- Compute - aggregate -
bash-completion
- Compute - bash-completion -
catalog
- Identity - catalog -
cloudpipe
- Compute - cloudpipe -
console
- Compute - console -
consumer
- Identity - an OAuth consumer -
credential
- Identity v3 - credential -
credentials
- Compute - credentials -
diagnostics
- Compute - diagnostics -
dns
- Compute - dns -
domain
- Identity v3 - domain -
ec2-credentials
- Identity - ec2-credentials -
endpoint
- Identity - endpoint -
endpoints
- Compute - endpoints -
fixed-ip
- Compute - fixed-ip -
flavor
- Compute - flavor -
floating-ip
- Compute - floating-ip -
floating-ip-pool
- Compute - floating-ip-pool -
group
- Identity v3 - group -
host
- Compute - host -
hypervisor
- Compute - hypervisor -
keypair
- Compute - keypair -
limits
- Compute - limits -
policy
- Identity v3 - policy -
project
- Identity v3 - project -
quota
- Compute - quota -
quota
- Volume - quota -
request-token
- Identity - OAuth request-token -
role
- Identity - role -
secgroup
- Compute - secgroup -
secgroup-group-rule
- Compute - secgroup-group-rule -
secgroup-rule
- Compute - secgroup-rule -
server
- Compute - server -
service
- Identity - service -
snapshot
- Volume - snapshot -
tenant
- Identity v2.0 - tenant -
token
- Identity - token -
user
- Identity - user -
user role
- Identity - user-role -
volume
- Volume - volume -
volume-type
- Volume - volume-type
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.
limits
OSC Command | Implemented | Keystone command | |
---|---|---|---|
os limits show
--absolute [--reserved] | --rate
|
no |
nova absolute-limits
nova rate-limits
cinder absolute-limits
cinder rate-limits
|
quota
OSC Command | Implemented | Keystone command | |
---|---|---|---|
os quota list
<project>
|
no |
| |
os quota set
# Compute settings
[--instances <instances>]
[--cores <cores>]
[--ram <ram>]
[--floating-ips <floating-ips>]
[--property-items <property-items>]
[--injected-files <injected-files>]
[--injected-file-content-bytes <injected-file-content-bytes>]
# Volume settings
[--volumes] <new-volumes>]
[--snapshots <snapshots>]
[--gigabytes <new-gigabytes>]
<project>
|
no |
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
[--instances <instances>]
[--cores <cores>]
[--ram <ram>]
[--floating-ips <floating-ips>]
[--property-items <property-items>]
[--injected-files <injected-files>]
[--injected-file-content-bytes <injected-file-content-bytes>]
# Volume settings
[--volumes] <new-volumes>]
[--snapshots <snapshots>]
[--gigabytes <new-gigabytes>]
<class>
|
no |
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
[--defaults]
<project>
|
no |
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>
|
no |
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
<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
access token
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
|
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>
|
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>
|
request token
OSC Command | Implemented | Keystone command | |
---|---|---|---|
os request token authorize
--consumer-key <consumer-key>
--consumer-secret <consumer-secret>
--request-key <request-key>
--request-secret <request-secret>
--user-token <token>
--roles <roles>
|
yes |
n/a
| |
os request token create
--consumer-key <consumer-key>
--consumer-secret <consumer-secret>
[--roles <roles>]
|
yes |
n/a
|
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 host add
<aggregate>
<host>
|
no |
nova aggregate-add-host
<id>
<host>
| |
os aggregate create
<name>
<availability_zone>
|
no |
nova aggregate-create
<name>
<availability_zone>
| |
os aggregate delete
<aggregate>
|
no |
nova aggregate-delete
<id>
| |
os aggregate list
|
no |
nova aggregate-list
| |
os aggregate host remove
<aggregate>
<host>
|
no |
nova aggregate-remove-host
<id>
<host>
| |
os aggregate set
[--name <new-name>]
[--zone <availability-zone>]
[--property <key=value>]
<aggregate>
|
no |
nova aggregate-update
<id>
<name>
[<availability_zone>]
nova aggregate-set-metadata
<id>
<key=value>
[<key=value> ...]
| |
os aggregate show
<aggregate>
|
no |
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
This may be better handled as part of the Identity API
OSC Command | Implemented | Nova command | |
---|---|---|---|
TBD
|
no |
nova credentials
|
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
<secgroup>
<server>
|
no |
nova add-secgroup
<server>
<secgroup>
| |
os secgroup create
[--description <description>]
<name>
|
yes |
nova secgroup-create
<name>
<description>
| |
os secgroup delete
<secgroup>
|
yes |
nova secgroup-delete
<secgroup>
| |
os secgroup list
[--all-tenants]
|
yes |
nova secgroup-list
[--all-tenants [<0|1>]]
| |
os secgroup remove
<secgroup>
<server>
|
no |
nova remove-secgroup
<server>
<secgroup>
|
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>]
[--src-port <port>]
[--dst-port <port>]
<secgroup>
|
no |
nova secgroup-add-rule
<secgroup>
<ip_proto>
<from_port>
<to_port>
<cidr>
| |
os secgroup rule delete
[--proto <proto>]
[--src-ip <ip-address>]
[--src-port <port>]
[--dst-port <port>]
<secgroup>
|
no |
nova secgroup-delete-rule
<secgroup>
<ip_proto>
<from_port>
<to_port>
<cidr>
| |
os secgroup rule list
<secgroup>
|
no |
nova secgroup-list-rules
<secgroup>
|
server
OSC Command | Implemented | Nova command | |
---|---|---|---|
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 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
OSC Command | Implemented | Keystone command | |
---|---|---|---|
os x509 cert create
[<private_key_file>]
[<x509_cert>]
|
no |
nova x509-create-cert
[<private_key_file>]
[<x509_cert>]
|
x509-root-cert
OSC Command | Implemented | Keystone command | |
---|---|---|---|
os show x509-root-cert
|
no |
nova x509-get-root-cert
[<filename>]
|
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]
|
API v2
image
OSC Command | Implemented | Glance command | |
---|---|---|---|
os image delete
<id>
|
yes |
glance image-delete
<IMAGE_ID>
| |
os image list
|
yes |
glance image-list
| |
os image show
<image>
|
yes |
glance image-show
<IMAGE_ID>
| |
|
no |
glance member-images
[options]
<MEMBER>
| |
os image show
<image>
|
yes |
glance show
[--human-readable]
<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 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>
|
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."