Support adding multiple LB PoolMembers

This is a workaround for adding more than one pool member in case of creating
a Service Chain Instance with a LB template.

Change-Id: If8f73eca0666ba035f390654bf5442e13209e56a
Closes-bug:1400533
This commit is contained in:
Magesh GV
2015-01-05 09:45:16 +05:30
parent c4d802e043
commit ec3d366daa

View File

@@ -204,14 +204,22 @@ class SimpleChainDriver(object):
# eg: Type: OS::Neutron::PoolMember
# Variable number of pool members is not handled yet. We may have to
# dynamically modify the template json to achieve that
member_ips = []
provider_ptg_id = sc_instance.get("provider_ptg_id")
# If we have the key "PoolMemberIP*" in template input parameters,
# fetch the list of IPs of all PTs in the PTG
for key in config_param_names or []:
if key == "PoolMemberIPs":
value = self._get_member_ips(context, provider_ptg_id)
# TODO(Magesh):Return one value for now
if value:
value = value[0]
config_param_values[key] = value
if "PoolMemberIP" in key:
member_ips = self._get_member_ips(context, provider_ptg_id)
break
member_count = 0
for key in config_param_names or []:
if "PoolMemberIP" in key:
value = (member_ips[member_count]
if len(member_ips) >= member_count else '0')
member_count = member_count + 1
config_param_values[key] = value
elif key == "Subnet":
value = self._get_ptg_subnet(context, provider_ptg_id)
config_param_values[key] = value