Chown doesn't work on mounted vfat.

As reported by a user. Resolves bug 1092560.

Change-Id: I44c847d5e7f3242ca46a7436bcbc6e519baa88fc
This commit is contained in:
Michael Still
2013-01-13 17:36:10 +11:00
parent 48f30a663f
commit 60b38f1c82
2 changed files with 5 additions and 11 deletions

View File

@@ -67,11 +67,9 @@ class ConfigDriveTestCase(test.TestCase):
utils.mkfs('vfat', mox.IgnoreArg(),
label='config-2').AndReturn(None)
utils.trycmd('mount', '-o', 'loop', mox.IgnoreArg(),
utils.trycmd('mount', '-o', mox.IgnoreArg(), mox.IgnoreArg(),
mox.IgnoreArg(),
run_as_root=True).AndReturn((None, None))
utils.trycmd('chown', mox.IgnoreArg(), mox.IgnoreArg(),
run_as_root=True).AndReturn((None, None))
utils.execute('umount', mox.IgnoreArg(),
run_as_root=True).AndReturn(None)

View File

@@ -129,20 +129,16 @@ class _ConfigDriveBuilder(object):
try:
mountdir = tempfile.mkdtemp(dir=CONF.config_drive_tempdir,
prefix='cd_mnt_')
_out, err = utils.trycmd('mount', '-o', 'loop', path, mountdir,
_out, err = utils.trycmd('mount', '-o',
'loop,uid=%d,gid=%d' % (os.getuid(),
os.getgid()),
path, mountdir,
run_as_root=True)
if err:
raise exception.ConfigDriveMountFailed(operation='mount',
error=err)
mounted = True
_out, err = utils.trycmd('chown',
'%s.%s' % (os.getuid(), os.getgid()),
mountdir, run_as_root=True)
if err:
raise exception.ConfigDriveMountFailed(operation='chown',
error=err)
# NOTE(mikal): I can't just use shutils.copytree here, because the
# destination directory already exists. This is annoying.
for ent in os.listdir(self.tempdir):