}
def __init__(self):
+ self.provider = None
self.key_filename = None
self.username = 'ubuntu'
self.up_string = "UNKNOWN"
('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):
"""
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)
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()
except subprocess.CalledProcessError:
log.exception("openstack -q flavor list")
raise Exception("verify openrc.sh has been sourced")
- self.set_provider()
def flavor(self):
"""
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)
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 ""
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"
}
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: