[openstack-dev] [Solum] Command Line Interface for Solum

Noorul Islam K M noorul at noorul.com
Mon Nov 11 04:40:27 UTC 2013

Clayton Coleman <ccoleman at redhat.com> writes:

>> On Nov 10, 2013, at 3:47 PM, Paul Belanger <paul.belanger at polybeacon.com> wrote:
>>> On 13-11-10 12:36 PM, Jay Pipes wrote:
>>>> On 11/10/2013 10:15 AM, Noorul Islam K M wrote:
>>>> Hello all,
>>>> I registered a new blueprint [1] for command line client interface for
>>>> Solum. We need to decide whether we should have a separate repository
>>>> for this or go with new unified CLI framework [2]. Since Solum is not
>>>> part of OpenStack I think it is not the right time to go with the
>>>> unified CLI.
>>> I think a separate repository (python-solumclient) is appropriate.
>>> There are two main camps of client tool programming: using the cliff
>>> library [1] and using the framework that was originally used for the
>>> Rackspace Cloud Servers CLI tool and library.
>>> Example of the cliff style is python-neutronclient [2]. Example of the
>>> other style is the current python-novaclient [3].
>>> I actually would love to see the Solum client take the best of both of
>>> the styles and create a client library that uses the cliff library for
>>> the underlying CLI plumbing and use the object-oriented style of
>>> python-novaclient that returns Resource objects instead of raw dicts
>>> like python-neutronclient does...
>>> Best,
>>> -jay
>>> [1] https://cliff.readthedocs.org/en/latest/
>>> [2] https://github.com/openstack/python-neutronclient
>>> [3] https://github.com/openstack/python-novaclient
>> +1 to cliff. I've used cliff a few times now for some CLI clients and it works very well.
> Even though it'll be a long time (maybe never) before Solum is a core project, it'd be good to track the CLI work going on in the common client [1].  The session at the design summit [2] definitely conveyed a broad agreement on this direction (ie common client is mostly inevitable), so being cognizant of the plugin pattern they have going is smart.  We could potentially ship an isolated common client (ie based on that code) that used only a Solum plugin, so in the future we would have the option to switch to being integrated.

Isn't that going to be painful to sync changes in CLI work into this
separate repository often? I think we have to keep doing that because
there will be bug fixes and other enhancements. 


More information about the OpenStack-dev mailing list