Jump to: navigation, search

Solum/CLI

< Solum
Revision as of 21:09, 13 January 2014 by Adrian Otto (talk | contribs)

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

Cliff

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

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.