<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jan 20, 2015 at 5:54 PM, Duan, Li-Gong (Gary@HPServers-Core-OE-PSC) <span dir="ltr"><<a href="mailto:li-gong.duan@hp.com" target="_blank">li-gong.duan@hp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Steven,<br>
<br>
Thanks for your explanation on Heat.<br>
<span class=""><br>
> -----Original Message-----<br>
> From: Steven Hardy [mailto:<a href="mailto:shardy@redhat.com">shardy@redhat.com</a>]<br>
> Sent: Friday, January 16, 2015 5:12 PM<br>
> To: Duan, Li-Gong (Gary@HPServers-Core-OE-PSC)<br>
> Cc: <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>
> Subject: Re: [Openstack] [Heat] Heat supports OpenStack operation<br>
><br>
> On Fri, Jan 16, 2015 at 08:34:47AM +0000, Duan, Li-Gong (Gary@HPServers-<br>
> Core-OE-PSC) wrote:<br>
> >    Does Heat support executing an OpenStack operation, such as migrating<br>
> an<br>
> >    Nova instance, powering off a Nova instance?<br>
><br>
> We call state changes which don't affect the definition of the stack an<br>
> "action", and we only support suspend and resume at present (e.g heat<br>
> action-suspend <stack name>)<br>
<br>
</span>It does make sense in that Heat centers around stack and does a great job<br>
In stack operation.<br>
<span class=""><br>
> It may be possible to add support for more actions (until now nobody has<br>
> asked for them), but note it only really makes sense to drive such actions via<br>
> heat when dependencies/ordering are important.<br>
<br>
> For example, when suspending then resuming a stack containing a<br>
> WebServer instance and a DatabaseServer instance, you want<br>
> DatabaseServer to be resumed before WebServer (same order as on stack<br>
> create)<br>
><br>
> So, it might make sense to have an action which can power-off a whole stack,<br>
> turning off each nova node in the right order (you could write a little script<br>
> which does the same thing quite easily though..).<br>
<br>
</span>It is an easy job to write a script to implement such actions as turning off each<br>
Nova node. But I would like to figure out a more elegant way to do it, for<br>
example, automatically turning off each Nova node at a specified condition.<br>
This can be implemented by using Ceilometer::Alarm to implement triggering<br>
this operation, but it seems that there is no appropriate place/component to<br>
implement the action (say, turning off each nova node). That's the reason why<br>
I want to see whether Heat can supports such operations.<br></blockquote><div><br></div><div>Hi<br><br></div><div>We are currently fleshing out a spec for Mistral resource types that should do<br>what you suggest above: <a href="https://review.openstack.org/#/c/143989/12/specs/kilo/mistral-resources.rst">https://review.openstack.org/#/c/143989/12/specs/kilo/mistral-resources.rst</a><br></div><div>(see the example on line 108).<br><br></div><div>-Angus<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span class=""><br>
> It probably doesn't make much sense for heat to support things like<br>
> migrating an instance, since it's an operation which isn't scoped to the stack<br>
> and it's dependencies, it's likely an operator wants to migrate a workload off<br>
> a specific compute node, which is something Heat has no visibility of at all.<br>
><br>
> >    I know currently Heat does a good job on launching cloud cluster or<br>
> >    application, such as deploying a Nova instance with specified network<br>
> >    configuration, but not sure how to control(not launch or delete) a Nova<br>
> >    instance or cinder volume.<br>
><br>
> Right now, the easiest answer is write a little script which uses information<br>
> from heat (e.g to get the UUID's for the resources you want to<br>
> control) then e.g calls nova.<br>
<br>
</span>As mentioned above, the basic idea is to trigger a specified set of operations<br>
once a specified condition is reached. In this case, monitoring the condition<br>
and trigger action can be implemented with Ceilometer::Alarm, but I want to<br>
see whether it is possible to implement the set of operations in Heat template.<br>
<br>
Considering that Heat is dealing with sets of resources(stack), I am wondering<br>
whether it can deal with sets of operations, too.<br>
<span class=""><br>
> >    If Heat does not support these OpenStack operation, what is the best<br>
> Heat<br>
> >    way if we want to execute some operations, such as powering off a Nova<br>
> >    instance, in Heat template?<br>
><br>
> As mentioned above, these lifecycle operations affect the stack state, but<br>
> not it's definition, so it probably doesn't make sense to expose actions like<br>
> powering off an instance in the heat template.<br>
<br>
</span>Now I understand that it doesn't make much sense to implement operation set<br>
in heat template and I need to figure other way to implement the set of<br>
operations.<br>
<br>
Regards,<br>
Gary<br>
<div class=""><div class="h5"><br>
_______________________________________________<br>
Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
Post to     : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>
Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
</div></div></blockquote></div><br></div></div>