]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
openstack: add get_provider() to match set_provider()
authorLoic Dachary <ldachary@redhat.com>
Sat, 26 Mar 2016 18:39:22 +0000 (19:39 +0100)
committerLoic Dachary <ldachary@redhat.com>
Mon, 22 Aug 2016 14:34:52 +0000 (16:34 +0200)
So that set_provider does not need to be called explicitly before using
the .provider data member.

Signed-off-by: Loic Dachary <loic@dachary.org>
teuthology/openstack/__init__.py
teuthology/openstack/setup-openstack.sh
teuthology/openstack/test/test_openstack.py

index b828452a91676866cc2db66116d2dd14c533b594..1bc8fa667619cec90c0b3376a6654216589cc971 100644 (file)
@@ -199,6 +199,7 @@ class OpenStack(object):
     }
 
     def __init__(self):
+        self.provider = None
         self.key_filename = None
         self.username = 'ubuntu'
         self.up_string = "UNKNOWN"
@@ -211,13 +212,18 @@ class OpenStack(object):
                      ('entercloudsuite.com', 'entercloudsuite'),
                      ('rackspacecloud.com', 'rackspace'),
                      ('dream.io', 'dreamhost'))
-        self.provider = None
+        self.provider = 'any'
         for (pattern, provider) in providers:
             if pattern in os.environ['OS_AUTH_URL']:
                 self.provider = provider
                 break
         return self.provider
 
+    def get_provider(self):
+        if self.provider is None:
+            self.set_provider()
+        return self.provider
+
     @staticmethod
     def get_value(result, field):
         """
@@ -266,8 +272,7 @@ class OpenStack(object):
         Upload an image into OpenStack with glance.
         """
         misc.sh("wget -c -O " + name + ".qcow2 " + self.image2url[name])
-        self.set_provider()
-        if self.provider == 'dreamhost':
+        if self.get_provider() == 'dreamhost':
             image = name + ".raw"
             disk_format = 'raw'
             misc.sh("qemu-img convert " + name + ".qcow2 " + image)
@@ -539,7 +544,7 @@ ssh access           : ssh {identity}{username}@{ip} # logs in /usr/share/nginx/
     def setup(self):
         self.instance = OpenStackInstance(self.args.name)
         if not self.instance.exists():
-            if self.provider != 'rackspace':
+            if self.get_provider() != 'rackspace':
                 self.create_security_group()
             self.create_cluster()
 
@@ -591,7 +596,6 @@ ssh access           : ssh {identity}{username}@{ip} # logs in /usr/share/nginx/
         except subprocess.CalledProcessError:
             log.exception("openstack -q flavor list")
             raise Exception("verify openrc.sh has been sourced")
-        self.set_provider()
 
     def flavor(self):
         """
@@ -612,7 +616,7 @@ ssh access           : ssh {identity}{username}@{ip} # logs in /usr/share/nginx/
             hint['ram'] = 4000 # MB
 
         select = None
-        if self.provider == 'ovh':
+        if self.get_provider() == 'ovh':
             select = '^(vps|eg)-'
         return super(TeuthologyOpenStack, self).flavor(hint, select)
 
@@ -622,7 +626,7 @@ ssh access           : ssh {identity}{username}@{ip} # logs in /usr/share/nginx/
         By default it should not be set. But some providers such as
         entercloudsuite require it is.
         """
-        if self.provider == 'entercloudsuite':
+        if self.get_provider() == 'entercloudsuite':
             return "--nic net-id=default"
         else:
             return ""
@@ -760,7 +764,7 @@ openstack security group rule create --proto udp --dst-port 16000:65535 teutholo
 
     def create_cluster(self):
         user_data = self.get_user_data()
-        if self.provider == 'rackspace':
+        if self.get_provider() == 'rackspace':
             security_group = ''
         else:
             security_group = " --security-group teuthology"
index 0075a32c9badb8e25f8b7fbfed6b5b6fffe3326e..05243b7394e855ee8d75bdd464fc6b59f6acd5c5 100755 (executable)
@@ -438,7 +438,7 @@ function verify_openstack() {
     elif echo $OS_AUTH_URL | grep -qq entercloudsuite.com ; then
         provider=entercloudsuite
     else
-        provider=standardopenstack
+        provider=any
     fi
     echo "OPENSTACK PROVIDER $provider" >&2
     echo $provider
index 7b9ba750ae08fb4532bcb5479dfe58410ac66eef..fcb10496a1c3cde88954055dd3a43148cc87bcab 100644 (file)
@@ -264,10 +264,10 @@ class TestOpenStack(object):
         }
         assert defaults == OpenStack().interpret_hints(defaults, None)
 
-    def test_set_provider(self):
+    def test_get_provider(self):
         auth = os.environ.get('OS_AUTH_URL', None)
         os.environ['OS_AUTH_URL'] = 'cloud.ovh.net'
-        assert OpenStack().set_provider() == 'ovh'
+        assert OpenStack().get_provider() == 'ovh'
         if auth != None:
             os.environ['OS_AUTH_URL'] = auth
         else: