<div dir="ltr">Timur, '$' here is mean referrence to context at stage which it has been given to.<div><br></div><div>'$.image_id' takes 'image_id' from current workflow execution context variable</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 26, 2014 at 12:30 PM, Nikolay Makhotkin <span dir="ltr"><<a href="mailto:nmakhotkin@mirantis.com" target="_blank">nmakhotkin@mirantis.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, Renat!<div class=""><div class="gmail_extra">
</div><div><br></div><div><div style="font-family:arial,sans-serif;font-size:13px"><pre style="white-space:pre-wrap;margin-top:0px;margin-bottom:0px;padding:5px 0px"><br></pre></div><div style="font-family:arial,sans-serif;font-size:13px">

<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><b>Suggestions</b><b><br></b><b>1</b>. Define “input” and “output” at task level like this:<br>

<font face="Menlo">     createVM:<br></font><font face="Menlo">       input:<br></font><font face="Menlo">         image_id: $.image_id<br></font><font face="Menlo">       output:</font><span style="font-family:Menlo;font-size:small"> vm_id</span><font face="Menlo"><br>

</font>Where “output: vm_id” is basically a replacement for “store-as: vm_id” at action level, i.e. it’s a hint to Mistral to store the output of this task under “vm_id” key in execution context. Again, the idea is to define task and action responsibilities more strictly:<ul>

<li style="margin-left:15px"><b>Task is a high-level workflow building block which defines workflow logical step and how it modifies workflow data. Task doesn’t contain technical details on how it’s implemented.</b></li>
</ul>
<ul><li style="margin-left:15px"><b>Action is an implementor of the workflow logical step defined by a task. Action defines specific algorithm of how task is implemented.</b></li></ul><br><b>2</b>. User “parameters” only for actions to specify their additional properties influencing their nature (like method for HTTP actions).</blockquote>

</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">Just clarify your thoughts:<br> - All static keys and parameters should be in actions</div>

<div style="font-family:arial,sans-serif;font-size:13px"> - All dynamic keys and parameters should be in tasks block</div><div style="font-family:arial,sans-serif;font-size:13px"> - We may use our context to define some parameters in action or task</div>

<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">And, yes, I think it is a good idea to differentiate this. It is become easier</div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div><font>Best Regards,</font></div><div><font>Nikolay</font></div></div>
</div>