Convert ironic, swift, and heat api tests to use global CONF object

This commit takes all the uses of config in the object_storage and
orchestration api tests and converts them to use the global CONF
object.

The _get_client_args() method from the base orchestration test class
is removed because it only uses the object attr config and isn't
actually used anywhere. So instead of converting it to use the global
object it is removed.

Partially implements bp config-cleanup

Change-Id: Ib8d7ad36047a1e752511bc4c5541d04ea61d6afc
diff --git a/tempest/api/baremetal/base.py b/tempest/api/baremetal/base.py
index ec87321..2e745f8 100644
--- a/tempest/api/baremetal/base.py
+++ b/tempest/api/baremetal/base.py
@@ -14,9 +14,12 @@
 
 from tempest import clients
 from tempest.common.utils import data_utils
+from tempest import config
 from tempest import exceptions as exc
 from tempest import test
 
+CONF = config.CONF
+
 
 def creates(resource):
     """Decorator that adds resources to the appropriate cleanup list."""
@@ -42,7 +45,7 @@
     def setUpClass(cls):
         super(BaseBaremetalTest, cls).setUpClass()
 
-        if not cls.config.service_available.ironic:
+        if not CONF.service_available.ironic:
             skip_msg = ('%s skipped as Ironic is not available' % cls.__name__)
             raise cls.skipException(skip_msg)
 
diff --git a/tempest/api/object_storage/base.py b/tempest/api/object_storage/base.py
index 41f23b3..0eedea1 100644
--- a/tempest/api/object_storage/base.py
+++ b/tempest/api/object_storage/base.py
@@ -18,9 +18,12 @@
 from tempest import clients
 from tempest.common import custom_matchers
 from tempest.common import isolated_creds
+from tempest import config
 from tempest import exceptions
 import tempest.test
 
+CONF = config.CONF
+
 
 class BaseObjectTest(tempest.test.BaseTestCase):
 
@@ -28,12 +31,12 @@
     def setUpClass(cls):
         cls.set_network_resources()
         super(BaseObjectTest, cls).setUpClass()
-        if not cls.config.service_available.swift:
+        if not CONF.service_available.swift:
             skip_msg = ("%s skipped as swift is not available" % cls.__name__)
             raise cls.skipException(skip_msg)
         cls.isolated_creds = isolated_creds.IsolatedCreds(
             cls.__name__, network_resources=cls.network_resources)
-        if cls.config.compute.allow_tenant_isolation:
+        if CONF.compute.allow_tenant_isolation:
             # Get isolated creds for normal user
             creds = cls.isolated_creds.get_primary_creds()
             username, tenant_name, password = creds
@@ -82,7 +85,7 @@
     def _assign_member_role(cls):
         primary_user = cls.isolated_creds.get_primary_user()
         alt_user = cls.isolated_creds.get_alt_user()
-        swift_role = cls.config.object_storage.operator_role
+        swift_role = CONF.object_storage.operator_role
         try:
             resp, roles = cls.os_admin.identity_client.list_roles()
             role = next(r for r in roles if r['name'] == swift_role)
diff --git a/tempest/api/object_storage/test_container_sync.py b/tempest/api/object_storage/test_container_sync.py
index 32bbcbd..207fced 100644
--- a/tempest/api/object_storage/test_container_sync.py
+++ b/tempest/api/object_storage/test_container_sync.py
@@ -18,9 +18,13 @@
 
 from tempest.api.object_storage import base
 from tempest.common.utils import data_utils
+from tempest import config
 from tempest.test import attr
 from tempest.test import HTTP_SUCCESS
 
+CONF = config.CONF
+
+
 # This test can be quite long to run due to its
 # dependency on container-sync process running interval.
 # You can obviously reduce the container-sync interval in the
@@ -40,9 +44,9 @@
 
         # Must be configure according to container-sync interval
         container_sync_timeout = \
-            int(cls.config.object_storage.container_sync_timeout)
+            int(CONF.object_storage.container_sync_timeout)
         cls.container_sync_interval = \
-            int(cls.config.object_storage.container_sync_interval)
+            int(CONF.object_storage.container_sync_interval)
         cls.attempts = \
             int(container_sync_timeout / cls.container_sync_interval)
 
diff --git a/tempest/api/orchestration/base.py b/tempest/api/orchestration/base.py
index b69cc49..3424082 100644
--- a/tempest/api/orchestration/base.py
+++ b/tempest/api/orchestration/base.py
@@ -12,9 +12,11 @@
 
 from tempest import clients
 from tempest.common.utils import data_utils
+from tempest import config
 from tempest.openstack.common import log as logging
 import tempest.test
 
+CONF = config.CONF
 
 LOG = logging.getLogger(__name__)
 
@@ -26,12 +28,10 @@
     def setUpClass(cls):
         super(BaseOrchestrationTest, cls).setUpClass()
         os = clients.OrchestrationManager()
-        cls.orchestration_cfg = os.config.orchestration
-        cls.compute_cfg = os.config.compute
-        if not os.config.service_available.heat:
+        if not CONF.service_available.heat:
             raise cls.skipException("Heat support is required")
-        cls.build_timeout = cls.orchestration_cfg.build_timeout
-        cls.build_interval = cls.orchestration_cfg.build_interval
+        cls.build_timeout = CONF.orchestration.build_timeout
+        cls.build_interval = CONF.orchestration.build_interval
 
         cls.os = os
         cls.orchestration_client = os.orchestration_client
@@ -45,7 +45,7 @@
     def _get_default_network(cls):
         resp, networks = cls.network_client.list_networks()
         for net in networks['networks']:
-            if net['name'] == cls.compute_cfg.fixed_network_name:
+            if net['name'] == CONF.compute.fixed_network_name:
                 return net
 
     @classmethod
@@ -58,16 +58,6 @@
         return admin_client
 
     @classmethod
-    def _get_client_args(cls):
-
-        return (
-            cls.config,
-            cls.config.identity.admin_username,
-            cls.config.identity.admin_password,
-            cls.config.identity.uri
-        )
-
-    @classmethod
     def create_stack(cls, stack_name, template_data, parameters={}):
         resp, body = cls.client.create_stack(
             stack_name,
diff --git a/tempest/api/orchestration/stacks/test_limits.py b/tempest/api/orchestration/stacks/test_limits.py
index 2b5bd8f..22f544d 100644
--- a/tempest/api/orchestration/stacks/test_limits.py
+++ b/tempest/api/orchestration/stacks/test_limits.py
@@ -14,9 +14,11 @@
 
 from tempest.api.orchestration import base
 from tempest.common.utils import data_utils
+from tempest import config
 from tempest import exceptions
 from tempest.test import attr
 
+CONF = config.CONF
 
 LOG = logging.getLogger(__name__)
 
@@ -32,7 +34,7 @@
 
     @attr(type='gate')
     def test_exceed_max_template_size_fails(self):
-        fill = 'A' * self.orchestration_cfg.max_template_size
+        fill = 'A' * CONF.orchestration.max_template_size
         template = '''
 HeatTemplateFormatVersion: '2012-12-12'
 Description: '%s'
diff --git a/tempest/api/orchestration/stacks/test_neutron_resources.py b/tempest/api/orchestration/stacks/test_neutron_resources.py
index bed72c8..243c3ce 100644
--- a/tempest/api/orchestration/stacks/test_neutron_resources.py
+++ b/tempest/api/orchestration/stacks/test_neutron_resources.py
@@ -16,8 +16,10 @@
 from tempest.api.orchestration import base
 from tempest import clients
 from tempest.common.utils import data_utils
+from tempest import config
 from tempest.test import attr
 
+CONF = config.CONF
 
 LOG = logging.getLogger(__name__)
 
@@ -91,16 +93,15 @@
     @classmethod
     def setUpClass(cls):
         super(NeutronResourcesTestJSON, cls).setUpClass()
-        if not cls.orchestration_cfg.image_ref:
+        if not CONF.orchestration.image_ref:
             raise cls.skipException("No image available to test")
         cls.client = cls.orchestration_client
         os = clients.Manager()
-        cls.network_cfg = os.config.network
-        if not cls.config.service_available.neutron:
+        if not CONF.service_available.neutron:
             raise cls.skipException("Neutron support is required")
         cls.network_client = os.network_client
         cls.stack_name = data_utils.rand_name('heat')
-        cls.keypair_name = (cls.orchestration_cfg.keypair_name or
+        cls.keypair_name = (CONF.orchestration.keypair_name or
                             cls._create_keypair()['name'])
         cls.external_router_id = cls._get_external_router_id()
 
@@ -110,8 +111,8 @@
             cls.template,
             parameters={
                 'KeyName': cls.keypair_name,
-                'InstanceType': cls.orchestration_cfg.instance_type,
-                'ImageId': cls.orchestration_cfg.image_ref,
+                'InstanceType': CONF.orchestration.instance_type,
+                'ImageId': CONF.orchestration.image_ref,
                 'ExternalRouterId': cls.external_router_id
             })
         cls.stack_id = cls.stack_identifier.split('/')[1]
diff --git a/tempest/api/orchestration/stacks/test_server_cfn_init.py b/tempest/api/orchestration/stacks/test_server_cfn_init.py
index 2ef629f..4267c1d 100644
--- a/tempest/api/orchestration/stacks/test_server_cfn_init.py
+++ b/tempest/api/orchestration/stacks/test_server_cfn_init.py
@@ -125,13 +125,13 @@
     @classmethod
     def setUpClass(cls):
         super(ServerCfnInitTestJSON, cls).setUpClass()
-        if not cls.orchestration_cfg.image_ref:
+        if not CONF.orchestration.image_ref:
             raise cls.skipException("No image available to test")
         cls.client = cls.orchestration_client
 
         stack_name = data_utils.rand_name('heat')
-        if cls.orchestration_cfg.keypair_name:
-            keypair_name = cls.orchestration_cfg.keypair_name
+        if CONF.orchestration.keypair_name:
+            keypair_name = CONF.orchestration.keypair_name
         else:
             cls.keypair = cls._create_keypair()
             keypair_name = cls.keypair['name']
@@ -142,8 +142,8 @@
             cls.template,
             parameters={
                 'key_name': keypair_name,
-                'flavor': cls.orchestration_cfg.instance_type,
-                'image': cls.orchestration_cfg.image_ref,
+                'flavor': CONF.orchestration.instance_type,
+                'image': CONF.orchestration.image_ref,
                 'network': cls._get_default_network()['id']
             })