예제 #1
0
파일: arv-web.py 프로젝트: lessc0de/arvados
    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)