pvl/backup/mount.py
changeset 69 468704db09c4
parent 33 2de09042414f
child 78 5698225aab66
--- a/pvl/backup/mount.py	Sat Feb 16 21:40:44 2013 +0200
+++ b/pvl/backup/mount.py	Sat Feb 16 21:41:42 2013 +0200
@@ -2,7 +2,7 @@
     Mount filesystems.
 """
 
-from pvl.backup.invoke import command
+from pvl.backup.invoke import invoke, optargs, command
 
 import contextlib
 import os, os.path
@@ -24,16 +24,18 @@
     UMOUNT  = '/bin/umount'
 
 
-    def __init__ (self, dev, mnt, readonly=False) :
+    def __init__ (self, dev, mnt, readonly=False, sudo=None) :
         """
             dev         - device path
             mnt         - mount path
             readonly    - mount readonly
+            sudo        - invoke sudo
         """
 
         self.dev = dev
         self.mnt = mnt
         self.readonly = readonly
+        self.sudo = sudo
 
     @property
     def path (self) :
@@ -66,7 +68,7 @@
             raise MountError("Device does not exist: {dev}".format(dev=self.dev))
 
         # mount
-        command(self.MOUNT, self.dev, self.mnt, options=self.options())
+        invoke(self.MOUNT, optargs(self.dev, self.mnt, options=self.options()), sudo=self.sudo)
 
     def close (self) :
         """
@@ -78,7 +80,7 @@
             raise MountError("Mountpoint is not mounted: {mnt}".format(mnt=self.mnt))
 
         # umount
-        command(self.UMOUNT, self.mnt)
+        invoke(self.UMOUNT, optargs(self.mnt), sudo=self.sudo)
 
     def __repr__ (self) :
         return "Mount(dev={dev}, mnt={mnt})".format(