Difference between revisions of "UnifiedCLI/Mapping"
(Format agent and server commands (server incomplete)) |
|||
Line 1,598: | Line 1,598: | ||
[--key-name <key-name>] | [--key-name <key-name>] | ||
[--meta-data <key=value> [--meta-data <key=value] [...] ] | [--meta-data <key=value> [--meta-data <key=value] [...] ] | ||
− | + | [--file <dest-filename=source-filename>] [...] ] | |
[--user-data <user-data>] | [--user-data <user-data>] | ||
[--reservation-id <uuid>] | [--reservation-id <uuid>] | ||
Line 1,785: | Line 1,785: | ||
| | | | ||
<source lang="bash"> | <source lang="bash"> | ||
− | os resize server --flavor <flavor> [--wait] <server> | + | os resize server |
+ | --flavor <flavor> | ||
+ | [--wait] | ||
+ | <server> | ||
</source> | </source> | ||
|| no | || no | ||
|| || | || || | ||
<source lang="bash"> | <source lang="bash"> | ||
− | nova resize [--poll] <server> <flavor> | + | nova resize |
+ | [--poll] | ||
+ | <server> | ||
+ | <flavor> | ||
</source> | </source> | ||
|- | |- | ||
Line 1,808: | Line 1,814: | ||
| | | | ||
<source lang="bash"> | <source lang="bash"> | ||
− | os resume server <server> | + | os resume server |
+ | <server> | ||
</source> | </source> | ||
|| yes | || yes | ||
|| || | || || | ||
<source lang="bash"> | <source lang="bash"> | ||
− | nova resume <server> | + | nova resume |
+ | <server> | ||
</source> | </source> | ||
|- | |- | ||
| | | | ||
− | |||
− | |||
<source lang="bash"> | <source lang="bash"> | ||
− | + | os resize server | |
− | + | --revert | |
− | + | <server> | |
+ | </source> | ||
+ | || no | ||
+ | || || | ||
+ | <source lang="bash"> | ||
+ | nova resize-revert | ||
+ | <server> | ||
</source> | </source> | ||
− | + | |- | |
− | + | | | |
<source lang="bash"> | <source lang="bash"> | ||
− | |||
− | |||
os set server | os set server | ||
− | + | --meta-data <key=value> | |
− | + | [--meta-data <key=value>] ... | |
− | + | <server> | |
os unset server | os unset server | ||
− | + | --meta-data <key> | |
− | + | [--meta-data <key>] ... | |
− | + | <server> | |
+ | </source> | ||
+ | || no | ||
+ | || || | ||
+ | <source lang="bash"> | ||
+ | nova meta | ||
+ | <server> | ||
+ | <action> | ||
+ | <key=value> | ||
+ | [<key=value> ...] | ||
</source> | </source> | ||
− | + | |- | |
− | + | | | |
+ | <source lang="bash"> | ||
+ | os set server | ||
+ | --root-password | ||
+ | <server> | ||
+ | </source> | ||
+ | || no | ||
+ | || || | ||
+ | <source lang="bash"> | ||
+ | nova root-password | ||
+ | <server> | ||
+ | </source> | ||
+ | |- | ||
+ | | | ||
<source lang="bash"> | <source lang="bash"> | ||
− | + | os show server | |
− | + | <server> | |
− | |||
</source> | </source> | ||
− | + | || yes | |
− | + | || || | |
<source lang="bash"> | <source lang="bash"> | ||
− | nova show | + | nova show |
− | + | <server> | |
− | |||
</source> | </source> | ||
− | + | |- | |
− | + | | | |
<source lang="bash"> | <source lang="bash"> | ||
− | |||
− | |||
os ssh server | os ssh server | ||
− | + | [--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 suspend server | ||
+ | <server> | ||
+ | </source> | ||
+ | || yes | ||
+ | || || | ||
+ | <source lang="bash"> | ||
+ | nova suspend | ||
+ | <server> | ||
+ | </source> | ||
+ | |- | ||
+ | | | ||
+ | <source lang="bash"> | ||
+ | os unlock server | ||
+ | <server> | ||
+ | </source> | ||
+ | || no | ||
+ | || || | ||
+ | <source lang="bash"> | ||
+ | nova unlock | ||
+ | <server> | ||
</source> | </source> | ||
− | + | |- | |
− | + | | | |
<source lang="bash"> | <source lang="bash"> | ||
− | + | os unpause server | |
− | + | <server> | |
− | |||
</source> | </source> | ||
− | + | || yes | |
− | + | || || | |
<source lang="bash"> | <source lang="bash"> | ||
− | nova | + | nova unpause |
− | + | <server> | |
− | |||
</source> | </source> | ||
− | + | |- | |
− | + | | | |
<source lang="bash"> | <source lang="bash"> | ||
− | + | os unrescue server | |
− | + | <server> | |
− | |||
</source> | </source> | ||
− | + | || no | |
− | + | || || | |
<source lang="bash"> | <source lang="bash"> | ||
− | nova unrescue | + | nova unrescue |
− | + | <server> | |
− | |||
</source> | </source> | ||
+ | |} | ||
Revision as of 23:55, 1 March 2013
OpenStackClient Commands
Part of the UnifiedCLI proposal
[Note that the use of the word object here is its generic meaning as the target of an action.]
Command Structure
Verbs
The verbs used by the default OpenStack clients have been mapped to the set below that attempts to define a consistent meaning to each action. Many of them have logical opposite actions. Those verbs with an opposite action is noted in parens if applicable.
-
add
(remove
) - add an object to a container which itself is usually another object; the command is built in the order of "add object1 to object2" (<object1>-<object2>), the positional arguments also appear in that order -
attach
(detach
) - connect two objects (is this different from add/remove?) -
create
(delete
) - create a new occurrance of the specified object -
delete
(create
) - delete a specific occurrance of the specified object -
detach
(attach
) - disconnect two objects (is this different from add/remove?) -
list
- display summary information about multiple objects - lock (unlock)
-
migrate
- move a server to a different host;--live
performs a live migration if possible -
pause
(unpause
) - stop a server and leave it in memory -
reboot
- forcibly reboot a server -
rebuild
- rebuild a server using (most of) the same arguments as in the 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
Global Options
The common global options from the default OpenStack clients have been mapped to the set of global options below.
Option | Environment Variable | OSC Option | Environment Variable | |
---|---|---|---|---|
--version | --version | |||
--help | --help | |||
--debug | --debug | |||
--quiet | ||||
--verbose | ||||
--log-file <filename> | ||||
--os-auth-url <url> | OS_AUTH_URL | --os-auth-url | OS_AUTH_URL | |
--os-tenant-name <name> | OS_TENANT_NAME | --os-tenant-name <name> | OS_TENANT_NAME | |
--os-tenant-id <id> | OS_TENANT_ID | --os-tenant-id <id> | OS_TENANT_ID | |
--os-username <name> | OS_USERNAME | --os-username <name> | OS_USERNAME | |
--os-password <pw> | OS_PASSWORD | --os-password <pw> | OS_PASSWORD | |
--os-region-name <region> | OS_REGION_NAME | --os-region-name <region> | OS_REGION_NAME | |
--os-cacert <file> | OS_CACERT | --os-cacert <file> | OS_CACERT | |
--insecure | ||||
--os-use-keyring |
Common Options
A number of options will appear in many commands and should have the same form in all commands to the extent possible.
Option | Description | Usual Default |
---|---|---|
--description | describes an object | none |
--enable | Used for setting the enabled state for an object | n/a |
--disable | Used for setting the enabled state for an object | n/a |
Command Mapping Summary
This is an example mapping of the existing commands from Keystone (Identity), Nova (Compute), Glance (Image) and Cinder (Volume) to the <verb> <object>
form for the OpenStackClient cli tool. It reduces both the number of verbs and objects by handling some of the smaller differences with command line options.
Further consolidation could be achieved by additional options or by introduction secondary objects to the syntax. For example, the credentials and x509-cert (and x509-root-cert) objects could be combined:
nova x509-create-cert [<pk-file>] [<x509-cert>] | os create credentials --x509 [<pk-file>] [<x509-cert>] |
nova credentials | os show credentials |
nova x509-get-root-cert | os show credentials --x509 --root |
Identity
Keystone Option | Environment Variable | OSC Option | Environment Variable | |
---|---|---|---|---|
--os-identity-api-version <ver> | OS_IDENTITY_API_VERSION | --os-identity-api-version <ver> | OS_IDENTITY_API_VERSION | |
--os-token <token> | OS_SERVICE_TOKEN | --os-token <token> | OS_TOKEN | |
--os-endpoint <url> | OS_SERVICE_ENDPOINT | --os-url <url> | OS_URL | |
--os-cert <file> | OS_CERT | |||
--os-key <key-file> | OS_KEY | |||
--os-cache | OS_CACHE | |||
--force-new-token | ||||
--stale-duration <seconds> |
API v2.0
token
keystone token-get [--wrap <integer>]
os show token [--width <pki-token-display-width>]
OS Command | Keystone Command | |
---|---|---|
os show token
[--width <token-display-width>]
|
keystone token-get [--wrap <integer>]
|
catalog
keystone catalog [--service <service-type>]
os show service [--catalog <service-type>]
ec2-credentials
keystone ec2-credentials-create [--user <user-id>]
[--tenant_id <tenant-id>]
os create ec2-credentials --tenant_id <tenant-id> [--user <user-id>]
## are both args really optional?
keystone ec2-credentials-delete [--user <user-id>]
--access <access-key>
os delete ec2-credentials <access-key>
## what changes if --user is not provided?
keystone ec2-credentials-get [--user <user-id>]
--access <access-key>
os show ec2-credentials <access-key>
## what changes if --user is not provided?
keystone ec2-credentials-list [--user <user-id>]
os list ec2-credentials [--user <user-id>]
endpoint
OS Command | Keystone Command | |
---|---|---|
os create endpoint
[--region <endpoint-region>
[--publicurl <public-url>]
[--adminurl <admin-url>]
[--internalurl <internal-url>]
<service>
|
keystone endpoint-create
[--region <endpoint-region>]
[--service_id <service-id>]
[--publicurl <public-url>]
[--adminurl <admin-url>]
[--internalurl <internal-url>]
| |
os delete endpoint <endpoint-id>
|
keystone endpoint-delete <endpoint-id>
| |
os list endpoint [--long]
|
keystone endpoint-list
| |
os show endpoint
[--type <endpoint-type>]
[--attr <endpoint-attribute>]
[--value <endpoint-value>]
<service>
|
keystone endpoint-get
--service <service-type>
[--endpoint_type <endpoint-type>]
[--attr <service-attribute>]
[--value <value>]
| |
os show endpoint
[--all]
<service>
|
role
keystone role-create --name <role-name>
os create role <role-name>
keystone role-delete <role-id>
os delete role <role>
keystone role-get <role-id>
os show role <role>
keystone role-list
os list role
service
keystone service-create --name <name>
--type <type>
[--description <service-description>]
os create service
[--type <service-type>]
[--description <service-description>]
<service-name>
keystone service-delete <service-id>
os delete service <service>
keystone service-get <service-id>
os show service <service>
keystone service-list
os list service [--long]
tenant
keystone tenant-create --name <tenant-name>
[--description <tenant-description>]
[--enabled <true|false>]
os create tenant
[--description <tenant-description>]
[--enable | --disable]
<tenant-name>
keystone tenant-delete <tenant-id>
os delete tenant <tenant>
keystone tenant-get <tenant-id>
os show tenant <tenant>
keystone tenant-list
os list tenant [--long]
keystone tenant-update
[--name <tenant_name>]
[--description <tenant-description>]
[--enabled <true|false>]
<tenant-id>
os set tenant
[--name <new-tenant-name>]
[--description <new-tenant-description>]
[--enable | --disable]
<tenant>
user
keystone user-create --name <user-name>
[--tenant_id <tenant-id>]
[--pass <pass>]
[--email <email>]
[--enabled <true|false>]
os create user
[--password <user-password>]
[--email <user-email>]
[--tenant <tenant>]
[--enable | --disable]
<user-name>
keystone user-delete <user-id>
os delete user <user>
keystone user-get <user-id>
os show user <user>
keystone user-list [<tenant-id>]
os list user [--tenant <tenant>] [--long]
keystone user-password-update --pass <password> <user-id>
os set user
[--name <new-user-name>]
[--password <user-password>]
[--email <user-email>]
[--tenant <tenant>]
[--enable|--disable]
<user>
user-role
keystone user-role-add --user <user-id>
--role <role-id>
[--tenant_id <tenant-id>]
os add role-user
[--tenant <tenant>]
<role> <user>
keystone user-role-list [--user <user-id>]
[--tenant_id <tenant-id>]
os list role-user
[--tenant <tenant>]
[<user>]
keystone user-role-remove --user <user-id>
--role <role-id>
[--tenant_id <tenant-id>]
os remove role-user
[--tenant <tenant>]
<role> <user>
<other>
keystone bootstrap
--pass <password>
[--user-name <user-name>]
[--role-name <role-name>]
[--tenant-name <tenant-name>]
##TBD
keystone discover
##TBD
API v3
credential
keystone credential-create --user_id <user-id>
--type <credential-type>
--data <credential-data>
[--project_id <project-id>]
os create credential
[--project <project>]
<user>
<type>
<data>
keystone credential-delete <credential-id>
os delete credential <credential-id>
keystone credential-get <credential-id>
os show credential <credential-id>
keystone credential-list
os list credential [--long]
keystone credential-update
[--user <user>]
[--type <type>]
[--data <data>]
[--project <project>]
<credential-id>
os set credential
[--user <user>]
[--type <type>]
[--data <data>]
[--project <project>]
<credential-id>
domain
keystone domain-create --name <domain-name>
[--description <domain-description>]
[--enabled <true|false>]
[--private_project_names <true|false>]
[--private_user_names <true|false>]
os create domain
[--description <domain-description>]
[--enable | --disable]
[--private_project_names]
[--private_user_names]
<domain-name>
keystone domain-delete <domain-id>
os delete domain <domain>
keystone domain-get <domain-id>
os show domain <domain>
keystone domain-list
os list domain [--long]
keystone domain-update
[--name <domain_name>]
[--description <domain-description>]
[--enabled <true|false>]
[--private_project_names <true|false>]
[--private_user_names <true|false>]
<domain-id>
os set domain
[--name <new-domain-name>]
[--description <new-domain-description>]
[--private_project_names]
[--private_user_names]
[--enable | --disable]
<domain>
endpoint
keystone endpoint-create --service_id <service-id>
--interface <endpoint-interface>
--url <endpoint-url>
[--region <endpoint-region>]
[--enabled <true|false>]
os create endpoint
[--region <endpoint-region>]
[--enabled <true|false>]
<service-id>
<endpoint-interface>
<endpoint-url>
keystone endpoint-delete <endpoint-id>
os delete endpoint <endpoint-id>
keystone endpoint-list
os list endpoint [--long]
keystone enpoint-get <endpoint-id>
os show endpoint <endpoint-id>
keystone endpoint-update --endpoint_id <endpoint-id>
[--region <endpoint-region>]
[--enabled <true|false>]
[<service-id>]
[<endpoint-interface>]
[<endpoint-url>]
os update endpoint
[--region <endpoint-region>]
[--enabled <true|false>]
[--service <service-id>]
[--interface <endpoint-interface>]
[--url <endpoint-url>]
<endpoint-id>
group
keystone group-create --name <group-name>
[--domain_id <domain-id>]
[--description <group-description>]
os create group
[--domain <domain>]
[--description <group-description>]
<group-name>
keystone group-delete <group-id>
os delete group <group>
keystone group-get <group-id>
os show group <group>
keystone group-list
os list group [--long]
keystone group-update
[--name <group_name>]
[--domain_id <domain-id>]
[--description <group-description>]
<group-id>
os set group
[--name <new-group-name>]
[--domain <domain>]
[--description <new-group-description>]
<group>
policy
keystone policy-create --type <policy-type>
--blob <policy-blob>
os create policy
--type <policy-type>
--blob <policy-blob>
keystone policy-delete <policy-id>
os delete policy <policy-id>
keystone policy-get <policy-id>
os show policy <policy-id>
keystone policy-list
os list policy [--long]
keystone policy-update
[--type <policy-type>]
[--blob <policy-blob>]
<policy-id>
os set policy
[--type <policy-type>]
[--blob <policy-blob>]
<policy-id>
project
keystone project-create --name <project-name>
[--domain_id <project-domain-id>]
[--description <project-description>]
[--enabled <true|false>]
os create project
[--domain <project-domain>]
[--description <project-description>]
[--enable | --disable]
<project-name>
keystone project-delete <project-id>
os delete project <project>
keystone project-get <project-id>
os show project <project>
keystone project-list
os list project [--long]
keystone project-update
[--name <project_name>]
[--domain_id <project-domain-id>]
[--description <project-description>]
[--enabled <true|false>]
<project-id>
os set project
[--name <new-project-name>]
[--domain <project-domain>]
[--description <new-project-description>]
[--enable | --disable]
<project>
role
keystone role-create --name <role-name>
os create role <role-name>
keystone role-delete <role-id>
os delete role <role>
keystone role-get <role-id>
os show role <role>
keystone role-list
os list role
keystone role-update <role-id>
os update role <role>
service
keystone service-create --type <type>
[--name <name>]
[--enabled <true|false>]
os create service
[--name <name>]
[--enabled <true|false>]
<type>
keystone service-delete <service-id>
os delete service <service>
keystone service-get <service-id>
os show service <service>
keystone service-list
os list service [--long]
keystone service-update --service_id <service-id>
[--type <type>]
[--name <name>]
[--enabled <true|false>]
os update service
[--type <type>]
[--name <name>]
[--enabled <true|false>]
<service>
user
keystone user-create --name <user-name>
[--domain_id <domain-id>]
[--default_project_id <project-id>]
[--description <description>]
[--enabled <true|false>]
[--password <password>]
os create user
[--domain_id <domain-id>]
[--default_project_id <project-id>]
[--description <description>]
[--enabled <true|false>]
[--password <password>]
<user-name>
keystone user-delete <user-id>
os delete user <user>
keystone user-get <user-id>
os show user <user>
keystone user-list
os list user [--long]
keystone user-update --user_id <user-id>
[--name <user-name>]
[--domain_id <domain-id>]
[--default_project_id <project-id>]
[--description <description>]
[--enabled <true|false>]
[--password <password>]
os set user
[--domain_id <domain-id>]
[--default_project_id <project-id>]
[--description <description>]
[--enabled <true|false>]
[--password <password>]
[--user_name <user-name>]
<user>
Compute
Nova Option | Environment Variable | OSC Option | Environment Variable | |
---|---|---|---|---|
--os-auth-system <auth-system> | OS_AUTH_SYSTEM | |||
--service-type <type> | ||||
--service-name <name> | NOVA_SERVICE_NAME | |||
--volume-service-name <name> | NOVA_VOLUME_SERVICE_NAME | |||
--endpoint-type <type> | NOVA_ENDPOINT_TYPE | |||
--os-compute-api-version <ver> | OS_COMPUTE_API_VERSION | --os-compute-api-version <ver> | OS_COMPUTE_API_VERSION | |
--bypass-url <bypass-url> |
API v2 (1.1)
agent
flavor
OSC Command | Implemented | Nova command | |
---|---|---|---|
os create agent
<os>
<architecture>
<version>
<url>
<md5hash>
<hypervisor>
|
yes | ||
os delete agent
<id>
|
yes | ||
os list agent
[--hypervisor <hypervisor>]
|
yes | ||
os set agent
<id>
<version>
<url>
<md5hash>
|
yes |
aggregate
nova aggregate-create <name> <availability_zone>
os create aggregate ...
nova aggregate-delete <id>
os delete aggregate ...
nova aggregate-details <id>
os show aggregate ...
nova aggregate-list
os list aggregate
nova aggregate-update <id> <name> [<availability_zone>]
os set aggregate ...
nova aggregate-set-metadata <id> <key=value> [<key=value> ...]
os set aggregate --metadata ...
aggregate-host
nova aggregate-add-host <id> <host>
os add aggregate-host ...
nova aggregate-remove-host <id> <host>
os remove aggregate-host ...
bash-completion
nova bash-completion
os show bash-completion
cloudpipe
nova cloudpipe-create <project>
os create cloudpipe ...
nova cloudpipe-list
os list cloudpipe
console
nova console-log [--length <length>] <server>
os show console ...
nova get-vnc-console <server> <console_type>
os show console [--vnc] ...
credentials
nova credentials
os show credentials
diagnostics
nova diagnostics <server>
os show diagnostics ...
dns
nova dns-create [--type <type>] <ip> <name> <domain>
os create dns ...
nova dns-delete <domain> <name>
os delete dns ...
nova dns-list [--ip <ip>] [--name <name>] <domain>
os list dns ...
dns-domain
nova dns-create-private-domain [--availability_zone <availability_zone>]
<domain>
os create dns-domain [--private] ...
dns-public-domain
nova dns-create-public-domain [--project <project>] <domain>
os create dns-domain [--public] ...
nova dns-delete-domain <domain>
os delete dns-domain ...
nova dns-domains
os list dns-domains
endpoints
nova endpoints
os list endpoints
# does this overlap with keystone?
fixed-ip
nova add-fixed-ip <server> <network_id>
os add fixed-ip ...
nova remove-fixed-ip <server> <address>
os remove fixed-ip ...
flavor
OSC Command | Implemented | Nova command | |
---|---|---|---|
os create flavor
[--disk <size-gb>]
[--ephemeral-disk <size-gb>]
[--id <id>]
[--ram <size-mb>]
[--swap <size-mb>]
[--rxtx-factor <factor>]
[--vcpus <num-cpu>]
<name>
|
(partial) |
nova flavor-create
[--ephemeral <ephemeral>]
[--swap <swap>]
[--rxtx-factor <factor>]
<name>
<id>
<ram>
<disk>
<vcpus>
| |
os delete flavor
<flavor>
|
yes |
nova flavor-delete
<id>
| |
os list flavor
|
yes |
nova flavor-list
| |
os show flavor
<flavor>
|
yes |
floating-ip
nova add-floating-ip <server> <address>
os add floating-ip ...
nova floating-ip-create [<floating_ip_pool>]
os create floating-ip ...
nova floating-ip-delete <address>
os delete floating-ip
nova floating-ip-list
os list floating-ip
nova remove-floating-ip <server> <address>
os remove floating-ip ...
floating-ip-pool
nova floating-ip-pool-list
os list floating-ip-pool
host
nova host-action [--action <action>] <hostname>
os ?? host ...
nova host-update [--status <status>]
[--maintenance <maintenance_mode>]
<hostname>
os set host ...
image
nova image-create [--poll] <server> <name>
os create image ...
nova image-delete <image>
os delete image ...
nova image-list
os list image
nova image-meta <image> <action> <key=value> [<key=value> ...]
os set image ...
nova image-show <image>
os show image ...
keypair
nova keypair-add [--pub_key <pub_key>] <name>
os create keypair ...
nova keypair-delete <name>
os delete keypair
nova keypair-list
os list keypair
limits
nova absolute-limits
os show limits --absolute
## is there any other kind?
quota
nova quota-defaults <tenant_id>
nova quota-show <tenant_id>
os show quota <tenant> [--defaults]
nova quota-update [--instances <instances>]
[--cores <cores>]
[--ram <ram>]
[--volumes <volumes>]
[--gigabytes <gigabytes>]
[--floating-ips <floating_ips>]
[--metadata-items <metadata_items>]
[--injected-files <injected_files>]
[--injected-file-content-bytes <injected_file_content_bytes>]
<tenant_id>
os set quota ...
quota-class
nova quota-class-show <class>
os show quota-class ...
nova quota-class-update [--instances <instances>]
[--cores <cores>]
[--ram <ram>]
[--volumes <volumes>]
[--gigabytes <gigabytes>]
[--floating-ips <floating_ips>]
[--metadata-items <metadata_items>]
[--injected-files <injected_files>]
[--injected-file-content-bytes <injected_file_content_bytes>]
<class>
os set quota-class ...
rate-limits
nova rate-limits
os show rate-limits
resource
nova describe-resource <hostname>
os show resource ...
secgroup
nova secgroup-create <name> <description>
os create secgroup ...
nova secgroup-delete <secgroup>
os delete secgroup ...
nova secgroup-list
os list secgroup
secgroup-group-rule
nova secgroup-add-group-rule [--ip_proto <ip_proto>]
[--from_port <from_port>]
[--to_port <to_port>]
<secgroup> <source_group>
os create secgroup-group-rule
nova secgroup-delete-group-rule [--ip_proto <ip_proto>]
[--from_port <from_port>]
[--to_port <to_port>]
<secgroup> <source_group>
os delete secgroup-group-rule ...
secgroup-rule
nova secgroup-add-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr>
os create secgroup-rule
nova secgroup-delete-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr>
os delete secgroup-rule
nova secgroup-list-rules <secgroup>
os list secgroup-rule ...
server
OSC Command | Implemented | Nova command | |
---|---|---|---|
os create server
--image <image>
--flavor <flavor>
[--security-group <security-group-list> [...] ]
[--key-name <key-name>]
[--meta-data <key=value> [--meta-data <key=value] [...] ]
[--file <dest-filename=source-filename>] [...] ]
[--user-data <user-data>]
[--reservation-id <uuid>]
[--availability-zone <zone-name>]
[--block-device-mapping <dev-name=mapping> [...] ]
[--nic <net-id=net-uuid,v4-fixed-ip=ip-addr> [...] ]
[--hint <key=value> [...] ]
[--config-drive <value>|True ]
[--min <count>]
[--max <count>]
[--wait]
<server-name>
|
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 delete server
<server>
|
yes |
nova delete
<server>
| |
os list server
[--reservation-id <reservation-id>]
[--ip <ip-regex>]
[--ip6 <ip6-regex>]
[--name <name-regex>]
[--instance-name <instance-name-regex>]
[--status <status>]
[--flavor <flavor>]
[--image <image>]
[--host <hostname>]
[--all-tenants]
|
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 lock server
<server>
|
no |
nova lock
<server>
| |
os migrate server
--live
[--block_migrate]
[--disk_over_commit]
<server>
<host>
os migrate server
[--wait]
<server>
|
no |
nova live-migration
[--block_migrate]
[--disk_over_commit]
<server>
<host>
nova migrate
[--poll]
<server>
| |
os pause server
<server>
|
yes |
nova pause
<server>
| |
os reboot server
[--hard | --soft]
[--wait]
<server>
|
yes |
nova reboot
[--hard]
[--poll]
<server>
| |
os rebuild server
--image <image>
[--rebuild-password <rebuild-password>]
[--wait]
<server>
|
yes |
nova rebuild
[--rebuild_password <rebuild_password>]
[--poll]
<server>
<image>
| |
os rename server
<server>
<new-name>
|
no |
nova rename
<server>
<name>
| |
os rescue server
<server>
|
no |
nova rescue
<server>
| |
os resize server
--flavor <flavor>
[--wait]
<server>
|
no |
nova resize
[--poll]
<server>
<flavor>
| |
os resize server
--confirm
<server>
|
no |
nova resize-confirm
<server>
| |
os resume server
<server>
|
yes |
nova resume
<server>
| |
os resize server
--revert
<server>
|
no |
nova resize-revert
<server>
| |
os set server
--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 set server
--root-password
<server>
|
no |
nova root-password
<server>
| |
os show server
<server>
|
yes |
nova show
<server>
| |
os ssh server
[--port PORT]
--private]
[--ipv6]
[--login <login>]
<server>
|
no |
nova ssh
[--port PORT]
[--private]
[--ipv6]
[--login <login>]
<server>
| |
os suspend server
<server>
|
yes |
nova suspend
<server>
| |
os unlock server
<server>
|
no |
nova unlock
<server>
| |
os unpause server
<server>
|
yes |
nova unpause
<server>
| |
os unrescue server
<server>
|
no |
nova unrescue
<server>
|
usage
nova usage-list [--start <start>] [--end <end>]
os list usage ...
volume
nova volume-attach <server> <volume> <device>
os attach volume ...
nova volume-create [--snapshot_id <snapshot_id>]
[--display_name <display_name>]
[--display_description <display_description>]
[--volume_type <volume_type>]
<size>
os create volume ...
nova volume-delete <volume>
os delete volume ...
nova volume-detach <server> <volume>
os detach volume ...
nova nova volume-list
os list volume
nova volume-show <volume>
os show volume ...
volume-snapshot
nova volume-snapshot-create [--force <True|False>]
[--display_name <display_name>]
[--display_description <display_description>]
<volume_id>
os create volume-snapshot ...
nova volume-snapshot-delete <snapshot_id>
os delete volume-snapshot ...
nova volume-snapshot-list
os list volume-snapshot
nova volume-snapshot-show <snapshot>
os show volume-snapshot
volume-type
nova volume-type-create <name>
os create volume-type ...
nova volume-type-delete <id>
os delete volume-type ...
nova volume-type-list
os list volume-type
x509-cert
nova x509-create-cert [<private_key_file>] [<x509_cert>]
os create x509-cert ...
x509-root-cert
nova x509-get-root-cert [<filename>]
os show x509-root-cert ...
Image
Nova Option | Environment Variable | OSC Option | Environment Variable | |
---|---|---|---|---|
--force | ||||
--dry-run | ||||
--os-image-url <url> | OS_IMAGE_URL | |||
--os-image-api-version <ver> | OS_IMAGE_API_VERSION | --os-image-api-version <ver> | OS_IMAGE_API_VERSION | |
--os-service-type <type> | OS_SERVICE_TYPE | |||
--os-endpoint-type <type> | OS_ENDPOINT_TYPE | |||
--cert-file <file> | ||||
--key-file <file> | ||||
--timeout <seconds> | ||||
--no-ssl-compression |
API v2.0
image
glance image-create [--id <IMAGE_ID>] [--name <NAME>]
[--disk-format <CONTAINER_FORMAT>]
[--container-format <DISK_FORMAT>]
[--owner <TENANT_ID>] [--size <SIZE>]
[--min-disk <DISK_GB>] [--min-ram <DISK_RAM>]
[--location <IMAGE_URL>] [--checksum <CHECKSUM>]
[--copy-from <IMAGE_URL>] [--public] [--protected]
[--property <key=value>]
os create image ...
glance image-delete <IMAGE_ID>
os delete image ...
glance image-list
os list image ...
glance image-show <IMAGE_ID>
os show image ...
glance member-images [options] <MEMBER>
os list image --member <member> [options]
glance show [options] <ID>
os show image ...
glance update [options] <ID> <field1=value1 field2=value2 ...>
os set image ...
image-member
glance member-create [--can-share] <IMAGE_ID> <TENANT_ID>
os create image-member ...
glance member-delete <IMAGE_ID> <TENANT_ID>
os list image-member <image> [options]
glance member-delete [options] <ID> <MEMBER>
os delete image-member ...
glance member-list [--image-id <IMAGE_ID>] [--tenant-id <TENANT_ID>]
os list image-member ...
Volume
Cinder Option | Environment Variable | OSC Option | Environment Variable | |
---|---|---|---|---|
--os-volume-api-version <ver> | OS_VOLUME_API_VERSION | --os-volume-api-version <ver> | OS_VOLUME_API_VERSION | |
--service-type <type> | ||||
--service-name <name> | CINDER_SERVICE_NAME | |||
--volume-service-name <name> | CINDER_VOLUME_SERVICE_NAME | |||
--endpoint-type <type> | CINDER_ENDPOINT_TYPE | |||
--retries <int> |
API v1.0
credentials
cinder credentials
os list credential
limits
cinder rate-limits
os list limit --rate
cinder absolute-limits
os list limit --absolute
snapshot
cinder snapshot-create
<volume-id>
--force <True|False>
--display-name <display-name>
--display-description <display-description>
os create snapshot
--force
--display-name <display-name>
--display-description <display-description>
<volume-id>
cinder snapshot-delete <snapshot-id>
os delete snapshot <snapshot-id>
cinder snapshot-list
--all-tenants [<0|1>]
--display-name <display-name>
--status <status>
--volume-id <volume-id>
os list snapshot
--all-tenants [<0|1>]
--display-name <display-name>
--status <status>
--volume-id <volume-id>
cinder snapshot-rename
--display-description <display-description>
<snapshot-id>
<display-name>
os update snapshot
--display-description <display-description>
<snapshot-id>
<display-name>
cinder snapshot-show <snapshot-id>
os show snapshot <snapshot-id>
type
cinder type-create <type-name>
os create type <type-name>
cinder type-delete <type-id>
os delete type <type>
cinder type-list
os list type
cinder extra-specs-list
os tbd
cinder type-key <type-name-or-id> <action (set|unset)> <key=value>
os tbd
volume
cinder create
[--snapshot-id <snapshot-id>]
[--source-volid <source-volid>]
[--image-id <image-id>]
[--display-name <display-name>]
[--display-description <display-description>]
[--volume-type <volume-type>]
[--availability-zone <availability-zone>]
[--metadata [<key=value>]]
<size>
os create volume
[--snapshot-id <snapshot-id>]
[--source-volid <source-volid>]
[--image-id <image-id>]
[--display-name <display-name>]
[--display-description <display-description>]
[--volume-type <volume-type>]
[--availability-zone <availability-zone>]
[--metadata [<key=value>]]
<size>
cinder delete <volume-id>
os delete volume <volume-id>
cinder list
--all-tenants [<0|1>]
--display-name <display-name>
--status <status>
os list volume
--long
cinder rename
--display-description <display-description>
<volume-id>
<display-name>
os update volume
--display-description <display-description>
<volume-id>
<display-name>
cinder show <volume-id>
os show volume <volume-id>
cinder force-delete <volume-id>
os tbd
cinder metadata
<volume-id>
<action>
<key=value>
os tbd
Network
quantum
Command-line Option | Environment Variable |
---|---|
--host=HOST | |
--port=PORT | |
--ssl | |
--verbose | |
--logfile=LOGFILE | |
--token=TOKEN | |
--version=VERSION | QUANTUM_VERSION |
API v2.0
- Verbs:
- quantum: create, delete, list, plug, show, update, unplug
- os: add, create, delete, list, remove, set, show
- Objects:
- quantum: iface, net, port
- os: interface, network, port
iface
plug_iface <tenant-id> <net-id> <port-id> <iface-id>
add interface <tenant> <network> <port> <interface>
show_iface <tenant-id> <net-id> <port-id>
show interface <tenant> <network> <port>
unplug_iface <tenant-id> <net-id> <port-id>
remove interface <tenant> <network> <port>
net
create_net <tenant-id> <net-name>
create network <tenant> <network-name>
delete_net <tenant-id> <net-id>
delete <tenant> <network>
list_nets <tenant-id>
list network <tenant>
list_nets_detail <tenant-id>
list network --detail <tenant>
show_net <tenant-id> <net-id>
show network <tenant> <network>
show_net_detail <tenant-id> <net-id>
show network --detail <tenant> <network>
update_net <tenant-id> <net-id> <new-name>
set network <tenant> <network> --name <name>
port
create_port <tenant-id> <net-id>
create port <tenant> <network>
delete_port <tenant-id> <net-id> <port-id>
delete port <tenant> <network> <port>
list_ports <tenant-id> <net-id>
list port <tenant> <network>
list_ports_detail <tenant-id> <net-id>
list port --detail <tenant> <network>
show_port <tenant-id> <net-id> <port-id>
show port <tenant> <network> <port>
show_port_detail <tenant-id> <net-id> <port-id>
show port --detail <tenant> <network> <port>
update_port <tenant-id> <net-id> <port-id> <params>
set port <tenant> <network> <port> <params>
Options
In general, options will be transformed into more UNIX-like usage
-
--enable true|false
becomes--enable|--disable
(dhellmann) Not all boolean options have natural antonyms like enable/disable. It may be more consistent to use a --flag --no-flag style naming convention to indicate the opposites of flags.
"(dtroyer) Yup, except i really don't like --no-enable. I'm going to work through the switch mapping to see how many others we really have to deal with."