Solum/CLI
< Solum
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 (will depend on python-keystoneclient library)
OSC
- WIP pull request/hack - https://review.openstack.org/#/c/64703/
- OSC now uses Cliff. Cliff demo app.
- 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
- Develop a prototype based on simple argparse pull request to satisfy the solum-minimal-cli blueprint as part of M1 (short term, considered disposable).
- Develop 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.