<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 21, 2014 at 12:32 PM, Zane Bitter <span dir="ltr"><<a href="mailto:zbitter@redhat.com" target="_blank">zbitter@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 21/10/14 14:05, Subrahmanyam Ongole wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
Hi<br>
<br>
We are in fact using OS::Neutron::PoolMember resource. I guess<br>
ResourceGroup is the only iterative construct in Heat. Is the use case<br>
supported today?  I think this is more than a simple usage question, hence<br>
posting it here. Thank you.<br>
<br>
Regards<br>
Subra<br>
<br>
On Tue, Oct 21, 2014 at 8:55 AM, Fox, Kevin M <<a href="mailto:Kevin.Fox@pnnl.gov" target="_blank">Kevin.Fox@pnnl.gov</a>> wrote:<br>
<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
  use a OS::Neutron::PoolMember instead. Then each member template can add<br>
itself to the pool.<br>
<br></span>
  ------------------------------<br>
*From:* Magesh GV [<a href="mailto:magesh.gv@oneconvergence.com" target="_blank">magesh.gv@oneconvergence.com</a>]<br>
*Sent:* Tuesday, October 21, 2014 12:07 AM<br>
*To:* <a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.<u></u>org</a><br>
*Subject:* [openstack-dev] Combination of Heat ResourceGroup(index) with<span class=""><br>
Fn::Select doesnt work ?<br>
<br>
   I am trying to find a way of creating a dynamic List of<br>
Resources(Loadbalancer PoolMembers to be exact) using Heat.<br>
<br>
  The idea is that the number of PoolMembers and the required Addresses<br>
would be received as  Heat parameters.<br>
<br>
  However, I am unable to get %index% working inside a Fn:Select block.<br>
</span></blockquote></blockquote>
<br>
Yeah, it doesn't work inside intrinsic functions.<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  Is this a bug with Heat or am I doing something wrong ?<br>
</blockquote></blockquote>
<br></span>
It's arguable ;)<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If this is a<br>
bug/limitation in heat is there some other way to get what I am trying to<br>
do working with heat ?<br>
</blockquote></blockquote>
<br></span>
You should define the PoolMember near the server it is linking to the pool, not in a separate ResourceGroup. Group together the things you want to scale as a group in a separate template and scale them as a unit.<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  IMO this is a very important usecase for the %index%.<br>
</blockquote></blockquote>
<br></span>
I'm very uneasy about %index% existing at all, and I'm not at all convinced that allowing something like this would achieve anything beyond making bad template design more tempting.<br>
<br>
Can you talk more about why you need to define the PoolMember resources in a different place to the actual pool members?<br></blockquote><div><br></div><div>The use-case is to define a template for an LB service and customize it. The parameters i) number of members in the pool and ii) IP addr of each of these members are not known when the template is defined. When the service is instantiated using the template the code that generates the values for these params will pass these in as parameter values to heat.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
cheers,<br>
Zane.<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  "Parameters": {<br>
"NumberOfMembers": {<br>
             "Description": "Number of Pool Members to be created",<br>
             "Type": "Number",<br>
     "Default": 1<br>
         },<br>
         "MembersList": {<br>
             "Description": "Pool Member IP Address",<br>
             "Type": "Json",<br>
     "Default": {"key0":"11.0.0.43"}<br>
         }<br>
     },<br>
<br>
  "MemberList": {<br>
          "Type": "OS::Heat::ResourceGroup",<br>
         "Properties": {<br>
           "count": {"Ref":"NumberOfMembers"},<br>
           "resource_def": {<br>
      "type": "OS::Neutron::PoolMember",<br>
      "properties": {<br>
"address": { "Fn::Select" : [ "key%index%", {"Ref":"MembersList"}] },<br>
              "admin_state_up": true,<br>
              "pool_id": {"Ref":"HaproxyPool"},<br>
              "protocol_port": "80",<br>
      "weight": 1<br>
            }<br>
      }<br>
           }<br>
  }<br>
<br>
  Regards,<br>
Magesh<br>
</blockquote></blockquote>
<br>
<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>