X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5dbf5c8ea2d9eb2bc8e10a03ca625f12ed71f12c..f4ca9ad94a6bb006d1f3c7ba207837f1736d1247:/services/arv-web/arv-web.py diff --git a/services/arv-web/arv-web.py b/services/arv-web/arv-web.py index 7dbd304adc..5a95e27b93 100755 --- a/services/arv-web/arv-web.py +++ b/services/arv-web/arv-web.py @@ -5,8 +5,9 @@ # See http://doc.arvados.org/user/topics/arv-web.html import arvados +from arvados.safeapi import ThreadSafeApiCache import subprocess -from arvados_fuse import Operations, SafeApi, CollectionDirectory +from arvados_fuse import Operations, CollectionDirectory import tempfile import os import llfuse @@ -32,7 +33,7 @@ class ArvWeb(object): self.override_docker_image = docker_image self.port = port self.evqueue = Queue.Queue() - self.api = SafeApi(arvados.config) + self.api = ThreadSafeApiCache(arvados.config.settings()) if arvados.util.group_uuid_pattern.match(project) is None: raise arvados.errors.ArgumentError("Project uuid is not valid") @@ -82,7 +83,7 @@ class ArvWeb(object): def run_fuse_mount(self): self.mountdir = tempfile.mkdtemp() - self.operations = Operations(os.getuid(), os.getgid(), "utf-8") + self.operations = Operations(os.getuid(), os.getgid(), self.api, "utf-8") self.cdir = CollectionDirectory(llfuse.ROOT_INODE, self.operations.inodes, self.api, 2, self.collection) self.operations.inodes.add_entry(self.cdir) @@ -156,8 +157,6 @@ class ArvWeb(object): self.stop_docker() logger.info("Starting Docker container %s", docker_image) - ciddir = tempfile.mkdtemp() - cidfilepath = os.path.join(ciddir, "cidfile") self.cid = subprocess.check_output(["docker", "run", "--detach=true", "--publish=%i:80" % (self.port), @@ -246,6 +245,9 @@ def main(argv): arvweb.run() except arvados.errors.ArgumentError as e: logger.error(e) + return 1 + + return 0 if __name__ == '__main__': - main(sys.argv[1:]) + sys.exit(main(sys.argv[1:]))