[ARVADOS] created: ba798321b74ea633893262c7277411b1c45a806d

Git user git at public.curoverse.com
Tue Nov 22 12:05:26 EST 2016


        at  ba798321b74ea633893262c7277411b1c45a806d (commit)


commit ba798321b74ea633893262c7277411b1c45a806d
Author: Tom Clegg <tom at curoverse.com>
Date:   Mon Apr 18 12:40:21 2016 -0400

    8345: Upgrade to llfuse 1.0

diff --git a/build/run-build-packages.sh b/build/run-build-packages.sh
index 320f9d4..72c3922 100755
--- a/build/run-build-packages.sh
+++ b/build/run-build-packages.sh
@@ -100,8 +100,8 @@ case "$TARGET" in
         FORMAT=deb
         PYTHON_BACKPORTS=(python-gflags==2.0 google-api-python-client==1.4.2 \
             oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
-            rsa uritemplate httplib2 ws4py pykka six  \
-            ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+            rsa uritemplate httplib2 ws4py pykka six \
+            ciso8601 pycrypto backports.ssl_match_hostname 'llfuse>=1.0' \
             'pycurl<7.21.5' contextlib2 pyyaml 'rdflib>=4.2.0' \
             shellescape mistune typing avro ruamel.ordereddict
             cachecontrol requests)
@@ -111,8 +111,8 @@ case "$TARGET" in
         FORMAT=deb
         PYTHON_BACKPORTS=(python-gflags==2.0 google-api-python-client==1.4.2 \
             oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
-            rsa uritemplate httplib2 ws4py pykka six  \
-            ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+            rsa uritemplate httplib2 ws4py pykka six \
+            ciso8601 pycrypto backports.ssl_match_hostname 'llfuse>=1.0' \
             'pycurl<7.21.5' pyyaml 'rdflib>=4.2.0' \
             shellescape mistune typing avro ruamel.ordereddict
             cachecontrol)
@@ -122,8 +122,8 @@ case "$TARGET" in
         FORMAT=deb
         PYTHON_BACKPORTS=(python-gflags==2.0 google-api-python-client==1.4.2 \
             oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
-            rsa uritemplate httplib2 ws4py pykka six  \
-            ciso8601 pycrypto backports.ssl_match_hostname llfuse==0.41.1 \
+            rsa uritemplate httplib2 ws4py pykka six \
+            ciso8601 pycrypto backports.ssl_match_hostname 'llfuse>=1.0' \
             contextlib2 'pycurl<7.21.5' pyyaml 'rdflib>=4.2.0' \
             shellescape mistune typing avro isodate ruamel.ordereddict
             cachecontrol requests)
@@ -131,7 +131,7 @@ case "$TARGET" in
         ;;
     ubuntu1404)
         FORMAT=deb
-        PYTHON_BACKPORTS=(pyasn1==0.1.7 pyasn1-modules==0.0.5 llfuse==0.41.1 ciso8601 \
+        PYTHON_BACKPORTS=(pyasn1==0.1.7 pyasn1-modules==0.0.5 'llfuse>=1.0' ciso8601 \
             google-api-python-client==1.4.2 six uritemplate oauth2client==1.5.2 httplib2 \
             rsa 'pycurl<7.21.5' backports.ssl_match_hostname pyyaml 'rdflib>=4.2.0' \
             shellescape mistune typing avro ruamel.ordereddict
@@ -152,7 +152,7 @@ case "$TARGET" in
             oauth2client==1.5.2 pyasn1==0.1.7 pyasn1-modules==0.0.5 \
             rsa uritemplate httplib2 ws4py pykka six  \
             ciso8601 pycrypto backports.ssl_match_hostname 'pycurl<7.21.5' \
-            python-daemon llfuse==0.41.1 'pbr<1.0' pyyaml \
+            python-daemon 'llfuse>=1.0' 'pbr<1.0' pyyaml \
             'rdflib>=4.2.0' shellescape mistune typing avro requests \
             isodate pyparsing sparqlwrapper html5lib==0.9999999 keepalive \
             ruamel.ordereddict cachecontrol)
diff --git a/build/run-library.sh b/build/run-library.sh
index f0b120f..bd094d0 100755
--- a/build/run-library.sh
+++ b/build/run-library.sh
@@ -289,7 +289,7 @@ fpm_build () {
   declare -a fpm_dirs=(
       # source dir part of 'dir' package ("/source=/dest" => "/source"):
       "${PACKAGE%%=/*}"
-      # backports ("llfuse==0.41.1" => "backports/python-llfuse")
+      # backports ("llfuse>=1.0" => "backports/python-llfuse")
       "${WORKSPACE}/backports/${PACKAGE_TYPE}-${PACKAGE%%[<=>]*}")
   if [[ -n "$PACKAGE_NAME" ]]; then
       fpm_dirs+=("${WORKSPACE}/backports/${PACKAGE_NAME}")
diff --git a/build/run-tests.sh b/build/run-tests.sh
index 8959cfb..0c0baf7 100755
--- a/build/run-tests.sh
+++ b/build/run-tests.sh
@@ -443,13 +443,10 @@ pip freeze 2>/dev/null | egrep ^apache-libcloud==$LIBCLOUD_PIN \
     || pip install --pre --ignore-installed https://github.com/curoverse/libcloud/archive/apache-libcloud-$LIBCLOUD_PIN.zip >/dev/null \
     || fatal "pip install apache-libcloud failed"
 
-# This will help people who reuse --temp dirs when we upgrade to llfuse 0.42
-if egrep -q 'llfuse.*>= *0\.42' "$WORKSPACE/services/fuse/setup.py"; then
-    # Uninstall old llfuse, because services/fuse "pip install" won't
-    # upgrade it by default.
-    if pip freeze | egrep '^llfuse==0\.41\.'; then
-        yes | pip uninstall 'llfuse<0.42'
-    fi
+# Uninstall old llfuse (<1.0), because services/fuse "pip install"
+# won't upgrade it by default.
+if pip freeze | egrep '^llfuse==0'; then
+    yes | pip uninstall 'llfuse<1.0'
 fi
 
 # Deactivate Python 2 virtualenv
diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index cd0fe7c..43b1cd3 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -355,13 +355,12 @@ class Operations(llfuse.Operations):
 
     @catch_exceptions
     def destroy(self):
-        with llfuse.lock:
-            self._shutdown_started.set()
-            if self.events:
-                self.events.close()
-                self.events = None
+        self._shutdown_started.set()
+        if self.events:
+            self.events.close()
+            self.events = None
 
-            self.inodes.clear()
+        self.inodes.clear()
 
     def access(self, inode, mode, ctx):
         return True
diff --git a/services/fuse/setup.py b/services/fuse/setup.py
index 17e7a19..15793dc 100644
--- a/services/fuse/setup.py
+++ b/services/fuse/setup.py
@@ -38,7 +38,7 @@ setup(name='arvados_fuse',
       ],
       install_requires=[
         'arvados-python-client >= 0.1.20151118035730',
-        'llfuse >= 0.42.1, < 1.0',
+        'llfuse >= 1.0',
         'python-daemon',
         'ciso8601'
         ],

commit d283cf433c7155668cd9b4917ad6ec2c7fafef10
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Mar 10 15:04:10 2016 -0500

    8345: Revert change to getattr() @catch_exceptions setup.

diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index 08e901e..cd0fe7c 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -408,10 +408,7 @@ class Operations(llfuse.Operations):
 
 
     @catch_exceptions
-    def getattr(self, inode, ctx):
-        return self._getattr(inode)
-
-    def _getattr(self, inode):
+    def getattr(self, inode, ctx=None):
         if inode not in self.inodes:
             raise llfuse.FUSEError(errno.ENOENT)
 
@@ -451,7 +448,7 @@ class Operations(llfuse.Operations):
 
     @catch_exceptions
     def setattr(self, inode, attr, fields, fh, ctx):
-        entry = self._getattr(inode)
+        entry = self.getattr(inode)
 
         if fh is not None and fh in self._filehandles:
             handle = self._filehandles[fh]
@@ -486,7 +483,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)
@@ -625,7 +622,7 @@ 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
@@ -675,7 +672,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):
@@ -688,7 +685,7 @@ 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, ctx):

commit 932367f5d40de7ea1c633049b8c53204108f43af
Author: Tom Clegg <tom at curoverse.com>
Date:   Wed Mar 9 13:50:41 2016 -0500

    8345: Fix dirent timestamps.

diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index d66fa2a..08e901e 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -443,9 +443,9 @@ class Operations(llfuse.Operations):
 
         entry.st_blksize = 512
         entry.st_blocks = (entry.st_size/512)+1
-        entry.st_atime_ns = int(e.atime())
-        entry.st_mtime_ns = int(e.mtime())
-        entry.st_ctime_ns = int(e.mtime())
+        entry.st_atime_ns = int(e.atime() * 1000000000)
+        entry.st_mtime_ns = int(e.mtime() * 1000000000)
+        entry.st_ctime_ns = int(e.mtime() * 1000000000)
 
         return entry
 
diff --git a/services/fuse/tests/test_mount.py b/services/fuse/tests/test_mount.py
index c68a28d..f623ae5 100644
--- a/services/fuse/tests/test_mount.py
+++ b/services/fuse/tests/test_mount.py
@@ -267,14 +267,22 @@ class FuseSharedTest(MountTestBase):
 
         # check mtime on template
         st = os.stat(pipeline_template_path)
-        self.assertEqual(st.st_mtime_ns, 1397493304)
+        try:
+            mtime = st.st_mtime_ns / 1000000000
+        except AttributeError:
+            mtime = st.st_mtime
+        self.assertEqual(mtime, 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_ns, 1391448174)
+        try:
+            mtime = st.st_mtime_ns / 1000000000
+        except AttributeError:
+            mtime = st.st_mtime
+        self.assertEqual(mtime, 1391448174)
 
 
 class FuseHomeTest(MountTestBase):

commit 3f0a5eec2e07139762df154295ca3feb39334bf4
Author: Tom Clegg <tom at curoverse.com>
Date:   Tue Mar 8 16:40:22 2016 -0500

    8345: Pin llfuse to <1.0

diff --git a/services/fuse/setup.py b/services/fuse/setup.py
index 75a7c4e..17e7a19 100644
--- a/services/fuse/setup.py
+++ b/services/fuse/setup.py
@@ -38,7 +38,7 @@ setup(name='arvados_fuse',
       ],
       install_requires=[
         'arvados-python-client >= 0.1.20151118035730',
-        'llfuse>=0.42.1',
+        'llfuse >= 0.42.1, < 1.0',
         'python-daemon',
         'ciso8601'
         ],

commit c19f150ac2f8bea28c8978ad5b4deb93b6d0812b
Author: Tom Clegg <tom at curoverse.com>
Date:   Mon Mar 7 15:26:14 2016 -0500

    8345: fix whitespace

diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index e6de3cf..d66fa2a 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -717,5 +717,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)

commit 2bb65744082ca0009eddac602e463e9358ddfa84
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 4c70ce9..c68a28d 100644
--- a/services/fuse/tests/test_mount.py
+++ b/services/fuse/tests/test_mount.py
@@ -267,14 +267,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 8d837347f1d03322ba69726f381b0d9fa6da34c1
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 c7e5751..e6de3cf 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -450,12 +450,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 5426beed4dc6111f327ea6c9d4b652fdfad39342
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 8b6b63339e17f1836621c477143eba4d9d8f6042
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 be48bff..c7e5751 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 3297f77cbaf9c5312e5be0db1d440627d276a2fe
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 9fc0098..5573dab 100644
--- a/backports/python-llfuse/fpm-info.sh
+++ b/backports/python-llfuse/fpm-info.sh
@@ -3,9 +3,13 @@ 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
 
diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index 1828e15..be48bff 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -408,7 +408,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)
 
@@ -440,15 +443,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]
 
@@ -460,7 +463,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
 
@@ -479,7 +482,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)
@@ -496,7 +499,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:
@@ -583,7 +586,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:
@@ -618,11 +621,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
@@ -668,7 +671,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):
@@ -681,22 +684,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: parent_inode %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: parent_inode %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: old_parent_inode %i '%s' new_parent_inode %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)
@@ -710,5 +713,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 d7e1a8a..75a7c4e 100644
--- a/services/fuse/setup.py
+++ b/services/fuse/setup.py
@@ -38,7 +38,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