def test_list_all_block_devices_wrong_block_type(self, mocked_execute):
     mocked_execute.return_value = ('TYPE="foo" MODEL="model"', '')
     result = hardware.list_all_block_devices()
     mocked_execute.assert_called_once_with(
         'lsblk', '-Pbdi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
         check_exit_code=[0])
     self.assertEqual([], result)
 def test_list_all_block_devices_wrong_block_type(self, mocked_execute):
     mocked_execute.return_value = ('TYPE="foo" MODEL="model"', '')
     result = hardware.list_all_block_devices()
     mocked_execute.assert_called_once_with(
         'lsblk', '-Pbdi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
         check_exit_code=[0])
     self.assertEqual([], result)
 def test_list_all_block_device_udev_17(self, mocked_execute, mocked_udev,
                                        mocked_dev_vendor):
     # test compatibility with pyudev < 0.18
     mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
     mocked_udev.side_effect = OSError()
     mocked_dev_vendor.return_value = 'Super Vendor'
     devices = hardware.list_all_block_devices()
     self.assertEqual(4, len(devices))
 def test_list_all_block_device_udev_17(self, mocked_execute, mocked_udev,
                                        mocked_dev_vendor):
     # test compatibility with pyudev < 0.18
     mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
     mocked_udev.side_effect = OSError()
     mocked_dev_vendor.return_value = 'Super Vendor'
     devices = hardware.list_all_block_devices()
     self.assertEqual(4, len(devices))
    def test_list_all_block_device_with_udev(self, mocked_execute, mocked_udev,
                                             mocked_dev_vendor):
        mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
        mocked_udev.side_effect = iter([
            {'ID_WWN': 'wwn%d' % i, 'ID_SERIAL_SHORT': 'serial%d' % i,
             'ID_WWN_WITH_EXTENSION': 'wwn-ext%d' % i,
             'ID_WWN_VENDOR_EXTENSION': 'wwn-vendor-ext%d' % i}
            for i in range(4)
        ])
        mocked_dev_vendor.return_value = 'Super Vendor'
        devices = hardware.list_all_block_devices()
        expected_devices = [
            hardware.BlockDevice(name='/dev/sda',
                                 model='TinyUSB Drive',
                                 size=3116853504,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn0',
                                 wwn_with_extension='wwn-ext0',
                                 wwn_vendor_extension='wwn-vendor-ext0',
                                 serial='serial0'),
            hardware.BlockDevice(name='/dev/sdb',
                                 model='Fastable SD131 7',
                                 size=10737418240,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn1',
                                 wwn_with_extension='wwn-ext1',
                                 wwn_vendor_extension='wwn-vendor-ext1',
                                 serial='serial1'),
            hardware.BlockDevice(name='/dev/sdc',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn2',
                                 wwn_with_extension='wwn-ext2',
                                 wwn_vendor_extension='wwn-vendor-ext2',
                                 serial='serial2'),
            hardware.BlockDevice(name='/dev/sdd',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn3',
                                 wwn_with_extension='wwn-ext3',
                                 wwn_vendor_extension='wwn-vendor-ext3',
                                 serial='serial3')
        ]

        self.assertEqual(4, len(expected_devices))
        for expected, device in zip(expected_devices, devices):
            # Compare all attrs of the objects
            for attr in ['name', 'model', 'size', 'rotational',
                         'wwn', 'vendor', 'serial', 'wwn_with_extension',
                         'wwn_vendor_extension']:
                self.assertEqual(getattr(expected, attr),
                                 getattr(device, attr))
    def test_list_all_block_device_with_udev(self, mocked_execute, mocked_udev,
                                             mocked_dev_vendor):
        mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
        mocked_udev.side_effect = iter([
            {'ID_WWN': 'wwn%d' % i, 'ID_SERIAL_SHORT': 'serial%d' % i,
             'ID_WWN_WITH_EXTENSION': 'wwn-ext%d' % i,
             'ID_WWN_VENDOR_EXTENSION': 'wwn-vendor-ext%d' % i}
            for i in range(4)
        ])
        mocked_dev_vendor.return_value = 'Super Vendor'
        devices = hardware.list_all_block_devices()
        expected_devices = [
            hardware.BlockDevice(name='/dev/sda',
                                 model='TinyUSB Drive',
                                 size=3116853504,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn0',
                                 wwn_with_extension='wwn-ext0',
                                 wwn_vendor_extension='wwn-vendor-ext0',
                                 serial='serial0'),
            hardware.BlockDevice(name='/dev/sdb',
                                 model='Fastable SD131 7',
                                 size=10737418240,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn1',
                                 wwn_with_extension='wwn-ext1',
                                 wwn_vendor_extension='wwn-vendor-ext1',
                                 serial='serial1'),
            hardware.BlockDevice(name='/dev/sdc',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn2',
                                 wwn_with_extension='wwn-ext2',
                                 wwn_vendor_extension='wwn-vendor-ext2',
                                 serial='serial2'),
            hardware.BlockDevice(name='/dev/sdd',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor',
                                 wwn='wwn3',
                                 wwn_with_extension='wwn-ext3',
                                 wwn_vendor_extension='wwn-vendor-ext3',
                                 serial='serial3')
        ]

        self.assertEqual(4, len(expected_devices))
        for expected, device in zip(expected_devices, devices):
            # Compare all attrs of the objects
            for attr in ['name', 'model', 'size', 'rotational',
                         'wwn', 'vendor', 'serial', 'wwn_with_extension',
                         'wwn_vendor_extension']:
                self.assertEqual(getattr(expected, attr),
                                 getattr(device, attr))
 def test_list_all_block_devices_success(self, mocked_execute,
                                         mocked_fromdevfile):
     mocked_fromdevfile.return_value = {}
     mocked_execute.return_value = (BLK_DEVICE_TEMPLATE_SMALL, '')
     result = hardware.list_all_block_devices()
     mocked_execute.assert_called_once_with(
         'lsblk', '-Pbdi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
         check_exit_code=[0])
     self.assertEqual(BLK_DEVICE_TEMPLATE_SMALL_DEVICES, result)
 def test_list_all_block_devices_success(self, mocked_execute,
                                         mocked_fromdevfile):
     mocked_fromdevfile.return_value = {}
     mocked_execute.return_value = (BLK_DEVICE_TEMPLATE_SMALL, '')
     result = hardware.list_all_block_devices()
     mocked_execute.assert_called_once_with(
         'lsblk', '-Pbdi', '-oKNAME,MODEL,SIZE,ROTA,TYPE',
         check_exit_code=[0])
     self.assertEqual(BLK_DEVICE_TEMPLATE_SMALL_DEVICES, result)
示例#9
0
 def list_hardware_info(self):
     """Return full hardware inventory as a serializable dict.
     This inventory is sent to Ironic on lookup and to Inspector on
     inspection.
     :return: a dictionary representing inventory
     """
     hardware_info = {}
     hardware_info['interfaces'] = self.list_network_interfaces()
     hardware_info['cpu'] = self.get_cpus()
     hardware_info['disks'] = hardware.list_all_block_devices()
     hardware_info['physical_disks'] = self.list_all_physical_disks()
     hardware_info['memory'] = self.get_memory()
     hardware_info['bmc_address'] = self.get_bmc_address()
     hardware_info['system_vendor'] = self.get_system_vendor_info()
     hardware_info['boot'] = self.get_boot_info()
     return hardware_info
    def test_list_all_block_device(self, mocked_execute, mocked_udev,
                                   mocked_dev_vendor):
        mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
        mocked_udev.side_effect = pyudev.DeviceNotFoundError()
        mocked_dev_vendor.return_value = 'Super Vendor'
        devices = hardware.list_all_block_devices()
        expected_devices = [
            hardware.BlockDevice(name='/dev/sda',
                                 model='TinyUSB Drive',
                                 size=3116853504,
                                 rotational=False,
                                 vendor='Super Vendor'),
            hardware.BlockDevice(name='/dev/sdb',
                                 model='Fastable SD131 7',
                                 size=10737418240,
                                 rotational=False,
                                 vendor='Super Vendor'),
            hardware.BlockDevice(name='/dev/sdc',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor'),
            hardware.BlockDevice(name='/dev/sdd',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor')
        ]

        self.assertEqual(4, len(devices))
        for expected, device in zip(expected_devices, devices):
            # Compare all attrs of the objects
            for attr in [
                    'name', 'model', 'size', 'rotational', 'wwn', 'vendor',
                    'serial'
            ]:
                self.assertEqual(getattr(expected, attr),
                                 getattr(device, attr))
    def test_list_all_block_device(self, mocked_execute, mocked_udev,
                                   mocked_dev_vendor):
        mocked_execute.return_value = (BLK_DEVICE_TEMPLATE, '')
        mocked_udev.side_effect = pyudev.DeviceNotFoundError()
        mocked_dev_vendor.return_value = 'Super Vendor'
        devices = hardware.list_all_block_devices()
        expected_devices = [
            hardware.BlockDevice(name='/dev/sda',
                                 model='TinyUSB Drive',
                                 size=3116853504,
                                 rotational=False,
                                 vendor='Super Vendor'),
            hardware.BlockDevice(name='/dev/sdb',
                                 model='Fastable SD131 7',
                                 size=10737418240,
                                 rotational=False,
                                 vendor='Super Vendor'),
            hardware.BlockDevice(name='/dev/sdc',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor'),
            hardware.BlockDevice(name='/dev/sdd',
                                 model='NWD-BLP4-1600',
                                 size=1765517033472,
                                 rotational=False,
                                 vendor='Super Vendor')
        ]

        self.assertEqual(4, len(devices))
        for expected, device in zip(expected_devices, devices):
            # Compare all attrs of the objects
            for attr in ['name', 'model', 'size', 'rotational',
                         'wwn', 'vendor', 'serial']:
                self.assertEqual(getattr(expected, attr),
                                 getattr(device, attr))