From 571df61239bf7447b3fff3aa74552d3c540057e6 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Sat, 26 Mar 2016 19:39:22 +0100 Subject: [PATCH] openstack: add get_provider() to match set_provider() So that set_provider does not need to be called explicitly before using the .provider data member. Signed-off-by: Loic Dachary --- teuthology/openstack/__init__.py | 20 ++++++++++++-------- teuthology/openstack/setup-openstack.sh | 2 +- teuthology/openstack/test/test_openstack.py | 4 ++-- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/teuthology/openstack/__init__.py b/teuthology/openstack/__init__.py index b828452a91..1bc8fa6676 100644 --- a/teuthology/openstack/__init__.py +++ b/teuthology/openstack/__init__.py @@ -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" diff --git a/teuthology/openstack/setup-openstack.sh b/teuthology/openstack/setup-openstack.sh index 0075a32c9b..05243b7394 100755 --- a/teuthology/openstack/setup-openstack.sh +++ b/teuthology/openstack/setup-openstack.sh @@ -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 diff --git a/teuthology/openstack/test/test_openstack.py b/teuthology/openstack/test/test_openstack.py index 7b9ba750ae..fcb10496a1 100644 --- a/teuthology/openstack/test/test_openstack.py +++ b/teuthology/openstack/test/test_openstack.py @@ -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: -- 2.39.5