def __init__(self, project, docker_image, port): self.project = project self.loop = True self.cid = None self.prev_docker_image = None self.mountdir = None self.collection = None self.override_docker_image = docker_image self.port = port self.evqueue = Queue.Queue() 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") collections = self.api.collections().list(filters=[["owner_uuid", "=", project]], limit=1, order='modified_at desc').execute()['items'] self.newcollection = collections[0]['uuid'] if collections else None self.ws = arvados.events.subscribe(self.api, [["object_uuid", "is_a", "arvados#collection"]], self.on_message)