summaryrefslogtreecommitdiff
path: root/raidguessfs.py
diff options
context:
space:
mode:
Diffstat (limited to 'raidguessfs.py')
-rwxr-xr-xraidguessfs.py46
1 files changed, 20 insertions, 26 deletions
diff --git a/raidguessfs.py b/raidguessfs.py
index bd256bf..5e8433a 100755
--- a/raidguessfs.py
+++ b/raidguessfs.py
@@ -144,8 +144,7 @@ class RaidGuessFS(fuse.Fuse):
def update_disk_count(self,arg):
i = self._aton(arg)
- self.d.set_disk_count(i)
- self.d.open_disks()
+ self.d.open_disks(getattr(self.parser.values,'source_path'), i)
self._refresh_disk_dentries()
self.raid.set_raid_end(min(self.d.disks_size)-1)
self.update_raid_disk_order(range(i))
@@ -240,8 +239,7 @@ class RaidGuessFS(fuse.Fuse):
'/raid/%s'%s: self.st.make_fake_file(0) for s in ['disk_parity', 'disk_xor', 'raid_result']
})
- self.d.set_disks_path([getattr(self.parser.values,'disk%02d'%d) for d in range(self.d.max_disks)])
- self.update_disk_count(len(self.d.disk_paths))
+ self.update_disk_count(getattr(self.parser.values,'disk_count'))
self._refresh_disk_dentries()
self._refresh_raid_fattr()
@@ -364,28 +362,24 @@ RaidGuessFS is a pseudo-filesystem that allows to guess parameters and disk orde
fuse.fuse_python_api = (0, 2)
LOG_FILENAME = "/tmp/raidguessfs.log"
- #logging.basicConfig(filename=LOG_FILENAME,level=logging.WARN,)
- #logging.basicConfig(filename=LOG_FILENAME,level=logging.INFO,)
- logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG,)
-
- server = RaidGuessFS(version="%prog " + fuse.__version__,usage=usage,dash_s_do='setsingle')
- server.multithreaded = False
-
- cwd = os.getcwd()
- # TODO : only 2 parameters, but taking a parametrized string
- for num in range(server.d.max_disks):
- server.parser.add_option(
- mountopt="disk%02d"%num,
- metavar="ABS_PATH",
- default="%s/disk%02d.img"%(cwd,num),
- help="Disk #%d image file path [default: ./disk%02d.img]"%(num,num)
- )
- server.parser.add_option(
- mountopt="logf%02d"%num,
- metavar="ABS_PATH",
- default="%s/disk%02d.log"%(cwd,num),
- help="Disk #%d ddrescue log file [default: ./disk%02d.log]"%(num,num)
- )
+ logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG) # WARN, INFO...
+
+ server = RaidGuessFS(version="%prog " + fuse.__version__, usage=usage, dash_s_do='setsingle')
+ server.multithreaded = False # Many part of the code is not re-entrant
+
+ server.parser.add_option(
+ mountopt="source_path",
+ metavar="PATH",
+ default="%s"%os.getcwd(),
+ help="Absolute path that contains source disks images (defaults to current dir)"
+ )
+
+ server.parser.add_option(
+ mountopt="disk_count",
+ metavar="N",
+ default="3",
+ help="Number of disks to try to open at mount time (also tunable at runtime)"
+ )
server.parse(errex=1)
server.main()