Solum/CLI
< Solum
Revision as of 21:09, 13 January 2014 by Adrian Otto (talk | contribs)
Solum Command Line Interface
Contents
Overview
As of 2014-01-13 Solum does not yet have a CLI. It is required for our initial release, and efforts to code one are underway. A number of options for developing the tool are under discussion. This wiki page identifies and detail the options under consideration, and describes our intended approach.
Goals
- Produce a prototype to satisfy the solum-minimal-cli blueprint
- Produce a complete CLI for Solum that allows simple interaction with the Solum API service, satisfying the solum-cli blueprint
- Adjust the CLI (if needed) to conform to the prevailing OpenStack CLI tools, and underlying resources, such as any prevailing SDK resources and client libraries.
Blueprints
- https://blueprints.launchpad.net/solum/+spec/solum-cli
- https://blueprints.launchpad.net/solum/+spec/solum-minimal-cli
See the diagram showing how the CLI relates to the rest of the ecosystem
Mailing List Threads
Minimal CLI Options
Argparse
- WIP pull request - https://review.openstack.org/66065
Pro
- Fast-track to completing an M1 CLI
- Relatively simple Python standard argparse library-based code
- No external (potentially changing) code dependencies
- Modeled after Trove architecture recommendations
Con
- May be the largest porting effort to the eventual OpenStack client of any options
- No authentication handling built in (likely need to make a dependency on the python keystone client - https://github.com/openstack/python-keystoneclient)
Cliff
- (no pull request)
- https://cliff.readthedocs.org/en/latest/
- Cliff Demo App: https://github.com/dreamhost/cliff/tree/master/demoapp
Pro
- Future direction planned for OSC
- Cliff is maintained by Stackers
Con
- OSC Does not yet use cliff, and we are uncertain when it will.
OSC
- WIP pull request/hack - https://review.openstack.org/#/c/64703/
- Note: dtroyer is the technical lead for OSC
Pro
- Considered by many to be the best path for integration into the future OpenStack CLI architecture
- Integrates authentication already
- dtroyer agreed to implement two Solum plugin features to provide an example
Con
- Not complete - some APIs may change, especially around authentication
- The plugin documentation is not complete - https://github.com/dtroyer/python-oscplugin
- No other project has implemented the OSC plugin yet (core OpenStack projects add their features directly into the OSC without plugins)
- There are discussions about potential OSC architectural changes within OpenStack; want to verify that we will not be chasing large code changes
Proposed Plan
- Pursue a prototype based on simple argparse pull request to satisfy the solum-minimal-cli blueprint as part of M1 (short term, considered disposable).
- Pursue a complete client based on WIP OSC pull request that can integrate with OSC to satisfy the solum-cli blueprint
- The "prototype" client will be completed first, and will only implement the minimum needed to address solum-minimal-cli.
- OSC client obviates the argparse client, implementing everything in solum-cli once it is done.
- When OSC is adapted to use Cliff, we will adapt our OSC plugin to conform.