Command object docs: server, server image
server server image Some cosmetic changes in the command source, sorting classes, help strings, etc. Change-Id: I3f68dae77b9fe02bc6866684e05aeff943dd9cc3
This commit is contained in:
		
							
								
								
									
										27
									
								
								doc/source/command-objects/server-image.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								doc/source/command-objects/server-image.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
============
 | 
			
		||||
server image
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
A server image is a disk image created from a running server instance.  The
 | 
			
		||||
image is created in the Image store.
 | 
			
		||||
 | 
			
		||||
server image create
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
Create a new disk image from a running server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server image create
 | 
			
		||||
        [--name <image-name>]
 | 
			
		||||
        [--wait]
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--name` <image-name>
 | 
			
		||||
    Name of new image (default is server name)
 | 
			
		||||
 | 
			
		||||
:option:`--wait`
 | 
			
		||||
    Wait for image create to complete
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
							
								
								
									
										544
									
								
								doc/source/command-objects/server.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										544
									
								
								doc/source/command-objects/server.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,544 @@
 | 
			
		||||
======
 | 
			
		||||
server
 | 
			
		||||
======
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
server add security group
 | 
			
		||||
-------------------------
 | 
			
		||||
 | 
			
		||||
Add security group to server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server add security group
 | 
			
		||||
        <server>
 | 
			
		||||
        <group>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
:option:`<group>`
 | 
			
		||||
    Security group to add (name or ID)
 | 
			
		||||
 | 
			
		||||
server add volume
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
Add volume to server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server add volume
 | 
			
		||||
        [--device <device>]
 | 
			
		||||
        <server>
 | 
			
		||||
        <volume>
 | 
			
		||||
 | 
			
		||||
:option:`--device` <device>
 | 
			
		||||
    Server internal device name for volume
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
:option:`<volume>`
 | 
			
		||||
    Volume to add (name or ID)
 | 
			
		||||
 | 
			
		||||
server create
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Create a new server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server create
 | 
			
		||||
        --image <image> | --volume <volume>
 | 
			
		||||
        --flavor <flavor>
 | 
			
		||||
        [--security-group <security-group-list> [...] ]
 | 
			
		||||
        [--key-name <key-name>]
 | 
			
		||||
        [--property <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>
 | 
			
		||||
 | 
			
		||||
:option:`--image` <image>
 | 
			
		||||
    Create server from this image
 | 
			
		||||
 | 
			
		||||
:option:`--volume` <volume>
 | 
			
		||||
    Create server from this volume
 | 
			
		||||
 | 
			
		||||
:option:`--flavor` <flavor>
 | 
			
		||||
    Create server with this flavor
 | 
			
		||||
 | 
			
		||||
:option:`--security-group` <security-group-name>
 | 
			
		||||
    Security group to assign to this server (repeat for multiple groups)
 | 
			
		||||
 | 
			
		||||
:option:`--key-name` <key-name>
 | 
			
		||||
    Keypair to inject into this server (optional extension)
 | 
			
		||||
 | 
			
		||||
:option:`--property` <key=value>
 | 
			
		||||
    Set a property on this server (repeat for multiple values)
 | 
			
		||||
 | 
			
		||||
:option:`--file` <dest-filename=source-filename>
 | 
			
		||||
    File to inject into image before boot (repeat for multiple files)
 | 
			
		||||
 | 
			
		||||
:option:`--user-data` <user-data>
 | 
			
		||||
    User data file to serve from the metadata server
 | 
			
		||||
 | 
			
		||||
:option:`--availability-zone` <zone-name>
 | 
			
		||||
    Select an availability zone for the server
 | 
			
		||||
 | 
			
		||||
:option:`--block-device-mapping` <dev-name=mapping>
 | 
			
		||||
    Map block devices; map is <id>:<type>:<size(GB)>:<delete_on_terminate> (optional extension)
 | 
			
		||||
 | 
			
		||||
:option:`--nic` <nic-config-string>
 | 
			
		||||
    Specify NIC configuration (optional extension)
 | 
			
		||||
 | 
			
		||||
:option:`--hint` <key=value>
 | 
			
		||||
    Hints for the scheduler (optional extension)
 | 
			
		||||
 | 
			
		||||
:option:`--config-drive` <config-drive-volume>|True
 | 
			
		||||
    Use specified volume as the config drive, or 'True' to use an ephemeral drive
 | 
			
		||||
 | 
			
		||||
:option:`--min` <count>
 | 
			
		||||
    Minimum number of servers to launch (default=1)
 | 
			
		||||
 | 
			
		||||
:option:`--max` <count>
 | 
			
		||||
    Maximum number of servers to launch (default=1)
 | 
			
		||||
 | 
			
		||||
:option:`--wait`
 | 
			
		||||
    Wait for build to complete
 | 
			
		||||
 | 
			
		||||
:option:`<server-name>`
 | 
			
		||||
    New server name
 | 
			
		||||
 | 
			
		||||
server delete
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Delete server command
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server delete
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server list
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
List servers
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server list
 | 
			
		||||
        [--reservation-id <reservation-id>]
 | 
			
		||||
        [--ip <ip-regex>]
 | 
			
		||||
        [--ip6 <ip6-regex>]
 | 
			
		||||
        [--name <name-regex>]
 | 
			
		||||
        [--instance-name <instance-name-regex>]
 | 
			
		||||
        [--status <status>]
 | 
			
		||||
        [--flavor <flavor>]
 | 
			
		||||
        [--image <image>]
 | 
			
		||||
        [--host <hostname>]
 | 
			
		||||
        [--all-projects]
 | 
			
		||||
        [--long]
 | 
			
		||||
 | 
			
		||||
:option:`--reservation-id` <reservation-id>
 | 
			
		||||
    Only return instances that match the reservation
 | 
			
		||||
 | 
			
		||||
:option:`--ip` <ip-address-regex>
 | 
			
		||||
    Regular expression to match IP addresses
 | 
			
		||||
 | 
			
		||||
:option:`--ip6` <ip-address-regex>
 | 
			
		||||
    Regular expression to match IPv6 addresses
 | 
			
		||||
 | 
			
		||||
:option:`--name` <name-regex>
 | 
			
		||||
    Regular expression to match names
 | 
			
		||||
 | 
			
		||||
:option:`--instance-name` <server-name-regex>
 | 
			
		||||
    Regular expression to match instance name (admin only)
 | 
			
		||||
 | 
			
		||||
:option:`--status` <status>
 | 
			
		||||
    Search by server status
 | 
			
		||||
 | 
			
		||||
:option:`--flavor` <flavor>
 | 
			
		||||
    Search by flavor ID
 | 
			
		||||
 | 
			
		||||
:option:`--image` <image>
 | 
			
		||||
    Search by image ID
 | 
			
		||||
 | 
			
		||||
:option:`--host` <hostname>
 | 
			
		||||
    Search by hostname
 | 
			
		||||
 | 
			
		||||
:option:`--all-projects`
 | 
			
		||||
    Include all projects (admin only)
 | 
			
		||||
 | 
			
		||||
:option:`--long`
 | 
			
		||||
    List additional fields in output
 | 
			
		||||
 | 
			
		||||
server lock
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
Lock server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server lock
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server migrate
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
Migrate server to different host
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server migrate
 | 
			
		||||
        --live <host>
 | 
			
		||||
        [--shared-migration | --block-migration]
 | 
			
		||||
        [--disk-overcommit | --no-disk-overcommit]
 | 
			
		||||
        [--wait]
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--wait`
 | 
			
		||||
    Wait for resize to complete
 | 
			
		||||
 | 
			
		||||
:option:`--live` <hostname>
 | 
			
		||||
    Target hostname
 | 
			
		||||
 | 
			
		||||
:option:`--shared-migration`
 | 
			
		||||
    Perform a shared live migration (default)
 | 
			
		||||
 | 
			
		||||
:option:`--block-migration`
 | 
			
		||||
    Perform a block live migration
 | 
			
		||||
 | 
			
		||||
:option:`--disk-overcommit`
 | 
			
		||||
    Allow disk over-commit on the destination host
 | 
			
		||||
 | 
			
		||||
:option:`--no-disk-overcommit`
 | 
			
		||||
    Do not over-commit disk on the destination host (default)
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server to migrate (name or ID)
 | 
			
		||||
 | 
			
		||||
server pause
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
Pause server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server pause
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server reboot
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Perform a hard or soft server reboot
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server reboot
 | 
			
		||||
        [--hard | --soft]
 | 
			
		||||
        [--wait]
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--hard`
 | 
			
		||||
    Perform a hard reboot
 | 
			
		||||
 | 
			
		||||
:option:`--soft`
 | 
			
		||||
    Perform a soft reboot
 | 
			
		||||
 | 
			
		||||
:option:`--wait`
 | 
			
		||||
    Wait for reboot to complete
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server rebuild
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
Rebuild server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server rebuild
 | 
			
		||||
        --image <image>
 | 
			
		||||
        [--password <password>]
 | 
			
		||||
        [--wait]
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--image` <image>
 | 
			
		||||
    Recreate server from this image
 | 
			
		||||
 | 
			
		||||
:option:`--password` <password>
 | 
			
		||||
    Set the password on the rebuilt instance
 | 
			
		||||
 | 
			
		||||
:option:`--wait`
 | 
			
		||||
    Wait for rebuild to complete
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server remove security group
 | 
			
		||||
----------------------------
 | 
			
		||||
 | 
			
		||||
Remove security group from server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server remove security group
 | 
			
		||||
        <server>
 | 
			
		||||
        <group>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Name or ID of server to use
 | 
			
		||||
 | 
			
		||||
:option:`<group>`
 | 
			
		||||
    Name or ID of security group to remove from server
 | 
			
		||||
 | 
			
		||||
server remove volume
 | 
			
		||||
--------------------
 | 
			
		||||
 | 
			
		||||
Remove volume from server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server remove volume
 | 
			
		||||
        <server>
 | 
			
		||||
        <volume>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
:option:`<volume>`
 | 
			
		||||
    Volume to remove (name or ID)
 | 
			
		||||
 | 
			
		||||
server rescue
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Put server in rescue mode
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server rescue
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server resize
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Scale server to a new flavor
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server resize
 | 
			
		||||
        --flavor <flavor>
 | 
			
		||||
        [--wait]
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
    os server resize
 | 
			
		||||
        --verify | --revert
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--flavor` <flavor>
 | 
			
		||||
    Resize server to specified flavor
 | 
			
		||||
 | 
			
		||||
:option:`--verify`
 | 
			
		||||
    Verify server resize is complete
 | 
			
		||||
 | 
			
		||||
:option:`--revert`
 | 
			
		||||
    Restore server state before resize
 | 
			
		||||
 | 
			
		||||
:option:`--wait`
 | 
			
		||||
    Wait for resize to complete
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
A resize operation is implemented by creating a new server and copying
 | 
			
		||||
the contents of the original disk into a new one.  It is also a two-step
 | 
			
		||||
process for the user: the first is to perform the resize, the second is
 | 
			
		||||
to either confirm (verify) success and release the old server, or to declare
 | 
			
		||||
a revert to release the new server and restart the old one.
 | 
			
		||||
 | 
			
		||||
server resume
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Resume server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server resume
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server set
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
Set server properties
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server set
 | 
			
		||||
        --name <new-name>
 | 
			
		||||
        --property <key=value>
 | 
			
		||||
        [--property <key=value>] ...
 | 
			
		||||
        --root-password
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--name` <new-name>
 | 
			
		||||
    New server name
 | 
			
		||||
 | 
			
		||||
:option:`--root-password`
 | 
			
		||||
    Set new root password (interactive only)
 | 
			
		||||
 | 
			
		||||
:option:`--property` <key=value>
 | 
			
		||||
    Property to add/change for this server (repeat option to set
 | 
			
		||||
    multiple properties)
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server show
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
Show server details
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server show
 | 
			
		||||
        [--diagnostics]
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--diagnostics`
 | 
			
		||||
    Display server diagnostics information
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server ssh
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
Ssh to server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server ssh
 | 
			
		||||
        [--login <login-name>]
 | 
			
		||||
        [--port <port>]
 | 
			
		||||
        [--identity <keyfile>]
 | 
			
		||||
        [--option <config-options>]
 | 
			
		||||
        [--public | --private | --address-type <address-type>]
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--login` <login-name>
 | 
			
		||||
    Login name (ssh -l option)
 | 
			
		||||
 | 
			
		||||
:option:`--port` <port>
 | 
			
		||||
    Destination port (ssh -p option)
 | 
			
		||||
 | 
			
		||||
:option:`--identity` <keyfile>
 | 
			
		||||
    Private key file (ssh -i option)
 | 
			
		||||
 | 
			
		||||
:option:`--option` <config-options>
 | 
			
		||||
    Options in ssh_config(5) format (ssh -o option)
 | 
			
		||||
 | 
			
		||||
:option:`--public`
 | 
			
		||||
    Use public IP address
 | 
			
		||||
 | 
			
		||||
:option:`--private`
 | 
			
		||||
    Use private IP address
 | 
			
		||||
 | 
			
		||||
:option:`--address-type` <address-type>
 | 
			
		||||
    Use other IP address (public, private, etc)
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server suspend
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
Suspend server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server suspend
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server unlock
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
Unlock server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server unlock
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server unpause
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
Unpause server
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server unpause
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server unrescue
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
Restore server from rescue mode
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server unrescue
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
 | 
			
		||||
server unset
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
Unset server properties
 | 
			
		||||
 | 
			
		||||
.. code:: bash
 | 
			
		||||
 | 
			
		||||
    os server unset
 | 
			
		||||
        --property <key>
 | 
			
		||||
        [--property <key>] ...
 | 
			
		||||
        <server>
 | 
			
		||||
 | 
			
		||||
:option:`--property` <key>
 | 
			
		||||
    Property key to remove from server (repeat to set multiple values)
 | 
			
		||||
 | 
			
		||||
:option:`<server>`
 | 
			
		||||
    Server (name or ID)
 | 
			
		||||
@@ -100,7 +100,8 @@ referring to both Compute and Volume quotas.
 | 
			
		||||
* ``role``: Identity - a policy object used to determine authorization
 | 
			
		||||
* ``security group``: Compute, Network - groups of network access rules
 | 
			
		||||
* ``security group rule``: Compute, Network - the individual rules that define protocol/IP/port access
 | 
			
		||||
* ``server``: Compute - a virtual machine instance
 | 
			
		||||
* ``server``: (**Compute**) virtual machine instance
 | 
			
		||||
* ``server image``: (**Compute**) saved server disk image
 | 
			
		||||
* ``service``: Identity - a cloud service
 | 
			
		||||
* ``snapshot``: Volume - a point-in-time copy of a volume
 | 
			
		||||
* ``token``: (**Identity**) a bearer token managed by Identity service
 | 
			
		||||
 
 | 
			
		||||
@@ -99,6 +99,43 @@ def _show_progress(progress):
 | 
			
		||||
        sys.stdout.flush()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AddServerSecurityGroup(command.Command):
 | 
			
		||||
    """Add security group to server"""
 | 
			
		||||
 | 
			
		||||
    log = logging.getLogger(__name__ + '.AddServerSecurityGroup')
 | 
			
		||||
 | 
			
		||||
    def get_parser(self, prog_name):
 | 
			
		||||
        parser = super(AddServerSecurityGroup, self).get_parser(prog_name)
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'server',
 | 
			
		||||
            metavar='<server>',
 | 
			
		||||
            help=_('Server (name or ID)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'group',
 | 
			
		||||
            metavar='<group>',
 | 
			
		||||
            help=_('Security group to add (name or ID)'),
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
    def take_action(self, parsed_args):
 | 
			
		||||
        self.log.debug("take_action(%s)", parsed_args)
 | 
			
		||||
 | 
			
		||||
        compute_client = self.app.client_manager.compute
 | 
			
		||||
 | 
			
		||||
        server = utils.find_resource(
 | 
			
		||||
            compute_client.servers,
 | 
			
		||||
            parsed_args.server,
 | 
			
		||||
        )
 | 
			
		||||
        security_group = utils.find_resource(
 | 
			
		||||
            compute_client.security_groups,
 | 
			
		||||
            parsed_args.group,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        server.add_security_group(security_group.name)
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AddServerVolume(command.Command):
 | 
			
		||||
    """Add volume to server"""
 | 
			
		||||
 | 
			
		||||
@@ -145,43 +182,6 @@ class AddServerVolume(command.Command):
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class AddServerSecurityGroup(command.Command):
 | 
			
		||||
    """Add security group to server"""
 | 
			
		||||
 | 
			
		||||
    log = logging.getLogger(__name__ + '.AddServerSecurityGroup')
 | 
			
		||||
 | 
			
		||||
    def get_parser(self, prog_name):
 | 
			
		||||
        parser = super(AddServerSecurityGroup, self).get_parser(prog_name)
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'server',
 | 
			
		||||
            metavar='<server>',
 | 
			
		||||
            help=_('Name or ID of server to use'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'group',
 | 
			
		||||
            metavar='<group>',
 | 
			
		||||
            help=_('Name or ID of security group to add to server'),
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
    def take_action(self, parsed_args):
 | 
			
		||||
        self.log.debug("take_action(%s)", parsed_args)
 | 
			
		||||
 | 
			
		||||
        compute_client = self.app.client_manager.compute
 | 
			
		||||
 | 
			
		||||
        server = utils.find_resource(
 | 
			
		||||
            compute_client.servers,
 | 
			
		||||
            parsed_args.server,
 | 
			
		||||
        )
 | 
			
		||||
        security_group = utils.find_resource(
 | 
			
		||||
            compute_client.security_groups,
 | 
			
		||||
            parsed_args.group,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        server.add_security_group(security_group.name)
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CreateServer(show.ShowOne):
 | 
			
		||||
    """Create a new server"""
 | 
			
		||||
 | 
			
		||||
@@ -192,55 +192,65 @@ class CreateServer(show.ShowOne):
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'server_name',
 | 
			
		||||
            metavar='<server-name>',
 | 
			
		||||
            help=_('New server name'))
 | 
			
		||||
            help=_('New server name'),
 | 
			
		||||
        )
 | 
			
		||||
        disk_group = parser.add_mutually_exclusive_group(
 | 
			
		||||
            required=True,
 | 
			
		||||
        )
 | 
			
		||||
        disk_group.add_argument(
 | 
			
		||||
            '--image',
 | 
			
		||||
            metavar='<image>',
 | 
			
		||||
            help=_('Create server from this image'))
 | 
			
		||||
            help=_('Create server from this image'),
 | 
			
		||||
        )
 | 
			
		||||
        disk_group.add_argument(
 | 
			
		||||
            '--volume',
 | 
			
		||||
            metavar='<volume>',
 | 
			
		||||
            help=_('Create server from this volume'))
 | 
			
		||||
            help=_('Create server from this volume'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--flavor',
 | 
			
		||||
            metavar='<flavor>',
 | 
			
		||||
            required=True,
 | 
			
		||||
            help=_('Create server with this flavor'))
 | 
			
		||||
            help=_('Create server with this flavor'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--security-group',
 | 
			
		||||
            metavar='<security-group-name>',
 | 
			
		||||
            action='append',
 | 
			
		||||
            default=[],
 | 
			
		||||
            help=_('Security group to assign to this server '
 | 
			
		||||
                   '(repeat for multiple groups)'))
 | 
			
		||||
                   '(repeat for multiple groups)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--key-name',
 | 
			
		||||
            metavar='<key-name>',
 | 
			
		||||
            help=_('Keypair to inject into this server (optional extension)'))
 | 
			
		||||
            help=_('Keypair to inject into this server (optional extension)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--property',
 | 
			
		||||
            metavar='<key=value>',
 | 
			
		||||
            action=parseractions.KeyValueAction,
 | 
			
		||||
            help=_('Set a property on this server '
 | 
			
		||||
                   '(repeat for multiple values)'))
 | 
			
		||||
                   '(repeat for multiple values)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--file',
 | 
			
		||||
            metavar='<dest-filename=source-filename>',
 | 
			
		||||
            action='append',
 | 
			
		||||
            default=[],
 | 
			
		||||
            help=_('File to inject into image before boot '
 | 
			
		||||
                   '(repeat for multiple files)'))
 | 
			
		||||
                   '(repeat for multiple files)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--user-data',
 | 
			
		||||
            metavar='<user-data>',
 | 
			
		||||
            help=_('User data file to serve from the metadata server'))
 | 
			
		||||
            help=_('User data file to serve from the metadata server'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--availability-zone',
 | 
			
		||||
            metavar='<zone-name>',
 | 
			
		||||
            help=_('Select an availability zone for the server'))
 | 
			
		||||
            help=_('Select an availability zone for the server'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--block-device-mapping',
 | 
			
		||||
            metavar='<dev-name=mapping>',
 | 
			
		||||
@@ -248,37 +258,43 @@ class CreateServer(show.ShowOne):
 | 
			
		||||
            default=[],
 | 
			
		||||
            help=_('Map block devices; map is '
 | 
			
		||||
                   '<id>:<type>:<size(GB)>:<delete_on_terminate> '
 | 
			
		||||
                   '(optional extension)'))
 | 
			
		||||
                   '(optional extension)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--nic',
 | 
			
		||||
            metavar='<nic-config-string>',
 | 
			
		||||
            action='append',
 | 
			
		||||
            default=[],
 | 
			
		||||
            help=_('Specify NIC configuration (optional extension)'))
 | 
			
		||||
            help=_('Specify NIC configuration (optional extension)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--hint',
 | 
			
		||||
            metavar='<key=value>',
 | 
			
		||||
            action='append',
 | 
			
		||||
            default=[],
 | 
			
		||||
            help=_('Hints for the scheduler (optional extension)'))
 | 
			
		||||
            help=_('Hints for the scheduler (optional extension)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--config-drive',
 | 
			
		||||
            metavar='<config-drive-volume>|True',
 | 
			
		||||
            default=False,
 | 
			
		||||
            help=_('Use specified volume as the config drive, '
 | 
			
		||||
                   'or \'True\' to use an ephemeral drive'))
 | 
			
		||||
                   'or \'True\' to use an ephemeral drive'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--min',
 | 
			
		||||
            metavar='<count>',
 | 
			
		||||
            type=int,
 | 
			
		||||
            default=1,
 | 
			
		||||
            help=_('Minimum number of servers to launch (default=1)'))
 | 
			
		||||
            help=_('Minimum number of servers to launch (default=1)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--max',
 | 
			
		||||
            metavar='<count>',
 | 
			
		||||
            type=int,
 | 
			
		||||
            default=1,
 | 
			
		||||
            help=_('Maximum number of servers to launch (default=1)'))
 | 
			
		||||
            help=_('Maximum number of servers to launch (default=1)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--wait',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
@@ -504,7 +520,8 @@ class DeleteServer(command.Command):
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'server',
 | 
			
		||||
            metavar='<server>',
 | 
			
		||||
            help=_('Name or ID of server to delete'))
 | 
			
		||||
            help=_('Server (name or ID)'),
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
    def take_action(self, parsed_args):
 | 
			
		||||
@@ -526,50 +543,61 @@ class ListServer(lister.Lister):
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--reservation-id',
 | 
			
		||||
            metavar='<reservation-id>',
 | 
			
		||||
            help=_('Only return instances that match the reservation'))
 | 
			
		||||
            help=_('Only return instances that match the reservation'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--ip',
 | 
			
		||||
            metavar='<ip-address-regex>',
 | 
			
		||||
            help=_('Regular expression to match IP addresses'))
 | 
			
		||||
            help=_('Regular expression to match IP addresses'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--ip6',
 | 
			
		||||
            metavar='<ip-address-regex>',
 | 
			
		||||
            help=_('Regular expression to match IPv6 addresses'))
 | 
			
		||||
            help=_('Regular expression to match IPv6 addresses'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--name',
 | 
			
		||||
            metavar='<name>',
 | 
			
		||||
            help=_('Regular expression to match names'))
 | 
			
		||||
            metavar='<name-regex>',
 | 
			
		||||
            help=_('Regular expression to match names'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--instance-name',
 | 
			
		||||
            metavar='<server-name>',
 | 
			
		||||
            help=_('Regular expression to match instance name (admin only)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--status',
 | 
			
		||||
            metavar='<status>',
 | 
			
		||||
            # FIXME(dhellmann): Add choices?
 | 
			
		||||
            help=_('Search by server status'))
 | 
			
		||||
            help=_('Search by server status'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--flavor',
 | 
			
		||||
            metavar='<flavor>',
 | 
			
		||||
            help=_('Search by flavor ID'))
 | 
			
		||||
            help=_('Search by flavor'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--image',
 | 
			
		||||
            metavar='<image>',
 | 
			
		||||
            help=_('Search by image ID'))
 | 
			
		||||
            help=_('Search by image'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--host',
 | 
			
		||||
            metavar='<hostname>',
 | 
			
		||||
            help=_('Search by hostname'))
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--instance-name',
 | 
			
		||||
            metavar='<server-name>',
 | 
			
		||||
            help=_('Regular expression to match instance name (admin only)'))
 | 
			
		||||
            help=_('Search by hostname'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--all-projects',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            default=bool(int(os.environ.get("ALL_PROJECTS", 0))),
 | 
			
		||||
            help=_('Include all projects (admin only)'))
 | 
			
		||||
            help=_('Include all projects (admin only)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--long',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            default=False,
 | 
			
		||||
            help=_('List additional fields in output'))
 | 
			
		||||
            help=_('List additional fields in output'),
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
    def take_action(self, parsed_args):
 | 
			
		||||
@@ -672,12 +700,7 @@ class MigrateServer(command.Command):
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'server',
 | 
			
		||||
            metavar='<server>',
 | 
			
		||||
            help=_('Server to migrate (name or ID)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--wait',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            help=_('Wait for resize to complete'),
 | 
			
		||||
            help=_('Server (name or ID)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--live',
 | 
			
		||||
@@ -699,6 +722,12 @@ class MigrateServer(command.Command):
 | 
			
		||||
            help=_('Perform a block live migration'),
 | 
			
		||||
        )
 | 
			
		||||
        disk_group = parser.add_mutually_exclusive_group()
 | 
			
		||||
        disk_group.add_argument(
 | 
			
		||||
            '--disk-overcommit',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            default=False,
 | 
			
		||||
            help=_('Allow disk over-commit on the destination host'),
 | 
			
		||||
        )
 | 
			
		||||
        disk_group.add_argument(
 | 
			
		||||
            '--no-disk-overcommit',
 | 
			
		||||
            dest='disk_overcommit',
 | 
			
		||||
@@ -707,11 +736,10 @@ class MigrateServer(command.Command):
 | 
			
		||||
            help=_('Do not over-commit disk on the'
 | 
			
		||||
                   ' destination host (default)'),
 | 
			
		||||
        )
 | 
			
		||||
        disk_group.add_argument(
 | 
			
		||||
            '--disk-overcommit',
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--wait',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            default=False,
 | 
			
		||||
            help=_('Allow disk over-commit on the destination host'),
 | 
			
		||||
            help=_('Wait for resize to complete'),
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
@@ -1140,13 +1168,13 @@ class ShowServer(show.ShowOne):
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'server',
 | 
			
		||||
            metavar='<server>',
 | 
			
		||||
            help=_('Server to show (name or ID)'),
 | 
			
		||||
            help=_('Server (name or ID)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--diagnostics',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            default=False,
 | 
			
		||||
            help=_('Display diagnostics information for a given server'),
 | 
			
		||||
            help=_('Display server diagnostics information'),
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
@@ -1439,7 +1467,7 @@ class UnsetServer(command.Command):
 | 
			
		||||
            action='append',
 | 
			
		||||
            default=[],
 | 
			
		||||
            help=_('Property key to remove from server '
 | 
			
		||||
                   '(repeat to set multiple values)'),
 | 
			
		||||
                   '(repeat to unset multiple values)'),
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user