ODS Grizzly: Unified CLI, take 2


Time:Tuesday 11:50 AM
Location:Annie AB
Etherpad:http://etherpad.openstack.org/grizzly-common-unified-cli

During the Folsom summit we defined some requirements for a unified
command line client program for OpenStack
. Since then we have begun
development and made significant progress, but the project has stalled
out a bit. During the Unified CLI, take 2 session we will discuss
restarting the project and find additional contributors.

Original Project Goals

  • use the OpenStack Python client API modules, extending them as required
  • use consistent naming and structure for commands and arguments
  • consistent output formats with the option of reliably machine parseable formats
  • use a single-binary approach that also contains an embedded command-line that can execute multiple commands on a single authentication (see libvirt’s virsh for an example)
  • independence from the OpenStack project names

Status

  • cliff framework provides
    • consistent output formats
    • parseable output
    • single binary with interactive mode
  • single main command “openstack”

  • style-guide in wiki specifies naming conventions

  • existing sub-commands:

    • roles

      add role
      create role
      delete role
      list role
      remove role
      show role

    • servers

      list server
      show server

    • endpoints

      create endpoint
      delete endpoint
      list endpoint
      show endpoint

    • services

      create service
      delete service
      list service
      show service

    • tenants

      create tenant
      delete tenant
      list tenant
      set tenant
      show tenant

    • users

      create user
      delete user
      list user
      set user
      show user
      list user role

  • quantum is using cliff, but not part of the unified CLI, yet

Proposed Grizzly Goals

  • implement the commands associated with more services
    • what priorities?
  • semi-official public release? incubation?

  • move commands for each service into the client library for the service
    • convert to meta-package with dependencies to install all of the parts
      • project client libraries do not depend on cliff or python-openstackclient
      • python-openstackclient depends on all client libraries
      • installing project client does not provide CLI, but provides
        plugins that are discovered when python-openstackclient is
        installed
  • document inconsistencies in the project client libraries to be
    addressed during “H”
    - another session on consistent APIs Wednesday at 4:30 Standardizing client & API capabilities