[openstack-dev] [Nova][Heat] Where does "Shelving" belong

Keith Bray keith.bray at RACKSPACE.COM
Tue Jun 25 17:27:27 UTC 2013


I tend toward this shelving feature having general use and applicability
to the Nova service.  If this shelving feature existed in Nova, users of
Heat could certainly make use of it through operations on their Stack, but
if something has applicability to a specific service, that feature should
exist in that service.

As for implementation of such a feature, you may want to take a look at
the TaskFlow[1][2] project:  A python library for OpenStack that makes
task and flow (a.k. workflow) execution easy, consistent, and reliable.
It's a work in progress, but coming along quickly and hopes to centralize
this needed functionality across many of the OpenStack projects.

[1] https://wiki.openstack.org/wiki/TaskFlow
[2] https://github.com/stackforge/taskflow

-Keith

On 6/25/13 9:22 AM, "Andrew Laski" <andrew.laski at rackspace.com> wrote:

>I have a couple of reviews up to introduce the concept of shelving an
>instance into Nova.  The question has been raised as to whether or not
>this belongs in Nova, or more rightly belongs in Heat.  The blueprint
>for this feature can be found at
>https://blueprints.launchpad.net/nova/+spec/shelve-instance, but to make
>things easy I'll outline some of the goals here.
>
>The main use case that's being targeted is a user who wishes to stop an
>instance at the end of a workday and then restart it again at the start
>of their next workday, either the next day or after a weekend.  From a
>service provider standpoint the difference between shelving and stopping
>an instance is that the contract allows removing that instance from the
>hypervisor at any point so unshelving may move it to another host.
>
> From a user standpoint what they're looking for is:
>
>The ability to retain the endpoint for API calls on that instance.  So
>v2/<tenant_id>/servers/<server_id> continues to work after the instance
>is unshelved.
>
>All networking, attached volumes, admin pass, metadata, and other user
>configurable properties remain unchanged when shelved/unshelved.  Other
>properties like task/vm/power state, host, *_at, may change.
>
>The ability to see that instance in their list of servers when shelved.
>
>
>
>Again, the objection that has been raised is that it seems like
>orchestration and therefore would belong in Heat.  While this is
>somewhat similar to a snapshot/destroy/rebuild workflow there are
>certain properties of shelving in Nova that I can't see how to reproduce
>by handling this externally.  At least not without exposing Nova
>internals beyond a comfortable level.
>
>So I'd like to understand what the thinking is around why this belongs
>in Heat, and how that could be accomplished.
>
>_______________________________________________
>OpenStack-dev mailing list
>OpenStack-dev at lists.openstack.org
>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list