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):
Exemple #5
0
def convert_nova_flavor(nova_flavor, known_flavors):
    return sb.FlavorInput(nova_flavor.id, known_flavors.get(nova_flavor.id))
Exemple #6
0
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)
]