Merge "Fixed bug with url building"
diff --git a/tempest/common/api_version_utils.py b/tempest/common/api_version_utils.py
index 98601a7..c3d977f 100644
--- a/tempest/common/api_version_utils.py
+++ b/tempest/common/api_version_utils.py
@@ -38,13 +38,13 @@
     config_max_version = api_version_request.APIVersionRequest(cfg_max_version)
     if ((min_version > max_version) or
        (config_min_version > config_max_version)):
-        msg = ("Min version is greater than Max version. Test Class versions "
-               "[%s - %s]. configuration versions [%s - %s]."
+        msg = ("Test Class versions [%s - %s]. "
+               "Configuration versions [%s - %s]."
                % (min_version.get_string(),
                   max_version.get_string(),
                   config_min_version.get_string(),
                   config_max_version.get_string()))
-        raise exceptions.InvalidConfiguration(msg)
+        raise exceptions.InvalidAPIVersionRange(msg)
 
     # NOTE: Select tests which are in range of configuration like
     #               config min           config max
diff --git a/tempest/exceptions.py b/tempest/exceptions.py
index 931737d..86e8460 100644
--- a/tempest/exceptions.py
+++ b/tempest/exceptions.py
@@ -186,6 +186,10 @@
                " %(schema_versions_info)s")
 
 
+class InvalidAPIVersionRange(TempestException):
+    message = ("API Min Version is greater than Max version")
+
+
 class CommandFailed(Exception):
     def __init__(self, returncode, cmd, output, stderr):
         super(CommandFailed, self).__init__()
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index cd36f38..72424ad 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -328,9 +328,6 @@
         for ruleset in rulesets:
             sg_rule = _client_rules.create_security_group_rule(
                 parent_group_id=secgroup_id, **ruleset)['security_group_rule']
-            self.addCleanup(self.delete_wrapper,
-                            _client_rules.delete_security_group_rule,
-                            sg_rule['id'])
             rules.append(sg_rule)
         return rules
 
@@ -1059,7 +1056,6 @@
             client=sec_group_rules_client,
             **sg_rule['security_group_rule']
         )
-        self.addCleanup(self.delete_wrapper, sg_rule.delete)
         self.assertEqual(secgroup.tenant_id, sg_rule.tenant_id)
         self.assertEqual(secgroup.id, sg_rule.security_group_id)
 
diff --git a/tempest/scenario/test_shelve_instance.py b/tempest/scenario/test_shelve_instance.py
index a91f9c5..77de47e 100644
--- a/tempest/scenario/test_shelve_instance.py
+++ b/tempest/scenario/test_shelve_instance.py
@@ -13,7 +13,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from oslo_log import log
 import testtools
 
 from tempest.common import waiters
@@ -23,8 +22,6 @@
 
 CONF = config.CONF
 
-LOG = log.getLogger(__name__)
-
 
 class TestShelveInstance(manager.ScenarioTest):
     """This test shelves then unshelves a Nova instance
diff --git a/tempest/scenario/test_snapshot_pattern.py b/tempest/scenario/test_snapshot_pattern.py
index f4cc4e3..d6528a3 100644
--- a/tempest/scenario/test_snapshot_pattern.py
+++ b/tempest/scenario/test_snapshot_pattern.py
@@ -13,7 +13,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from oslo_log import log
 import testtools
 
 from tempest import config
@@ -22,8 +21,6 @@
 
 CONF = config.CONF
 
-LOG = log.getLogger(__name__)
-
 
 class TestSnapshotPattern(manager.ScenarioTest):
     """This test is for snapshotting an instance and booting with it.
diff --git a/tempest/scenario/test_stamp_pattern.py b/tempest/scenario/test_stamp_pattern.py
index 799e049..1d09fe7 100644
--- a/tempest/scenario/test_stamp_pattern.py
+++ b/tempest/scenario/test_stamp_pattern.py
@@ -25,10 +25,8 @@
 from tempest import exceptions
 from tempest.scenario import manager
 from tempest import test
-import tempest.test
 
 CONF = config.CONF
-
 LOG = logging.getLogger(__name__)
 
 
@@ -89,16 +87,16 @@
             LOG.debug("Partitions:%s" % part)
             return CONF.compute.volume_device_name in part
 
-        if not tempest.test.call_until_true(_func,
-                                            CONF.compute.build_timeout,
-                                            CONF.compute.build_interval):
+        if not test.call_until_true(_func,
+                                    CONF.compute.build_timeout,
+                                    CONF.compute.build_interval):
             raise exceptions.TimeoutException
 
     @decorators.skip_because(bug="1205344")
     @test.idempotent_id('10fd234a-515c-41e5-b092-8323060598c5')
     @testtools.skipUnless(CONF.compute_feature_enabled.snapshot,
                           'Snapshotting is not available.')
-    @tempest.test.services('compute', 'network', 'volume', 'image')
+    @test.services('compute', 'network', 'volume', 'image')
     def test_stamp_pattern(self):
         # prepare for booting an instance
         keypair = self.create_keypair()
diff --git a/tempest/scenario/test_volume_boot_pattern.py b/tempest/scenario/test_volume_boot_pattern.py
index 39351f8..4ce57db 100644
--- a/tempest/scenario/test_volume_boot_pattern.py
+++ b/tempest/scenario/test_volume_boot_pattern.py
@@ -10,8 +10,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from oslo_log import log
-
 from tempest.common.utils import data_utils
 from tempest.common import waiters
 from tempest import config
@@ -20,8 +18,6 @@
 
 CONF = config.CONF
 
-LOG = log.getLogger(__name__)
-
 
 class TestVolumeBootPattern(manager.ScenarioTest):
 
diff --git a/tempest/tests/common/test_api_version_utils.py b/tempest/tests/common/test_api_version_utils.py
index a24bc65..501f954 100644
--- a/tempest/tests/common/test_api_version_utils.py
+++ b/tempest/tests/common/test_api_version_utils.py
@@ -51,11 +51,11 @@
         self._test_version('2.8', '2.9', '2.3', '2.7', expected_skip=True)
 
     def test_version_min_greater_than_max(self):
-        self.assertRaises(exceptions.InvalidConfiguration,
+        self.assertRaises(exceptions.InvalidAPIVersionRange,
                           self._test_version, '2.8', '2.7', '2.3', '2.7')
 
     def test_cfg_version_min_greater_than_max(self):
-        self.assertRaises(exceptions.InvalidConfiguration,
+        self.assertRaises(exceptions.InvalidAPIVersionRange,
                           self._test_version, '2.2', '2.7', '2.9', '2.7')
 
 
diff --git a/tempest/tests/test_microversions.py b/tempest/tests/test_microversions.py
index fc37af4..6738641 100644
--- a/tempest/tests/test_microversions.py
+++ b/tempest/tests/test_microversions.py
@@ -141,7 +141,7 @@
                              '2.5', group='compute-feature-enabled')
         cfg.CONF.set_default('max_microversion',
                              '2.1', group='compute-feature-enabled')
-        self.assertRaises(exceptions.InvalidConfiguration,
+        self.assertRaises(exceptions.InvalidAPIVersionRange,
                           VersionTestNoneTolatest.skip_checks)
 
     def test_config_version_invalid_test_version(self):
@@ -149,5 +149,5 @@
                              None, group='compute-feature-enabled')
         cfg.CONF.set_default('max_microversion',
                              '2.13', group='compute-feature-enabled')
-        self.assertRaises(exceptions.InvalidConfiguration,
+        self.assertRaises(exceptions.InvalidAPIVersionRange,
                           InvalidVersionTest.skip_checks)