diff --git a/stress/README.rst b/stress/README.rst
index 00e3b90..bf44f13 100644
--- a/stress/README.rst
+++ b/stress/README.rst
@@ -23,14 +23,15 @@
 ------------
 This particular framework assumes your working Nova cluster understands Nova 
 API 2.0. The stress tests can read the logs from the cluster. To enable this
-you have to
-provide the private key and user name for ssh to the cluster in the
+you have to provide the hostname to call 'nova-manage' and
+the private key and user name for ssh to the cluster in the
 [stress] section of tempest.conf. You also need to provide the
 value of --logdir in nova.conf:
 
   host_private_key_path=<path to private ssh key>
   host_admin_user=<name of user for ssh command>
   nova_logdir=<value of --logdir in nova.conf>
+  controller=<hostname for calling nova-manage>
 
 The stress test needs the top-level tempest directory to be on PYTHONPATH
 if you are not using nosetests to run.
diff --git a/stress/config.py b/stress/config.py
index 3f107af..0dce816 100755
--- a/stress/config.py
+++ b/stress/config.py
@@ -41,3 +41,8 @@
     def nova_logdir(self):
         """Directory containing log files on the compute nodes"""
         return self.get("nova_logdir", None)
+
+    @property
+    def controller(self):
+        """Controller host"""
+        return self.get("controller", None)
diff --git a/stress/test_servers.py b/stress/test_servers.py
index 3f62ac3..47d30b5 100644
--- a/stress/test_servers.py
+++ b/stress/test_servers.py
@@ -57,7 +57,8 @@
             return None
 
         _key_name = kwargs.get('key_name', '')
-        _timeout = int(kwargs.get('timeout', 60))
+        _timeout = int(kwargs.get('timeout',
+                                  manager.config.compute.build_timeout))
         _image_ref = kwargs.get('image_ref', manager.config.compute.image_ref)
         _flavor_ref = kwargs.get('flavor_ref',
                                  manager.config.compute.flavor_ref)
@@ -172,7 +173,7 @@
             self._logger.info('no ACTIVE instances to delete')
             return
 
-        _timeout = kwargs.get('timeout', 600)
+        _timeout = kwargs.get('timeout', manager.config.compute.build_timeout)
 
         target = random.choice(active_vms)
         killtarget = target[0]
@@ -240,7 +241,7 @@
             self._logger.info('no active instances to delete')
             return
 
-        _timeout = kwargs.get('timeout', 60)
+        _timeout = kwargs.get('timeout', manager.config.compute.build_timeout)
 
         target = random.choice(vms)
         killtarget = target[0]
@@ -276,7 +277,7 @@
             self._logger.info('no active instances to update')
             return
 
-        _timeout = kwargs.get('timeout', 600)
+        _timeout = kwargs.get('timeout', manager.config.compute.build_timeout)
 
         target = random.choice(active_vms)
         update_target = target[0]
diff --git a/stress/tests/create_kill.py b/stress/tests/create_kill.py
index 1457279..752f72d 100644
--- a/stress/tests/create_kill.py
+++ b/stress/tests/create_kill.py
@@ -20,13 +20,8 @@
 from tempest import openstack
 
 choice_spec = [
-    BasherAction(TestCreateVM(), 50,
-                 kargs={'timeout': '600',
-                        'image_ref': 2,
-                        'flavor_ref': 1}
-                 ),
-    BasherAction(TestKillActiveVM(), 50,
-                 kargs={'timeout': '600'})
+    BasherAction(TestCreateVM(), 50),
+    BasherAction(TestKillActiveVM(), 50)
 ]
 
 nova = openstack.Manager()
diff --git a/stress/tests/hard_reboots.py b/stress/tests/hard_reboots.py
index 503159e..f38ef6f 100644
--- a/stress/tests/hard_reboots.py
+++ b/stress/tests/hard_reboots.py
@@ -21,10 +21,9 @@
 from tempest import openstack
 
 choice_spec = [
-    BasherAction(TestCreateVM(), 50,
-                 kargs={'timeout': '600'}),
+    BasherAction(TestCreateVM(), 50),
     BasherAction(TestRebootVM(), 50,
-                 kargs={'type': 'HARD'}),
+                 kargs={'type': 'HARD'})
 ]
 
 nova = openstack.Manager()
diff --git a/stress/utils/util.py b/stress/utils/util.py
index aac6c26..ac8f062 100644
--- a/stress/utils/util.py
+++ b/stress/utils/util.py
@@ -32,6 +32,7 @@
 
 
 def ssh(keypath, user, node, command, check=True):
+    command = 'sudo ' + command
     command = "ssh %s %s@%s %s" % (get_ssh_options(keypath), user,
                                    node, command)
     popenargs = shlex.split(command)
