Merge "Fix logger issue in move_files_to_their_places function"

This commit is contained in:
Jenkins 2016-07-12 13:55:10 +00:00 committed by Gerrit Code Review
commit 9814ac8d13
5 changed files with 31 additions and 15 deletions

View File

@ -71,6 +71,10 @@ class LVNotFoundError(BaseError):
pass
class WrongFSMount(BaseError):
pass
class MDAlreadyExistsError(BaseError):
pass

View File

@ -507,16 +507,19 @@ class Manager(object):
mount_map = self.mount_target_flat()
for fs_mount in sorted(mount_map):
head, tail = os.path.split(fs_mount)
LOG.debug('Trying to move files for %s file system', fs_mount)
while head != fs_mount:
LOG.debug('Trying to move files for %s file system', fs_mount)
LOG.debug('Checking whether %s is a separate mount point or '
'not', head)
if head in mount_map:
LOG.debug('File system %s is mounted into %s',
head, mount_map[head])
check_path = os.path.join(mount_map[head], tail)
LOG.debug('Trying to check if path %s exists', check_path)
if os.path.exists(check_path):
LOG.debug('Path %s exists. Trying to sync all files '
'from there to %s', mount_map[fs_mount])
LOG.debug('Path exists. Trying to sync all files '
'from %s to %s', check_path,
mount_map[fs_mount])
src_path = check_path + '/'
utils.execute('rsync', '-avH', src_path,
mount_map[fs_mount])
@ -548,6 +551,7 @@ class Manager(object):
fs_mount = fs.mount.encode('ascii', 'ignore')
except NameError:
fs_mount = fs.mount
fs_mount = os.path.normpath(fs_mount)
mount_map[fs_mount] = fu.mount_fs_temp(fs.type, str(fs.device))
LOG.debug('Flat mount map: %s', mount_map)
return mount_map

View File

@ -60,6 +60,9 @@ class PartitionScheme(object):
def add_fs(self, **kwargs):
fs = FileSystem(**kwargs)
if not os.path.isabs(fs.mount) and fs.mount != 'swap':
raise errors.WrongFSMount(
'Incorrect mount point %s' % fs.mount)
self.fss.append(fs)
return fs

View File

@ -912,7 +912,7 @@ none /run/shm tmpfs rw,nosuid,nodev 0 0"""
self.mgr.driver.partition_scheme.add_fs(
device='/dev/fake1', mount='/', fs_type='ext4')
self.mgr.driver.partition_scheme.add_fs(
device='/dev/fake2', mount='/var/lib', fs_type='ext4')
device='/dev/fake2', mount='/var/lib/', fs_type='ext4')
self.assertEqual({'/': '/tmp/dir1', '/var/lib': '/tmp/dir2'},
self.mgr.mount_target_flat())
self.assertEqual([mock.call('ext4', '/dev/fake1'),

View File

@ -123,13 +123,18 @@ class TestPartitionScheme(unittest2.TestCase):
self.assertEqual(expected_fs, actual_fs)
def test_fs_by_mount(self):
expected_fs = objects.FileSystem('d', mount='mount')
expected_fs = objects.FileSystem('d', mount='/mount')
self.p_scheme.fss.append(expected_fs)
self.p_scheme.fss.append(objects.FileSystem('w_d',
mount='wrong_mount'))
actual_fs = self.p_scheme.fs_by_mount('mount')
mount='/wrong_mount'))
actual_fs = self.p_scheme.fs_by_mount('/mount')
self.assertEqual(expected_fs, actual_fs)
def test_fs_malformed_mount(self):
self.assertRaises(errors.WrongFSMount, self.p_scheme.add_fs,
device='device', mount='fake_mount',
fs_type='xfs', fs_label='fake_label')
def test_pv_by_name(self):
expected_pv = objects.PhysicalVolume('pv')
self.p_scheme.pvs.append(expected_pv)
@ -184,21 +189,21 @@ class TestPartitionScheme(unittest2.TestCase):
self.assertEqual(0, len(self.p_scheme.mds))
self.assertEqual(0, len(self.p_scheme.fss))
expected_md = objects.MultipleDevice('name', 'level')
expected_fs = objects.FileSystem('name', mount='mount')
expected_fs = objects.FileSystem('name', mount='/mount')
self.p_scheme.mds.append(expected_md)
self.p_scheme.fss.append(expected_fs)
self.p_scheme.fss.append(objects.FileSystem('wrong_name',
mount='wrong_mount'))
self.assertEqual(expected_md, self.p_scheme.md_by_mount('mount'))
mount='/wrong_mount'))
self.assertEqual(expected_md, self.p_scheme.md_by_mount('/mount'))
def test_md_attach_by_mount_md_exists(self):
self.assertEqual(0, len(self.p_scheme.mds))
self.assertEqual(0, len(self.p_scheme.fss))
expected_md = objects.MultipleDevice('name', 'level')
expected_fs = objects.FileSystem('name', mount='mount')
expected_fs = objects.FileSystem('name', mount='/mount')
self.p_scheme.mds.append(expected_md)
self.p_scheme.fss.append(expected_fs)
actual_md = self.p_scheme.md_attach_by_mount('device', 'mount')
actual_md = self.p_scheme.md_attach_by_mount('device', '/mount')
self.assertIn('device', actual_md.devices)
self.assertEqual(expected_md, actual_md)
@ -206,12 +211,12 @@ class TestPartitionScheme(unittest2.TestCase):
self.assertEqual(0, len(self.p_scheme.mds))
self.assertEqual(0, len(self.p_scheme.fss))
actual_md = self.p_scheme.md_attach_by_mount(
'device', 'mount', fs_type='fs_type', fs_options='-F',
'device', '/mount', fs_type='fs_type', fs_options='-F',
fs_label='fs_label', name='name', level='level')
self.assertIn('device', actual_md.devices)
self.assertEqual(1, len(self.p_scheme.fss))
self.assertEqual('name', self.p_scheme.fss[0].device)
self.assertEqual('mount', self.p_scheme.fss[0].mount)
self.assertEqual('/mount', self.p_scheme.fss[0].mount)
self.assertEqual('fs_type', self.p_scheme.fss[0].type)
self.assertEqual('fs_label', self.p_scheme.fss[0].label)
self.assertEqual('-F', self.p_scheme.fss[0].options)
@ -229,7 +234,7 @@ class TestPartitionScheme(unittest2.TestCase):
self.p_scheme.add_lv(name='fake_lv', vgname=vg.name, size=1)
lv = self.p_scheme.lvs[0]
self.p_scheme.add_fs(device=lv.device_name, mount='fake_mount',
self.p_scheme.add_fs(device=lv.device_name, mount='/fake/mount',
fs_type='xfs', fs_label='fake_label')
fs = self.p_scheme.fss[0]