19

来源:互联网 发布:网页模板源码 编辑:程序博客网 时间:2024/04/30 01:18
    iResult = dev_sync_manager.GetInstance().GetDevInfoFromDB(param_tool.GetInstance().param_db_real.m_str_db_ip,param_tool.GetInstance().param_db_real.m_str_db_user,param_tool.GetInstance().param_db_real.m_str_db_pw,'real');
    if (oErrorBase.base_succeed != iResult):
        log_manager.GetInstance().CoutLog('If_Speed_Sync:GetRealDevInfoFromDB failed',Com_foreground_interface);
        return iResult;
    iResult = dev_sync_manager.GetInstance().GetDevInfoFromDB(param_tool.GetInstance().param_db_simulation.m_str_db_ip,param_tool.GetInstance().param_db_simulation.m_str_db_user,param_tool.GetInstance().param_db_simulation.m_str_db_pw,'simu');
    if (oErrorBase.base_succeed != iResult):
        log_manager.GetInstance().CoutLog('If_Speed_Sync:GetSimuDevInfoFromDB failed',Com_foreground_interface);
        return iResult;
    iResult = dev_sync_manager.GetInstance().WriteDevInfoToFile('real');
    if (oErrorBase.base_succeed != iResult):
        log_manager.GetInstance().CoutLog('If_Speed_Sync:WriteRealDevInfoToFile failed',Com_foreground_interface);
        return iResult;
    iResult = dev_sync_manager.GetInstance().WriteDevInfoToFile('simu');
    if (oErrorBase.base_succeed != iResult):
        log_manager.GetInstance().CoutLog('If_Speed_Sync:WriteSimuDevInfoToFile failed',Com_foreground_interface);
        return iResult;
    iResult = dev_sync_manager.GetInstance().SyncDevInfo('if_speed');
    if (oErrorBase.base_succeed != iResult):
        log_manager.GetInstance().CoutLog('If_Speed_Sync:SyncDevInfo failed',Com_foreground_interface);
        return iResult;
    log_manager.GetInstance().CoutLog('end to run run_if_speed_update.py',Com_foreground_interface);
    return oErrorBase.base_succeed;


#数据入库
def SaveDataToDB(list_db_param):
    str_real_ip = list_db_param[0];
    str_real_user = list_db_param[1];
    str_real_pw = list_db_param[2];
    str_simu_ip = list_db_param[3];
    str_simu_user = list_db_param[4];
    str_simu_pw = list_db_param[5];
    str_topo_name = list_db_param[6];
    data_manager.GetInstance().ClearRelationDataFromDB(str_simu_ip,str_simu_user,str_simu_pw);
    data_manager.GetInstance().GetOriginData(str_real_ip,str_real_user,str_real_pw,str_simu_ip,str_simu_user,str_simu_pw,str_topo_name);
    data_manager.GetInstance().AddIfInfotoDB(str_real_ip,str_real_user,str_real_pw,str_simu_ip,str_simu_user,str_simu_pw);
    data_manager.GetInstance().AddIPIDInfoToDB(str_simu_ip,str_simu_user,str_simu_pw);


"""
函数名:ScdlSync
函数参数:参数list[模拟视图id,操作,同步任务id,同步任务uid]
函数作用:最外层的功能控制流程
"""
def ScdlSync(list_param):
    log_manager.GetInstance().CoutLog('task begin...',Com_foreground_interface);
    t_str_time = '';
    t_int_task_status = task_status.task_exectuing;
    iResult = oErrorBase.base_succeed;


    #最先设置模拟数据库参数并打开模拟数据库,便于之后进行数据库操作,参数为程序获得的本机数据库参数
    simu_db_tool = db_tools();
    simu_db_tool.SetDBInfo(param_tool.GetInstance().m_str_simu_db_ip,param_tool.GetInstance().m_str_simu_db_user,param_tool.GetInstance().m_str_simu_db_pw);
    iResult = simu_db_tool.OpenDBCon('config_db');
    if (oErrorBase.base_succeed != iResult):
        log_manager.GetInstance().CoutLog('open simu db failed failed',Com_foreground_interface);
        return iResult;


    #利用将param_list转化成程序实际需要的各项参数
    iResult = param_tool.GetInstance().InitBasicParam(list_param);
    if (oErrorBase.base_succeed != iResult):
        t_str_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()));
        iResult = simu_db_tool.SetViewTaskStatus(param_tool.GetInstance().m_int_task_view_id,forground_task_status.task_fail);
        if (oErrorBase.base_succeed != iResult):
            log_manager.GetInstance().CoutLog('Set view Task Status failed',Com_foreground_interface);
            return iResult;
        iResult = simu_db_tool.SetSynTaskStatus(param_tool.GetInstance().m_str_task_uid,'',t_str_time,forground_task_status.task_fail);
        if (oErrorBase.base_succeed != iResult):
            log_manager.GetInstance().CoutLog('SetSynTaskStatus failed',Com_foreground_interface);
            return iResult;
        log_manager.GetInstance().CoutLog('InitBasicParam failed',Com_foreground_interface);
        log_manager.GetInstance().CoutLog('argv:',Com_foreground_interface);
        for elem in list_param:
            log_manager.GetInstance().CoutLog(str(elem),Com_foreground_interface);
        simu_db_tool.CloseDBCon();#关闭模拟数据库
        return oErrorBase.base_failed;


    param_tool.GetInstance().BasicParamInit();#由于参数的获取方式在测试和实际运行时有差别,为避免大范围的变量修改,用这个函数将实际逻辑处理出来的参数赋值给哥文件中使用的参数


    #根据topo名创建对应的模拟设备ip和真实设备ip的对应关系文件
    iResult = param_tool.GetInstance().CreateTopoIPRelationFile();
    if (oErrorBase.base_succeed != iResult):
        t_str_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()));
        iResult =simu_db_tool.SetViewTaskStatus(param_tool.GetInstance().m_int_task_view_id,forground_task_status.task_fail);
        if (oErrorBase.base_succeed != iResult):
            log_manager.GetInstance().CoutLog('Set view Task Status failed',Com_foreground_interface);
            return iResult;
        iResult = simu_db_tool.SetSynTaskStatus(param_tool.GetInstance().m_str_task_uid,'',t_str_time,forground_task_status.task_fail);
        if (oErrorBase.base_succeed != iResult):
            log_manager.GetInstance().CoutLog('SetSynTaskStatus failed',Com_foreground_interface);
            return iResult;
        log_manager.GetInstance().CoutLog('CreateTopoIPRelationFile failed',Com_foreground_interface);
        simu_db_tool.CloseDBCon();#关闭模拟数据库
        return oErrorBase.base_failed;


    #利用真实模拟ip对应文件初始化m_port_manager
    iResult = m_port_manager.GetInstance().DateInitFromFile(param_tool.GetInstance().param_db_real.m_str_db_topo_name + 'm_port_info.cfg');
    if (oErrorBase.base_succeed != iResult):
        t_str_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()));
        iResult = simu_db_tool.SetViewTaskStatus(param_tool.GetInstance().m_int_task_view_id,forground_task_status.task_fail);
        if (oErrorBase.base_succeed != iResult):
            log_manager.GetInstance().CoutLog('Set view Task Status failed',Com_foreground_interface);
            return iResult;
        iResult = simu_db_tool.SetSynTaskStatus(param_tool.GetInstance().m_str_task_uid,'',t_str_time,forground_task_status.task_fail);
        if (oErrorBase.base_succeed != iResult):
            log_manager.GetInstance().CoutLog('SetSynTaskStatus failed',Com_foreground_interface);
            return iResult;
        log_manager.GetInstance().CoutLog('DateInitFromFile failed',Com_foreground_interface);
        simu_db_tool.CloseDBCon();#关闭模拟数据库
        return oErrorBase.base_failed;


    if (oErrorBase.base_succeed != iResult):
        t_str_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()));
        iResult = simu_db_tool.SetViewTaskStatus(param_tool.GetInstance().m_int_task_view_id,forground_task_status.task_fail);
        if (oErrorBase.base_succeed != iResult):
0 0