<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div><br>
</div>
<div>I like idea of scheduling actions overall.  The idea of a generic scheduling service also appeals to me a lot.  The question is how do you generalize the service.  I'd love to see your write up.</div>
<div>-jOrGe W.</div>
<div><br>
</div>
<br>
<div>
<div>On Feb 16, 2011, at 4:35 PM, Adrian Otto wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
Glen,
<div><br>
</div>
<div>I definitely recognize the value in having scheduling capability. I wrote a high level draft of a REST API for a generic scheduler to be used for batch job processing. Scheduled events are discussed regularly by users of queue systems that want certain
 things to happen on regular intervals. Considering that a scheduler function is useful, and could be used for many different services within the OpenStack system, I suggest thinking about a separate service that's dedicated to executing scheduled jobs that
 may need to interact with multiple services within OpenStack. This way it could be used to act upon not only /severs, but any other resource(s) in any service(s). Imbedding the functionality within nova is probably an architectural mistake. Filing a blueprint
 for a separate scheduler service sounds like a good idea.</div>
<div><br>
</div>
<div>Adrian</div>
<div><br>
<div>
<div>On Feb 16, 2011, at 2:02 PM, Glen Campbell wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">The proposed compute API 1.1 has a specification for server actions (Sec. 4.4) with the endpoint:<o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span class="apple-style-span"><span style="font-size: 9pt; font-family: Courier; color: black; ">   /servers/{id}/action</span></span><span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">The actual action is specified as the body of the POST request, and the implication is that the action is performed immediately, or as soon as possible.<o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">I'd like us to consider changing this "action" resource into a "calendar" or perhaps "schedule" resource:<o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span class="apple-style-span"><span style="font-size: 9pt; font-family: Courier; color: black; ">   /servers/{id}/schedule{/year{/month{/day{/hour{/minute}}}}}</span></span><span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">This would provide a generalized way of performing actions on a scheduled basis.<o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">For example, instead of having to wake up at 2AM to reboot a server (for whatever reason), the administrator could schedule that event:<o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span class="apple-style-span"><span style="font-size: 9pt; font-family: Courier; color: black; ">   /servers/{id}/schedule/2011/2/17/02/00</span></span><span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">By using the default resource (without the day or time specified), the meaning would be synonymous with the proposed "/action" resource; i.e., perform it NOW, or as soon as possible.<o:p></o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><o:p> </o:p></span></div>
</div>
<div style="font-family: Calibri; font-size: medium; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">The schedule resource could have additional uses; for example, a GET request could return the currently-scheduled actions for a particular server.</span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><br>
</span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; ">Glen</span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10.5pt; color: black; font-family: Calibri, sans-serif; "><br>
</span></div>
</div>
</div>
<pre>Confidentiality Notice: This e-mail message (including any attached or
embedded documents) is intended for the exclusive and confidential use of the
individual or entity to which this message is addressed, and unless otherwise
expressly indicated, is confidential and privileged information of Rackspace.
Any dissemination, distribution or copying of the enclosed material is prohibited.
If you receive this transmission in error, please notify us immediately by e-mail
at <a href="mailto:abuse@rackspace.com">abuse@rackspace.com</a>, and delete the original message.
Your cooperation is appreciated.
</pre>
</div>
_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br>
</blockquote>
</div>
<br>
</div>
<pre>Confidentiality Notice: This e-mail message (including any attached or
embedded documents) is intended for the exclusive and confidential use of the
individual or entity to which this message is addressed, and unless otherwise
expressly indicated, is confidential and privileged information of Rackspace. 
Any dissemination, distribution or copying of the enclosed material is prohibited.
If you receive this transmission in error, please notify us immediately by e-mail
at <a href="mailto:abuse@rackspace.com">abuse@rackspace.com</a>, and delete the original message. 
Your cooperation is appreciated.
</pre>
</div>
_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br>
</blockquote>
</div>
<br>
</body>
</html>