[openstack-dev] [nova] [tempest] [ceilometer] Defining Diagnotics API Schema (was: looking for clarification...)

Sean Dague sean at dague.net
Tue Oct 15 12:13:35 UTC 2013


"Open Ended API" isn't really an API. An API has a contract, otherwise it
isn't an API. The diagnostics REST call currently seems to have no contract
at all, and is just implemented by the underlying driver to whatever seems
like a good idea today (also, no versioning on things, so what libvirt
returns in grizzly vs. havana is up in the air).

At minimum we need some kind of per driver (probably with a version) json
schema so you could at least identify over the wire what you should be
expecting. Even better would be a generic definition, but I get that takes
time / effort.

I think the approach at this point is a bug on nova has been filed -
https://bugs.launchpad.net/nova/+bug/1240043 ... and  we're going to skip
the tempest tests entirely based on that bug. Testing an API, that isn't
actually an API, is really beyond tempest scope.

On Mon, Oct 14, 2013 at 4:54 AM, Bob Ball <bob.ball at citrix.com> wrote:

>  I’m happy with that approach – again I’ve not seen any discussions about
> how this should be done.****
>
> ** **
>
> I’ve added [tempest] and [ceilometer] tags so we can hopefully get input
> from the guys involved.****
>
> ** **
>
> Bob****
>
> ** **
>
> *From:* Gary Kotton [mailto:gkotton at vmware.com]
> *Sent:* 13 October 2013 05:21
>
> *To:* OpenStack Development Mailing List
> *Subject:* Re: [openstack-dev] [nova] Looking for clarification on the
> diagnostics API****
>
>  ** **
>
> Hi,****
>
> I agree with Matt here. This is not broad enough. One option is to have a
> tempest class that overrides for various backend plugins. Then the test can
> be haredednd for each driver. I am not sure if that is something that has
> been talked about.****
>
> Thanks****
>
> Gary****
>
> ** **
>
> *From: *Matt Riedemann <mriedem at us.ibm.com>
> *Reply-To: *OpenStack Development Mailing List <
> openstack-dev at lists.openstack.org>
> *Date: *Sunday, October 13, 2013 6:13 AM
> *To: *OpenStack Development Mailing List <
> openstack-dev at lists.openstack.org>
> *Subject: *Re: [openstack-dev] [nova] Looking for clarification on the
> diagnostics API****
>
> ** **
>
> There is also a tempest patch now to ease some of the libvirt-specific
> keys checked in the new diagnostics tests there:
>
> https://review.openstack.org/#/c/51412/
>
> To relay some of my concerns that I put in that patch:
>
> *I'm not sure how I feel about this. It should probably be more generic
> but I think we need more than just a change in tempest to enforce it, i.e.
> we should have a nova patch that changes the doc strings for the abstract
> compute driver method to specify what the minimum keys are for the info
> returned, maybe a doc api sample change, etc?*
>
> *For reference, here is the mailing list post I started on this last week:
> *
>
> *
> http://lists.openstack.org/pipermail/openstack-dev/2013-October/016385.html
> *<http://lists.openstack.org/pipermail/openstack-dev/2013-October/016385.html>
>
> *There are also docs here (these examples use xen and libvirt):*
>
> *
> http://docs.openstack.org/grizzly/openstack-compute/admin/content/configuring-openstack-compute-basics.html
> *<http://docs.openstack.org/grizzly/openstack-compute/admin/content/configuring-openstack-compute-basics.html>
>
> *And under procedure 4.4 here:*
>
> *
> http://docs.openstack.org/admin-guide-cloud/content/ch_introduction-to-openstack-compute.html#section_manage-the-cloud
> *<http://docs.openstack.org/admin-guide-cloud/content/ch_introduction-to-openstack-compute.html#section_manage-the-cloud>
>
> =============
>
> I also found this wiki page related to metering and the nova diagnostics
> API:
>
>
> https://wiki.openstack.org/wiki/EfficientMetering/FutureNovaInteractionModel
>
> So it seems like if at some point this will be used with ceilometer it
> should be standardized a bit which is what the Tempest part starts but I
> don't want it to get lost there.
>
>
> Thanks,
>
> *MATT RIEDEMANN*
> Advisory Software Engineer
> Cloud Solutions and OpenStack Development****
>    ------------------------------
>
> *Phone:* 1-507-253-7622 | *Mobile:* 1-507-990-1889*
> E-mail:* mriedem at us.ibm.com****
>
> [image: IBM]
>
> 3605 Hwy 52 N
> Rochester, MN 55901-1407
> United States****
>
>
>
>
>
>
> From:        Gary Kotton <gkotton at vmware.com>
> To:        OpenStack Development Mailing List <
> openstack-dev at lists.openstack.org>,
> Date:        10/12/2013 01:42 PM
> Subject:        Re: [openstack-dev] [nova] Looking for clarification on
> the diagnostics API****
>  ------------------------------
>
>
>
>
> Yup, it seems to be hypervisor specific. I have added in the Vmware
> support following you correcting in the Vmware driver.
> Thanks
> Gary
>
> *From: *Matt Riedemann <mriedem at us.ibm.com>*
> Reply-To: *OpenStack Development Mailing List <
> openstack-dev at lists.openstack.org>*
> Date: *Thursday, October 10, 2013 10:17 PM*
> To: *OpenStack Development Mailing List <openstack-dev at lists.openstack.org
> >*
> Subject: *Re: [openstack-dev] [nova] Looking for clarification on the
> diagnostics API
>
> Looks like this has been brought up a couple of times:
> *
> *https://lists.launchpad.net/openstack/msg09138.html
> *
> *https://lists.launchpad.net/openstack/msg08555.html
>
> But they seem to kind of end up in the same place I already am - it seems
> to be an open-ended API that is hypervisor-specific.
>
>
>
> Thanks,
> *
> MATT RIEDEMANN*
> Advisory Software Engineer
> Cloud Solutions and OpenStack Development****
>    ------------------------------
>
> *Phone:* 1-507-253-7622 | *Mobile:* 1-507-990-1889*
> E-mail:* mriedem at us.ibm.com****
>
> [image: IBM]
>
> 3605 Hwy 52 N
> Rochester, MN 55901-1407
> United States****
>
>
>
>
>
>
>
> From:        Matt Riedemann/Rochester/IBM
> To:        "OpenStack Development Mailing List" <
> openstack-dev at lists.openstack.org>,
> Date:        10/10/2013 02:12 PM
> Subject:        [nova] Looking for clarification on the diagnostics API***
> *
>  ------------------------------
>
>
>
> Tempest recently got some new tests for the nova diagnostics API [1] which
> failed when I was running against the powervm driver since it doesn't
> implement that API.  I started looking at other drivers that did and found
> that libvirt, vmware and xenapi at least had code for the get_diagnostics
> method.  I found that the vmware driver was re-using it's get_info method
> for get_diagnostics which led to bug 1237622 [2] but overall caused some
> confusion about the difference between the compute driver's get_info and
> get_diagnostics mehods.  It looks like get_info is mainly just used to get
> the power_state of the instance.
>
> First, the get_info method has a nice docstring for what it needs returned
> [3] but the get_diagnostics method doesn't [4].  From looking at the API
> docs [5], the diagnostics API basically gives an example of values to get
> back which is completely based on what the libvirt driver returns.  Looking
> at the xenapi driver code, it looks like it does things a bit differently
> than the libvirt driver (maybe doesn't return the exact same keys, but it
> returns information based on what Xen provides).
>
> I'm thinking about implementing the diagnostics API for the powervm driver
> but I'd like to try and get some help on defining just what should be
> returned from that call.  There are some IVM commands available to the
> powervm driver for getting hardware resource information about an LPAR so I
> think I could implement this pretty easily.
>
> I think it basically comes down to providing information about the
> processor, memory, storage and network interfaces for the instance but if
> anyone has more background information on that API I'd like to hear it.
>
> [1]
> https://github.com/openstack/tempest/commit/da0708587432e47f85241201968e6402190f0c5d
> [2] https://bugs.launchpad.net/nova/+bug/1237622
> [3]
> https://github.com/openstack/nova/blob/2013.2.rc1/nova/virt/driver.py#L144
> [4]
> https://github.com/openstack/nova/blob/2013.2.rc1/nova/virt/driver.py#L299
> [5] http://paste.openstack.org/show/48236/
>
>
>
> Thanks,
> *
> MATT RIEDEMANN*
> Advisory Software Engineer
> Cloud Solutions and OpenStack Development****
>    ------------------------------
>
> *Phone:* 1-507-253-7622 | *Mobile:* 1-507-990-1889*
> E-mail:* mriedem at us.ibm.com****
>
> [image: IBM]
>
> 3605 Hwy 52 N
> Rochester, MN 55901-1407
> United States****
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> [attachment "ATT00001..gif" deleted by Matt Riedemann/Rochester/IBM]
> [attachment "ATT00002..gif" deleted by Matt Riedemann/Rochester/IBM] ****
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>


-- 
Sean Dague
http://dague.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131015/608c681f/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 1851 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131015/608c681f/attachment.gif>


More information about the OpenStack-dev mailing list