[openstack-dev] Novaclient and Extensions

Monty Taylor mordred at inaugust.com
Tue Dec 18 06:37:50 UTC 2012


On 12/17/2012 10:20 PM, Craig Vyvial wrote:
> I do not think making the client "smart" enough to be able to tell which
> extensions are available is the right approach. It seems like overkill
> for the client's responsibility. 
> 
> I maybe reading in to this to far but it seems like if you want to
> install or enable an extension you should have to install to enable
> it... aka install python-novaclient-security-groups.
> Then each extension can be updated maintained separately.
> 
> But i guess the main draw back I see with this is that then its a pain
> to "test" this functionality between extensions and core code. 
> But I am sure people/companies have their own custom extensions that
> have never made it into the core code or never will have already felt
> some of these pains. 

Obviously, I agree with Vish here ... but I think that one of the places
where you and I may be missing each other is in who the audience is we
are talking about.

When you say "if you want to install..." that implies a level of agency
or understanding that I do not think we should expect from a public
cloud user. Why would I, as a consumer of an OpenStack based public
cloud ever "want" to install a novaclient extension module? How would I
even know I want to do that?

On the other hand, if you're talking about a private cloud, then sure -
the cloud consumers have a more specific knowledge than the general
walk-up consumer would, so might have more of an idea that they "want"
to install a particular extension.

For a public cloud user, I should need to know exactly one thing about
the cloud in question - the entry endpoint.

> On Mon, Dec 17, 2012 at 3:06 PM, Vishvananda Ishaya
> <vishvananda at gmail..com <mailto:vishvananda at gmail.com>> wrote:
> 
> 
>     On Dec 17, 2012, at 12:40 PM, Monty Taylor <mordred at inaugust.com
>     <mailto:mordred at inaugust.com>> wrote:
> 
>     >
>     >
>     > On 12/17/2012 12:15 PM, Matt Dietz wrote:
>     >> All,
>     >>
>     >>      I've noticed recently that more and more extension specific
>     code is going
>     >> into novaclient rather than a dedicated client extension, and
>     that some of
>     >> the new code assumes other extensions are enabled in Nova proper.
>     I wanted
>     >> to start the discussion of finally starting to treat extensions
>     as they're
>     >> meant to be: extensions. Between Nova and novaclient, we have a
>     lot of
>     >> code that makes assumptions about the existence of an extension,
>     which
>     >> objectively means that particular object is no longer "extending"
>     >> anything. What would it take to get everyone to agree to the idea
>     that
>     >> only core functionality belongs in the API, and that any
>     references to
>     >> extension functionality doesn't?
>     >>      I'm proposing we set about removing things like the checks
>     for loaded
>     >> extensions in the nova API, and similarly, remove all extensions
>     in the
>     >> novaclient and into their own client extension packages. I
>     already started
>     >> this work with my blueprint for tenant networks
>     >> https://blueprints.launchpad.net/nova/+spec/tenant-networks,
>     which adds a
>     >> new extension and moves the existing one into a different
>     namespace. The
>     >> original patches I had written also removed the network command
>     bits from
>     >> novaclient and replaced them with two new client extensions.
>     However, when
>     >> attempting to merge those back in, I noticed code was added for a
>     "scrub"
>     >> method, which assumes networks and security groups are available.
>     >>      Unless there are any serious objections, I plan to remove
>     the newly added
>     >> network functionality and the scrub functionality and place them
>     in their
>     >> own extensions, because I'd like to set the precedent for returning
>     >> novaclient to it's core-API only status. Thoughts?
>     >
>     > I'd be inclined to agree (since I was the one who moved the rackspace
>     > auth specific things into an extension a while back) ... but I do want
>     > to make sure that we don't make it unnecessarily hard for an
>     end-user to
>     > do this:
>     >
>     > pip install python-novaclient
>     > ** use cloud **
>     >
>     > That said - I think that any "extension" to nova that is actually
>     to be
>     > found in nova's tree should have corresponding extension code in the
>     > python-novaclient tree. HOWEVER, I think that novaclient should be
>     able
>     > to figure out what extensions are there and only expose functionality
>     > that is appropriate for the cloud it's talking too.
>     >
>     > I think that making a user do:
>     >
>     > pip install python-novaclient python-novaclient-security-groups
> 
>     Agreed. We already have a place for extension code to go in
>     novaclient, we just
>     aren't using it. We need to start moving stuff there and add a check
>     for novaclient
>     to actually check the extensions endpoint before displaying help so
>     that only
>     usable command show up.
> 
>     Vish
>     _______________________________________________
>     OpenStack-dev mailing list
>     OpenStack-dev at lists.openstack.org
>     <mailto:OpenStack-dev at lists.openstack.org>
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 



More information about the OpenStack-dev mailing list