def test_find_flavor_differences_new_flavors(self): flavors_with_new = copy.deepcopy(TEST_FLAVORS) flavors_with_new.append(sb.FlavorInput('GraphicalCompute', lambda node: True)) self.assertEqual({'new': set(['GraphicalCompute']), 'retired': set()}, sb.find_flavor_differences(TEST_FLAVORS, flavors_with_new)) flavors_with_new.append(sb.FlavorInput("BitcoinMiner", lambda node: False)) self.assertEqual({'new': set(["GraphicalCompute", "BitcoinMiner"]), 'retired': set()}, sb.find_flavor_differences(TEST_FLAVORS, flavors_with_new))
def test_find_flavor_differences_all_diffs(self): flavors_with_all_diffs = copy.deepcopy(TEST_FLAVORS) flavors_with_all_diffs.pop(0) flavors_with_all_diffs.append(sb.FlavorInput('GraphicalCompute', lambda node: True)) self.assertEqual({'new': set(['GraphicalCompute']), 'retired': set(['IO'])}, sb.find_flavor_differences(TEST_FLAVORS, flavors_with_all_diffs))
def test_retrieve_flavor_data_only_returns_onmetal(self, wrapper_call_mock): wrapper_call_mock.return_value = TEST_NOVA_FLAVOR_DATA result = self.scout.retrieve_flavor_data() expected_flavors = ('onmetal-compute1', 'onmetal-io1', 'onmetal-gpu1', 'onmetal-memory1') # NOTE(ClifHouck): This also implicitly tests retrieve_flavor_data's # behavior to add unknown flavors to onmetal_scout.KNOWN_FLAVORS. expected_result = [ strat_base.FlavorInput(f, onmetal.KNOWN_FLAVORS.get(f)) for f in expected_flavors ] self.assertItemsEqual([e.name for e in expected_result], [r.name for r in result], "retrieve_flavor_data did not properly filter " "for onmetal flavors!")
import mock from oslo_config import cfg import six from arsenal.strategy import base as sb from arsenal.tests.unit import base as test_base CONF = cfg.CONF def name_starts_with(node, letter): return node.node_uuid[0] == letter TEST_FLAVORS = [ sb.FlavorInput("IO", lambda node: name_starts_with(node, 'I')), sb.FlavorInput("Compute", lambda node: name_starts_with(node, 'C')), sb.FlavorInput("Memory", lambda node: name_starts_with(node, 'M')), ] TEST_IMAGES = [ sb.ImageInput("Ubuntu", "aaaa", "abcd"), sb.ImageInput("CentOS", "bbbb", "efgh"), sb.ImageInput("CoreOS", "cccc", "ijkl"), sb.ImageInput("Redhat", "dddd", "mnop"), sb.ImageInput("Windows", "eeee", "qrst") ] class TestStrategyBase(test_base.TestCase):
def convert_nova_flavor(nova_flavor, known_flavors): return sb.FlavorInput(nova_flavor.id, known_flavors.get(nova_flavor.id))
def strat_directive_mock(): return [ sb.CacheNode('node-a', 'image-a', 'checksum-a'), sb.CacheNode('node-b', 'image-b', 'checksum-b'), sb.CacheNode('node-c', 'image-c', 'checksum-c'), sb.CacheNode('node-d', 'image-d', 'checksum-d'), sb.CacheNode('node-e', 'image-e', 'checksum-e'), sb.EjectNode('node-f'), sb.EjectNode('node-g'), sb.EjectNode('node-h'), sb.EjectNode('node-i'), sb.EjectNode('node-J'), ] FAKE_FLAVOR_DATA = [ sb.FlavorInput('io-flavor', lambda n: True), sb.FlavorInput('memory-flavor', lambda n: True), sb.FlavorInput('cpu-flavor', lambda n: True) ] FAKE_IMAGE_DATA = [ sb.ImageInput('Ubuntu', 'aaaa', 'ubuntu-checksum'), sb.ImageInput('CoreOS', 'aaaa', 'coreos-checksum'), sb.ImageInput('ArchLinux', 'aaaa', 'archlinux-checksum') ] FAKE_NODE_DATA = [ sb.NodeInput('abcd', 'io-flavor', False, False), sb.NodeInput('hjkl', 'memory-flavor', False, False), sb.NodeInput('asdf', 'compute-flavor', False, False) ]