Solum/FeatureBlueprints/CLI-minimal-implementation

This is a child spec to implement the minimal set of CLI operations for Milestone 1. The full set of commands and options are documented in the parent blueprint speced @ https://wiki.openstack.org/wiki/Solum/FeatureBlueprints/ApplicationDeploymentAndManagement. The CLI operations implemented as part of this will be a subset of CLI features listed in the parent blueprint.

The subset of CLI commands implemented as part of this are:


 * Solum-R1.12 app create: CLI
 * Solum-R1.9 assembly create: CLI
 * Solum-R1.6 assembly delete: CLI
 * Solum-R1.15 app delete: CLI
 * Solum-R1.8.1 plans list: CLI
 * Solum-R1.8.2 assemblies list: CLI

Of the six command listed above, only a subset of command options will be implemented in Milestone 1. (the parent blueprint supports a larger set of options for each command)

Solum-R1.12 app create: CLI

Synopsis: app create [--repo="repo_url"] [--build=no] "

Create a Plan with a given deployment Artifact and Plan file, and associate the plan with the specified plan name. Do not create any assemblies. Return the URI of the Plan created.

The plan name has to be unique within the tenant namespace. This approach assumes --build="yes" by default i.e. perform a build if needed.

Note: the --repo option is actually required in this revision, but will become optional in our next milestone, so we should set up the style now so that it does not change. For this milestone, failure to include --repo should return a not-implmented error. Use of --build=no should also return a not-implmented error.

Solum-R1.9 assembly create: CLI

Synopsis: assembly create [--assembly="assembly_name"] 

Precondition - app create was already invoked so we have a precreated plan

Create an Assembly from an Plan by name. Multiple Assemblies may be created from a single Plan. Return the URI of the Assembly created.

If --assembly is not supplied, Solum will generate a name for you, based on the name of the plan, with incrementing digits on the end. Example: adrian_1

Solum-R1.11 assembly delete: CLI

Synopsis: assembly delete "

Delete the given Assembly by name (i.e. deprovision the assembly from the data plane). This will stop all running components, delete them, and then delete the empty assembly as well.

Solum-R1.15 app delete: CLI

Synopsis: app delete 

Delete the plan and all assemblies created from the plan. If there are any assemblies running from that Plan, issue a warning requiring --force

Solum-R1.8.1 plans list: CLI app list List the Plans.

Solum-R1.8.2 assemblies list: CLI List the Assemblies (running instances of applications)