def prepare_global_data(self, session): self.types_per_name = { attr_type["name"].lower(): attr_type for attr_type in session.query("CustomAttributeType").all() } self.security_roles = { role["name"].lower(): role for role in session.query("SecurityRole").all() } object_types = session.query("ObjectType").all() self.object_types_per_id = { object_type["id"]: object_type for object_type in object_types } self.object_types_per_name = { object_type["name"].lower(): object_type for object_type in object_types } self.groups = {} self.ftrack_settings = get_system_settings()["modules"]["ftrack"] self.attrs_settings = self.prepare_attribute_settings()
def _create_vray_instance_settings(self): # get pools pools = [] system_settings = get_system_settings()["modules"] deadline_enabled = system_settings["deadline"]["enabled"] muster_enabled = system_settings["muster"]["enabled"] deadline_url = system_settings["deadline"]["DEADLINE_REST_URL"] muster_url = system_settings["muster"]["MUSTER_REST_URL"] if deadline_enabled and muster_enabled: self.log.error("Both Deadline and Muster are enabled. " "Cannot support both.") raise RuntimeError("Both Deadline and Muster are enabled") if deadline_enabled: argument = "{}/api/pools?NamesOnly=true".format(deadline_url) try: response = self._requests_get(argument) except requests.exceptions.ConnectionError as e: msg = 'Cannot connect to deadline web service' self.log.error(msg) raise RuntimeError('{} - {}'.format(msg, e)) if not response.ok: self.log.warning("No pools retrieved") else: pools = response.json() self.data["primaryPool"] = pools # We add a string "-" to allow the user to not # set any secondary pools self.data["secondaryPool"] = ["-"] + pools if muster_enabled: self.log.info(">>> Loading Muster credentials ...") self._load_credentials() self.log.info(">>> Getting pools ...") try: pools = self._get_muster_pools() except requests.exceptions.HTTPError as e: if e.startswith("401"): self.log.warning("access token expired") self._show_login() raise RuntimeError("Access token expired") except requests.exceptions.ConnectionError: self.log.error("Cannot connect to Muster API endpoint.") raise RuntimeError("Cannot connect to {}".format(muster_url)) pool_names = [] for pool in pools: self.log.info(" - pool: {}".format(pool["name"])) pool_names.append(pool["name"]) self.data["primaryPool"] = pool_names self.data["suspendPublishJob"] = False self.data["priority"] = 50 self.data["whitelist"] = False self.data["machineList"] = "" self.data["vraySceneMultipleFiles"] = False self.options = {"useSelection": False} # Force no content
def get_presets(cls): """ Get presets for this provider Returns: (dictionary) of configured sites """ provider_presets = None try: provider_presets = (get_system_settings()["modules"]["sync_server"] ["providers"]["gdrive"]) except KeyError: log.info(("Sync Server: There are no presets for Gdrive " + "provider.").format(str(provider_presets))) return return provider_presets
def reset(self): self.clear() self._item_count = 0 self.default_index = 0 intents_preset = (get_system_settings().get("modules", {}).get( "ftrack", {}).get("intent", {})) default = intents_preset.get("default") items = intents_preset.get("items", {}) if not items: return for idx, item_value in enumerate(items.keys()): if item_value == default: self.default_index = idx break self.add_items(items)
def _get_template_id(renderer): """ Return muster template ID based on renderer name. :param renderer: renderer name :type renderer: str :returns: muster template id :rtype: int """ templates = get_system_settings()["modules"]["muster"]["templates_mapping"] if not templates: raise RuntimeError(("Muster template mapping missing in " "pype-settings")) try: template_id = templates[renderer] except KeyError: raise RuntimeError("Unmapped renderer - missing template id") return template_id
def _create_render_settings(self): # get pools pools = [] system_settings = get_system_settings()["modules"] deadline_enabled = system_settings["deadline"]["enabled"] muster_enabled = system_settings["muster"]["enabled"] deadline_url = system_settings["deadline"]["DEADLINE_REST_URL"] muster_url = system_settings["muster"]["MUSTER_REST_URL"] if deadline_enabled and muster_enabled: self.log.error( "Both Deadline and Muster are enabled. " "Cannot support both." ) raise RuntimeError("Both Deadline and Muster are enabled") if deadline_enabled: argument = "{}/api/pools?NamesOnly=true".format(deadline_url) try: response = self._requests_get(argument) except requests.exceptions.ConnectionError as e: msg = 'Cannot connect to deadline web service' self.log.error(msg) raise RuntimeError('{} - {}'.format(msg, e)) if not response.ok: self.log.warning("No pools retrieved") else: pools = response.json() self.data["primaryPool"] = pools # We add a string "-" to allow the user to not # set any secondary pools self.data["secondaryPool"] = ["-"] + pools if muster_enabled: self.log.info(">>> Loading Muster credentials ...") self._load_credentials() self.log.info(">>> Getting pools ...") try: pools = self._get_muster_pools() except requests.exceptions.HTTPError as e: if e.startswith("401"): self.log.warning("access token expired") self._show_login() raise RuntimeError("Access token expired") except requests.exceptions.ConnectionError: self.log.error("Cannot connect to Muster API endpoint.") raise RuntimeError("Cannot connect to {}".format(muster_url)) pool_names = [] for pool in pools: self.log.info(" - pool: {}".format(pool["name"])) pool_names.append(pool["name"]) self.data["primaryPool"] = pool_names self.data["suspendPublishJob"] = False self.data["review"] = True self.data["extendFrames"] = False self.data["overrideExistingFrame"] = True # self.data["useLegacyRenderLayers"] = True self.data["priority"] = 50 self.data["framesPerTask"] = 1 self.data["whitelist"] = False self.data["machineList"] = "" self.data["useMayaBatch"] = False self.data["tileRendering"] = False self.data["tilesX"] = 2 self.data["tilesY"] = 2 self.data["convertToScanline"] = False self.data["useReferencedAovs"] = False # Disable for now as this feature is not working yet # self.data["assScene"] = False self.options = {"useSelection": False} # Force no content
def get_ftrack_settings(): return get_system_settings()["modules"]["ftrack"]