summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@yahoo-inc.com>2012-06-11 17:09:10 -0700
committerJoshua Harlow <harlowja@yahoo-inc.com>2012-06-11 17:09:10 -0700
commit747d59838fbaed299c5555984895affc9fc7f012 (patch)
tree6ee510e6096cc5cc4d275b256bdfb8d6098b217d /cloudinit
parentac1ccf5183fa7412247d3161e99da93c32f56ff2 (diff)
downloadvyos-cloud-init-747d59838fbaed299c5555984895affc9fc7f012.tar.gz
vyos-cloud-init-747d59838fbaed299c5555984895affc9fc7f012.zip
Not needed, this functionality can go in utils.
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/mounting.py73
1 files changed, 0 insertions, 73 deletions
diff --git a/cloudinit/mounting.py b/cloudinit/mounting.py
deleted file mode 100644
index b78cb5bd..00000000
--- a/cloudinit/mounting.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# vi: ts=4 expandtab
-#
-# Copyright (C) 2012 Canonical Ltd.
-# Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
-# Copyright (C) 2012 Yahoo! Inc.
-#
-# Author: Scott Moser <scott.moser@canonical.com>
-# Author: Juerg Haefliger <juerg.haefliger@hp.com>
-# Author: Joshua Harlow <harlowja@yahoo-inc.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 3, as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import contextlib
-
-from cloudinit import util
-
-
-class MountFailedError(Exception):
- pass
-
-
-@contextlib.contextmanager
-def unmounter(umount):
- try:
- yield umount
- finally:
- if umount:
- sh.subp(["umount", '-l', umount])
-
-
-def mount_callback_umount(device, callback, data=None):
- """
- mount the device, call method 'callback' passing the directory
- in which it was mounted, then unmount. Return whatever 'callback'
- returned. If data != None, also pass data to callback.
- """
-
- # go through mounts to see if it was already mounted
- mounts = sh.load_file("/proc/mounts").splitlines()
- mounted = {}
- for mpline in mounts:
- (dev, mp, fstype, _opts, _freq, _passno) = mpline.split()
- mp = mp.replace("\\040", " ")
- mounted[dev] = (dev, fstype, mp, False)
-
- with util.tempdir() as tmpd:
- umount = False
- if device in mounted:
- mountpoint = "%s/" % mounted[device][2]
- else:
- try:
- mountcmd = ["mount", "-o", "ro", device, tmpd]
- util.subp(mountcmd)
- umount = tmpd
- except IOError as exc:
- raise MountFailedError("%s" % (exc))
- mountpoint = "%s/" % tmpd
- with unmounter(umount):
- if data is None:
- ret = callback(mountpoint)
- else:
- ret = callback(mountpoint, data)
- return ret