Document openstack client

Handle openstack client command.

Change-Id: I1c55eaf7619d07c0bc07e6ef3328bb10c24e9079
This commit is contained in:
Andreas Jaeger 2014-09-06 13:44:49 +02:00
parent 9f4a033586
commit d2d93f7273
2 changed files with 110 additions and 14 deletions

View File

@ -15,6 +15,7 @@ Release notes
* ``diff_branches.py``: Updated output format.
* Provide a ``hotref`` extension for sphinx, to automate the creation of
references to the HOT resources documentation.
* ``openstack-auto-commands``: Handle python-openstackclient.
0.18.1
------

View File

@ -71,33 +71,52 @@ def generate_heading(os_command, api_name, title, os_file):
help_str = "<replaceable>COMMAND</replaceable> <option>--help</option>"
else:
help_str = "<option>help</option> <replaceable>COMMAND</replaceable>"
header = """<?xml version=\"1.0\" encoding=\"UTF-8\"?>
header1 = """<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<chapter xmlns=\"http://docbook.org/ns/docbook\"
xmlns:xi=\"http://www.w3.org/2001/XInclude\"
xmlns:xlink=\"http://www.w3.org/1999/xlink\"
version=\"5.0\"
xml:id=\"{0}client_commands\">
xml:id=\"%(os_command)sclient_commands\">
<!-- This file is automatically generated, do not edit -->
<?dbhtml stop-chunking?>
<title>{2}</title>
<para>The <command>{0}</command> client is the command-line interface
(CLI) for the {1} and its extensions. This chapter documents
<command>{0}</command> version {3}.
<title>%(title)s</title>\n"""
if os_command == "openstack":
header2 = """
<para>The <command>%(os_command)s</command> client is a common
OpenStack command-line interface (CLI).\n"""
else:
header2 = """
<para>The <command>%(os_command)s</command> client is the command-line
interface (CLI) for the %(api_name)s and its extensions.\n"""
header3 = """
This chapter documents <command>%(os_command)s</command> version
%(version)s.
</para>
<para>For help on a specific <command>{0}</command>
<para>For help on a specific <command>%(os_command)s</command>
command, enter:
</para>
<screen><prompt>$</prompt> <userinput><command>{0}</command> \
{4}</userinput></screen>
<screen><prompt>$</prompt> <userinput><command>%(os_command)s</command> \
%(help_str)s</userinput></screen>
<section xml:id=\"{0}client_command_usage\">
<title>{0} usage</title>\n"""
<section xml:id=\"%(os_command)sclient_command_usage\">
<title>%(os_command)s usage</title>\n"""
os_file.write(header.format(os_command, api_name, title, version,
help_str))
format_dict = {
"os_command": os_command,
"api_name": api_name,
"title": title,
"version": version,
"help_str": help_str
}
os_file.write(header1 % format_dict)
os_file.write(header2 % format_dict)
os_file.write(header3 % format_dict)
def is_option(string):
@ -342,8 +361,9 @@ def generate_subcommand(os_command, os_subcommand, os_file):
help_lines = check_output([os_command, "help",
os_subcommand]).split('\n')
os_subcommandid = os_subcommand.replace(' ', '_')
os_file.write(" <section xml:id=\"%sclient_subcommand_%s\">\n"
% (os_command, os_subcommand))
% (os_command, os_subcommandid))
os_file.write(" <title>%s %s command</title>\n"
% (os_command, os_subcommand))
@ -518,6 +538,81 @@ def document_single_project(os_command, output_dir):
subcommands = ["db_sync", "db_upgrade",
"db_downgrade", "datastore_update",
"datastore_version_update", "db_recreate"]
elif os_command == 'openstack':
api_name = ''
title = "OpenStack client"
# Does not support bash-completion command in the form
# required by this tool.
subcommands = ["aggregate add host", "aggregate create",
"aggregate delete", "aggregate list",
"aggregate remove host", "aggregate set",
"aggregate show", "backup create",
"backup delete", "backup list",
"backup restore", "backup show",
"compute agent create", "compute agent delete",
"compute agent list", "compute agent set",
"compute service list", "compute service set",
"console log show", "console url show",
"container list", "container show",
"ec2 credentials create", "ec2 credentials delete",
"ec2 credentials list", "ec2 credentials show",
"endpoint create", "endpoint delete",
"endpoint list", "endpoint show",
"extension list",
"flavor create", "flavor delete",
"flavor list", "flavor show",
"host list",
"host show", "hypervisor list",
"hypervisor show", "image create",
"image delete", "image list",
"image save", "image set",
"image show", "ip fixed add",
"ip fixed remove", "ip floating add",
"ip floating create", "ip floating delete",
"ip floating list", "ip floating pool list",
"ip floating remove", "keypair create",
"keypair delete", "keypair list",
"keypair show", "limits show",
"module list", "object list",
"object show", "project create",
"project delete", "project list",
"project set", "project show",
"project usage list", "quota set",
"quota show", "role add",
"role create", "role delete",
"role list", "role remove",
"role show", "security group create",
"security group delete", "security group list",
"security group rule create",
"security group rule delete",
"security group rule list", "security group set",
"security group show", "server add security group",
"server add volume", "server create",
"server delete", "server image create",
"server list", "server lock",
"server migrate", "server pause",
"server reboot", "server rebuild",
"server remove security group", "server remove volume",
"server rescue", "server resize",
"server resume", "server set",
"server show", "server ssh",
"server suspend", "server unlock",
"server unpause", "server unrescue",
"server unset", "service create",
"service delete", "service list",
"service show", "snapshot create",
"snapshot delete", "snapshot list",
"snapshot set", "snapshot show",
"token issue", "token revoke",
"user create",
"user delete", "user list",
"user role list", "user set",
"user show", "volume create",
"volume delete", "volume list",
"volume set", "volume show",
"volume type create", "volume type delete",
"volume type list", "volume type set",
"volume type unset", "volume unset"]
else:
print("'%s' command not yet handled" % os_command)
sys.exit(-1)