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

2013-10-15 Thread Sean Dague
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.b...@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:gkot...@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 mrie...@us.ibm.com
 *Reply-To: *OpenStack Development Mailing List 
 openstack-dev@lists.openstack.org
 *Date: *Sunday, October 13, 2013 6:13 AM
 *To: *OpenStack Development Mailing List 
 openstack-dev@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:* mrie...@us.ibm.com

 [image: IBM]

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






 From:Gary Kotton gkot...@vmware.com
 To:OpenStack Development Mailing List 
 openstack-dev@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 mrie...@us.ibm.com*
 Reply-To: *OpenStack Development Mailing List 
 openstack-dev@lists.openstack.org*
 Date: *Thursday, October 10, 2013 10:17 PM*
 To: *OpenStack Development Mailing List openstack-dev@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
 *
 

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

2013-10-15 Thread Doug Hellmann
On Tue, Oct 15, 2013 at 8:13 AM, Sean Dague s...@dague.net wrote:

 Open Ended API isn't really an API. An API has a contract, otherwise it
 isn't an API.


I need that saying on a t-shirt.



 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.


We have found it very useful in ceilometer to define classes (even simple
namedtuples) for passing data into and out of our drivers. It is much
easier to understand the expectations on both sides of the plugin API than
when using dictionaries.



 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.b...@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:gkot...@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 mrie...@us.ibm.com
 *Reply-To: *OpenStack Development Mailing List 
 openstack-dev@lists.openstack.org
 *Date: *Sunday, October 13, 2013 6:13 AM
 *To: *OpenStack Development Mailing List 
 openstack-dev@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:* mrie...@us.ibm.com

 [image: IBM]

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






 From:Gary Kotton gkot...@vmware.com
 To:OpenStack Development Mailing List 
 openstack-dev@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 mrie...@us.ibm.com*
 Reply-To: *OpenStack Development Mailing List