Jump to: navigation, search

Difference between revisions of "Solum/CLI"

Line 29: Line 29:
 
==== Con ====
 
==== 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 (will depend on [https://github.com/openstack/python-keystoneclient python-keystoneclient] library)
 
 
=== 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 ===
 
=== OSC ===
 
* WIP pull request/hack - https://review.openstack.org/#/c/64703/
 
* WIP pull request/hack - https://review.openstack.org/#/c/64703/
 +
* OSC now uses [https://cliff.readthedocs.org/en/latest/ Cliff]. Cliff [https://github.com/dreamhost/cliff/tree/master/demoapp demo app].
 
* Note: dtroyer is the technical lead for OSC
 
* Note: dtroyer is the technical lead for OSC
  
Line 59: Line 48:
  
 
== Proposed Plan ==
 
== 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).
+
* Develop 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
+
* Develop 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].
 
* 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.
 
* 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.
 
* When OSC is adapted to use Cliff, we will adapt our OSC plugin to conform.

Revision as of 21:43, 13 January 2014

Solum Command Line Interface

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

  1. Produce a prototype to satisfy the solum-minimal-cli blueprint
  2. Produce a complete CLI for Solum that allows simple interaction with the Solum API service, satisfying the solum-cli blueprint
  3. 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

See the diagram showing how the CLI relates to the rest of the ecosystem

Mailing List Threads

Minimal CLI Options

Argparse

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

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.
  • When OSC is adapted to use Cliff, we will adapt our OSC plugin to conform.