7

来源:互联网 发布:windows字体更新 编辑:程序博客网 时间:2024/04/30 19:15
        log_manager.GetInstance().CoutLog('begin to exec SetDBInfo',Com_db_tools);
        self.__str_db_ip = p_str_db_ip;
        self.__str_db_user = p_str_db_user;
        self.__str_db_pw = p_str_db_pw;
        log_manager.GetInstance().CoutLog('db_tools:end to exec SetDBInfo',Com_db_tools);


    def CalculateIfStatus(self,int_admin_status,int_op_status):
        log_manager.GetInstance().CoutLog('begin to exec CalculateIfStatus',Com_db_tools);
        result = int_admin_status + int_op_status;
        if (2 == result):
            log_manager.GetInstance().CoutLog('end to exec CalculateIfStatus',Com_db_tools);
            return 'up';
        else:
            log_manager.GetInstance().CoutLog('end to exec CalculateIfStatus',Com_db_tools);
            return 'down';


    def QueryDevIDByTopo(self,p_str_topo_name):
        log_manager.GetInstance().CoutLog('begin to exec QueryDevIDByTopo',Com_db_tools);
        t_list_devid = [];
        conn = None;
        cou = None;
        sql = "SELECT [symbol_id] FROM [config_db].[imc_config].[tbl_symbol] WHERE symbol_name = '%s'"%(p_str_topo_name);
        try:
            conn = pymssql.connect(host=self.__str_db_ip, user=self.__str_db_user, password=self.__str_db_pw, database='config_db',charset='utf8');
            cou = conn.cursor();
            cou.execute(sql.decode('GBK'));
        except Exception, e:
            log_manager.GetInstance().CoutLog('database error:' + str(e),Com_db_tools);
            log_manager.GetInstance().CoutLog('datebase error:ip = ' + self.__str_db_ip + ' user = ' + self.__str_db_user + ' pw= ' + self.__str_db_pw + 'datebase = config_db',Com_db_tools);
            log_manager.GetInstance().CoutLog('sql = ' + sql,Com_db_tools);
            return oErrorBase.base_failed,[];
        for symbol_id in cou.fetchall():
            int_parent_id = symbol_id[0];
            sql = "SELECT [phy_id] FROM [config_db].[imc_config].[tbl_symbol] WHERE  parent_symbol_id = %d"%(int_parent_id);
            try:
                cou.execute(sql);
            except Exception,e:
                log_manager.GetInstance().CoutLog('database error:' + str(e),Com_db_tools);
                log_manager.GetInstance().CoutLog('datebase error:ip = ' + self.__str_db_ip + ' user = ' + self.__str_db_user + ' pw= ' + self.__str_db_pw + 'datebase = config_db',Com_db_tools);
                log_manager.GetInstance().CoutLog('sql = ' + sql,Com_db_tools);
                return oErrorBase.base_failed,[];
            for phy_id in cou.fetchall():
                int_phy_id = phy_id[0];
                t_list_devid.append(int_phy_id);
        conn.close();
        log_manager.GetInstance().CoutLog('end to exec QueryDevIDByTopo',Com_db_tools);
        return oErrorBase.base_succeed,t_list_devid;


    def QueryIfInfoByDevID(self,p_int_devid,p_is_simu):
        log_manager.GetInstance().CoutLog('begin to exec QueryIfInfoByDevID',Com_db_tools);
        t_ip_if_status_info = ip_if_status_info();
        t_ip_if_status_info.m_str_id = p_int_devid;
        conn = None;
        cou = None;
        sql = "SELECT [dev_ip] FROM [config_db].[imc_config].[tbl_dev] WHERE dev_id = %d"%(p_int_devid);
        try:
            conn = pymssql.connect(host=self.__str_db_ip, user=self.__str_db_user, password=self.__str_db_pw, database='config_db',charset='utf8');
            cou = conn.cursor();
            cou.execute(sql);
        except Exception, e:
            log_manager.GetInstance().CoutLog('database error:' + str(e),Com_db_tools);
            log_manager.GetInstance().CoutLog('datebase error:ip = ' + self.__str_db_ip + ' user = ' + self.__str_db_user + ' pw= ' + self.__str_db_pw + 'datebase = config_db',Com_db_tools);
            log_manager.GetInstance().CoutLog('sql = ' + sql,Com_db_tools);
            return oErrorBase.base_failed,None;
        for dev_ip in cou.fetchall():
            str_dev_ip = dev_ip[0];
            t_ip_if_status_info.m_str_ip = str_dev_ip;
        sql = "SELECT [ifindex],[ifadminstatus],[ifoptstatus] FROM [config_db].[imc_config].[tbl_if_info] WHERE dev_id = %d"%(p_int_devid);
        try:
            cou.execute(sql);
        except Exception, e:
            log_manager.GetInstance().CoutLog('database error:' + str(e),Com_db_tools);
            log_manager.GetInstance().CoutLog('datebase error:ip = ' + self.__str_db_ip + ' user = ' + self.__str_db_user + ' pw= ' + self.__str_db_pw + 'datebase = config_db',Com_db_tools);
            log_manager.GetInstance().CoutLog('sql = ' + sql,Com_db_tools);
            return oErrorBase.base_failed,None;
        for (ifindex,ifadminstatus,ifoptstatus) in cou.fetchall():
            if_index = ifindex;
            if_adminstatus = ifadminstatus;
            if_optstatus = ifoptstatus;
            sql = "SELECT [ifdesc] FROM [config_db].[imc_config].[tbl_if_info] WHERE dev_id = %d AND ifindex = %d"%(p_int_devid,if_index);
            try:
                cou.execute(sql);
            except Exception, e:
                log_manager.GetInstance().CoutLog('database error:' + str(e),Com_db_tools);
                log_manager.GetInstance().CoutLog('datebase error:ip = ' + self.__str_db_ip + ' user = ' + self.__str_db_user + ' pw= ' + self.__str_db_pw + 'datebase = config_db',Com_db_tools);
                log_manager.GetInstance().CoutLog('sql = ' + sql,Com_db_tools);
                return oErrorBase.base_failed,None;
            for ifdesc in cou.fetchall():
                str_if_desc = ifdesc[0];
                if p_is_simu:
                    if (not common_tools.GetInstance().IsSiMuIfHasLink(str_if_desc)):
                        continue;
                t_ip_if_status_info.m_dict_if_status[str_if_desc] = self.CalculateIfStatus(if_adminstatus,if_optstatus);
        conn.close();
        log_manager.GetInstance().CoutLog('end to exec QueryIfInfoByDevID',Com_db_tools);
        return oErrorBase.base_succeed,t_ip_if_status_info;


    def QueryIfInfoByDevIP(self,p_str_dev_ip,p_int_if_index):
        log_manager.GetInstance().CoutLog('begin to exec QueryIfInfoByDevIP',Com_db_tools);
        t_ip_if_status_info = ip_if_status_info();
        t_ip_if_status_info.m_str_dev_ip = p_str_dev_ip;
        conn =None;
        cou = None;
        sql = "SELECT [dev_id] FROM [config_db].[imc_config].[tbl_dev] WHERE dev_ip = '%s'"%(p_str_dev_ip);
        try:
            log_manager.GetInstance().CoutLog(sql,Com_db_tools);
            conn = pymssql.connect(host=self.__str_db_ip, user=self.__str_db_user, password=self.__str_db_pw, database='config_db',charset='utf8');
            cou = conn.cursor();
            cou.execute(sql);
        except Exception, e:
            log_manager.GetInstance().CoutLog('database error:' + str(e),Com_db_tools);
            log_manager.GetInstance().CoutLog('datebase error:ip = ' + self.__str_db_ip + ' user = ' + self.__str_db_user + ' pw= ' + self.__str_db_pw + 'datebase = config_db',Com_db_tools);
            log_manager.GetInstance().CoutLog('sql = ' + sql,Com_db_tools);
            return oErrorBase.base_failed,None;
        for dev_id in cou.fetchall():
            int_dev_id = dev_id;
            t_ip_if_status_info.m_str_id = int_dev_id;
0 0
原创粉丝点击