 9599ffe65d
			
		
	
	9599ffe65d
	
	
	
		
			
			Move existing content around based on the doc-migration specification. Replace :doc: markup with :ref: to have sphinx keep track of where the files move and generate valid hyperlinks. Add a few toctrees and index pages for the new directories. Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454 Change-Id: I253ee8f89d3ec40e39310c18bb87ed1d3d5de330 Signed-off-by: Doug Hellmann <doug@doughellmann.com>
		
			
				
	
	
		
			112 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| ================
 | |
| Interactive Mode
 | |
| ================
 | |
| 
 | |
| OpenStackClient has an interactive mode, similar to the :program:`virsh(1)` or
 | |
| :program:`lvm(8)` commands on Linux.  This mode is useful for executing a
 | |
| series of commands without having to reload the CLI, or more importantly,
 | |
| without having to re-authenticate to the cloud.
 | |
| 
 | |
| Enter interactive mode by issuing the :command:`openstack` command with no
 | |
| subcommand.  An :code:`(openstack)` prompt will be displayed.  Interactive mode
 | |
| is terminated with :command:`exit`.
 | |
| 
 | |
| Authentication
 | |
| ==============
 | |
| 
 | |
| Authentication happens exactly as before, using the same global command line
 | |
| options and environment variables, except it only happens once.
 | |
| The credentials are cached and re-used for subsequent commands.  This means
 | |
| that to work with multiple clouds interactive mode must be ended so a
 | |
| authentication to the second cloud can occur.
 | |
| 
 | |
| Scripting
 | |
| =========
 | |
| 
 | |
| Using interactive mode inside scripts sounds counter-intuitive, but the same
 | |
| single-authentication benefit can be achieved by passing OSC commands to
 | |
| the CLI via :code:`stdin`.
 | |
| 
 | |
| Sample session:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|     # assume auth credentials are in the environment
 | |
|     $ openstack
 | |
|     (openstack) keypair list
 | |
|     +--------+-------------------------------------------------+
 | |
|     | Name   | Fingerprint                                     |
 | |
|     +--------+-------------------------------------------------+
 | |
|     | bunsen | a5:da:0c:52:e8:52:42:a3:4f:b8:22:62:7b:e4:e8:89 |
 | |
|     | beaker | 45:9c:50:56:7c:fc:3a:b6:b5:60:02:2f:41:fb:a9:4c |
 | |
|     +--------+-------------------------------------------------+
 | |
|     (openstack) image list
 | |
|     +--------------------------------------+----------------+
 | |
|     | ID                                   | Name           |
 | |
|     +--------------------------------------+----------------+
 | |
|     | 78b23835-c800-4d95-9d2a-e4de59a553d8 | OpenWRT r42884 |
 | |
|     | 2e45d43a-7c25-45f1-b012-06ac313e2f6b | Fedora 20      |
 | |
|     | de3a8396-3bae-42de-84bd-f4e398b8c320 | CirrOS         |
 | |
|     +--------------------------------------+----------------+
 | |
|     (openstack) flavor list
 | |
|     +--------------------------------------+----------+--------+--------+-----------+------+-------+-------------+-----------+-------------+
 | |
|     | ID                                   | Name     |    RAM |   Disk | Ephemeral | Swap | VCPUs | RXTX Factor | Is Public | Extra Specs |
 | |
|     +--------------------------------------+----------+--------+--------+-----------+------+-------+-------------+-----------+-------------+
 | |
|     | 12594680-56f7-4da2-8322-7266681b3070 | m1.small |   2048 |     20 |         0 |      |     1 |             | True      |             |
 | |
|     | 9274f903-0cc7-4a95-9124-1968018e355d | m1.tiny  |    512 |      5 |         0 |      |     1 |             | True      |             |
 | |
|     +--------------------------------------+----------+--------+--------+-----------+------+-------+-------------+-----------+-------------+
 | |
|     (openstack) server create --image CirrOS --flavor m1.small --key-name beaker sample-server
 | |
|     +-----------------------------+-------------------------------------------------+
 | |
|     | Field                       | Value                                           |
 | |
|     +-----------------------------+-------------------------------------------------+
 | |
|     | config_drive                |                                                 |
 | |
|     | created                     | 2014-11-19T18:08:41Z                            |
 | |
|     | flavor                      | m1.small (12594680-56f7-4da2-8322-7266681b3070) |
 | |
|     | id                          | 3a9a7f82-e902-4948-9245-52b045c76a1d            |
 | |
|     | image                       | CirrOS (de3a8396-3bae-42de-84bd-f4e398b8c320)   |
 | |
|     | key_name                    | bunsen                                          |
 | |
|     | name                        | sample-server                                   |
 | |
|     | progress                    | 0                                               |
 | |
|     | properties                  |                                                 |
 | |
|     | security_groups             | [{u'name': u'default'}]                         |
 | |
|     | status                      | BUILD                                           |
 | |
|     | tenant_id                   | 53c93c7952594d9ba16bd7072a165ce8                |
 | |
|     | updated                     | 2014-11-19T18:08:42Z                            |
 | |
|     | user_id                     | 1e4eea54c7124688a8092bec6e2dbee6                |
 | |
|     +-----------------------------+-------------------------------------------------+
 | |
| 
 | |
| A similar session can be issued all at once:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|     $ openstack <<EOF
 | |
|     > keypair list
 | |
|     > flavor show m1.small
 | |
|     > EOF
 | |
|     (openstack) +--------+-------------------------------------------------+
 | |
|     | Name   | Fingerprint                                     |
 | |
|     +--------+-------------------------------------------------+
 | |
|     | bunsen | a5:da:0c:52:e8:52:42:a3:4f:b8:22:62:7b:e4:e8:89 |
 | |
|     | beaker | 45:9c:50:56:7c:fc:3a:b6:b5:60:02:2f:41:fb:a9:4c |
 | |
|     +--------+-------------------------------------------------+
 | |
|     (openstack) +----------------------------+--------------------------------------+
 | |
|     | Field                      | Value                                |
 | |
|     +----------------------------+--------------------------------------+
 | |
|     | OS-FLV-DISABLED:disabled   | False                                |
 | |
|     | OS-FLV-EXT-DATA:ephemeral  | 0                                    |
 | |
|     | disk                       | 20                                   |
 | |
|     | id                         | 12594680-56f7-4da2-8322-7266681b3070 |
 | |
|     | name                       | m1.small                             |
 | |
|     | os-flavor-access:is_public | True                                 |
 | |
|     | ram                        | 2048                                 |
 | |
|     | swap                       |                                      |
 | |
|     | vcpus                      | 1                                    |
 | |
|     +----------------------------+--------------------------------------+
 | |
| 
 | |
| Limitations
 | |
| ===========
 | |
| 
 | |
| The obvious limitations to Interactive Mode is that it is not a Domain Specific
 | |
| Language (DSL), just a simple command processor.  That means there are no variables
 | |
| or flow control.
 |