# 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 ( job , 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 ( job , " 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 ( job , 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 a datest-database exists read the connections
conndb = { }
if job . conf . confs . get ( " db " ) :
# select
pass
conn = utils . config_tool . getConfig ( job , " tool " , B . SUBJECT_CONN )
if not comp in conn [ " env " ] :
job . m . setFatal ( " Conn-Tool: Comp not configured " + comp )
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