Exemplo n.º 1
0
    def test_device_list_not_found(self):
        action = baremetal.ConfigureRootDeviceAction(node_uuid='MOCK_UUID',
                                                     root_device='hda')

        self.assertRaisesRegex(exception.RootDeviceDetectionError,
                               "Cannot find a disk", action.run, self.context)
        self.assertEqual(self.ironic.node.update.call_count, 0)
Exemplo n.º 2
0
    def test_no_overwrite(self):
        self.node.properties['root_device'] = {'foo': 'bar'}

        action = baremetal.ConfigureRootDeviceAction(node_uuid='MOCK_UUID',
                                                     root_device='smallest')
        action.run(self.context)

        self.assertEqual(self.ironic.node.update.call_count, 0)
Exemplo n.º 3
0
    def test_bad_inventory(self):
        self.inspector.get_data.return_value = {}

        action = baremetal.ConfigureRootDeviceAction(node_uuid='MOCK_UUID',
                                                     root_device='smallest')
        self.assertRaisesRegex(exception.RootDeviceDetectionError,
                               "Malformed introspection data", action.run,
                               self.context)

        self.assertEqual(self.ironic.node.update.call_count, 0)
Exemplo n.º 4
0
    def test_no_data(self):
        self.inspector.get_data.side_effect = (
            ironic_inspector_client.ClientError(mock.Mock()))

        action = baremetal.ConfigureRootDeviceAction(node_uuid='MOCK_UUID',
                                                     root_device='smallest')
        self.assertRaisesRegex(exception.RootDeviceDetectionError,
                               "No introspection data", action.run,
                               self.context)

        self.assertEqual(self.ironic.node.update.call_count, 0)
Exemplo n.º 5
0
    def test_no_disks(self):
        self.inspector.get_data.return_value = {
            'inventory': {
                'disks': [{
                    'name': '/dev/sda',
                    'size': 1 * units.Gi
                }]
            }
        }

        action = baremetal.ConfigureRootDeviceAction(node_uuid='MOCK_UUID',
                                                     root_device='smallest')
        self.assertRaisesRegex(exception.RootDeviceDetectionError,
                               "No suitable disks", action.run, self.context)

        self.assertEqual(self.ironic.node.update.call_count, 0)
Exemplo n.º 6
0
    def test_device_list(self):
        action = baremetal.ConfigureRootDeviceAction(
            node_uuid='MOCK_UUID', root_device='hda,sda,sdb,sdc')
        action.run(self.context)

        self.assertEqual(self.ironic.node.update.call_count, 1)
        root_device_args = self.ironic.node.update.call_args_list[0]
        expected_patch = [{
            'op': 'add',
            'path': '/properties/root_device',
            'value': {
                'wwn': 'wwn0'
            }
        }, {
            'op': 'add',
            'path': '/properties/local_gb',
            'value': 10
        }]
        self.assertEqual(mock.call('ABCDEFGH', expected_patch),
                         root_device_args)
Exemplo n.º 7
0
    def test_largest_with_ext(self):
        self.disks[3]['wwn_with_extension'] = 'wwnext'
        action = baremetal.ConfigureRootDeviceAction(node_uuid='MOCK_UUID',
                                                     root_device='largest')
        action.run(self.context)

        self.assertEqual(self.ironic.node.update.call_count, 1)
        root_device_args = self.ironic.node.update.call_args_list[0]
        expected_patch = [{
            'op': 'add',
            'path': '/properties/root_device',
            'value': {
                'wwn_with_extension': 'wwnext'
            }
        }, {
            'op': 'add',
            'path': '/properties/local_gb',
            'value': 20
        }]
        self.assertEqual(mock.call('ABCDEFGH', expected_patch),
                         root_device_args)
Exemplo n.º 8
0
    def test_with_overwrite(self):
        self.node.properties['root_device'] = {'foo': 'bar'}

        action = baremetal.ConfigureRootDeviceAction(node_uuid='MOCK_UUID',
                                                     root_device='smallest',
                                                     overwrite=True)
        action.run(self.context)

        self.assertEqual(self.ironic.node.update.call_count, 1)
        root_device_args = self.ironic.node.update.call_args_list[0]
        expected_patch = [{
            'op': 'add',
            'path': '/properties/root_device',
            'value': {
                'wwn': 'wwn2'
            }
        }, {
            'op': 'add',
            'path': '/properties/local_gb',
            'value': 4
        }]
        self.assertEqual(mock.call('ABCDEFGH', expected_patch),
                         root_device_args)