diff options
-rw-r--r-- | yardstick/benchmark/contexts/model.py | 8 | ||||
-rw-r--r-- | yardstick/orchestrator/heat.py | 34 |
2 files changed, 34 insertions, 8 deletions
diff --git a/yardstick/benchmark/contexts/model.py b/yardstick/benchmark/contexts/model.py index bb61c613d..80abb9df3 100644 --- a/yardstick/benchmark/contexts/model.py +++ b/yardstick/benchmark/contexts/model.py @@ -145,8 +145,10 @@ class Server(Object): self.ports = {} self.floating_ip = None + self.floating_ip_assoc = None if "floating_ip" in attrs: self.floating_ip = {} + self.floating_ip_assoc = {} if self.floating_ip is not None: ext_net = Network.find_external_network() @@ -199,6 +201,12 @@ class Server(Object): port_name, network.router.stack_if_name, self.secgroup_name) + self.floating_ip_assoc["stack_name"] = \ + server_name + "-fip-assoc" + template.add_floating_ip_association( + self.floating_ip_assoc["stack_name"], + self.floating_ip["stack_name"], + server_name) template.add_server(server_name, self.image, self.flavor, ports=port_name_list, diff --git a/yardstick/orchestrator/heat.py b/yardstick/orchestrator/heat.py index e6e6bcac1..294eebbca 100644 --- a/yardstick/orchestrator/heat.py +++ b/yardstick/orchestrator/heat.py @@ -275,18 +275,17 @@ class HeatTemplate(HeatObject): def add_floating_ip(self, name, network_name, port_name, router_if_name, secgroup_name=None): - '''add to the template a Neutron FloatingIP resource + '''add to the template a Nova FloatingIP resource see: https://bugs.launchpad.net/heat/+bug/1299259 ''' - log.debug("adding Neutron::FloatingIP '%s', network '%s', port '%s', " + log.debug("adding Nova::FloatingIP '%s', network '%s', port '%s', " "rif '%s'", name, network_name, port_name, router_if_name) self.resources[name] = { - 'type': 'OS::Neutron::FloatingIP', + 'type': 'OS::Nova::FloatingIP', 'depends_on': [port_name, router_if_name], 'properties': { - 'floating_network': network_name, - 'port_id': {'get_resource': port_name} + 'pool': network_name } } @@ -295,7 +294,22 @@ class HeatTemplate(HeatObject): self._template['outputs'][name] = { 'description': 'floating ip %s' % name, - 'value': {'get_attr': [name, 'floating_ip_address']} + 'value': {'get_attr': [name, 'ip']} + } + + def add_floating_ip_association(self, name, floating_ip_name, server_name): + '''add to the template a Nova FloatingIP Association resource + ''' + log.debug("adding Nova::FloatingIPAssociation '%s', server '%s', " + "floating_ip '%s'", name, server_name, floating_ip_name) + + self.resources[name] = { + 'type': 'OS::Nova::FloatingIPAssociation', + 'depends_on': [server_name], + 'properties': { + 'floating_ip': {'get_resource': floating_ip_name}, + 'server_id': {'get_resource': server_name} + } } def add_keypair(self, name): @@ -339,9 +353,13 @@ class HeatTemplate(HeatObject): 'description': "Group allowing icmp and upd/tcp on all ports", 'rules': [ {'remote_ip_prefix': '0.0.0.0/0', - 'protocol': 'tcp'}, + 'protocol': 'tcp', + 'port_range_min': '1', + 'port_range_max': '65535'}, {'remote_ip_prefix': '0.0.0.0/0', - 'protocol': 'udp'}, + 'protocol': 'udp', + 'port_range_min': '1', + 'port_range_max': '65535'}, {'remote_ip_prefix': '0.0.0.0/0', 'protocol': 'icmp'} ] |