# functions about connections to other instances # ------------------------------------------------------------------- """ """ import basic.program import utils.config_tool import basic.constants as B import utils.data_const as D def getConnection(comp, nr): job = basic.program.Job.getInstance() verify = job.getDebugLevel("conn_tool") conn = {} if job.conf.confs.get("tools").get("connsrc") == D.DFILE_TYPE_YML: conn = utils.config_tool.getConfig("tool", B.SUBJECT_CONN) xtypes = None if ("types" in conn["env"][comp]): xtypes = conn["env"][comp]["types"] instnr = "inst" + str(nr) if conn["env"][comp][instnr]: if (xtypes is not None): conn["env"][comp][instnr]["types"] = xtypes return conn["env"][comp][instnr] else: job.m.setFatal("Conn-Tool: Comp not configured " + comp + " " + str(nr)) elif job.conf.confs.get("tools").get("connsrc") == "flaskdb": pass elif job.conf.confs.get("tools").get("connsrc") == D.DFILE_TYPE_CSV: pass return None def getConnections(comp): """ it reads the connection-attributes for each instances of this component general attributes are added to the connection-attributes :param comp: :return: """ job = basic.program.Job.getInstance() verify = job.getDebugLevel("conn_tool") msg = None if hasattr(comp, "m") and comp.m is not None: msg = comp.m elif hasattr(job, "m") and job.m is not None: msg = job.m else: raise Exception("message-object is missing") msg.debug(verify, "getConnections " + comp) conn = {} conns = [] if job.conf.confs.get("tools").get("connsrc") in [D.DFILE_TYPE_YML, D.DFILE_TYPE_JSON, D.DFILE_TYPE_CSV]: conn = utils.config_tool.getConfig("tool", B.SUBJECT_CONN) if not comp in conn["env"]: job.m.setFatal("Conn-Tool: Comp not configured " + comp) elif job.conf.confs.get("tools").get("connsrc") == "flaskdb": pass attr = {} if "general" in conn["env"]: for a in conn["env"]["general"]: attr[a] = conn["env"]["general"] for a in conn["env"][comp]: if "inst" in a and a != B.SUBJECT_INST: continue attr[a] = conn["env"][comp][a] #if ("types" in conn["env"][comp]): # xtypes = conn["env"][comp]["types"] for i in range(conn["env"][comp][B.SUBJECT_INST][B.ATTR_INST_CNT]): print("range " + str(i + 1)) instnr = "inst" + str(i + 1) #if (xtypes is not None): # conn["env"][comp][instnr]["types"] = xtypes for a in attr: if a in conn["env"][comp][instnr]: continue # dont overwrite an instance-specific value conn["env"][comp][instnr][a] = attr[a] conns.append(conn["env"][comp][instnr]) return conns