def get_sql_msg(src_ip,state): text = '${device/db_ip} ${device/db_port} ${device/db_user} ${device/db_passwd}' rpc_handle = HttpHandler() rpc_handle.login() result = rpc_handle.getResponseData("device_router","DeviceRouter","compile_text",[{"dev_ip":src_ip,"text":text}]) if result: dbcfg = result.split() conn = None import MySQLdb try: conn = MySQLdb.connect(host=dbcfg[0], user=dbcfg[2],port=int(dbcfg[1]), passwd=dbcfg[3],db="ssoc",init_command="SET NAMES utf8") conn.autocommit(1) curs = conn.cursor() sql1 = "select b.mem_address,b.mem_port,a.control_address,a.control_port from cloud_virtual_server a " \ "LEFT JOIN cloud_virtual_member b on a.v_id = b.pool_id where b.mem_address='%s'"%src_ip curs.execute(sql1) conn.commit() result = curs.fetchall() #修改每个主机对应的端口状态 for i in result: mem_address,mem_port,control_host,control_port = i set_member(mem_address,mem_port,str(state),control_host,control_port) except: logger.warning("连接数据库失败") else: logger.warning("获取数据库连接参数失败!%s可能不存在"%src_ip)
def __init__(self,dev_ip): self.conn = None self.dev_ip = dev_ip self.rpc_handle = HttpHandler() self.rpc_handle.login() self.getDabaseConnect()