summaryrefslogtreecommitdiff
path: root/obnamlib/plugins/fuse_plugin.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2015-08-29 11:05:14 +0300
committerLars Wirzenius <liw@liw.fi>2015-08-29 11:05:14 +0300
commit76e7657983b8a1c66bf7082c1abd651f4dc3b23d (patch)
tree663a1e04226853d52b687eb4ce4b19f4b1d2cf50 /obnamlib/plugins/fuse_plugin.py
parentf61773add4c34fd3e9186eee5ca55f729ee11bb1 (diff)
downloadobnam-76e7657983b8a1c66bf7082c1abd651f4dc3b23d.tar.gz
Avoid self-modifying code in FUSE plugin
The old code was correct, but confused pylint. The new code is clearer for everyone, I think, and should be equivalent.
Diffstat (limited to 'obnamlib/plugins/fuse_plugin.py')
-rw-r--r--obnamlib/plugins/fuse_plugin.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/obnamlib/plugins/fuse_plugin.py b/obnamlib/plugins/fuse_plugin.py
index 4fd196e3..0b9a78ee 100644
--- a/obnamlib/plugins/fuse_plugin.py
+++ b/obnamlib/plugins/fuse_plugin.py
@@ -98,9 +98,8 @@ class ObnamFuseFile(object):
if flags & self.write_flags:
raise IOError(errno.EROFS, 'Read only filesystem')
- if path == '/.pid':
- self.read = self.read_pid
- self.release = self.release_pid
+ self.reading_pid = path == '/.pid'
+ if self.reading_pid:
return
try:
@@ -113,6 +112,18 @@ class ObnamFuseFile(object):
if not stat.S_ISREG(self.metadata.st_mode):
raise IOError(errno.EINVAL, 'Invalid argument')
+ def read(self, length, offset):
+ if self.reading_pid:
+ return self.read_pid(length, offset)
+ else:
+ return self.read_data(length, offset)
+
+ def release(self, flags):
+ if self.reading_pid:
+ return self.release_pid(flags)
+ else:
+ return self.release_data(flags)
+
def read_pid(self, length, offset):
tracing.trace('length=%r', length)
tracing.trace('offset=%r', offset)
@@ -130,7 +141,7 @@ class ObnamFuseFile(object):
tracing.trace('called')
return self.fuse_fs.getattr(self.path)
- def read(self, length, offset):
+ def read_data(self, length, offset):
tracing.trace('self.path=%r', self.path)
tracing.trace('length=%r', length)
tracing.trace('offset=%r', offset)
@@ -185,7 +196,7 @@ class ObnamFuseFile(object):
return ''.join(output)
- def release(self, flags):
+ def release_data(self, flags):
tracing.trace('flags=%r', flags)
return 0