There is no stop command in osc. Add it. Change-Id: Ia11a8f3b1245c884f7da442292009342d2ffde1e Implements: blueprint cmd-with-multi-servers
10 KiB
Command Structure
OpenStackClient has a consistent and predictable format for all of its commands.
Commands take the form:
openstack [<global-options>] <object-1> <action> [<object-2>] [<command-arguments>]
- All long options names begin with two dashes (
--
) and use a single dash (-
) internally between words (--like-this
). Underscores (_
) are not used in option names.
Global Options
Global options are global in the sense that they apply to every
command invocation regardless of action to be performed. They include
authentication credentials and API version selection. Most global
options 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 are derived from the option
name by dropping the leading dashes (--
), converting each
embedded dash (-
) to an underscore (_
), and
converting to upper case.
For example, the default value of --os-username
can be
set by defining the environment variable OS_USERNAME
.
Command Object(s) and Action
Commands consist of an object described by one or more words followed by an action. Commands that require two objects have the primary object ahead of the action and the secondary object after the action. Any positional arguments identifying the objects shall appear in the same order as the objects. In badly formed English it is expressed as "(Take) object1 (and perform) action (using) object2 (to it)."
<object-1> <action> <object-2>
Examples:
$ group add user <group> <user>
$ volume type list # 'volume type' is a two-word single object
Command Arguments and Options
Each command may have its own set of options distinct from the global options. They follow the same style as the global options and always appear between the command and any positional arguments the command requires.
Objects
The objects consist of one or more words to compose a unique name.
Occasionally when multiple APIs have a common name with common
overlapping purposes there will be options to select which object to
use, or the API resources will be merged, as in the quota
object that has options referring to both Compute and Volume quotas.
access token
: (Identity) long-lived OAuth-based tokenavailability zone
: (Compute) a logical partition of hosts or volume servicesaggregate
: (Compute) a grouping of serversbackup
: (Volume) a volume copycatalog
: (Identity) service catalogconsole log
: (Compute) server console text dumpconsole url
: (Compute) server remote console URLconsumer
: (Identity) OAuth-based delegateecontainer
: (Object Store) a grouping of objectscredentials
: (Identity) specific to identity providersdomain
: (Identity) a grouping of projectsec2 credentials
: (Identity) AWS EC2-compatible credentialsendpoint
: (Identity) the base URL used to contact a specific serviceextension
: (Compute, Identity, Volume) OpenStack server API extensionsfederation protocol
: (Identity) the underlying protocol used while federating identitiesflavor
: (Compute) predefined server configurations: ram, root disk, etcgroup
: (Identity) a grouping of usershost
: Compute - the physical computer running a hypervisorhypervisor
: (Compute) the virtual machine managerhypervisor stats
: (Compute) hypervisor statistics over all compute nodesidentity provider
: (Identity) a source of users and authenticationimage
: (Image) a disk imageip fixed
: Compute, Network - an internal IP address assigned to a serverip floating
: Compute, Network - a public IP address that can be mapped to a serverkeypair
: (Compute) an SSH public keylimits
: (Compute, Volume) resource usage limitsmapping
: (Identity) a definition to translate identity provider attributes to Identity conceptsmodule
: internal - installed Python modules in the OSC processnetwork
: Network - a virtual network for connecting servers and other resourcesobject
: (Object Store) a single file in the Object Storepolicy
: (Identity) determines authorizationproject
: (Identity) owns a group of resourcesquota
: (Compute, Volume) resource usage restrictionsregion
: (Identity) a subset of an OpenStack deploymentrequest token
: (Identity) temporary OAuth-based tokenrole
: (Identity) a policy object used to determine authorizationrole assignment
: (Identity) a relationship between roles, users or groups, and domains or projectssecurity group
: Compute, Network - groups of network access rulessecurity group rule
: Compute, Network - the individual rules that define protocol/IP/port accessserver
: (Compute) virtual machine instanceserver image
: (Compute) saved server disk imageservice
: (Identity) a cloud serviceservice provider
: (Identity) a resource that consumes assertions from anidentity provider
snapshot
: (Volume) a point-in-time copy of a volumetoken
: (Identity) a bearer token managed by Identity serviceusage
: (Compute) display host resources being consumeduser
: (Identity) individual cloud resources usersuser role
: (Identity) roles assigned to a uservolume
: (Volume) block volumesvolume type
: (Volume) deployment-specific types of volumes available
Plugin Objects
The following are known Objects used
by OpenStack plugins
.
These are listed here to avoid name conflicts when creating new
plugins.
baremetal
: (Baremetal (Ironic))congress datasource
: (Policy (Congress))congress driver
: (Policy (Congress))congress policy
: (Policy (Congress))congress policy rule
: (Policy (Congress))dataprocessing data source
: (Data Processing (Sahara))dataprocessing image
: (Data Processing (Sahara))dataprocessing image tags
: (Data Processing (Sahara))dataprocessing plugin
: (Data Processing (Sahara))management plan
: (Management (Tuskar))management role
: (Management (Tuskar))message-broker cluster
: (Message Broker (Cue))message flavor
: (Messaging (Zaqar))pool
: (Messaging (Zaqar))ptr record
: (DNS (Designate))queue
: (Messaging (Zaqar))recordset
: (DNS (Designate))secret
: (Key Manager (Barbican))secret container
: (Key Manager (Barbican))secret order
: (Key Manager (Barbican))stack
: (Orchestration (Heat))tld
: (DNS (Designate))zone
: (DNS (Designate))zone blacklist
: (DNS (Designate))zone transfer
: (DNS (Designate))
Actions
The actions used by OpenStackClient are defined below to provide a consistent meaning to each action. Many of them have logical opposite actions. Those actions with an opposite action are noted in parens if applicable.
authorize
- authorize a token (used in OAuth)add
(remove
) - add some object to a container object; the command is built in the order ofcontainer add object <container> <object>
, the positional arguments appear in the same ordercreate
(delete
) - create a new occurrence of the specified objectdelete
(create
) - delete a specific occurrence of the specified objectissue
(revoke
) - issue a tokenlist
- display summary information about multiple objectslock
(unlock
) - lock a server so that non-admin user won't be able to execute actionsmigrate
- move a server to a different host;--live
performs a live migration if possiblepause
(unpause
) - stop a server and leave it in memoryreboot
- forcibly reboot a serverrebuild
- rebuild a server using (most of) the same arguments as in the original createremove
(add
) - remove an object from a group of objectsrescue
(unrescue
) - reboot a server in a special rescue mode allowing access to the original disksresize
- change a server's flavorresume
(suspend
) - return a suspended server to running staterevoke
(issue
) - revoke a tokensave
- download an object locallyset
(unset
) - set a property on the object, formerly called metadatashow
- display detailed information about the specific objectstart
(stop
) - start one or more serversstop
(start
) - stop one or more serverssuspend
(resume
) - stop a server and save to disk freeing memoryunlock
(lock
) - unlock a serverunpause
(pause
) - return a paused server to running stateunrescue
(rescue
) - return a server to normal boot modeunset
(set
) - remove an attribute of the object
Implementation
The command structure is designed to support seamless addition of
plugin command modules via setuptools
entry points. The
plugin commands must be subclasses of Cliff's
command.Command
object. See plugins
for more information.
Command Entry Points
Commands are added to the client using setuptools
entry
points in setup.cfg
. There is a single common group
openstack.cli
for commands that are not versioned, and a
group for each combination of OpenStack API and version that is
supported. For example, to support Identity API v3 there is a group
called openstack.identity.v3
that contains the individual
commands. The command entry points have the form:
action_object = fully.qualified.module.vXX.object:ActionObject
For example, the list user
command for the Identity API
is identified in setup.cfg
with:
openstack.identity.v3 =
# ...
list_user = openstackclient.identity.v3.user:ListUser
# ...