]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
cloud.openstack: Exclude windows-specific sizes 1012/head
authorZack Cerza <zack@redhat.com>
Tue, 21 Feb 2017 20:17:43 +0000 (13:17 -0700)
committerZack Cerza <zack@redhat.com>
Fri, 24 Feb 2017 16:03:33 +0000 (09:03 -0700)
Signed-off-by: Zack Cerza <zack@redhat.com>
teuthology/provision/cloud/openstack.py
teuthology/provision/cloud/test/test_openstack.py

index 3a78d71a441c6636771b36509d20994014be5d05..b12d55b06097d07c9cf28708a094cf69ad175c19 100644 (file)
@@ -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
index d2f259580e9b288f13e5365abafa2356ff2c707e..e2a211bbdeeae5205f5679f3fb38d179712d1c11 100644 (file)
@@ -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))