<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Nov 12, 2014 at 9:33 PM, Alexis Lee <span dir="ltr"><<a href="mailto:alexisl@hp.com" target="_blank">alexisl@hp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Zane Bitter said on Tue, Nov 11, 2014 at 04:06:17PM -0500:<br>
<span class="">> FWIW literally everyone that Clint has pitched the JS<br>
> idea to thought it was crazy ;)<br>
<br>
</span>+1<br>
<br>
> YAQL ... looks like line noise to me<br>
<br>
YAML representing function call stacks (an AST) looks pretty bad to me<br>
:)<br>
<br>
The YAQL doc is not great at the moment but the language is not<br>
difficult. It's pretty similar to XPath, jq and JSP EL, i.e. dotted<br>
syntax with square brackets for attribute selection and slicing. That's<br>
also pretty similar to Python btw.<br>
<br>
Is there another expression language you prefer?<br>
<span class=""><br>
> From the beginning we've tried to have the absolute minimum<br>
> number of intrinsic functions in HOT.<br>
<br>
</span>This is understandable but there are things I want to do (as an operator<br>
- like first_nonnull) which I cannot. The options as I see them:<br>
<br>
  * Add a bunch of operators and a LOT of functions<br>
  * Add a bunch of operators, a few functions and lambda<br>
  * Add a bunch of functions and use an expression language for<br>
    arithmetic, comparison etc<br>
  * Use an expression language for all complex processing<br>
<span class=""></span></blockquote><div><br><br></div><div>I think it's pretty clear we need something more powerful that adding<br></div><div>heaps of intrinsic functions, IMHO as long as we can prove it is safe<br></div><div>we should add yaql (it's nice that there would be a consistent user experience<br></div><div>between these projects -mistral/heat/murano).<br><br></div><div>-Angus<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
> I would much prefer to resurrect the previous proposal for adding<br>
> conditionals and then see what is still missing than to just dive<br>
> straight in to embedding a whole other language in HOT.<br>
<br>
</span>Do you mean this? <a href="https://blueprints.launchpad.net/heat/+spec/intrinsics" target="_blank">https://blueprints.launchpad.net/heat/+spec/intrinsics</a><br>
This only provides string equality and boolean logic. It's insufficient<br>
to implement first_nonnull for example.<br>
<br>
I'd like to emphasise that we don't have to offer the whole YAQL stdlib<br>
in HOT initially. We can use it just for its operator suite and a few<br>
key functions then add others as usecases are discovered.<br>
<span class=""><br></span></blockquote><div><br>+1<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
> On 11/11/14 13:34, Ryan Brown wrote:<br>
</span>> >Vendored HOT<br>
<span class="">> the real issue is that it's under the control of the operator and not<br>
> the template author.<br>
<br>
</span>Yep, the solution has to be through the template as that's 99% of the<br>
user interface.<br>
<span class="im HOEnZb"><br>
<br>
Alexis<br>
--<br>
Nova Engineer, HP Cloud.  AKA lealexis, lxsli.<br>
<br>
</span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>