This patch correct the missing one 'os example'. Change-Id: I7c2cb01082f1eff1a7a607508f166dd54a450f44
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
============
 | 
						|
Command Beta
 | 
						|
============
 | 
						|
 | 
						|
OpenStackClient releases do not always coincide with OpenStack
 | 
						|
releases. This creates challenges when developing new OpenStackClient
 | 
						|
commands for the current OpenStack release under development
 | 
						|
since there may not be an official release of the REST API
 | 
						|
enhancements necessary for the command. In addition, backwards
 | 
						|
compatibility may not be guaranteed until an official OpenStack release.
 | 
						|
To address these challenges, an OpenStackClient command may
 | 
						|
be labeled as a beta command according to the guidelines
 | 
						|
below. Such commands may introduce backwards incompatible
 | 
						|
changes and may use REST API enhancements not yet released.
 | 
						|
This also applies to command options associated with the beta
 | 
						|
command object.
 | 
						|
 | 
						|
See the examples below on how to label an entire command or
 | 
						|
a specific option as a beta by updating the documentation
 | 
						|
and implementation.
 | 
						|
 | 
						|
The initial release note must label the new command or option
 | 
						|
as a beta. No further release notes are required until the command
 | 
						|
or option is no longer a beta. At which time, the beta label or
 | 
						|
the command or option itself must be removed and a new release note
 | 
						|
must be provided.
 | 
						|
 | 
						|
Beta Command Example
 | 
						|
--------------------
 | 
						|
 | 
						|
Documentation
 | 
						|
~~~~~~~~~~~~~
 | 
						|
 | 
						|
The command documentation must label the command as a beta.
 | 
						|
 | 
						|
example list
 | 
						|
++++++++++++
 | 
						|
 | 
						|
List examples
 | 
						|
 | 
						|
.. caution:: This is a beta command and subject to change.
 | 
						|
             Use global option ``--os-beta-command`` to
 | 
						|
             enable this command.
 | 
						|
 | 
						|
.. program:: example list
 | 
						|
.. code:: bash
 | 
						|
 | 
						|
    openstack example list
 | 
						|
 | 
						|
Help
 | 
						|
~~~~
 | 
						|
 | 
						|
The command help must label the command as a beta.
 | 
						|
 | 
						|
.. code-block:: python
 | 
						|
 | 
						|
    class ShowExample(command.ShowOne):
 | 
						|
        """Display example details
 | 
						|
 | 
						|
           (Caution: This is a beta command and subject to change.
 | 
						|
            Use global option --os-beta-command to enable
 | 
						|
            this command)
 | 
						|
        """
 | 
						|
 | 
						|
Implementation
 | 
						|
~~~~~~~~~~~~~~
 | 
						|
 | 
						|
The command must raise a ``CommandError`` exception if beta commands
 | 
						|
are not enabled via ``--os-beta-command`` global option.
 | 
						|
 | 
						|
.. code-block:: python
 | 
						|
 | 
						|
    def take_action(self, parsed_args):
 | 
						|
        self.validate_os_beta_command_enabled()
 | 
						|
 | 
						|
Beta Option Example
 | 
						|
-------------------
 | 
						|
 | 
						|
Documentation
 | 
						|
~~~~~~~~~~~~~
 | 
						|
 | 
						|
The option documentation must label the option as a beta.
 | 
						|
 | 
						|
.. option:: --example <example>
 | 
						|
 | 
						|
     Example
 | 
						|
 | 
						|
     .. caution:: This is a beta command option and subject
 | 
						|
                  to change. Use global option ``--os-beta-command``
 | 
						|
                  to enable this command option.
 | 
						|
 | 
						|
Implementation
 | 
						|
~~~~~~~~~~~~~~
 | 
						|
 | 
						|
The option must not be added if beta commands are not
 | 
						|
enabled via ``--os-beta-command`` global option.
 | 
						|
 | 
						|
.. code-block:: python
 | 
						|
 | 
						|
    def get_parser(self, prog_name):
 | 
						|
        if self.app.options.os_beta_command:
 | 
						|
            parser.add_argument(
 | 
						|
                '--example',
 | 
						|
                metavar='<example>',
 | 
						|
                help=_("Example")
 | 
						|
            )
 |