[openstack-dev] [heat] issue of ResourceGroup in Heat template

Zane Bitter zbitter at redhat.com
Wed Mar 23 21:05:17 UTC 2016


On 23/03/16 13:35, Steven Hardy wrote:
> On Wed, Mar 23, 2016 at 05:25:57PM +0300, Sergey Kraynev wrote:
>>     Hello,
>>     It looks similar on issue, which was discussed here [1]
>>     I suppose, that the root cause is incorrect using get_attr for your case.
>>     Probably you got "list"  instead of "string".
>>     F.e. if I do something similar:
>>     outputs:
>>       rg_1:
>>         value: {get_attr: [rg_a, rg_a_public_ip]}
>>       rg_2:
>>         value: {get_attr: [rg_a, rg_a_public_ip, 0]}
>>
>>       rg_3:
>>         value: {get_attr: [rg_a]}
>>       rg_4:
>>         value: {get_attr: [rg_a, resource.0.rg_a_public_ip]}

There's actually another option here too that I personally prefer:

   rg_5:
     value: {get_attr: [rg_a, resource.0, rg_a_public_ip]}

>>     where rg_a is also resource group which uses custom template as resource.
>>     the custom template has output value rg_a_public_ip.
>>     The output for it looks like [2]
>>     So as you can see, that in first case (like it is used in your example),
>>     get_attr returns list with one element.
>>     rg_2 is also wrong, because it takes first symbol from sting with IP
>>     address.
>
> Shouldn't rg_2 and rg_4 be equivalent?

Nope, rg_2 returns:

   [<public_ip_0>[0], <public_ip_1>[0], ...]

If this makes no sense, imagine that rg_a_public_ip is actually a map 
rather than a string. If you want to pick one key out of the map on each 
member and return the list of all of them, then you just have to add the 
key as the next argument to get_attr. This makes get_attr on a resource 
group work somewhat differently to other resources, but it's the only 
sensible way to express this in a template:

https://bugs.launchpad.net/heat/+bug/1341048

Whereas rg_4 and rg_5 just return:

   <public_ip_0>

> {get_attr: [rg_a, rg_a_public_ip]} should return a list of all
> rg_a_public_ip attributes (one list item for each resource in the group),
> then the 0 should select the first item from that list?
>
> If it's returning the first character of the first element, that sounds
> like a bug to me?
>
> Steve
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>




More information about the OpenStack-dev mailing list