[openstack-dev] [Mistral] For-each

Renat Akhmerov rakhmerov at mirantis.com
Mon Dec 22 05:45:58 UTC 2014


> On 20 Dec 2014, at 06:54, Dmitri Zimine <dzimine at stackstorm.com> wrote:
> 
> I appended some more ideas on making for-each loop more readable / less confusing in the document. 
> 
> It’s not rocking the boat (yet) - all the key agreements done that far, stay so far. It’s refinements. 
> 
> Please take a look, leave comments, +1 / -1 for various ideas, and leave your ideas there, too. 
> 
> https://docs.google.com/document/d/1iw0OgQcU0LV_i3Lnbax9NqAJ397zSYA3PMvl6F_uqm0/edit#heading=h.5hjdjqxsgfle <https://docs.google.com/document/d/1iw0OgQcU0LV_i3Lnbax9NqAJ397zSYA3PMvl6F_uqm0/edit#heading=h.5hjdjqxsgfle>

Dmitri, thanks. Looks like you guys have been really creative around this blueprint :)

I left my comments in the document. In essence, I would suggest we stop at the following syntax:


1. Short one-line syntax in case we need to iterate through one array.

    task1:
        for: my_item in $.my_array
        action: my_action ….

2. Full syntax in case there are more than one array that we need to iterate through.

    task1:
        for:
            my_item1: $.my_array1
            my_item2: $.my_array2
            ...
        action: my_action ….


Option 3

    task1:
        for:
            - my_item1 in $.my_array1
            - my_item2 in $.my_array2

also looks ok to me but it doesn’t seem a YAML way a little bit because in YAML we can express key-value pairs naturally like in #2. 


Actually, I don’t see any problems with supporting all three options.

As far as naming, let’s comment on each of the options we have now:
‘‘for-each’ - I’d be ok with it but seems like lots of people have been confused with it so far because their expectation were really different than the description we told them, so I’m ok to pick a different name.
“map” - I’m totally against it, first glance at “map” would make very little sense to me even though I understand where this option comes from. I’m pretty sure it will be even more confusing than “for-each”.
“with_items” -  Ansible style, it’s ok to me.
“for” - I think this is my favourite option so far. Semantically it may not be too different than “for-each” but it’s very concise and most general purpose languages have the same construct with similar semantics.

After all, my suggestion would be not to spend huge amount of time arguing on naming. Although it’s pretty important, it’s always subjective to a great extent.


Thanks

Renat Akhmerov
@ Mirantis Inc.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141222/83625480/attachment.html>


More information about the OpenStack-dev mailing list