From 5abe4fe013a14c528bfb1e0ff4c8bcb9b8817551 Mon Sep 17 00:00:00 2001 From: JingLu5 Date: Mon, 24 Jul 2017 02:44:26 +0000 Subject: Heat: support vnic_type in heat type context JIRA: YARDSTICK-757 Some test scenarios require VM with specific vnic type. This work is about supporting using different vnic types in heat type context. context: name: demo image: cirros-0.3.5 flavor: yardstick-flavor user: cirros placement_groups: pgrp1: policy: "availability" servers: athena: floating_ip: true placement: "pgrp1" ares: placement: "pgrp1" networks: test: cidr: '10.0.1.0/24' vnic_type: "normal" Change-Id: Ia229fda72f47b04288ea107e2d58fd3e8ac91dd9 Signed-off-by: JingLu5 --- yardstick/benchmark/contexts/model.py | 4 +++- yardstick/orchestrator/heat.py | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'yardstick') diff --git a/yardstick/benchmark/contexts/model.py b/yardstick/benchmark/contexts/model.py index 0bf85d03d..aed1a3f60 100644 --- a/yardstick/benchmark/contexts/model.py +++ b/yardstick/benchmark/contexts/model.py @@ -111,6 +111,7 @@ class Network(Object): self.segmentation_id = attrs.get('segmentation_id') self.network_type = attrs.get('network_type') self.port_security_enabled = attrs.get('port_security_enabled') + self.vnic_type = attrs.get('vnic_type', 'normal') self.allowed_address_pairs = attrs.get('allowed_address_pairs', []) try: # we require 'null' or '' to disable setting gateway_ip @@ -263,7 +264,8 @@ class Server(Object): # pragma: no cover # don't refactor to pass in network object, that causes JSON # circular ref encode errors template.add_port(port_name, network.stack_name, network.subnet_stack_name, - sec_group_id=sec_group_id, provider=network.provider, + network.vnic_type, sec_group_id=sec_group_id, + provider=network.provider, allowed_address_pairs=network.allowed_address_pairs) port_name_list.append(port_name) diff --git a/yardstick/orchestrator/heat.py b/yardstick/orchestrator/heat.py index 05e359717..beb63b421 100644 --- a/yardstick/orchestrator/heat.py +++ b/yardstick/orchestrator/heat.py @@ -359,17 +359,18 @@ name (i.e. %s).\ } } - def add_port(self, name, network_name, subnet_name, sec_group_id=None, provider=None, - allowed_address_pairs=None): + def add_port(self, name, network_name, subnet_name, vnic_type, sec_group_id=None, + provider=None, allowed_address_pairs=None): """add to the template a named Neutron Port """ - log.debug("adding Neutron::Port '%s', network:'%s', subnet:'%s', " - "secgroup:%s", name, network_name, subnet_name, sec_group_id) + log.debug("adding Neutron::Port '%s', network:'%s', subnet:'%s', vnic_type:'%s', " + "secgroup:%s", name, network_name, subnet_name, vnic_type, sec_group_id) self.resources[name] = { 'type': 'OS::Neutron::Port', 'depends_on': [subnet_name], 'properties': { 'name': name, + 'binding:vnic_type': vnic_type, 'fixed_ips': [{'subnet': {'get_resource': subnet_name}}], 'network_id': {'get_resource': network_name}, 'replacement_policy': 'AUTO', -- cgit 1.2.3-korg