Merge "Update stress tests to properly use tempest.config"
diff --git a/stress/config.py b/stress/config.py
index ca86ce5..25cb910 100755
--- a/stress/config.py
+++ b/stress/config.py
@@ -12,8 +12,6 @@
 #    See the License for the specific language governing permissions and
 #    limitations under the License.
 
-import ConfigParser
-
 
 class StressConfig(object):
     """Provides configuration information for whitebox stress tests."""
@@ -21,33 +19,27 @@
     def __init__(self, conf):
         self.conf = conf
 
-    def get(self, item_name, default_value=None):
-        try:
-            return self.conf.get("stress", item_name)
-        except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
-            return default_value
-
     @property
     def host_private_key_path(self):
         """Path to ssh key for logging into compute nodes."""
-        return self.get("host_private_key_path", None)
+        return self.conf.compute.path_to_private_key
 
     @property
     def host_admin_user(self):
         """Username for logging into compute nodes."""
-        return self.get("host_admin_user", None)
+        return self.conf.compute.ssh_user
 
     @property
     def nova_logdir(self):
         """Directory containing log files on the compute nodes."""
-        return self.get("nova_logdir", None)
+        return self.conf.stress.nova_logdir
 
     @property
     def controller(self):
         """Controller host."""
-        return self.get("controller", None)
+        return self.conf.stress.controller
 
     @property
     def max_instances(self):
         """Maximum number of instances to create during test."""
-        return self.get("max_instances", 16)
+        return self.conf.stress.max_instances
diff --git a/stress/driver.py b/stress/driver.py
index 8dc88cf..f80e765 100644
--- a/stress/driver.py
+++ b/stress/driver.py
@@ -18,6 +18,7 @@
 import datetime
 import random
 import time
+from urlparse import urlparse
 
 from config import StressConfig
 from state import ClusterState
@@ -162,7 +163,7 @@
                                    (default: 32)
                     `seed`       = random seed (default: None)
     """
-    stress_config = StressConfig(manager.config._conf)
+    stress_config = StressConfig(manager.config)
     # get keyword arguments
     duration = kwargs.get('duration', datetime.timedelta(seconds=10))
     seed = kwargs.get('seed', None)
@@ -173,7 +174,8 @@
     keypath = stress_config.host_private_key_path
     user = stress_config.host_admin_user
     logdir = stress_config.nova_logdir
-    computes = _get_compute_nodes(keypath, user, manager.config.identity.host)
+    host = urlparse(manager.config.identity.uri).hostname
+    computes = _get_compute_nodes(keypath, user, host)
     stress.utils.execute_on_all(keypath, user, computes,
                                 "rm -f %s/*.log" % logdir)
     random.seed(seed)
diff --git a/tempest/config.py b/tempest/config.py
index c982dee..c0e25c7 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -382,6 +382,26 @@
     for opt in BotoConfig:
         conf.register_opt(opt, group='boto')
 
+stress_group = cfg.OptGroup(name='stress', title='Stress Test Options')
+
+StressGroup = [
+    cfg.StrOpt('nova_logdir',
+               default=None,
+               help='Directory containing log files on the compute nodes'),
+    cfg.IntOpt('max_instances',
+               default=16,
+               help='Maximum number of instances to create during test.'),
+    cfg.StrOpt('controller',
+               default=None,
+               help='Controller host.')
+]
+
+
+def register_stress_opts(conf):
+    conf.register_group(stress_group)
+    for opt in StressGroup:
+        conf.register_opt(opt, group='stress')
+
 
 @singleton
 class TempestConfig:
@@ -426,6 +446,7 @@
         register_object_storage_opts(cfg.CONF)
         register_boto_opts(cfg.CONF)
         register_compute_admin_opts(cfg.CONF)
+        register_stress_opts(cfg.CONF)
         self.compute = cfg.CONF.compute
         self.whitebox = cfg.CONF.whitebox
         self.identity = cfg.CONF.identity
@@ -435,6 +456,7 @@
         self.object_storage = cfg.CONF['object-storage']
         self.boto = cfg.CONF.boto
         self.compute_admin = cfg.CONF['compute-admin']
+        self.stress = cfg.CONF.stress
         if not self.compute_admin.username:
             self.compute_admin.username = self.identity.admin_username
             self.compute_admin.password = self.identity.admin_password