From: Zack Cerza Date: Tue, 21 Feb 2017 20:17:43 +0000 (-0700) Subject: cloud.openstack: Exclude windows-specific sizes X-Git-Tag: 1.1.0~456^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1012%2Fhead;p=teuthology.git cloud.openstack: Exclude windows-specific sizes Signed-off-by: Zack Cerza --- diff --git a/teuthology/provision/cloud/openstack.py b/teuthology/provision/cloud/openstack.py index 3a78d71a4..b12d55b06 100644 --- a/teuthology/provision/cloud/openstack.py +++ b/teuthology/provision/cloud/openstack.py @@ -1,4 +1,5 @@ import logging +import re import requests import socket import time @@ -82,7 +83,15 @@ class OpenStackProvider(Provider): @property def sizes(self): if not hasattr(self, '_sizes'): - self._sizes = retry(self.driver.list_sizes) + # By default, exclude instance types meant for Windows + exclude_sizes = self.conf.get('exclude_sizes', 'win-.*') + sizes = retry(self.driver.list_sizes) + if exclude_sizes: + sizes = filter( + lambda s: not re.match(exclude_sizes, s.name), + sizes + ) + self._sizes = sizes return self._sizes @property diff --git a/teuthology/provision/cloud/test/test_openstack.py b/teuthology/provision/cloud/test/test_openstack.py index d2f259580..e2a211bbd 100644 --- a/teuthology/provision/cloud/test/test_openstack.py +++ b/teuthology/provision/cloud/test/test_openstack.py @@ -176,9 +176,11 @@ class TestOpenStackProvider(TestOpenStackBase): def test_sizes(self): obj = cloud.get_provider('my_provider') - self.mocks['m_list_sizes'].return_value = ['size0', 'size1'] + fake_sizes = [get_fake_obj(attributes=dict(name='size%s' % i)) for + i in range(2)] + self.mocks['m_list_sizes'].return_value = fake_sizes assert not hasattr(obj, '_sizes') - assert obj.sizes == ['size0', 'size1'] + assert [s.name for s in obj.sizes] == ['size0', 'size1'] assert hasattr(obj, '_sizes') def test_networks(self): @@ -363,9 +365,9 @@ class TestOpenStackProvisioner(TestOpenStackBase): ) def test_size(self, input_attrs, func_or_exc): size_attrs = [ - dict(ram=8000, disk=9999, vcpus=99), - dict(ram=2**16, disk=20, vcpus=99), - dict(ram=2**16, disk=9999, vcpus=1), + dict(ram=8000, disk=9999, vcpus=99, name='s0'), + dict(ram=2**16, disk=20, vcpus=99, name='s1'), + dict(ram=2**16, disk=9999, vcpus=1, name='s2'), ] fake_sizes = list() for item in size_attrs: @@ -482,7 +484,7 @@ class TestOpenStackProvisioner(TestOpenStackBase): node_name = 'node0' fake_sizes = [ get_fake_obj( - attributes=dict(ram=2**16, disk=9999, vcpus=99)), + attributes=dict(ram=2**16, disk=9999, vcpus=99, name='s0')), ] fake_security_groups = [ get_fake_obj(attributes=dict(name=name))