14865: Reverts change to read op and fixes StringFile
authorEric Biagiotti <ebiagiotti@veritasgenetics.com>
Wed, 3 Jul 2019 18:42:56 +0000 (14:42 -0400)
committerEric Biagiotti <ebiagiotti@veritasgenetics.com>
Wed, 3 Jul 2019 18:42:56 +0000 (14:42 -0400)
Changed the StringFile readfrom function to return utf-8 encoded bytes. This is what the fuse read op is expecting in Pyhton 3.

Arvados-DCO-1.1-Signed-off-by:  <ebiagiotti@veritasgenetics.com>

services/fuse/arvados_fuse/__init__.py
services/fuse/arvados_fuse/fusefile.py

index 745889c7571f9389d52839897b2c3077b8f38c3d..41134e2eecb1a86da6495ed9fb06e7488a64a252 100644 (file)
@@ -59,6 +59,7 @@ standard_library.install_aliases()
 from builtins import next
 from builtins import str
 from builtins import object
+from builtins import bytes
 import os
 import sys
 import llfuse
@@ -662,7 +663,7 @@ class Operations(llfuse.Operations):
         r = handle.obj.readfrom(off, size, self.num_retries)
         if r:
             self.read_counter.add(len(r))
-        return r.encode('utf-8')
+        return r
 
     @write_time.time()
     @catch_exceptions
index 1b12d7e410ad323d37d6197ee819d7ea6a760d61..116b5462b6857aa3452ae59407af309cdaabe36b 100644 (file)
@@ -3,6 +3,7 @@
 # SPDX-License-Identifier: AGPL-3.0
 
 from __future__ import absolute_import
+from builtins import bytes
 import json
 import llfuse
 import logging
@@ -89,7 +90,7 @@ class StringFile(File):
         return len(self.contents)
 
     def readfrom(self, off, size, num_retries=0):
-        return self.contents[off:(off+size)]
+        return bytes(self.contents[off:(off+size)], encoding='utf-8')
 
 
 class ObjectFile(StringFile):