From f6cb01764acceadb2f2e9bb382c7e81571f47fbb Mon Sep 17 00:00:00 2001 From: Mikhail Dubov Date: Thu, 26 Dec 2013 15:28:27 +0400 Subject: [PATCH] Merge benchmark.utils and benchmark.cleanup_utils In order to simplify the structure of the rally.benchmark module, we merge two 'utils' modules into one. Blueprint benchmark-engine-refactoring Change-Id: If13afd35d2b82339246ba836204fefdd17def39a --- rally/benchmark/cleanup_utils.py | 85 -------------------------------- rally/benchmark/runner.py | 21 ++++---- rally/benchmark/utils.py | 69 ++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 96 deletions(-) delete mode 100644 rally/benchmark/cleanup_utils.py diff --git a/rally/benchmark/cleanup_utils.py b/rally/benchmark/cleanup_utils.py deleted file mode 100644 index 6cd61d5fee..0000000000 --- a/rally/benchmark/cleanup_utils.py +++ /dev/null @@ -1,85 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2013 IBM Corp. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from novaclient import exceptions as nova_exceptions -import utils - - -def _delete_servers(nova): - for server in nova.servers.list(): - server.delete() - utils._wait_for_empty_list(nova.servers, timeout=600, check_interval=3) - - -def _delete_keypairs(nova): - for keypair in nova.keypairs.list(): - keypair.delete() - utils._wait_for_empty_list(nova.keypairs) - - -def _delete_security_groups(nova): - for group in nova.security_groups.list(): - try: - group.delete() - except nova_exceptions.BadRequest as br: - #TODO(boden): find a way to determine default security group - if not br.message.startswith('Unable to delete system group'): - raise br - utils._wait_for_list_size(nova.security_groups, sizes=[0, 1]) - - -def _delete_images(glance, project_uuid): - for image in glance.images.list(owner=project_uuid): - image.delete() - utils._wait_for_list_statuses(glance.images, statuses=["DELETED"], - list_query={'owner': project_uuid}, - timeout=600, check_interval=3) - - -def _delete_networks(nova): - for network in nova.networks.list(): - network.delete() - utils._wait_for_empty_list(nova.networks) - - -def _delete_volumes(cinder): - for vol in cinder.volumes.list(): - vol.delete() - utils._wait_for_empty_list(cinder.volumes, timeout=120) - - -def _delete_volume_types(cinder): - for vol_type in cinder.volume_types.list(): - vol_type.delete() - utils._wait_for_empty_list(cinder.volume_types) - - -def _delete_volume_transfers(cinder): - for transfer in cinder.transfers.list(): - transfer.delete() - utils._wait_for_empty_list(cinder.transfers) - - -def _delete_volume_snapshots(cinder): - for snapshot in cinder.volume_snapshots.list(): - snapshot.delete() - utils._wait_for_empty_list(cinder.volume_snapshots, timeout=240) - - -def _delete_volume_backups(cinder): - for backup in cinder.backups.list(): - backup.delete() - utils._wait_for_empty_list(cinder.backups, timeout=240) diff --git a/rally/benchmark/runner.py b/rally/benchmark/runner.py index 108de73623..6a4fbbaac2 100644 --- a/rally/benchmark/runner.py +++ b/rally/benchmark/runner.py @@ -21,7 +21,6 @@ import time import uuid from rally.benchmark import base -from rally.benchmark import cleanup_utils from rally.benchmark import utils from rally.openstack.common.gettextutils import _ from rally.openstack.common import log as logging @@ -99,22 +98,22 @@ class ScenarioRunner(object): @classmethod def _delete_nova_resources(cls, nova): - cleanup_utils._delete_servers(nova) - cleanup_utils._delete_keypairs(nova) - cleanup_utils._delete_security_groups(nova) - cleanup_utils._delete_networks(nova) + utils.delete_servers(nova) + utils.delete_keypairs(nova) + utils.delete_security_groups(nova) + utils.delete_networks(nova) @classmethod def _delete_cinder_resources(cls, cinder): - cleanup_utils._delete_volume_transfers(cinder) - cleanup_utils._delete_volumes(cinder) - cleanup_utils._delete_volume_types(cinder) - cleanup_utils._delete_volume_snapshots(cinder) - cleanup_utils._delete_volume_backups(cinder) + utils.delete_volume_transfers(cinder) + utils.delete_volumes(cinder) + utils.delete_volume_types(cinder) + utils.delete_volume_snapshots(cinder) + utils.delete_volume_backups(cinder) @classmethod def _delete_glance_resources(cls, glance, project_uuid): - cleanup_utils._delete_images(glance, project_uuid) + utils.delete_images(glance, project_uuid) @classmethod def _cleanup_with_clients(cls, indexes): diff --git a/rally/benchmark/utils.py b/rally/benchmark/utils.py index 9aa9c6f4dc..a43234ae88 100644 --- a/rally/benchmark/utils.py +++ b/rally/benchmark/utils.py @@ -15,6 +15,8 @@ import traceback +from novaclient import exceptions as nova_exceptions + from rally import exceptions as rally_exceptions from rally import osclients from rally import utils @@ -111,3 +113,70 @@ def create_openstack_clients(users_endpoints, keys): ] return clients + + +def delete_servers(nova): + for server in nova.servers.list(): + server.delete() + _wait_for_empty_list(nova.servers, timeout=600, check_interval=3) + + +def delete_keypairs(nova): + for keypair in nova.keypairs.list(): + keypair.delete() + _wait_for_empty_list(nova.keypairs) + + +def delete_security_groups(nova): + for group in nova.security_groups.list(): + try: + group.delete() + except nova_exceptions.BadRequest as br: + #TODO(boden): find a way to determine default security group + if not br.message.startswith('Unable to delete system group'): + raise br + _wait_for_list_size(nova.security_groups, sizes=[0, 1]) + + +def delete_images(glance, project_uuid): + for image in glance.images.list(owner=project_uuid): + image.delete() + _wait_for_list_statuses(glance.images, statuses=["DELETED"], + list_query={'owner': project_uuid}, + timeout=600, check_interval=3) + + +def delete_networks(nova): + for network in nova.networks.list(): + network.delete() + _wait_for_empty_list(nova.networks) + + +def delete_volumes(cinder): + for vol in cinder.volumes.list(): + vol.delete() + _wait_for_empty_list(cinder.volumes, timeout=120) + + +def delete_volume_types(cinder): + for vol_type in cinder.volume_types.list(): + vol_type.delete() + _wait_for_empty_list(cinder.volume_types) + + +def delete_volume_transfers(cinder): + for transfer in cinder.transfers.list(): + transfer.delete() + _wait_for_empty_list(cinder.transfers) + + +def delete_volume_snapshots(cinder): + for snapshot in cinder.volume_snapshots.list(): + snapshot.delete() + _wait_for_empty_list(cinder.volume_snapshots, timeout=240) + + +def delete_volume_backups(cinder): + for backup in cinder.backups.list(): + backup.delete() + _wait_for_empty_list(cinder.backups, timeout=240)