[ARVADOS] created: cadc05b77abddccb7dea2aac38340b7b767eee7c
Git user
git at public.curoverse.com
Thu Mar 3 16:40:59 EST 2016
at cadc05b77abddccb7dea2aac38340b7b767eee7c (commit)
commit cadc05b77abddccb7dea2aac38340b7b767eee7c
Merge: de8054d ce44686
Author: Tom Clegg <tom at curoverse.com>
Date: Tue Mar 1 02:42:19 2016 -0500
Merge branch 'master' into 8345-arvados-fuse-llfuse-0.42
commit de8054d65905f213cc573739d50dd4f401aa4f47
Author: Joshua Randall <joshua.randall at sanger.ac.uk>
Date: Wed Feb 10 12:04:25 2016 +0000
updates test_mount to use st_mtime_ns instead of st_mtime
diff --git a/services/fuse/tests/test_mount.py b/services/fuse/tests/test_mount.py
index fa48849..300e636 100644
--- a/services/fuse/tests/test_mount.py
+++ b/services/fuse/tests/test_mount.py
@@ -240,14 +240,14 @@ class FuseSharedTest(MountTestBase):
# check mtime on template
st = os.stat(pipeline_template_path)
- self.assertEqual(st.st_mtime, 1397493304)
+ self.assertEqual(st.st_mtime_ns, 1397493304)
# check mtime on collection
st = os.stat(os.path.join(
self.mounttmp,
'FUSE User',
'collection #1 owned by FUSE'))
- self.assertEqual(st.st_mtime, 1391448174)
+ self.assertEqual(st.st_mtime_ns, 1391448174)
class FuseHomeTest(MountTestBase):
commit 0e1993d1d429133e181f385ef388b7ebc97c684b
Author: Joshua Randall <joshua.randall at sanger.ac.uk>
Date: Tue Feb 9 21:41:40 2016 +0000
updates setattr for llfuse-python 0.42
diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index 3e1f8a3..20080ea 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -440,12 +440,16 @@ class Operations(llfuse.Operations):
return entry
@catch_exceptions
- def setattr(self, inode, attr, ctx):
+ def setattr(self, inode, attr, fields, fh, ctx):
entry = self._getattr(inode)
- e = self.inodes[inode]
+ if fh is not None and fh in self._filehandles:
+ handle = self._filehandles[fh]
+ e = handle.obj
+ else:
+ e = self.inodes[inode]
- if attr.st_size is not None and isinstance(e, FuseArvadosFile):
+ if fields.update_size and isinstance(e, FuseArvadosFile):
with llfuse.lock_released:
e.arvfile.truncate(attr.st_size)
entry.st_size = e.arvfile.size()
commit 0910614bda6825369e5516e98f0a2fe8d545b8e5
Author: Joshua Randall <joshua.randall at sanger.ac.uk>
Date: Fri Feb 5 18:37:17 2016 +0000
adds backports specific to centos6
diff --git a/backports/python-llfuse/fpm-info.sh b/backports/python-llfuse/fpm-info.sh
index 5573dab..401a836 100644
--- a/backports/python-llfuse/fpm-info.sh
+++ b/backports/python-llfuse/fpm-info.sh
@@ -1,4 +1,8 @@
case "$TARGET" in
+ centos6)
+ build_depends+=('fuse-libs' 'fuse-devel')
+ fpm_depends+=(glibc 'fuse-libs = 2.9.2-5' 'fuse = 2.9.2-5')
+ ;;
centos*)
build_depends+=('fuse-devel')
fpm_depends+=(glibc fuse-libs)
diff --git a/backports/rpm-fuse-devel/fpm-info.sh b/backports/rpm-fuse-devel/fpm-info.sh
new file mode 100644
index 0000000..89cdebe
--- /dev/null
+++ b/backports/rpm-fuse-devel/fpm-info.sh
@@ -0,0 +1,5 @@
+case "$TARGET" in
+ centos6)
+ fpm_depends+=('fuse-libs = 2.9.2-5')
+ ;;
+esac
diff --git a/backports/rpm-fuse/fpm-info.sh b/backports/rpm-fuse/fpm-info.sh
new file mode 100644
index 0000000..89cdebe
--- /dev/null
+++ b/backports/rpm-fuse/fpm-info.sh
@@ -0,0 +1,5 @@
+case "$TARGET" in
+ centos6)
+ fpm_depends+=('fuse-libs = 2.9.2-5')
+ ;;
+esac
commit f8b4ec3bb51ef6ab076a3a2f26779c9944623899
Author: Joshua Randall <joshua.randall at sanger.ac.uk>
Date: Fri Feb 5 11:45:10 2016 +0000
adds missing fix for llfuse 0.42+
llfuse.capi._notify_queue => llfuse._notify_queue
diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index ca5e53a..3e1f8a3 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -74,7 +74,7 @@ import Queue
# unlimited to avoid deadlocks, see https://arvados.org/issues/3198#note-43 for
# details.
-llfuse.capi._notify_queue = Queue.Queue()
+llfuse._notify_queue = Queue.Queue()
from fusedir import sanitize_filename, Directory, CollectionDirectory, TmpCollectionDirectory, MagicDirectory, TagsDirectory, ProjectDirectory, SharedDirectory, CollectionDirectoryBase
from fusefile import StringFile, FuseArvadosFile
commit a9fa507c505ab702cae850f4ccd5aae26f6218a9
Author: Joshua Randall <joshua.randall at sanger.ac.uk>
Date: Wed Feb 3 11:48:55 2016 +0000
updates llfuse requirement and API to >=0.42
diff --git a/backports/deb-fuse/fpm-info.sh b/backports/deb-fuse/fpm-info.sh
new file mode 100644
index 0000000..6f2b022
--- /dev/null
+++ b/backports/deb-fuse/fpm-info.sh
@@ -0,0 +1,5 @@
+case "$TARGET" in
+ ubuntu1204)
+ fpm_depends+=('libfuse2 = 2.9.2-5')
+ ;;
+esac
diff --git a/backports/deb-libfuse-dev/fpm-info.sh b/backports/deb-libfuse-dev/fpm-info.sh
new file mode 100644
index 0000000..6f2b022
--- /dev/null
+++ b/backports/deb-libfuse-dev/fpm-info.sh
@@ -0,0 +1,5 @@
+case "$TARGET" in
+ ubuntu1204)
+ fpm_depends+=('libfuse2 = 2.9.2-5')
+ ;;
+esac
diff --git a/backports/python-llfuse/fpm-info.sh b/backports/python-llfuse/fpm-info.sh
index 327bc5e..5573dab 100644
--- a/backports/python-llfuse/fpm-info.sh
+++ b/backports/python-llfuse/fpm-info.sh
@@ -3,14 +3,15 @@ case "$TARGET" in
build_depends+=('fuse-devel')
fpm_depends+=(glibc fuse-libs)
;;
+ ubuntu1204)
+ build_depends+=(libfuse2 libfuse-dev)
+ fpm_depends+=(libc6 python-contextlib2 'libfuse2 = 2.9.2-5' 'fuse = 2.9.2-5')
+ ;;
debian* | ubuntu*)
build_depends+=('libfuse-dev')
- fpm_depends+=(libc6 libfuse2)
+ fpm_depends+=(libc6 'libfuse2 > 2.9.0' 'fuse > 2.9.0')
;;
esac
# FIXME: Remove this line after #6885 is done.
-fpm_args+=(--iteration 2)
-
-# FIXME: Remove once support for llfuse 0.42+ is in place
-fpm_args+=(-v 0.41.1)
+fpm_args+=(--iteration 3)
diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index 6ac51f4..ca5e53a 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -398,7 +398,10 @@ class Operations(llfuse.Operations):
@catch_exceptions
- def getattr(self, inode):
+ def getattr(self, inode, ctx):
+ return self._getattr(inode)
+
+ def _getattr(self, inode):
if inode not in self.inodes:
raise llfuse.FUSEError(errno.ENOENT)
@@ -430,15 +433,15 @@ class Operations(llfuse.Operations):
entry.st_blksize = 512
entry.st_blocks = (entry.st_size/512)+1
- entry.st_atime = int(e.atime())
- entry.st_mtime = int(e.mtime())
- entry.st_ctime = int(e.mtime())
+ entry.st_atime_ns = int(e.atime())
+ entry.st_mtime_ns = int(e.mtime())
+ entry.st_ctime_ns = int(e.mtime())
return entry
@catch_exceptions
- def setattr(self, inode, attr):
- entry = self.getattr(inode)
+ def setattr(self, inode, attr, ctx):
+ entry = self._getattr(inode)
e = self.inodes[inode]
@@ -450,7 +453,7 @@ class Operations(llfuse.Operations):
return entry
@catch_exceptions
- def lookup(self, parent_inode, name):
+ def lookup(self, parent_inode, name, ctx):
name = unicode(name, self.inodes.encoding)
inode = None
@@ -469,7 +472,7 @@ class Operations(llfuse.Operations):
_logger.debug("arv-mount lookup: parent_inode %i name '%s' inode %i",
parent_inode, name, inode)
self.inodes[inode].inc_ref()
- return self.getattr(inode)
+ return self._getattr(inode)
else:
_logger.debug("arv-mount lookup: parent_inode %i name '%s' not found",
parent_inode, name)
@@ -486,7 +489,7 @@ class Operations(llfuse.Operations):
self.inodes.del_entry(ent)
@catch_exceptions
- def open(self, inode, flags):
+ def open(self, inode, flags, ctx):
if inode in self.inodes:
p = self.inodes[inode]
else:
@@ -559,7 +562,7 @@ class Operations(llfuse.Operations):
self.release(fh)
@catch_exceptions
- def opendir(self, inode):
+ def opendir(self, inode, ctx):
_logger.debug("arv-mount opendir: inode %i", inode)
if inode in self.inodes:
@@ -594,11 +597,11 @@ class Operations(llfuse.Operations):
e = off
while e < len(handle.entries):
if handle.entries[e][1].inode in self.inodes:
- yield (handle.entries[e][0].encode(self.inodes.encoding), self.getattr(handle.entries[e][1].inode), e+1)
+ yield (handle.entries[e][0].encode(self.inodes.encoding), self._getattr(handle.entries[e][1].inode), e+1)
e += 1
@catch_exceptions
- def statfs(self):
+ def statfs(self, ctx):
st = llfuse.StatvfsData()
st.f_bsize = 128 * 1024
st.f_blocks = 0
@@ -644,7 +647,7 @@ class Operations(llfuse.Operations):
self.inodes.touch(p)
f.inc_ref()
- return (fh, self.getattr(f.inode))
+ return (fh, self._getattr(f.inode))
@catch_exceptions
def mkdir(self, inode_parent, name, mode, ctx):
@@ -657,22 +660,22 @@ class Operations(llfuse.Operations):
d = p[name]
d.inc_ref()
- return self.getattr(d.inode)
+ return self._getattr(d.inode)
@catch_exceptions
- def unlink(self, inode_parent, name):
+ def unlink(self, inode_parent, name, ctx):
_logger.debug("arv-mount unlink: %i '%s'", inode_parent, name)
p = self._check_writable(inode_parent)
p.unlink(name)
@catch_exceptions
- def rmdir(self, inode_parent, name):
+ def rmdir(self, inode_parent, name, ctx):
_logger.debug("arv-mount rmdir: %i '%s'", inode_parent, name)
p = self._check_writable(inode_parent)
p.rmdir(name)
@catch_exceptions
- def rename(self, inode_parent_old, name_old, inode_parent_new, name_new):
+ def rename(self, inode_parent_old, name_old, inode_parent_new, name_new, ctx):
_logger.debug("arv-mount rename: %i '%s' %i '%s'", inode_parent_old, name_old, inode_parent_new, name_new)
src = self._check_writable(inode_parent_old)
dest = self._check_writable(inode_parent_new)
@@ -686,5 +689,5 @@ class Operations(llfuse.Operations):
def fsync(self, fh, datasync):
self.flush(fh)
- def fsyncdir(self, fh, datasync):
+ def fsyncdir(self, fh, datasync):
self.flush(fh)
diff --git a/services/fuse/setup.py b/services/fuse/setup.py
index fca1edf..0c2a4cc 100644
--- a/services/fuse/setup.py
+++ b/services/fuse/setup.py
@@ -33,7 +33,7 @@ setup(name='arvados_fuse',
],
install_requires=[
'arvados-python-client >= 0.1.20151118035730',
- 'llfuse==0.41.1',
+ 'llfuse>=0.42.1',
'python-daemon',
'ciso8601'
],
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list