[openstack-dev] [nova][cinder] can we deprecate the volume CLIs in novaclient?
Matt Riedemann
mriedem at linux.vnet.ibm.com
Fri May 22 21:23:50 UTC 2015
On 5/15/2015 9:38 AM, Sean Dague wrote:
> On 05/15/2015 12:28 PM, Everett Toews wrote:
>> On May 15, 2015, at 10:28 AM, John Griffith <john.griffith8 at gmail.com
>> <mailto:john.griffith8 at gmail.com>> wrote:
>>
>>>
>>>
>>> On Thu, May 14, 2015 at 8:29 PM, Matt Riedemann
>>> <mriedem at linux.vnet.ibm.com <mailto:mriedem at linux.vnet.ibm.com>> wrote:
>>>
>>> This came up while talking about bug 1454369 [1]. This also came
>>> up at one point in kilo when we found out the volume CLIs in
>>> novaclient didn't work at one point and we broke the cells
>>> devstack exercises job because of it.
>>>
>>> python-novaclient uses cinder API to handle the volume CLI rather
>>> than going to the nova volume API. There are issues with this
>>> because novaclient needs a certain endpoint/service_type setup in
>>> the service catalog to support cinder v1/v2 APIs (whatever
>>> devstack sets up today). novaclient defaults to volume (v1) and
>>> if you disable that in cinder then novaclient doesn't work because
>>> it's not using volumev2.
>>>
>>> So like anyone might ask, why doesn't novaclient talk to nova
>>> volume APIs to do volume thingies and the answer is because the
>>> nova volume API doesn't handle all of the volume thingies like
>>> snapshots and volume types.
>>>
>>> So I got to to thinking, why the hell are we still supporting
>>> volume operations via novaclient anyway? Isn't that
>>> cinderclient's job? Or python-openstackclient's job? Can't we
>>> deprecate the volume CLIs in novaclient and tell people to use
>>> cinderclient instead since it now has version discovery [2] so
>>> that problem would be handled for us.
>>>
>>> Since we have nova volume APIs maybe we can't remove the volume
>>> CLIs in novaclient, but could they be limited to just operations
>>> that the nova API supports and then we make novaclient talk to
>>> nova volume APIs rather than cinder APIs (because the nova API
>>> will talk to cinderclient which again has the version discovery
>>> done for us).
>>>
>>> Or assuming we could deprecate the volume CLIs in novaclient, what
>>> would the timeline on deprecation be since it's not a server
>>> project with a 6 month release cycle? I'm assuming we'd still
>>> have 6-12 months deprecation on a client like this because of all
>>> of the tooling potentially written around it.
>>>
>>> [1] https://bugs.launchpad.net/python-novaclient/+bug/1454369
>>> [2] https://review.openstack.org/#/c/145613/
>>>
>>> I can't speak for the nova folks, however i do think removing the
>>> volume calls from novaclient seems "ok". It was always sort of left
>>> for compat I think, and not sure any of us really thought about just
>>> removing it. At this point it probably just introduces confusion and
>>> as you're running into "problems".
>>>
>>> Seems like a good plan, and somewhat less confusing. On a side note,
>>> might be some other *things* in novaclient that we could look at as
>>> well, particularly around networking.
>>
>> FWIW, this is already underway in jclouds-land. After a lengthy
>> deprecation period (still ongoing actually), we’ll be removing the Nova
>> volume calls but obviously keeping the volume attachment stuff.
>>
>> Both the Nova and Cinder calls have coexisted for over a year with
>> documentation pointing from Nova to Cinder. The deprecation annotations
>> handle emitting warnings for the deprecated calls to increase visibility.
>
> Everett, this is actually a different thing.
>
> "nova volume ...." does not talk to Nova's volume proxy, it goes
> straight to cinder through the service catalog.
>
> Deprecating this part of nova client is probably fine, but it should
> have a lengthy deprecation cycle, as it's been like this for a very long
> time. It feels like it won't go away before openstack client starts
> taking hold anyway.
>
> I think this raises a more important issue of Service Catalog
> Standarization. The reason we're in a bind here has as much to do with
> the fact that service catalog content isn't standardized for OpenStack
> services. If so, having another cinder implementation in novaclient
> wouldn't be such a bad thing, and not having to switch cli commands is
> pretty handy (all hail our future osc overlords).
>
> Fortunately, we're going to be talking about just this kind of problem
> at Summit -
> http://libertydesignsummit.sched.org/event/194b2589eca19956cb88ada45e985e29
>
> -Sean
>
Here is the change for those following along at home:
https://review.openstack.org/#/c/185141/
--
Thanks,
Matt Riedemann
More information about the OpenStack-dev
mailing list