From d185b5d54c4364846c884a15cf5c4e0d04be0542 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 21 Jun 2020 15:52:04 +0200 Subject: [PATCH] io_nonsingleton is same as avalon's io --- .../adobe_communicator/lib/io_nonsingleton.py | 24 ++++++++++++------- pype/modules/ftrack/lib/io_nonsingleton.py | 21 ++++++++++++---- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/pype/modules/adobe_communicator/lib/io_nonsingleton.py b/pype/modules/adobe_communicator/lib/io_nonsingleton.py index d042d2f6d8..da37c657c6 100644 --- a/pype/modules/adobe_communicator/lib/io_nonsingleton.py +++ b/pype/modules/adobe_communicator/lib/io_nonsingleton.py @@ -16,7 +16,7 @@ import contextlib from avalon import schema from avalon.vendor import requests -from pype.api import get_default_components, compose_url +from avalon.io import extract_port_from_url # Third-party dependencies import pymongo @@ -73,15 +73,17 @@ class DbConnector(object): self.Session.update(self._from_environment()) timeout = int(self.Session["AVALON_TIMEOUT"]) + mongo_url = self.Session["AVALON_MONGO"] + kwargs = { + "host": mongo_url, + "serverSelectionTimeoutMS": timeout + } - components = get_default_components() - port = components.pop("port") - host = compose_url(**components) - self._mongo_client = pymongo.MongoClient( - host=host, - port=port, - serverSelectionTimeoutMS=timeout - ) + port = extract_port_from_url(mongo_url) + if port is not None: + kwargs["port"] = int(port) + + self._mongo_client = pymongo.MongoClient(**kwargs) for retry in range(3): try: @@ -389,6 +391,10 @@ class DbConnector(object): if document is None: break + if document.get("type") == "master_version": + _document = self.find_one({"_id": document["version_id"]}) + document["data"] = _document["data"] + parents.append(document) return parents diff --git a/pype/modules/ftrack/lib/io_nonsingleton.py b/pype/modules/ftrack/lib/io_nonsingleton.py index 73856557ea..da37c657c6 100644 --- a/pype/modules/ftrack/lib/io_nonsingleton.py +++ b/pype/modules/ftrack/lib/io_nonsingleton.py @@ -16,6 +16,7 @@ import contextlib from avalon import schema from avalon.vendor import requests +from avalon.io import extract_port_from_url # Third-party dependencies import pymongo @@ -72,11 +73,17 @@ class DbConnector(object): self.Session.update(self._from_environment()) timeout = int(self.Session["AVALON_TIMEOUT"]) - self._mongo_client = pymongo.MongoClient( - host=os.environ["AVALON_MONGO_HOST"], - port=int(os.environ["AVALON_MONGO_PORT"]), - serverSelectionTimeoutMS=timeout - ) + mongo_url = self.Session["AVALON_MONGO"] + kwargs = { + "host": mongo_url, + "serverSelectionTimeoutMS": timeout + } + + port = extract_port_from_url(mongo_url) + if port is not None: + kwargs["port"] = int(port) + + self._mongo_client = pymongo.MongoClient(**kwargs) for retry in range(3): try: @@ -384,6 +391,10 @@ class DbConnector(object): if document is None: break + if document.get("type") == "master_version": + _document = self.find_one({"_id": document["version_id"]}) + document["data"] = _document["data"] + parents.append(document) return parents