diff --git a/docs/CLI.md b/docs/CLI.md index ab9e44a4..082a17e9 100644 --- a/docs/CLI.md +++ b/docs/CLI.md @@ -4,18 +4,23 @@ All commands will utilize the following environment variables to determine necessary information for execution, unless otherwise noted.
-
Openstack Keystone Authorization Environment variables
+
Openstack Keystone Authorization environment variables
The Shipyard CLI/API Client will check for the presence of appropriate environment setup to do authentication on behalf of the user. The openrc variables that will be used are as follows:
- OS_PROJECT_DOMAIN_NAME
- OS_USER_DOMAIN_NAME
+ OS_PROJECT_DOMAIN_NAME ("default" if not specified)
+ OS_USER_DOMAIN_NAME ("default" if not specified)
OS_PROJECT_NAME
OS_USERNAME
OS_PASSWORD
- OS_AUTH_URL
- OS_IDENTITY_API_VERSION
+ OS_AUTH_URL - The fully qualified identity endpoint. + E.g. http://keystone.ucp.fully.qualified.name:80/v3
+
+
Openstack Keystone Authorization environment variables not used
+
+ OS_IDENTITY_API_VERSION -- this value will be ignored as Shipyard only + supports version 3 at this time
@@ -28,8 +33,9 @@ shipyard <--these options> subcommands... shipyard [--context-marker=] - [--os_{various}=] [--debug/--no-debug] + [--os_{various}=] + [--output-format=[format | raw | cli]] (default = cli) ```
@@ -40,22 +46,35 @@ shipyard interaction. If not specified, Shipyard will supply a new UUID to serve as this marker. (optional) +
--debug | --no-debug (default)
+
+ Enable/disable debugging of this CLI and API client. +
--os_{various}=<value>
See supported Openstack Keystone Authorization Environment variables above for the list of supported names, converting to a downcase version of the environment variable.
- E.g.: --os_auth_url=http://...:80/v3 - While these options are optional, if not specified, the environment - variables will be used instead. The Keystone os_auth_url should reference - the exposed keystone:port for the target Shipyard environment, as this - Keystone will be used to discover the instance of Shipyard. + E.g.: --os_auth_url=http://keystone.ucp:80/v3
+ If not specified, the environment variables matching these actions will be + used instead. The Keystone os_auth_url should reference the exposed + keystone:port for the target Shipyard environment, as this Keystone will + be used to discover the instance of Shipyard. For most invocations other + than help, a valid combination of values must be resolved to authenticate + and authorize the user's invocation. +
+
--output-format=[format | raw | cli] (default = cli)
+
+ Specifies the desired output formating such that:
+ format: Display the raw ouptut from the invoked Shipyard API in a + column restricted mode.
+ raw: Display the result from the invoked Shipyard API as-is, without + modification.
+ cli: (default) Display results in a plain text interpretation of the + response from the invoked Shipyard API.
-## Context Marker - - # Commit Commands ## commit configdocs Attempts to commit the Shipyard Buffer documents, first invoking validation @@ -147,7 +166,6 @@ Example:
<action command>
The action to invoke. - See [Action Commands](API_action_commands.md) for supported actions
--param=<parameter>
diff --git a/shipyard_client/cli/commands.py b/shipyard_client/cli/commands.py index 5ee064a6..da23df5d 100644 --- a/shipyard_client/cli/commands.py +++ b/shipyard_client/cli/commands.py @@ -35,20 +35,24 @@ from shipyard_client.cli.input_checks import check_control_action, check_id ' logs, transactions, etc. in downstream activities triggered by this' ' interaction. If not specified, Shipyard will supply a new UUID to serve' ' as this marker. (optional)', - required=False) + required=False, + type=click.UUID) @click.option('--debug/--no-debug', default=False, help='Turn Debug on.') @click.option( '--output-format', 'output_format', required=False, - type=click.Choice(['format', 'raw'])) + type=click.Choice(['format', 'raw', 'cli']), + default='cli') # Supported Environment Variables -@click.option( - '--os_project_domain_name', - envvar='OS_PROJECT_DOMAIN_NAME', - required=False) -@click.option( - '--os_user_domain_name', envvar='OS_USER_DOMAIN_NAME', required=False) +@click.option('--os_project_domain_name', + envvar='OS_PROJECT_DOMAIN_NAME', + required=False, + default='default') +@click.option('--os_user_domain_name', + envvar='OS_USER_DOMAIN_NAME', + required=False, + default='default') @click.option('--os_project_name', envvar='OS_PROJECT_NAME', required=False) @click.option('--os_username', envvar='OS_USERNAME', required=False) @click.option('--os_password', envvar='OS_PASSWORD', required=False) @@ -94,7 +98,7 @@ def shipyard(ctx, context_marker, debug, os_project_domain_name, ctx.obj['API_PARAMETERS'] = { 'auth_vars': auth_vars, - 'context_marker': context_marker, + 'context_marker': str(context_marker) if context_marker else None, 'debug': debug } diff --git a/shipyard_client/cli/help/output.py b/shipyard_client/cli/help/output.py index 8c43e6a9..5c05fa04 100644 --- a/shipyard_client/cli/help/output.py +++ b/shipyard_client/cli/help/output.py @@ -32,24 +32,16 @@ For information of the following topics, run shipyard help def actions(): return '''ACTIONS - - -Supported Actions -No supported actions at this time. - - -Actions Under Development +The workflow actions that may be invoked using Shipyard deploy_site: Triggers the initial deployment of a site using the latest committed configuration documents. update_site: Triggers the initial deployment of a site, using the latest committed configuration documents. - Steps: - (same as deploy_site) redeploy_server: Using parameters to indicate which server(s), triggers a - redeployment of server to the last known good design and + redeployment of servers to the last committed design and secrets. ''' diff --git a/shipyard_client/tests/unit/cli/test_shipyard_commands.py b/shipyard_client/tests/unit/cli/test_shipyard_commands.py index f393516d..aa115407 100644 --- a/shipyard_client/tests/unit/cli/test_shipyard_commands.py +++ b/shipyard_client/tests/unit/cli/test_shipyard_commands.py @@ -21,7 +21,7 @@ from shipyard_client.api_client.shipyardclient_context import \ def test_shipyard(): - context_marker = '--context-marker=UUID' + context_marker = '--context-marker=88888888-4444-4444-4444-121212121212' debug = '--debug' os_project_domain_name = ( '--os_project_domain_name=OS_PROJECT_DOMAIN_NAME_test') @@ -47,4 +47,8 @@ def test_shipyard(): os_project_name, os_username, os_password, os_auth_url, debug, 'commit', 'configdocs' ]) - mock_method.assert_called_once_with(auth_vars, 'UUID', True) + mock_method.assert_called_once_with( + auth_vars, + '88888888-4444-4444-4444-121212121212', + True + )