Difference between revisions of "UnifiedCLI/Mapping"
(Complete header reorg) |
|||
Line 449: | Line 449: | ||
os create credential | os create credential | ||
− | |||
− | |||
− | |||
[--project <project>] | [--project <project>] | ||
+ | <user> | ||
+ | <type> | ||
+ | <data> | ||
</nowiki></pre> | </nowiki></pre> | ||
Line 480: | Line 480: | ||
keystone credential-update | keystone credential-update | ||
[--user <user>] | [--user <user>] | ||
− | [--type < | + | [--type <type>] |
− | [--data < | + | [--data <data>] |
[--project <project>] | [--project <project>] | ||
<credential-id> | <credential-id> | ||
os set credential | os set credential | ||
− | [-- | + | [--user <user>] |
− | [--type < | + | [--type <type>] |
− | [--data < | + | [--data <data>] |
− | [-- | + | [--project <project>] |
<credential-id> | <credential-id> | ||
</nowiki></pre> | </nowiki></pre> |
Revision as of 02:29, 2 February 2013
<<TableOfContents()>>
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.
#!csv , 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.
#!csv , Option, Description, Usual Default --description,describes an object, none --enable | --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:
#!csv , , nova x509-create-cert [<pk-file>] [<x509-cert>],os create credentials --x509 [<pk-file>] [<x509-cert>] nova credentials,os show credentials nova x509-get-root-cert,os show credentials --x509 --root
Identity
#!csv , 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
#!bash keystone token-get [--wrap <integer>] os show token [--width <pki-token-display-width>]
catalog
#!bash keystone catalog [--service <service-type>] os show service [--catalog <service-type>]
ec2-credentials
#!bash keystone ec2-credentials-create [--user <user-id>] [--tenant_id <tenant-id>] os create ec2-credentials --tenant_id <tenant-id> [--user <user-id>] ## are both args really optional?
#!bash keystone ec2-credentials-delete [--user <user-id>] --access <access-key> os delete ec2-credentials <access-key> ## what changes if --user is not provided?
#!bash keystone ec2-credentials-get [--user <user-id>] --access <access-key> os show ec2-credentials <access-key> ## what changes if --user is not provided?
#!bash keystone ec2-credentials-list [--user <user-id>] os list ec2-credentials [--user <user-id>]
endpoint
#!bash keystone endpoint-create [--region <endpoint-region>] [--service_id <service-id>] [--publicurl <public-url>] [--adminurl <admin-url>] [--internalurl <internal-url>] os create endpoint [--region <endpoint-region>] [--publicurl <public-url>] [--adminurl <admin-url>] [--internalurl <internal-url>] <service>
#!bash keystone endpoint-delete <endpoint-id> os delete endpoint <endpoint-id>
#!bash keystone endpoint-get --service <service-type> [--endpoint_type <endpoint-type>] [--attr <service-attribute>] [--value <value>] os show endpoint [--type <endpoint-type>] [--attr <endpoint-attribute>] [--value <endpoint-value>] <service> os show endpoint [--all] <service>
#!bash keystone endpoint-list os list endpoint [--long]
role
#!bash keystone role-create --name <role-name> os create role <role-name>
#!bash keystone role-delete <role-id> os delete role <role>
#!bash keystone role-get <role-id> os show role <role>
#!bash keystone role-list os list role
service
#!bash keystone service-create --name <name> --type <type> [--description <service-description>] os create service [--type <service-type>] [--description <service-description>] <service-name>
#!bash keystone service-delete <service-id> os delete service <service>
#!bash keystone service-get <service-id> os show service <service>
#!bash keystone service-list os list service [--long]
tenant
#!bash keystone tenant-create --name <tenant-name> [--description <tenant-description>] [--enabled <true|false>] os create tenant [--description <tenant-description>] [--enable | --disable] <tenant-name>
#!bash keystone tenant-delete <tenant-id> os delete tenant <tenant>
#!bash keystone tenant-get <tenant-id> os show tenant <tenant>
#!bash keystone tenant-list os list tenant [--long]
#!bash keystone tenant-update [--name <tenant_name>] [--description <tenant-description>] [--enabled <true|false>] <tenant-id> os set tenant [--name <new-tenant-name>] [--description <new-tenant-description>] [--enable | --disable] <tenant>
user
#!bash keystone user-create --name <user-name> [--tenant_id <tenant-id>] [--pass <pass>] [--email <email>] [--enabled <true|false>] os create user [--password <user-password>] [--email <user-email>] [--tenant <tenant>] [--enable | --disable] <user-name>
#!bash keystone user-delete <user-id> os delete user <user>
#!bash keystone user-get <user-id> os show user <user>
#!bash keystone user-list [<tenant-id>] os list user [--tenant <tenant>] [--long]
#!bash keystone user-password-update --pass <password> <user-id> os set user [--name <new-user-name>] [--password <user-password>] [--email <user-email>] [--tenant <tenant>] [--enable|--disable] <user>
user-role
#!bash keystone user-role-add --user <user-id> --role <role-id> [--tenant_id <tenant-id>] os add role-user [--tenant <tenant>] <role> <user>
#!bash keystone user-role-list [--user <user-id>] [--tenant_id <tenant-id>] os list role-user [--tenant <tenant>] [<user>]
#!bash keystone user-role-remove --user <user-id> --role <role-id> [--tenant_id <tenant-id>] os remove role-user [--tenant <tenant>] <role> <user>
<other>
#!bash keystone bootstrap --pass <password> [--user-name <user-name>] [--role-name <role-name>] [--tenant-name <tenant-name>] ##TBD
#!bash keystone discover ##TBD
API v3
credential
#!bash keystone credential-create --user_id <user-id> --type <credential-type> --data <credential-data> [--project_id <project-id>] os create credential [--project <project>] <user> <type> <data>
#!bash keystone credential-delete <credential-id> os delete credential <credential-id>
#!bash keystone credential-get <credential-id> os show credential <credential-id>
#!bash keystone credential-list os list credential [--long]
#!bash keystone credential-update [--user <user>] [--type <type>] [--data <data>] [--project <project>] <credential-id> os set credential [--user <user>] [--type <type>] [--data <data>] [--project <project>] <credential-id>
domain
#!bash keystone domain-create --name <domain-name> [--description <domain-description>] [--enabled <true|false>] [--private_project_names <true|false>] [--private_user_names <true|false>] os create domain [--description <domain-description>] [--enable | --disable] [--private_project_names] [--private_user_names] <domain-name>
#!bash keystone domain-delete <domain-id> os delete domain <domain>
#!bash keystone domain-get <domain-id> os show domain <domain>
#!bash keystone domain-list os list domain [--long]
#!bash keystone domain-update [--name <domain_name>] [--description <domain-description>] [--enabled <true|false>] [--private_project_names <true|false>] [--private_user_names <true|false>] <domain-id> os set domain [--name <new-domain-name>] [--description <new-domain-description>] [--private_project_names] [--private_user_names] [--enable | --disable] <domain>
endpoint
#!bash keystone endpoint-create --service_id <service-id> --interface <endpoint-interface> --url <endpoint-url> [--region <endpoint-region>] [--enabled <true|false>] os create endpoint [--region <endpoint-region>] [--enabled <true|false>] <service-id> <endpoint-interface> <endpoint-url>
#!bash keystone endpoint-delete <endpoint-id> os delete endpoint <endpoint-id>
#!bash keystone endpoint-list os list endpoint [--long]
#!bash keystone enpoint-get <endpoint-id> os show endpoint <endpoint-id>
#!bash keystone endpoint-update --endpoint_id <endpoint-id> [--region <endpoint-region>] [--enabled <true|false>] [<service-id>] [<endpoint-interface>] [<endpoint-url>] os update endpoint [--region <endpoint-region>] [--enabled <true|false>] [--service <service-id>] [--interface <endpoint-interface>] [--url <endpoint-url>] <endpoint-id>
group
#!bash keystone group-create --name <group-name> [--domain_id <domain-id>] [--description <group-description>] os create group [--domain <domain>] [--description <group-description>] <group-name>
#!bash keystone group-delete <group-id> os delete group <group>
#!bash keystone group-get <group-id> os show group <group>
#!bash keystone group-list os list group [--long]
#!bash keystone group-update [--name <group_name>] [--domain_id <domain-id>] [--description <group-description>] <group-id> os set group [--name <new-group-name>] [--domain <domain>] [--description <new-group-description>] <group>
policy
#!bash keystone policy-create --type <policy-type> --blob <policy-blob> os create policy --type <policy-type> --blob <policy-blob>
#!bash keystone policy-delete <policy-id> os delete policy <policy-id>
#!bash keystone policy-get <policy-id> os show policy <policy-id>
#!bash keystone policy-list os list policy [--long]
#!bash keystone policy-update [--type <policy-type>] [--blob <policy-blob>] <policy-id> os set policy [--type <policy-type>] [--blob <policy-blob>] <policy-id>
project
#!bash keystone project-create --name <project-name> [--domain_id <project-domain-id>] [--description <project-description>] [--enabled <true|false>] os create project [--domain <project-domain>] [--description <project-description>] [--enable | --disable] <project-name>
#!bash keystone project-delete <project-id> os delete project <project>
#!bash keystone project-get <project-id> os show project <project>
#!bash keystone project-list os list project [--long]
#!bash keystone project-update [--name <project_name>] [--domain_id <project-domain-id>] [--description <project-description>] [--enabled <true|false>] <project-id> os set project [--name <new-project-name>] [--domain <project-domain>] [--description <new-project-description>] [--enable | --disable] <project>
role
#!bash keystone role-create --name <role-name> os create role <role-name>
#!bash keystone role-delete <role-id> os delete role <role>
#!bash keystone role-get <role-id> os show role <role>
#!bash keystone role-list os list role
#!bash keystone role-update <role-id> os update role <role>
service
#!bash keystone service-create --type <type> [--name <name>] [--enabled <true|false>] os create service [--name <name>] [--enabled <true|false>] <type>
#!bash keystone service-delete <service-id> os delete service <service>
#!bash keystone service-get <service-id> os show service <service>
#!bash keystone service-list os list service [--long]
#!bash keystone service-update --service_id <service-id> [--type <type>] [--name <name>] [--enabled <true|false>] os update service [--type <type>] [--name <name>] [--enabled <true|false>] <service>
user
#!bash keystone user-create --name <user-name> [--domain_id <domain-id>] [--default_project_id <project-id>] [--description <description>] [--enabled <true|false>] [--password <password>] os create user [--domain_id <domain-id>] [--default_project_id <project-id>] [--description <description>] [--enabled <true|false>] [--password <password>] <user-name>
#!bash keystone user-delete <user-id> os delete user <user>
#!bash keystone user-get <user-id> os show user <user>
#!bash keystone user-list os list user [--long]
#!bash keystone user-update --user_id <user-id> [--name <user-name>] [--domain_id <domain-id>] [--default_project_id <project-id>] [--description <description>] [--enabled <true|false>] [--password <password>] os set user [--domain_id <domain-id>] [--default_project_id <project-id>] [--description <description>] [--enabled <true|false>] [--password <password>] [--user_name <user-name>] <user>
Compute
#!csv , 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)
aggregate
#!bash nova aggregate-create <name> <availability_zone> os create aggregate ...
#!bash nova aggregate-delete <id> os delete aggregate ...
#!bash nova aggregate-details <id> os show aggregate ...
#!bash nova aggregate-list os list aggregate
#!bash nova aggregate-update <id> <name> [<availability_zone>] os set aggregate ...
#!bash nova aggregate-set-metadata <id> <key=value> [<key=value> ...] os set aggregate --metadata ...
aggregate-host
#!bash nova aggregate-add-host <id> <host> os add aggregate-host ...
#!bash nova aggregate-remove-host <id> <host> os remove aggregate-host ...
bash-completion
#!bash nova bash-completion os show bash-completion
cloudpipe
#!bash nova cloudpipe-create <project> os create cloudpipe ...
#!bash nova cloudpipe-list os list cloudpipe
console
#!bash nova console-log [--length <length>] <server> os show console ...
#!bash nova get-vnc-console <server> <console_type> os show console [--vnc] ...
credentials
#!bash nova credentials os show credentials
diagnostics
#!bash nova diagnostics <server> os show diagnostics ...
dns
#!bash nova dns-create [--type <type>] <ip> <name> <domain> os create dns ...
#!bash nova dns-delete <domain> <name> os delete dns ...
#!bash nova dns-list [--ip <ip>] [--name <name>] <domain> os list dns ...
dns-domain
#!bash nova dns-create-private-domain [--availability_zone <availability_zone>] <domain> os create dns-domain [--private] ...
dns-public-domain
#!bash nova dns-create-public-domain [--project <project>] <domain> os create dns-domain [--public] ...
#!bash nova dns-delete-domain <domain> os delete dns-domain ...
#!bash nova dns-domains os list dns-domains
endpoints
#!bash nova endpoints os list endpoints # does this overlap with keystone?
fixed-ip
#!bash nova add-fixed-ip <server> <network_id> os add fixed-ip ...
#!bash nova remove-fixed-ip <server> <address> os remove fixed-ip ...
flavor
#!bash nova flavor-create [--ephemeral <ephemeral>] [--swap <swap>] [--rxtx-factor <factor>] <name> <id> <ram> <disk> <vcpus> os create flavor ...
#!bash nova flavor-delete <id> os delete flavor ...
#!bash nova flavor-list os list flavor
floating-ip
#!bash nova add-floating-ip <server> <address> os add floating-ip ...
#!bash nova floating-ip-create [<floating_ip_pool>] os create floating-ip ...
#!bash nova floating-ip-delete <address> os delete floating-ip
#!bash nova floating-ip-list os list floating-ip
#!bash nova remove-floating-ip <server> <address> os remove floating-ip ...
floating-ip-pool
#!bash nova floating-ip-pool-list os list floating-ip-pool
host
#!bash nova host-action [--action <action>] <hostname> os ?? host ...
#!bash nova host-update [--status <status>] [--maintenance <maintenance_mode>] <hostname> os set host ...
image
#!bash nova image-create [--poll] <server> <name> os create image ...
#!bash nova image-delete <image> os delete image ...
#!bash nova image-list os list image
#!bash nova image-meta <image> <action> <key=value> [<key=value> ...] os set image ...
#!bash nova image-show <image> os show image ...
keypair
#!bash nova keypair-add [--pub_key <pub_key>] <name> os create keypair ...
#!bash nova keypair-delete <name> os delete keypair
#!bash nova keypair-list os list keypair
limits
#!bash nova absolute-limits os show limits --absolute ## is there any other kind?
quota
#!bash nova quota-defaults <tenant_id> nova quota-show <tenant_id> os show quota <tenant> [--defaults]
#!bash nova quota-update [--instances <instances>] [--cores <cores>] [--ram <ram>] [--volumes <volumes>] [--gigabytes <gigabytes>] [--floating-ips <floating_ips>] [--metadata-items <metadata_items>] [--injected-files <injected_files>] [--injected-file-content-bytes <injected_file_content_bytes>] <tenant_id> os set quota ...
quota-class
#!bash nova quota-class-show <class> os show quota-class ...
#!bash nova quota-class-update [--instances <instances>] [--cores <cores>] [--ram <ram>] [--volumes <volumes>] [--gigabytes <gigabytes>] [--floating-ips <floating_ips>] [--metadata-items <metadata_items>] [--injected-files <injected_files>] [--injected-file-content-bytes <injected_file_content_bytes>] <class> os set quota-class ...
rate-limits
#!bash nova rate-limits os show rate-limits
resource
#!bash nova describe-resource <hostname> os show resource ...
secgroup
#!bash nova secgroup-create <name> <description> os create secgroup ...
#!bash nova secgroup-delete <secgroup> os delete secgroup ...
#!bash nova secgroup-list os list secgroup
secgroup-group-rule
#!bash nova secgroup-add-group-rule [--ip_proto <ip_proto>] [--from_port <from_port>] [--to_port <to_port>] <secgroup> <source_group> os create secgroup-group-rule
#!bash nova secgroup-delete-group-rule [--ip_proto <ip_proto>] [--from_port <from_port>] [--to_port <to_port>] <secgroup> <source_group> os delete secgroup-group-rule ...
secgroup-rule
#!bash nova secgroup-add-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr> os create secgroup-rule
#!bash nova secgroup-delete-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr> os delete secgroup-rule
#!bash nova secgroup-list-rules <secgroup> os list secgroup-rule ...
server
#!bash nova boot [--flavor <flavor>] [--image <image>] [--meta <key=value>] [--file <dst-path=src-path>] [--key_name <key_name>] [--user_data <user-data>] [--availability_zone <availability-zone>] [--security_groups <security_groups>] [--block_device_mapping <dev_name=mapping>] [--hint <key=value>] [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr>] [--config-drive <value>] [--poll] <name> os create server --image <image> --flavor <flavor> [--security-group <security-group-list> [...] ] [--key-name <key-name>] [--meta-data <key=value> [--meta-data <key=value] [...] ] [--file <dest-filename=source-filename> [--file <dest-filename=source-filename>] [...] ] [--user-data <user-data>] [--reservation-id <uuid>] [--availability-zone <zone-name>] [--block-device-mapping <dev-name=mapping> [...] ] [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr> [...] ] [--hint <key=value> [...] ] [--config-drive <value>|True ] [--min <count>] [--max <count>] [--wait] <server-name>
#!bash nova delete <server> os delete server <server>
#!bash nova list [--reservation_id <reservation_id>] [--ip <ip_regexp>] [--ip6 <ip6_regexp>] [--name <name_regexp>] [--instance_name <name_regexp>] [--status <status>] [--flavor <flavor>] [--image <image>] [--host <hostname>] [--all_tenants [<0|1>]] os list server [--reservation-id <reservation-id>] [--ip <ip-regex>] [--ip6 <ip6-regex>] [--name <name-regex>] [--instance-name <instance-name-regex>] [--status <status>] [--flavor <flavor>] [--image <image>] [--host <hostname>] [--all-tenants]
#!bash nova lock <server> os lock server <server>
#!bash nova live-migration [--block_migrate] [--disk_over_commit] <server> <host> nova migrate [--poll] <server> os migrate server --live [--block_migrate] [--disk_over_commit] <server> <host> os migrate server [--wait] <server>
#!bash nova pause <server> os pause server <server>
#!bash nova reboot [--hard] [--poll] <server> os reboot server [--hard|--soft] [--wait] <server>
#!bash nova rebuild [--rebuild_password <rebuild_password>] [--poll] <server> <image> os rebuild server --image <image> [--rebuild-password <rebuild-password>] [--wait] <server>
#!bash nova rename <server> <name> os rename server <server> <new-name>
#!bash nova rescue <server> os rescue server <server>
#!bash nova resize [--poll] <server> <flavor> os resize server --flavor <flavor> [--wait] <server>
#!bash nova resize-confirm <server> os resize server --confirm <server>
#!bash nova resume <server> os resume server <server>
#!bash nova resize-revert <server> os resize server --revert <server>
#!bash nova meta <server> <action> <key=value> [<key=value> ...] os set server --meta-data <key=value> [--meta-data <key=value>] ... <server> os unset server --meta-data <key> [--meta-data <key>] ... <server>
#!bash nova root-password <server> os set server --root-password <server>
#!bash nova show <server> os show server <server>
#!bash nova ssh [--port PORT] [--private] [--ipv6] [--login <login>] <server> os ssh server [--port PORT] [--private] [--ipv6] [--login <login>] <server>
#!bash nova suspend <server> os suspend server <server>
#!bash nova unlock <server> os unlock server <server>
#!bash nova unpause <server> os unpause server <server>
#!bash nova unrescue <server> os unrescue server <server>
usage
#!bash nova usage-list [--start <start>] [--end <end>] os list usage ...
volume
#!bash nova volume-attach <server> <volume> <device> os attach volume ...
#!bash nova volume-create [--snapshot_id <snapshot_id>] [--display_name <display_name>] [--display_description <display_description>] [--volume_type <volume_type>] <size> os create volume ...
#!bash nova volume-delete <volume> os delete volume ...
#!bash nova volume-detach <server> <volume> os detach volume ...
#!bash nova nova volume-list os list volume
#!bash nova volume-show <volume> os show volume ...
volume-snapshot
#!bash nova volume-snapshot-create [--force <True|False>] [--display_name <display_name>] [--display_description <display_description>] <volume_id> os create volume-snapshot ...
#!bash nova volume-snapshot-delete <snapshot_id> os delete volume-snapshot ...
#!bash nova volume-snapshot-list os list volume-snapshot
#!bash nova volume-snapshot-show <snapshot> os show volume-snapshot
volume-type
#!bash nova volume-type-create <name> os create volume-type ...
#!bash nova volume-type-delete <id> os delete volume-type ...
#!bash nova volume-type-list os list volume-type
x509-cert
#!bash nova x509-create-cert [<private_key_file>] [<x509_cert>] os create x509-cert ...
x509-root-cert
#!bash nova x509-get-root-cert [<filename>] os show x509-root-cert ...
Image
#!csv , 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
#!bash glance image-create [--id <IMAGE_ID>] [--name <NAME>] [--disk-format <CONTAINER_FORMAT>] [--container-format <DISK_FORMAT>] [--owner <TENANT_ID>] [--size <SIZE>] [--min-disk <DISK_GB>] [--min-ram <DISK_RAM>] [--location <IMAGE_URL>] [--checksum <CHECKSUM>] [--copy-from <IMAGE_URL>] [--public] [--protected] [--property <key=value>] os create image ...
#!bash glance image-delete <IMAGE_ID> os delete image ...
#!bash glance image-list os list image ...
#!bash glance image-show <IMAGE_ID> os show image ...
#!bash glance member-images [options] <MEMBER> os list image --member <member> [options]
#!bash glance show [options] <ID> os show image ...
#!bash glance update [options] <ID> <field1=value1 field2=value2 ...> os set image ...
image-member
#!bash glance member-create [--can-share] <IMAGE_ID> <TENANT_ID> os create image-member ...
#!bash glance member-delete <IMAGE_ID> <TENANT_ID> os list image-member <image> [options]
#!bash glance member-delete [options] <ID> <MEMBER> os delete image-member ...
#!bash glance member-list [--image-id <IMAGE_ID>] [--tenant-id <TENANT_ID>] os list image-member ...
Volume
#!csv , 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
type
#!bash cinder type-create <type-name> os create type <type-name>
#!bash cinder type-delete <type-id> os delete type <type>
#!bash cinder type-list os list type
#!bash cinder extra-specs-list os tbd
#!bash cinder type-key <type-name-or-id> <action (set|unset)> <key=value> os tbd
Network
quantum
#!csv , Command-line Option,Environment Variable -H HOST|--host=HOST -p PORT|--port=PORT -s|--ssl -v|--verbose -f LOGFILE|--logfile=LOGFILE -t TOKEN|--token=TOKEN --version=VERSION,QUANTUM_VERSION
API v2.0
- Verbs:
- quantum: create, delete, list, plug, show, update, unplug
- os: add, create, delete, list, remove, set, show
- Objects:
- quantum: iface, net, port
- os: interface, network, port
iface
#!bash plug_iface <tenant-id> <net-id> <port-id> <iface-id> add interface <tenant> <network> <port> <interface>
#!bash show_iface <tenant-id> <net-id> <port-id> show interface <tenant> <network> <port>
#!bash unplug_iface <tenant-id> <net-id> <port-id> remove interface <tenant> <network> <port>
net
#!bash create_net <tenant-id> <net-name> create network <tenant> <network-name>
#!bash delete_net <tenant-id> <net-id> delete <tenant> <network>
#!bash list_nets <tenant-id> list network <tenant>
#!bash list_nets_detail <tenant-id> list network --detail <tenant>
#!bash show_net <tenant-id> <net-id> show network <tenant> <network>
#!bash show_net_detail <tenant-id> <net-id> show network --detail <tenant> <network>
#!bash update_net <tenant-id> <net-id> <new-name> set network <tenant> <network> --name <name>
port
#!bash create_port <tenant-id> <net-id> create port <tenant> <network>
#!bash delete_port <tenant-id> <net-id> <port-id> delete port <tenant> <network> <port>
#!bash list_ports <tenant-id> <net-id> list port <tenant> <network>
#!bash list_ports_detail <tenant-id> <net-id> list port --detail <tenant> <network>
#!bash show_port <tenant-id> <net-id> <port-id> show port <tenant> <network> <port>
#!bash show_port_detail <tenant-id> <net-id> <port-id> show port --detail <tenant> <network> <port>
#!bash update_port <tenant-id> <net-id> <port-id> <params> set port <tenant> <network> <port> <params>
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."