Merge "Dynamic Workloads:Enhance Nova API Version Pinning"

This commit is contained in:
Zuul 2022-11-11 07:27:04 +00:00 committed by Gerrit Code Review
commit 0d9d4df9f4
3 changed files with 10 additions and 47 deletions

View File

@ -663,6 +663,9 @@ workloads:
scenarios:
- name: dynamic-workload
enabled: false
# nova_api_version >=2.52 is required for server tags,
# which are used by dynamic workloads.
nova_api_version: 2.52
# smallest image name and smallest flavor name are used for
# vm dynamic scenarios and for jumphost in trunk dynamic scenario.
smallest_image_name: cirro5

View File

@ -144,52 +144,8 @@ class NovaUtils(vm_utils.VMScenario):
:param kwargs: other optional parameters to initialize the server
:returns: nova Server instance
"""
server_name = self.generate_random_name()
# Each iteration has a unique security group for its resources
if self.security_group:
if "security_groups" not in kwargs:
kwargs["security_groups"] = [self.security_group["name"]]
elif self.security_group["name"] not in kwargs["security_groups"]:
kwargs["security_groups"].append(self.security_group["name"])
# Let every 5th iteration add default security group of the tenant/user
secgroup = self.context.get("user", {}).get("secgroup")
if secgroup and (self.context["iteration"] % 5):
if "security_groups" not in kwargs:
kwargs["security_groups"] = [secgroup["name"]]
elif secgroup["name"] not in kwargs["security_groups"]:
kwargs["security_groups"].append(secgroup["name"])
if auto_assign_nic and not kwargs.get("nics", False):
nic = self._pick_random_nic()
if nic:
kwargs["nics"] = nic
if "nics" not in kwargs and\
"tenant" in self.context and\
"networks" in self.context["tenant"]:
kwargs["nics"] = [
{"net-id": self.context["tenant"]["networks"][0]["id"]}]
for nic in kwargs.get("nics", []):
if not nic.get("net-id") and nic.get("net-name"):
nic["net-id"] = self._get_network_id(nic["net-name"])
kwargs["tags"] = [tag]
with atomic.ActionTimer(self, "nova.boot_server"):
server = self.clients("nova", version="2.52").servers.create(
server_name, image, flavor, **kwargs)
self.sleep_between(CONF.openstack.nova_server_boot_prepoll_delay)
server = utils.wait_for_status(
server,
ready_statuses=["ACTIVE"],
update_resource=utils.get_from_manager(),
timeout=CONF.openstack.nova_server_boot_timeout,
check_interval=CONF.openstack.nova_server_boot_poll_interval
)
server = self._boot_server(image, flavor, auto_assign_nic, **kwargs)
return server
def _boot_server_with_fip_and_tag(self, image, flavor, tag, use_floating_ip=True,
@ -228,7 +184,7 @@ class NovaUtils(vm_utils.VMScenario):
:param tag: str, tag to search for
:returns: list of server objects based on tag
"""
return self.clients("nova", version="2.52").servers.list(
return self.clients("nova").servers.list(
search_opts={'tags': tag, 'status': "ACTIVE"})
def _get_fip_by_server(self, server):
@ -247,7 +203,7 @@ class NovaUtils(vm_utils.VMScenario):
:param server: server object to get details for
:returns: server details
"""
return self.clients("nova", version="2.52").servers.get(server)
return self.clients("nova").servers.get(server)
class NeutronUtils(neutron_utils.NeutronScenario):

View File

@ -1,3 +1,4 @@
{% set nova_api_version = nova_api_version or 2.52 %}
{% set smallest_image_name = smallest_image_name or 'cirros' %}
{% set smallest_flavor_name = smallest_flavor_name or 'm1.xtiny' %}
{% set num_create_vms = num_create_vms or 2 %}
@ -92,6 +93,9 @@ BrowbeatPlugin.dynamic_workload:
users:
tenants: 1
users_per_tenant: 1
api_versions:
nova:
version: {{ nova_api_version }}
quotas:
neutron:
network: -1