Ejemplo n.º 1
0
 def test_get_devices_empty(self):
     """
     If osd-devices is set to an empty string, get_devices() returns
     an empty list.
     """
     self.test_config.set("osd-devices", "")
     self.assertEqual([], hooks.get_devices())
 def test_get_devices(self, mock_config, mock_storage_list):
     '''Devices returned as expected'''
     config = {'osd-devices': '/dev/vda /dev/vdb'}
     mock_config.side_effect = lambda key: config[key]
     mock_storage_list.return_value = []
     devices = ceph_hooks.get_devices()
     self.assertEqual(devices, ['/dev/vda', '/dev/vdb'])
Ejemplo n.º 3
0
 def test_get_devices_non_existing_files(self):
     """
     If osd-devices points to a file that doesn't exist, it's still
     returned by get_devices().
     """
     non_existing = os.path.join(self.tmp_dir, "no-such-file")
     self.test_config.set("osd-devices", non_existing)
     self.assertEqual([non_existing], hooks.get_devices())
Ejemplo n.º 4
0
 def test_get_devices_extra_spaces(self):
     """
     Multiple spaces do not result in additional devices.
     """
     device1 = os.path.join(self.tmp_dir, "device1")
     device2 = os.path.join(self.tmp_dir, "device2")
     self.test_config.set("osd-devices", "{}  {}".format(device1, device2))
     self.assertEqual([device1, device2], hooks.get_devices())
Ejemplo n.º 5
0
 def test_get_devices_extra_spaces(self):
     """
     Multiple spaces do not result in additional devices.
     """
     device1 = os.path.join(self.tmp_dir, "device1")
     device2 = os.path.join(self.tmp_dir, "device2")
     self.test_config.set("osd-devices", "{}  {}".format(device1, device2))
     self.assertEqual([device1, device2], hooks.get_devices())
Ejemplo n.º 6
0
 def test_get_devices_multiple(self):
     """
     Multiple devices can be specified in osd-devices by separating
     them with spaces.
     """
     device1 = os.path.join(self.tmp_dir, "device1")
     device2 = os.path.join(self.tmp_dir, "device2")
     self.test_config.set("osd-devices", "{} {}".format(device1, device2))
     self.assertEqual([device1, device2], hooks.get_devices())
Ejemplo n.º 7
0
 def test_get_devices_non_absolute_path(self):
     """
     Charm does not allow relative paths as this may result in a path
     on the root device/within the charm directory.
     """
     device1 = os.path.join(self.tmp_dir, "device1")
     device2 = "foo"
     self.test_config.set("osd-devices", "{} {}".format(device1, device2))
     self.assertEqual([device1], hooks.get_devices())
Ejemplo n.º 8
0
 def test_get_devices_non_absolute_path(self):
     """
     Charm does not allow relative paths as this may result in a path
     on the root device/within the charm directory.
     """
     device1 = os.path.join(self.tmp_dir, "device1")
     device2 = "foo"
     self.test_config.set("osd-devices", "{} {}".format(device1, device2))
     self.assertEqual([device1], hooks.get_devices())
Ejemplo n.º 9
0
 def test_get_devices(self, mock_config, mock_storage_list,
                      mock_is_block_device):
     '''Devices returned as expected'''
     config = {'osd-devices': '/dev/vda /dev/vdb'}
     mock_config.side_effect = lambda key: config[key]
     mock_storage_list.return_value = []
     mock_is_block_device.return_value = True
     devices = ceph_hooks.get_devices()
     self.assertEqual(devices, ['/dev/vda', '/dev/vdb'])
Ejemplo n.º 10
0
 def test_get_devices_symlink(self):
     """
     If a symlink is specified in osd-devices, get_devices() resolves
     it and returns the link target.
     """
     device = os.path.join(self.tmp_dir, "device")
     link = os.path.join(self.tmp_dir, "link")
     os.symlink(device, link)
     self.test_config.set("osd-devices", link)
     self.assertEqual([device], hooks.get_devices())
Ejemplo n.º 11
0
 def test_get_devices_symlink(self):
     """
     If a symlink is specified in osd-devices, get_devices() does not
     resolve it and returns the symlink provided.
     """
     device = os.path.join(self.tmp_dir, "device")
     link = os.path.join(self.tmp_dir, "link")
     os.symlink(device, link)
     self.test_config.set("osd-devices", link)
     self.assertEqual([link], hooks.get_devices())
Ejemplo n.º 12
0
 def test_get_devices_symlink(self):
     """
     If a symlink is specified in osd-devices, get_devices() does not
     resolve it and returns the symlink provided.
     """
     device = os.path.join(self.tmp_dir, "device")
     link = os.path.join(self.tmp_dir, "link")
     os.symlink(device, link)
     self.test_config.set("osd-devices", link)
     self.assertEqual([link], hooks.get_devices())
 def test_get_devices_blacklist(self, mock_config, mock_storage_list,
                                mock_get_blacklist):
     '''Devices returned as expected when blacklist in effect'''
     config = {'osd-devices': '/dev/vda /dev/vdb'}
     mock_config.side_effect = lambda key: config[key]
     mock_storage_list.return_value = []
     mock_get_blacklist.return_value = ['/dev/vda']
     devices = ceph_hooks.get_devices()
     mock_storage_list.assert_called()
     mock_get_blacklist.assert_called()
     self.assertEqual(devices, ['/dev/vdb'])