[openstack-dev] [nova] Looking for clarification on the diagnostics API

Gary Kotton gkotton at vmware.com
Sun Oct 13 04:20:53 UTC 2013


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<mailto:mriedem at us.ibm.com>>
Reply-To: OpenStack Development Mailing List <openstack-dev at lists.openstack.org<mailto: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<mailto: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

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

And under procedure 4.4 here:

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<mailto:mriedem at us.ibm.com>
[cid:_1_09B39E1009B3987C0011B74C86257C03]

3605 Hwy 52 N
Rochester, MN 55901-1407
United States






From:        Gary Kotton <gkotton at vmware.com<mailto:gkotton at vmware.com>>
To:        OpenStack Development Mailing List <openstack-dev at lists.openstack.org<mailto: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<mailto:mriedem at us.ibm.com>>
Reply-To: OpenStack Development Mailing List <openstack-dev at lists.openstack.org<mailto: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<mailto: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<mailto:mriedem at us.ibm.com>
[cid:_1_09BCCED809BCCAD80011B74C86257C03]

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<mailto: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<mailto:mriedem at us.ibm.com>
[cid:_1_0E0B2EAC0E0B2AAC0011B74C86257C03]

3605 Hwy 52 N
Rochester, MN 55901-1407
United States



_______________________________________________
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

[attachment "ATT00001..gif" deleted by Matt Riedemann/Rochester/IBM] [attachment "ATT00002..gif" deleted by Matt Riedemann/Rochester/IBM]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131012/a91e0c67/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ATT00001..gif
Type: image/gif
Size: 1851 bytes
Desc: ATT00001..gif
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131012/a91e0c67/attachment-0003.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ATT00002..gif
Type: image/gif
Size: 1851 bytes
Desc: ATT00002..gif
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131012/a91e0c67/attachment-0004.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ATT00003..gif
Type: image/gif
Size: 1851 bytes
Desc: ATT00003..gif
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131012/a91e0c67/attachment-0005.gif>


More information about the OpenStack-dev mailing list