#!/usr/bin/env python
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
# arv-web enables you to run a custom web service from the contents of an Arvados collection.
#
# 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
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")
et = 'add'
else:
et = 'remove'
- if ev['properties']['new_attributes']['expires_at'] is not None:
+ if ev['properties']['new_attributes']['trash_at'] is not None:
et = 'remove'
self.evqueue.put((self.project, et, ev['object_uuid']))
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)