+ def add_floating_ips(self, network_template, floating_ips):
+ for ip in floating_ips:
+ key = "floating-ip-v4" if ip.ip_version == 4 else "floating-ip-v6"
+ ips = network_template["floating-ips"][key]
+ value = self.replace(ip.param, single=True)
+ if value not in ips:
+ ips.append(value)
+
+ def add_fixed_ips(self, network_template, fixed_ips, uses_dhcp):
+ items = network_template["network-information-items"][
+ "network-information-item"
+ ]
+ ipv4s = next(item for item in items if item["ip-version"] == "4")
+ ipv6s = next(item for item in items if item["ip-version"] == "6")
+ if uses_dhcp:
+ ipv4s["use-dhcp"] = "Y"
+ ipv6s["use-dhcp"] = "Y"
+ for ip in fixed_ips:
+ target = ipv4s if ip.ip_version == 4 else ipv6s
+ ips = target["network-ips"]["network-ip"]
+ if ip.param not in ips:
+ ips.append(self.replace(ip.param, single=True))
+ target["ip-count"] += 1
+