Re: [Openstack] Moving nova.rpc into openstack.common

2012-05-08 Thread Russell Bryant
On 05/07/2012 04:08 PM, Russell Bryant wrote:
 On 05/07/2012 03:40 PM, Doug Hellmann wrote:
 The metering project will probably want to take advantage of this work.
 How far along is it, and how can we help?
 
 I can speak to the nova.rpc part, at least.
 
 I've been working on it some with hopes of having it done by folsom-1.
 I would be happy to have help on it, though, as I have some other things
 I'm working on at the same time.
 
 Take a look at nova/rpc/*.py.  Anywhere you see an import from nova that
 isn't nova.openstack.common is a dependency on nova that must be removed
 before the code can move to openstack-common.

Another thing that would be useful is providing feedback on this feature
branch:

https://github.com/russellb/nova/tree/bp/versioned-rpc-apis

which is for this blueprint:

https://blueprints.launchpad.net/nova/+spec/versioned-rpc-apis

I'd like to get this finished before moving rpc to openstack-common,
since I would hope that all new usage of rpc would use versioned APIs.

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-05-07 Thread Doug Hellmann
The metering project will probably want to take advantage of this work. How
far along is it, and how can we help?

On Fri, Apr 6, 2012 at 6:56 AM, Swaminathan Venkataraman 
venkat...@gmail.com wrote:

 Hi,
 I've created a blueprint for this. Please take a look and let me know your
 comments.

 https://blueprints.launchpad.net/openstack-common/+spec/notifier

 thanks,
 Venkat


 On Tue, Apr 3, 2012 at 11:13 PM, Jay Pipes jaypi...@gmail.com wrote:

 On 04/03/2012 01:40 PM, John Garbutt wrote:

  However, I'm not sure how people would feel about having both
 openstack.common.exception and nova.exception in the tree since they
 overlap quite a bit.  I like being able to do work in pieces, but
 having them both in the tree leaves the code in an odd state, so we
 need some end goal in mind.


 I'm not a huge fan of openstack.common.exception


 Yeah, I don't see too much value in having everything inherit from a
 common
 exception base class. I think the different projects will typically
 want to
 customize the error message text...


 My vote would be to have some handy mix-ins in openstack.common, if that
 works for everyone


 Sure, that would work...

 -jay


 __**_
 Mailing list: 
 https://launchpad.net/~**openstackhttps://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : 
 https://launchpad.net/~**openstackhttps://launchpad.net/~openstack
 More help   : 
 https://help.launchpad.net/**ListHelphttps://help.launchpad.net/ListHelp



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-05-07 Thread Chris Behrens

On Apr 3, 2012, at 8:00 AM, Russell Bryant wrote:
[…]
 
 3) nova.local
 
 This looks like a good candidate for moving to openstack-common and
 switching all usage of nova.local to be openstack.common.local.
 

Yeah, this one might be kind of weird, because it's used to set the 'nova 
context', and I'm not sure it actually applies to Openstack generically.

[…]

 5) nova.context
 
 I haven't looked at this one in detail, yet.  We'll have to sort out
 what to do with RequestContext.  I see in the message from Swaminathan
 Venkataraman that both openstack-common and nova have RequestContext,
 but there's more code in the nova version.  I suppose we should look at
 making the openstack-common version sufficient for nova and then switch
 nova to it.

Hm.  I wonder if we need some sort of serialize/deserialize callbacks or 
something so that nova can encode/decode the context that's passed… and not 
have any of this context stuff be a part of openstack-common.  Just a random 
thought without looking or thinking about it too much. :)
[…]

- Chris


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-06 Thread Swaminathan Venkataraman
Hi,
I've created a blueprint for this. Please take a look and let me know your
comments.

https://blueprints.launchpad.net/openstack-common/+spec/notifier

thanks,
Venkat

On Tue, Apr 3, 2012 at 11:13 PM, Jay Pipes jaypi...@gmail.com wrote:

 On 04/03/2012 01:40 PM, John Garbutt wrote:

 However, I'm not sure how people would feel about having both
 openstack.common.exception and nova.exception in the tree since they
 overlap quite a bit.  I like being able to do work in pieces, but
 having them both in the tree leaves the code in an odd state, so we
 need some end goal in mind.


 I'm not a huge fan of openstack.common.exception


 Yeah, I don't see too much value in having everything inherit from a
 common
 exception base class. I think the different projects will typically want
 to
 customize the error message text...


 My vote would be to have some handy mix-ins in openstack.common, if that
 works for everyone


 Sure, that would work...

 -jay


 __**_
 Mailing list: 
 https://launchpad.net/~**openstackhttps://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : 
 https://launchpad.net/~**openstackhttps://launchpad.net/~openstack
 More help   : 
 https://help.launchpad.net/**ListHelphttps://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread John Garbutt
+1 for move to nova.common

I remember discussion about versioning these messages to aid rolling / 
zero-downtime upgrades.

Might be worth considering those when doing the decoupling?

Cheers,
John

 -Original Message-
 From: openstack-bounces+john.garbutt=eu.citrix@lists.launchpad.net
 [mailto:openstack-bounces+john.garbutt=eu.citrix@lists.launchpad.net]
 On Behalf Of Chris Behrens
 Sent: 02 April 2012 23:53
 To: Russell Bryant
 Cc: Duncan McGreggor; openstack@lists.launchpad.net; Chris Behrens
 Subject: Re: [Openstack] Moving nova.rpc into openstack.common
 
 Awesome, thanks :)
 
 On Apr 2, 2012, at 3:46 PM, Russell Bryant wrote:
 
  I just threw up a patch a little while ago:
 
  https://review.openstack.org/6119
 
  --
  Russell Bryant
 
  On 04/02/2012 06:37 PM, Chris Behrens wrote:
  Seems like a sensible plan.  Carrot can go now.  I marked it deprecated so
 we can remove in folsom.  I can take care of this today, even.
 
  On Apr 2, 2012, at 3:02 PM, Duncan McGreggor dun...@dreamhost.com
 wrote:
 
  +1
 
  Thanks for exploring this, Russell!
 
  Next step: getting a common REST API abstraction in place that all
  the projects can use... ;-)
 
  d
 
  On Mon, Apr 2, 2012 at 4:26 PM, Russell Bryant rbry...@redhat.com
 wrote:
  Greetings,
 
  There was a thread on this list a little while ago about moving the
  notification drivers that are in nova and glance into
  openstack.common since they provide very similar functionality, but
  have implementations that have diverged over time.  Is anyone
  actively working on this?  If so, please let me know.
 
  For the message queue notifiers, nova uses nova.rpc to do the heavy
  lifting.  Glance has notifiers written against the messaging libs
  directly.  I think it makes sense to take the nova approach.  This
  would mean moving nova.rpc into openstack.common before the
  notifiers can get moved.
 
  I have started looking at moving nova.rpc to openstack.common.rpc.
  My plan is:
 
  1) Write a series of patches that reduces coupling in nova.rpc on
  the rest of nova.
 
  2) Submit changes needed to support this decoupling to
 openstack.common.
 
  3) Once nova.rpc is sufficiently decoupled, move it to
 openstack.common.
 
  While doing the above, I want to aim for the least amount of
  disruption to the rpc interface as is practical.
 
  While we're at it, is it time to drop nova.rpc.impl_carrot?  It is
  marked as deprecated in Essex.  Is there any reason anyone would
  still use impl_carrot over impl_kombu?
 
  Thoughts?
 
  Thanks,
 
  --
  Russell Bryant
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net/~openstack
  More help   : https://help.launchpad.net/ListHelp
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net/~openstack
  More help   : https://help.launchpad.net/ListHelp
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Thierry Carrez
Russell Bryant wrote:
 I proposed a session to discuss this a bit at the summit:
 
 http://summit.openstack.org/sessions/view/95
 
 There are a lot of ways this could be approached.  I'm going to try to
 write up a proposal at some point to get a discussion moving.

Note that there is also the following discussion:
http://summit.openstack.org/sessions/view/39

which was folded into amore generic openstack-common plans session:
http://summit.openstack.org/sessions/view/28

-- 
Thierry Carrez (ttx)
Release Manager, OpenStack

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Swaminathan Venkataraman
Hi,
I'm actively working on the notification part. I did some analysis on the
code and dependencies and was planning to submit a blueprint by end of the
week. We can use that to finalize the interface for the notification. The
rpc implementation is rich (compared to just what we need for
notifications) because nova uses it for all rpc related communications. The
idea that I was working with was to just move what we need for
notifications. In that scenario we do not really need all of rpc in
openstack-common. If we do want a common implementation that all openstack
components can use to communicate the middleware, it might make to sense to
move the whole of rpc to openstack-common.

Thoughts?


Anyways, here is the analysis and some of the comments I got...

Cheers,
Venkat

   -
   -- Forwarded message --
   From: Swaminathan Venkataraman venkat...@gmail.com
   Date: Mon, Mar 19, 2012 at 8:31 PM
   Subject: Re: [Openstack] Notifiers
   To: Monsyne Dragon mdra...@rackspace.com
   Cc: Mark McLoughlin mar...@redhat.com, Jason Kölker 
   jason.koel...@rackspace.com, Jay Pipes jaypi...@gmail.com


   I did some analysis on notifier and rpc in nova and there are a bunch of
   dependencies that have to be sorted out before we can move them to
   openstack-common. Here are some of the details.

   - notifier and rpc use flags, utils, logging, context, db, exception,
  from nova.
  -
  - The modules in notfier and rpc use FLAGS from flags.py which is an
  instance of NovaConfigOpts. They mainly use it to register the config
  options and access them. Given that, it seems like we could use
  CommonConfigOpts directly to register the options. This will
eliminate the
  dependency on flags and flagfile.
  -
  - There are three functions that are used from utils - utcnow,
  import_object, and to_primitive. There is a utils in
openstack-common which
  already contains utcnow and import_object. The code also macthes line to
  line with the implementation in nova. The to_primitive function
is missing
  in openstack-common. One option could be to move this function alone to
  openstack-common which should eliminate the dependency on the nova based
  utils.
  -
  - notifier and api use log from nova. In fact they work with an
  instance of NovaContextAdapter which in turn is an instance of
  LoggerAdapter. NovaContextAdapter is used to pass the context,
the instance
  uuid, and the nova version to the logger. The modules in openstack-common
  are using the python logging module directly. So, if we need
notifier to be
  able to print contextual information we will have to add this
functionality
  to openstack-common.
  -
  - Both nova and openstack-common have an implementation of
  RequestContext. The one in Nova is richer and both notifier and rpc use
  functionality from RequestContext in nova. The other difference
is that the
  RequestContext in nova uses a weak refernce store to save the context
  information. I did see a couple of instances where the context
information
  was deleted from the store, but I'm not sure whether it is being
accessed.
  So, should the context in openstack-common be enhanced?
  -
  - db from nova is used only by capacity_notifier. It looks like it
  sends events that are only related to compute manager events. So, should
  this be part of openstack-common?
   I've not looked at exception. I'll also have to look at rpc in more
   detail. Please do let me know if this is the right direction.

   thanks,
   Venkat

-- Forwarded message --
From: Mark McLoughlin mar...@redhat.com
Date: Tue, Mar 20, 2012 at 8:05 PM
Subject: Re: [Openstack] Notifiers
To: Swaminathan Venkataraman venkat...@gmail.com
Cc: Monsyne Dragon mdra...@rackspace.com, Jason Kölker 
jason.koel...@rackspace.com, Jay Pipes jaypi...@gmail.com

-- Forwarded message --
From: Mark McLoughlin mar...@redhat.com
Date: Tue, Mar 20, 2012 at 1:25 PM
Subject: Re: [Openstack] Notifiers
To: Swaminathan Venkataraman venkat...@gmail.com
Cc: Monsyne Dragon mdra...@rackspace.com, Jason Kölker 
jason.koel...@rackspace.com, Jay Pipes jaypi...@gmail.com


Hi Venkat,

Could you file a bug or blueprint against openstack-common with all this
great info?

Cheers,
Mark.

On Tue, 2012-03-20 at 19:37 +0530, Swaminathan Venkataraman wrote:
 Sure Mark, but here is a bit more of analysis that I did. I'll file a
 blueprint because I'm not sure if this is a bug.


 There is an exception module defined in openstack-common. This has a
 class named openstackException which is similar to NovaException and I
 guess is to be subclassed to define exceptions that go in
 openstack-common. openstack-common also defines a decorator for
 wrapping  methods to catch exceptions, but it does not try to send the
 exception to the notification system like the one in nova.exception
 does. Based on 

Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Swaminathan Venkataraman
Hi,
I'm actively working on the notification part. I did some analysis on the
code and dependencies and was planning to submit a blueprint by end of the
week. We can use that to finalize the interface for the notification. The
rpc implementation is rich (compared to just what we need for
notifications) because nova uses it for all rpc related communications. The
idea that I was working with was to just move what we need for
notifications. In that scenario we do not really need all of rpc in
openstack-common. If we do want a common implementation that all openstack
components can use to communicate the middleware, it might make to sense to
move the whole of rpc to openstack-common.

Thoughts?


Anyways, here is the analysis and some of the comments I got...

Cheers,
Venkat

   -
   -- Forwarded message --
   From: Swaminathan Venkataraman venkat...@gmail.com
   Date: Mon, Mar 19, 2012 at 8:31 PM
   Subject: Re: [Openstack] Notifiers
   To: Monsyne Dragon mdra...@rackspace.com
   Cc: Mark McLoughlin mar...@redhat.com, Jason Kölker 
   jason.koel...@rackspace.com, Jay Pipes jaypi...@gmail.com


   I did some analysis on notifier and rpc in nova and there are a bunch of
   dependencies that have to be sorted out before we can move them to
   openstack-common. Here are some of the details.

   - notifier and rpc use flags, utils, logging, context, db, exception,
  from nova.
  -
  - The modules in notfier and rpc use FLAGS from flags.py which is an
  instance of NovaConfigOpts. They mainly use it to register the config
  options and access them. Given that, it seems like we could use
  CommonConfigOpts directly to register the options. This will
eliminate the
  dependency on flags and flagfile.
  -
  - There are three functions that are used from utils - utcnow,
  import_object, and to_primitive. There is a utils in
openstack-common which
  already contains utcnow and import_object. The code also macthes line to
  line with the implementation in nova. The to_primitive function
is missing
  in openstack-common. One option could be to move this function alone to
  openstack-common which should eliminate the dependency on the nova based
  utils.
  -
  - notifier and api use log from nova. In fact they work with an
  instance of NovaContextAdapter which in turn is an instance of
  LoggerAdapter. NovaContextAdapter is used to pass the context,
the instance
  uuid, and the nova version to the logger. The modules in openstack-common
  are using the python logging module directly. So, if we need
notifier to be
  able to print contextual information we will have to add this
functionality
  to openstack-common.
  -
  - Both nova and openstack-common have an implementation of
  RequestContext. The one in Nova is richer and both notifier and rpc use
  functionality from RequestContext in nova. The other difference
is that the
  RequestContext in nova uses a weak refernce store to save the context
  information. I did see a couple of instances where the context
information
  was deleted from the store, but I'm not sure whether it is being
accessed.
  So, should the context in openstack-common be enhanced?
  -
  - db from nova is used only by capacity_notifier. It looks like it
  sends events that are only related to compute manager events. So, should
  this be part of openstack-common?
   I've not looked at exception. I'll also have to look at rpc in more
   detail. Please do let me know if this is the right direction.

   thanks,
   Venkat

-- Forwarded message --
From: Mark McLoughlin mar...@redhat.com
Date: Tue, Mar 20, 2012 at 8:05 PM
Subject: Re: [Openstack] Notifiers
To: Swaminathan Venkataraman venkat...@gmail.com
Cc: Monsyne Dragon mdra...@rackspace.com, Jason Kölker 
jason.koel...@rackspace.com, Jay Pipes jaypi...@gmail.com

-- Forwarded message --
From: Mark McLoughlin mar...@redhat.com
Date: Tue, Mar 20, 2012 at 1:25 PM
Subject: Re: [Openstack] Notifiers
To: Swaminathan Venkataraman venkat...@gmail.com
Cc: Monsyne Dragon mdra...@rackspace.com, Jason Kölker 
jason.koel...@rackspace.com, Jay Pipes jaypi...@gmail.com


Hi Venkat,

Could you file a bug or blueprint against openstack-common with all this
great info?

Cheers,
Mark.

On Tue, 2012-03-20 at 19:37 +0530, Swaminathan Venkataraman wrote:
 Sure Mark, but here is a bit more of analysis that I did. I'll file a
 blueprint because I'm not sure if this is a bug.


 There is an exception module defined in openstack-common. This has a
 class named openstackException which is similar to NovaException and I
 guess is to be subclassed to define exceptions that go in
 openstack-common. openstack-common also defines a decorator for
 wrapping  methods to catch exceptions, but it does not try to send the
 exception to the notification system like the one in nova.exception
 does. Based on 

Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Russell Bryant
Thanks for sharing this information.  For the future, I think this type
of analysis and discussion is something that is great to have on the
mailing list instead of just a private group.  I wish I had seen it sooner.

The code in nova.rpc seems useful enough that it very well may be used
elsewhere.  I know it's more than what is needed for notifications, but
it does support what is needed for notifications (and more).  I like the
idea of moving the whole thing instead of having separate messaging code
for just notifications.

-- 
Russell Bryant

On 04/03/2012 09:20 AM, Swaminathan Venkataraman wrote:
 Hi,
 I'm actively working on the notification part. I did some analysis on
 the code and dependencies and was planning to submit a blueprint by end
 of the week. We can use that to finalize the interface for the
 notification. The rpc implementation is rich (compared to just what we
 need for notifications) because nova uses it for all rpc related
 communications. The idea that I was working with was to just move what
 we need for notifications. In that scenario we do not really need all of
 rpc in openstack-common. If we do want a common implementation that all
 openstack components can use to communicate the middleware, it might
 make to sense to move the whole of rpc to openstack-common. 
 
 Thoughts?
 
 
 Anyways, here is the analysis and some of the comments I got...
 
 Cheers,
 Venkat
 
   *
 
 
 -- Forwarded message --
 From: *Swaminathan Venkataraman* venkat...@gmail.com
 mailto:venkat...@gmail.com
 Date: Mon, Mar 19, 2012 at 8:31 PM
 Subject: Re: [Openstack] Notifiers
 To: Monsyne Dragon mdra...@rackspace.com
 mailto:mdra...@rackspace.com
 Cc: Mark McLoughlin mar...@redhat.com mailto:mar...@redhat.com,
 Jason Kölker jason.koel...@rackspace.com
 mailto:jason.koel...@rackspace.com, Jay Pipes jaypi...@gmail.com
 mailto:jaypi...@gmail.com
 
 
 I did some analysis on notifier and rpc in nova and there are a
 bunch of dependencies that have to be sorted out before we can move
 them to openstack-common. Here are some of the details.
  
   o notifier and rpc use flags, utils, logging, context, db,
 exception, from nova.
   o
   o The modules in notfier and rpc use FLAGS from flags.py which is
 an instance of NovaConfigOpts. They mainly use it to register
 the config options and access them. Given that, it seems like we
 could use CommonConfigOpts directly to register the options.
 This will eliminate the dependency on flags and flagfile.
   o
   o There are three functions that are used from utils - utcnow,
 import_object, and to_primitive. There is a utils in
 openstack-common which already contains utcnow and
 import_object. The code also macthes line to line with the
 implementation in nova. The to_primitive function is missing in
 openstack-common. One option could be to move this function
 alone to openstack-common which should eliminate the dependency
 on the nova based utils.
   o
   o notifier and api use log from nova. In fact they work with an
 instance of NovaContextAdapter which in turn is an instance of
 LoggerAdapter. NovaContextAdapter is used to pass the context,
 the instance uuid, and the nova version to the logger. The
 modules in openstack-common are using the python logging module
 directly. So, if we need notifier to be able to print contextual
 information we will have to add this functionality to
 openstack-common.
   o
   o Both nova and openstack-common have an implementation of
 RequestContext. The one in Nova is richer and both notifier and
 rpc use functionality from RequestContext in nova. The other
 difference is that the RequestContext in nova uses a weak
 refernce store to save the context information. I did see a
 couple of instances where the context information was deleted
 from the store, but I'm not sure whether it is being accessed.
 So, should the context in openstack-common be enhanced?
   o
   o db from nova is used only by capacity_notifier. It looks like it
 sends events that are only related to compute manager events.
 So, should this be part of openstack-common?
 I've not looked at exception. I'll also have to look at rpc in more
 detail. Please do let me know if this is the right direction.
  
 thanks,
 Venkat
 
 -- Forwarded message --
 From: *Mark McLoughlin* mar...@redhat.com mailto:mar...@redhat.com
 Date: Tue, Mar 20, 2012 at 8:05 PM
 Subject: Re: [Openstack] Notifiers
 To: Swaminathan Venkataraman venkat...@gmail.com
 mailto:venkat...@gmail.com
 Cc: Monsyne Dragon mdra...@rackspace.com
 mailto:mdra...@rackspace.com, Jason Kölker
 jason.koel...@rackspace.com 

Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Mark McLoughlin
Hey Russell,

On Mon, 2012-04-02 at 16:26 -0400, Russell Bryant wrote:
 Greetings,
 
 There was a thread on this list a little while ago about moving the
 notification drivers that are in nova and glance into openstack.common
 since they provide very similar functionality, but have implementations
 that have diverged over time.  Is anyone actively working on this?  If
 so, please let me know.
 
 For the message queue notifiers, nova uses nova.rpc to do the heavy
 lifting.  Glance has notifiers written against the messaging libs
 directly.  I think it makes sense to take the nova approach.  This would
 mean moving nova.rpc into openstack.common before the notifiers can get
 moved.
 
 I have started looking at moving nova.rpc to openstack.common.rpc.  My
 plan is:
 
 1) Write a series of patches that reduces coupling in nova.rpc on the
 rest of nova.
 
 2) Submit changes needed to support this decoupling to openstack.common.
 
 3) Once nova.rpc is sufficiently decoupled, move it to openstack.common.
 
 While doing the above, I want to aim for the least amount of disruption
 to the rpc interface as is practical.

That looks like a good plan. Have you got a rough idea already what
needs to happen for (2) in openstack-common?

Cheers,
Mark.


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Jay Pipes

On 04/03/2012 09:36 AM, Russell Bryant wrote:

Thanks for sharing this information.  For the future, I think this type
of analysis and discussion is something that is great to have on the
mailing list instead of just a private group.  I wish I had seen it sooner.


In Venkat's defense, I believe he did reach out originally to the 
mailing list on this topic:


https://lists.launchpad.net/openstack/msg08539.html

Agree that it's always good to have more analysis in a public forum, but 
Venkat did havejust start contributing, so we can give him a break I 
think! :)


Best,

-jay

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Jay Pipes

On 04/03/2012 11:16 AM, Mark McLoughlin wrote:

4) nova.exception

nova.rpc defines two exceptions based on NovaException.  They could be
based on OpenstackException from openstack-common, instead.  There's
also an RPC exception defined in nova.exception, but that can be moved
into nova.rpc with the others.


Is there any great value to having a base Exception class?

e.g. a cfg exception and an rpc exception are completely unrelated, so
I'd just have those modules define unrelated exceptions


The code also uses wrap_exception.  The one in openstack-common seems
sufficient for how it's used.

However, I'm not sure how people would feel about having both
openstack.common.exception and nova.exception in the tree since they
overlap quite a bit.  I like being able to do work in pieces, but having
them both in the tree leaves the code in an odd state, so we need some
end goal in mind.


I'm not a huge fan of openstack.common.exception


Yeah, I don't see too much value in having everything inherit from a 
common exception base class. I think the different projects will 
typically want to customize the error message text...



5) nova.context

I haven't looked at this one in detail, yet.  We'll have to sort out
what to do with RequestContext.  I see in the message from Swaminathan
Venkataraman that both openstack-common and nova have RequestContext,
but there's more code in the nova version.  I suppose we should look at
making the openstack-common version sufficient for nova and then switch
nova to it.


Glance also has a different RequestContext:

https://github.com/openstack/glance/blob/master/glance/common/context.py

I wouldn't mind if the Glance-specific RequestContext inherited from a 
base openstack-common one, though, and just added its stuff related to 
Glance's owner_is_tenant config option


Best,
-jay

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Russell Bryant
On 04/03/2012 12:23 PM, Jay Pipes wrote:
 On 04/03/2012 09:36 AM, Russell Bryant wrote:
 Thanks for sharing this information.  For the future, I think this type
 of analysis and discussion is something that is great to have on the
 mailing list instead of just a private group.  I wish I had seen it
 sooner.
 
 In Venkat's defense, I believe he did reach out originally to the
 mailing list on this topic:
 
 https://lists.launchpad.net/openstack/msg08539.html
 
 Agree that it's always good to have more analysis in a public forum, but
 Venkat did havejust start contributing, so we can give him a break I
 think! :)

Yep.  I didn't mean for that to come off in a negative way, so sorry
about that.

I did see the thread.  It wasn't clear that anyone was actively working
on it, though.

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread John Garbutt
  However, I'm not sure how people would feel about having both
  openstack.common.exception and nova.exception in the tree since they
  overlap quite a bit.  I like being able to do work in pieces, but
  having them both in the tree leaves the code in an odd state, so we
  need some end goal in mind.
 
  I'm not a huge fan of openstack.common.exception
 
 Yeah, I don't see too much value in having everything inherit from a common
 exception base class. I think the different projects will typically want to
 customize the error message text...

My vote would be to have some handy mix-ins in openstack.common, if that works 
for everyone

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-03 Thread Jay Pipes

On 04/03/2012 01:40 PM, John Garbutt wrote:

However, I'm not sure how people would feel about having both
openstack.common.exception and nova.exception in the tree since they
overlap quite a bit.  I like being able to do work in pieces, but
having them both in the tree leaves the code in an odd state, so we
need some end goal in mind.


I'm not a huge fan of openstack.common.exception


Yeah, I don't see too much value in having everything inherit from a common
exception base class. I think the different projects will typically want to
customize the error message text...


My vote would be to have some handy mix-ins in openstack.common, if that works 
for everyone


Sure, that would work...

-jay

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] Moving nova.rpc into openstack.common

2012-04-02 Thread Russell Bryant
Greetings,

There was a thread on this list a little while ago about moving the
notification drivers that are in nova and glance into openstack.common
since they provide very similar functionality, but have implementations
that have diverged over time.  Is anyone actively working on this?  If
so, please let me know.

For the message queue notifiers, nova uses nova.rpc to do the heavy
lifting.  Glance has notifiers written against the messaging libs
directly.  I think it makes sense to take the nova approach.  This would
mean moving nova.rpc into openstack.common before the notifiers can get
moved.

I have started looking at moving nova.rpc to openstack.common.rpc.  My
plan is:

1) Write a series of patches that reduces coupling in nova.rpc on the
rest of nova.

2) Submit changes needed to support this decoupling to openstack.common.

3) Once nova.rpc is sufficiently decoupled, move it to openstack.common.

While doing the above, I want to aim for the least amount of disruption
to the rpc interface as is practical.

While we're at it, is it time to drop nova.rpc.impl_carrot?  It is
marked as deprecated in Essex.  Is there any reason anyone would still
use impl_carrot over impl_kombu?

Thoughts?

Thanks,

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-02 Thread Matt Dietz
I started looking into moving the notification drivers as well, but punted
because of the reliance on multiple things, RPC included. For us, it's a
nice to have but not a need.

As for your plan, it seems sensible to me.

On 4/2/12 3:26 PM, Russell Bryant rbry...@redhat.com wrote:

Greetings,

There was a thread on this list a little while ago about moving the
notification drivers that are in nova and glance into openstack.common
since they provide very similar functionality, but have implementations
that have diverged over time.  Is anyone actively working on this?  If
so, please let me know.

For the message queue notifiers, nova uses nova.rpc to do the heavy
lifting.  Glance has notifiers written against the messaging libs
directly.  I think it makes sense to take the nova approach.  This would
mean moving nova.rpc into openstack.common before the notifiers can get
moved.

I have started looking at moving nova.rpc to openstack.common.rpc.  My
plan is:

1) Write a series of patches that reduces coupling in nova.rpc on the
rest of nova.

2) Submit changes needed to support this decoupling to openstack.common.

3) Once nova.rpc is sufficiently decoupled, move it to openstack.common.

While doing the above, I want to aim for the least amount of disruption
to the rpc interface as is practical.

While we're at it, is it time to drop nova.rpc.impl_carrot?  It is
marked as deprecated in Essex.  Is there any reason anyone would still
use impl_carrot over impl_kombu?

Thoughts?

Thanks,

-- 
Russell Bryant

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-02 Thread Duncan McGreggor
+1

Thanks for exploring this, Russell!

Next step: getting a common REST API abstraction in place that all the
projects can use... ;-)

d

On Mon, Apr 2, 2012 at 4:26 PM, Russell Bryant rbry...@redhat.com wrote:
 Greetings,

 There was a thread on this list a little while ago about moving the
 notification drivers that are in nova and glance into openstack.common
 since they provide very similar functionality, but have implementations
 that have diverged over time.  Is anyone actively working on this?  If
 so, please let me know.

 For the message queue notifiers, nova uses nova.rpc to do the heavy
 lifting.  Glance has notifiers written against the messaging libs
 directly.  I think it makes sense to take the nova approach.  This would
 mean moving nova.rpc into openstack.common before the notifiers can get
 moved.

 I have started looking at moving nova.rpc to openstack.common.rpc.  My
 plan is:

 1) Write a series of patches that reduces coupling in nova.rpc on the
 rest of nova.

 2) Submit changes needed to support this decoupling to openstack.common.

 3) Once nova.rpc is sufficiently decoupled, move it to openstack.common.

 While doing the above, I want to aim for the least amount of disruption
 to the rpc interface as is practical.

 While we're at it, is it time to drop nova.rpc.impl_carrot?  It is
 marked as deprecated in Essex.  Is there any reason anyone would still
 use impl_carrot over impl_kombu?

 Thoughts?

 Thanks,

 --
 Russell Bryant

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to     : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Moving nova.rpc into openstack.common

2012-04-02 Thread Chris Behrens
Seems like a sensible plan.  Carrot can go now.  I marked it deprecated so we 
can remove in folsom.  I can take care of this today, even.

On Apr 2, 2012, at 3:02 PM, Duncan McGreggor dun...@dreamhost.com wrote:

 +1
 
 Thanks for exploring this, Russell!
 
 Next step: getting a common REST API abstraction in place that all the
 projects can use... ;-)
 
 d
 
 On Mon, Apr 2, 2012 at 4:26 PM, Russell Bryant rbry...@redhat.com wrote:
 Greetings,
 
 There was a thread on this list a little while ago about moving the
 notification drivers that are in nova and glance into openstack.common
 since they provide very similar functionality, but have implementations
 that have diverged over time.  Is anyone actively working on this?  If
 so, please let me know.
 
 For the message queue notifiers, nova uses nova.rpc to do the heavy
 lifting.  Glance has notifiers written against the messaging libs
 directly.  I think it makes sense to take the nova approach.  This would
 mean moving nova.rpc into openstack.common before the notifiers can get
 moved.
 
 I have started looking at moving nova.rpc to openstack.common.rpc.  My
 plan is:
 
 1) Write a series of patches that reduces coupling in nova.rpc on the
 rest of nova.
 
 2) Submit changes needed to support this decoupling to openstack.common.
 
 3) Once nova.rpc is sufficiently decoupled, move it to openstack.common.
 
 While doing the above, I want to aim for the least amount of disruption
 to the rpc interface as is practical.
 
 While we're at it, is it time to drop nova.rpc.impl_carrot?  It is
 marked as deprecated in Essex.  Is there any reason anyone would still
 use impl_carrot over impl_kombu?
 
 Thoughts?
 
 Thanks,
 
 --
 Russell Bryant
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp