Fixes LP Bug#899383 - Cleanup config file search

Cleans up a bunch of configuration-related errors
when trying to run tempest out of the box with a
simple call to:

$> nosetests storm

* Raises a sensible error if the config file cannot be found
* Makes it possible to set the config file directory and
  config file name via environment variables
* Removes unnecessary calls to create storm.config.StormConfig()
  and share a configuration object by passing the openstack.Manager's
  config object with the various rest client objects
* Updates the README to show how to make a config file and run
  the tests in tempest

Change-Id: I60e33595b88df596cc9585bcaf18d37ae77d6f2b
diff --git a/storm/tests/test_flavors.py b/storm/tests/test_flavors.py
index 590bac3..5153693 100644
--- a/storm/tests/test_flavors.py
+++ b/storm/tests/test_flavors.py
@@ -10,7 +10,7 @@
     def setUpClass(cls):
         cls.os = openstack.Manager()
         cls.client = cls.os.flavors_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.flavor_id = cls.config.env.flavor_ref
 
     @attr(type='smoke')
diff --git a/storm/tests/test_image_metadata.py b/storm/tests/test_image_metadata.py
index 263a771..c8dff27 100644
--- a/storm/tests/test_image_metadata.py
+++ b/storm/tests/test_image_metadata.py
@@ -12,7 +12,7 @@
         cls.os = openstack.Manager()
         cls.servers_client = cls.os.servers_client
         cls.client = cls.os.images_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.image_ref = cls.config.env.image_ref
         cls.flavor_ref = cls.config.env.flavor_ref
         cls.ssh_timeout = cls.config.nova.ssh_timeout
diff --git a/storm/tests/test_images.py b/storm/tests/test_images.py
index 635dc62..e1349b7 100644
--- a/storm/tests/test_images.py
+++ b/storm/tests/test_images.py
@@ -4,18 +4,21 @@
 import unittest2 as unittest
 import storm.config
 
+# Some module-level skip conditions
+create_image_enabled = False
+
 
 class ImagesTest(unittest.TestCase):
-    create_image_enabled = storm.config.StormConfig().env.create_image_enabled
 
     @classmethod
     def setUpClass(cls):
         cls.os = openstack.Manager()
         cls.client = cls.os.images_client
         cls.servers_client = cls.os.servers_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.image_ref = cls.config.env.image_ref
         cls.flavor_ref = cls.config.env.flavor_ref
+        create_image_enabled = cls.config.env.create_image_enabled
 
     def _parse_image_id(self, image_ref):
         temp = image_ref.rsplit('/')
diff --git a/storm/tests/test_server_actions.py b/storm/tests/test_server_actions.py
index d6ff11c..d7c9db4 100644
--- a/storm/tests/test_server_actions.py
+++ b/storm/tests/test_server_actions.py
@@ -4,19 +4,21 @@
 import storm.config
 from storm.common.utils.data_utils import rand_name
 
+# Some module-level skip conditions
+resize_available = False
 
 class ServerActionsTest(unittest.TestCase):
-    resize_available = storm.config.StormConfig().env.resize_available
 
     @classmethod
     def setUpClass(cls):
         cls.os = openstack.Manager()
         cls.client = cls.os.servers_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.image_ref = cls.config.env.image_ref
         cls.image_ref_alt = cls.config.env.image_ref_alt
         cls.flavor_ref = cls.config.env.flavor_ref
         cls.flavor_ref_alt = cls.config.env.flavor_ref_alt
+        resize_available = cls.config.env.resize_available
 
     def setUp(self):
         self.name = rand_name('server')
diff --git a/storm/tests/test_server_details.py b/storm/tests/test_server_details.py
index a27d838..b042ea2 100644
--- a/storm/tests/test_server_details.py
+++ b/storm/tests/test_server_details.py
@@ -11,7 +11,7 @@
     def setUpClass(cls):
         cls.os = openstack.Manager()
         cls.client = cls.os.servers_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.image_ref = cls.config.env.image_ref
         cls.flavor_ref = cls.config.env.flavor_ref
         cls.image_ref_alt = cls.config.env.image_ref_alt
diff --git a/storm/tests/test_server_metadata.py b/storm/tests/test_server_metadata.py
index 3b569f6..397599a 100644
--- a/storm/tests/test_server_metadata.py
+++ b/storm/tests/test_server_metadata.py
@@ -11,7 +11,7 @@
     def setUpClass(cls):
         cls.os = openstack.Manager()
         cls.client = cls.os.servers_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.image_ref = cls.config.env.image_ref
         cls.flavor_ref = cls.config.env.flavor_ref
 
diff --git a/storm/tests/test_servers.py b/storm/tests/test_servers.py
index 8f4bae7..fead6aa 100644
--- a/storm/tests/test_servers.py
+++ b/storm/tests/test_servers.py
@@ -13,7 +13,7 @@
     def setUpClass(cls):
         cls.os = openstack.Manager()
         cls.client = cls.os.servers_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.image_ref = cls.config.env.image_ref
         cls.flavor_ref = cls.config.env.flavor_ref
         cls.ssh_timeout = cls.config.nova.ssh_timeout
diff --git a/storm/tests/test_servers_negative.py b/storm/tests/test_servers_negative.py
index 72de6c0..068ca5d 100644
--- a/storm/tests/test_servers_negative.py
+++ b/storm/tests/test_servers_negative.py
@@ -14,7 +14,7 @@
     def setUpClass(cls):
         cls.os = openstack.Manager()
         cls.client = cls.os.servers_client
-        cls.config = storm.config.StormConfig()
+        cls.config = cls.os.config
         cls.image_ref = cls.config.env.image_ref
         cls.flavor_ref = cls.config.env.flavor_ref
         cls.ssh_timeout = cls.config.nova.ssh_timeout