Difference between revisions of "Solum/CLI"
< Solum
Adrian Otto (talk | contribs) |
Adrian Otto (talk | contribs) |
||
Line 13: | Line 13: | ||
* https://blueprints.launchpad.net/solum/+spec/solum-minimal-cli | * https://blueprints.launchpad.net/solum/+spec/solum-minimal-cli | ||
− | + | See the [https://www.dropbox.com/s/ejnu2iginqr6lau/Screenshot%202014-01-13%2014.29.47.png diagram showing how the CLI relates to the rest of the ecosystem] | |
− | See | ||
− | |||
− | |||
== Mailing List Threads == | == Mailing List Threads == | ||
Line 22: | Line 19: | ||
== Minimal CLI Options == | == Minimal CLI Options == | ||
− | === Argparse | + | === Argparse === |
− | ==== | + | * WIP pull request - https://review.openstack.org/66065 |
+ | ==== Pro ==== | ||
* Fast-track to completing an M1 CLI | * Fast-track to completing an M1 CLI | ||
* Relatively simple Python standard argparse library-based code | * Relatively simple Python standard argparse library-based code | ||
Line 29: | Line 27: | ||
* Modeled after Trove architecture recommendations | * Modeled after Trove architecture recommendations | ||
− | ==== | + | ==== Con ==== |
* May be the largest porting effort to the eventual OpenStack client of any options | * 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) | * 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) | + | === Cliff === |
− | https://cliff.readthedocs.org/en/latest/ | + | * (no pull request) |
− | Cliff Demo App: https://github.com/dreamhost/cliff/tree/master/demoapp | + | * 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 | + | === OSC === |
− | Note: dtroyer is | + | * 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 | * Considered by many to be the best path for integration into the future OpenStack CLI architecture | ||
* Integrates authentication already | * Integrates authentication already | ||
* dtroyer agreed to implement two Solum plugin features to provide an example | * dtroyer agreed to implement two Solum plugin features to provide an example | ||
− | ==== | + | ==== Con ==== |
* Not complete - some APIs may change, especially around authentication | * Not complete - some APIs may change, especially around authentication | ||
* The plugin documentation is not complete - https://github.com/dtroyer/python-oscplugin | * 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) | * 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 | * 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 [https://review.openstack.org/66065 simple argparse pull request] to satisfy the [https://blueprints.launchpad.net/solum/+spec/solum-minimal-cli solum-minimal-cli] blueprint as part of M1 (short term, considered disposable). | ||
+ | * Pursue a complete client based on [https://review.openstack.org/#/c/64703/ WIP OSC pull request] that can integrate with OSC to satisfy the [https://blueprints.launchpad.net/solum/+spec/solum-cli solum-cli] blueprint | ||
+ | * The "prototype" client will be completed first, and will only implement the minimum needed to address [https://blueprints.launchpad.net/solum/+spec/solum-minimal-cli solum-minimal-cli]. | ||
+ | * OSC client obviates the argparse client, implementing everything in [https://blueprints.launchpad.net/solum/+spec/solum-cli solum-cli] once it is done. | ||
+ | * When OSC is adapted to use Cliff, we will adapt our OSC plugin to conform. |
Revision as of 21:09, 13 January 2014
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.