Exemple #1
0
def exit_sys(log, txt, start, sendmail = False):    
    etgLib.log_error(log, txt)
    etgLib.log_close(log, start)
    if sendmail:
        emailSubject = script_name + " - Failed"        
        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText, emailAttachments, smtpServer)       
    sys.exit()
def main_func():

    start = datetime.datetime.now()
    labelsPath = os.path.join(wkgFolder, labelGDBname)

    err_msg = None
    args = []
    global emailAttachments

    try:
        log_path = os.path.join(sys.path[0], 'logs')
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "can't create a log file", start)

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(log, "preprod sde path: {0}".format(preprodSdePath))
        etgLib.log_info(log,
                        "preprod sde prefix: {0}".format(preprodSdePrefix))
        etgLib.log_info(log, "staging sde path: {0}".format(stgSdePath))
        etgLib.log_info(log, "staging sde prefix: {0}".format(stgSdePrefix))

        ## ========================================
        ## Process: check work folder age
        ## ========================================

        err_msg = etgLib.check_folder_age(wkgFolder, cutoffage)
        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

        ## ========================================
        ## Process: call CRS9_checkPreprodCounts
        ## ========================================
        args = [
            labelsPath, preprodSdePath, preprodSdePrefix, stgSdePath,
            stgSdePrefix, log
        ]
        err_msg = crs9_check_preprod_feature_counts(args)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

    except Exception as e:
        err_msg = str(e)
        etgLib.log_error(log, "error in {0}: {1}".format(script_name, e))

    etgLib.log_close(log, start)

    if sendMail:
        if err_msg != None:
            emailSubject = 'Run {} - Failed'.format(script_name)
        else:
            emailSubject = 'Run {} - Successful'.format(script_name)

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText,
                          emailAttachments, smtpServer)
Exemple #3
0
def main_func():

    start = datetime.datetime.now()

    err_msg = None
    args = []
    global emailAttachments

    try:
        log_path = os.path.join(sys.path[0], 'logs')
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "can't create a log file", start)

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(
            log, "preprod SPREPORT SDE path: {0}".format(prepSPREPORTpath))
        etgLib.log_info(
            log, "production SPREPORT SDE path: {0}".format(prodSPREPORTpath))
        etgLib.log_info(log,
                        "preprod SPOWN SDE path: {0}".format(prepSPOWNpath))
        etgLib.log_info(log,
                        "production SPOWN SDE path: {0}".format(prodSPOWNpath))

        ## ==============================================================
        ## Process: call CRS10_prodSPREPORTandSPOWNrefresh_with_fieldMap
        ## ==============================================================

        args = [
            prepSPREPORTpath, prodSPREPORTpath, prepSPOWNpath, prodSPOWNpath
        ]
        err_msg, log_msgs = crs10_prod_db_refresh(args)
        etgLib.log_info_all(log, log_msgs)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

    except Exception as e:
        err_msg = str(e)
        etgLib.log_error(log, "error in {0}: {1}".format(script_name, e))

    etgLib.log_close(log, start)

    if sendMail:
        if err_msg != None:
            emailSubject = 'Run {} - Failed'.format(script_name)
        else:
            emailSubject = 'Run {} - Successful'.format(script_name)

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText,
                          emailAttachments, smtpServer)
Exemple #4
0
def main_func():

    start = datetime.datetime.now()

    err_msg = None
    args = []
    global emailAttachments

    try:
        log_path = os.path.join(sys.path[0], 'logs')
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "can't create a log file", start)

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(log, "preprod sde path: {0}".format(preprodSdePath))
        etgLib.log_info(log, "sde prefix: {0}".format(preprodSdePrefix))

        ## ========================================
        ## Process: call CRS7_removeOldDataFromPreprod
        ## ========================================
        args = [preprodSdePath, preprodSdePrefix]
        err_msg, log_msgs = crs7_remove_old_data_from_preprod(args)

        etgLib.log_info_all(log, log_msgs)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

    except Exception as e:
        err_msg = str(e)
        etgLib.log_error(log, "error in {0}: {1}".format(script_name, e))

    etgLib.log_close(log, start)

    if sendMail:
        if err_msg != None:
            emailSubject = emailSubject1 + " - Failed"
        else:
            emailSubject = emailSubject1 + " - Successful"

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText,
                          emailAttachments, smtpServer)
Exemple #5
0
def main_func():
   
    start=datetime.datetime.now()
    # dateStamp = start.strftime("%Y%m%d")

    prj = os.path.join(wkgFolder,prjName)
    lbl = os.path.join(wkgFolder,labelGDBname)

    err_msg = None
    args = []
    global emailAttachments

    try:               
        log_path = os.path.join(sys.path[0], 'logs')      
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "can't create a log file", start)        

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(log, "working folder: {0}".format(wkgFolder))
        etgLib.log_info(log, "arcpro project: {0}".format(prj))
        etgLib.log_info(log, "lbl gdb: {0}".format(lbl))
        
        # ## =====================================
        # ## Process: call CRS_updateDataSourceAprx
        # ## =====================================
        # etgLib.log_info(log, 'calling CRS_updateDataSourceAprx', True)
        # args = [prj,lbl]        
        # err_msg = crs_update_datasource(args)
        
        # if err_msg != None:
        #     exit_sys(log, err_msg, start,sendMail)
        
        ## =====================================
        ## Process: call CRS_exportLabelToAnnoAprx
        ## =====================================
        etgLib.log_info(log, 'calling CRS_exportLabelToAnnoAprx', True)
        args = [prj,lbl]        
        err_msg = crs_label_to_annotation(args)
        
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)
       
    except Exception as e:       
        err_msg = str(e)        
        etgLib.log_error(log,"error in {0}: {1}".format(script_name,e))

    etgLib.log_close(log, start)
    print ("Finished!!!  Please check the result in ArcMap or ArcCatalog")
    

    if sendMail:
        if err_msg != None:
            emailSubject = 'Run {} - Failed'.format(script_name)
        else:
            emailSubject = 'Run {} - Successful'.format(script_name)

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText, emailAttachments, smtpServer)
def main_func():

    start = datetime.datetime.now()
    # dateStamp = start.strftime("%Y%m%d")

    mxd = os.path.join(wkgFolder, mxdName)
    lbl = os.path.join(wkgFolder, labelGDBname)

    err_msg = None
    args = []
    global emailAttachments

    try:
        log_path = os.path.join(sys.path[0], 'logs')
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "can't create a log file", start)

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(log, "working folder: {0}".format(wkgFolder))
        etgLib.log_info(log, "mxd: {0}".format(mxd))
        etgLib.log_info(log, "lbl gdb: {0}".format(lbl))
        etgLib.log_info(log, "extent string: {0}".format(extentString))
        etgLib.log_info(log, "sde path: {0}".format(stgSdePath))

        ## ========================================
        ## Process: check work folder age
        ## ========================================
        err_msg = etgLib.check_folder_age(wkgFolder, cutoffage)
        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

        # =============================
        # Process: check data existance
        # assume: mxd is in \CRS\MMMYYYY folder, create_Annotations.mxd CRS.GDB is in \CRS\MMMYYY folder
        # =============================
        etgLib.log_info(log, "Checking data existance", True)
        args = [mxd]
        for f in args:
            if not arcpy.Exists(f):
                err = "file does not exist: {}".format(f)
                exit_sys(log, err, start, sendMail)

        ## ========================================
        ## Process: call CRS5_prepareForCRSLables
        ## ========================================
        args = [wkgFolder, labelGDBname, stgSdePath, stgSdePrefix, log]
        err_msg = crs5_prepare_for_labels(args)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

        ## ========================================
        ## Process: check if data is in nz boundary
        ## ========================================
        args = [lbl, extentString, ['PARCEL_LABEL_PT'], log]
        err_msg = crs_check_data_extent(args)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

        ## =====================================
        ## Process: call CRS_updateDataSourceMxd
        ## =====================================
        args = [mxd, lbl, log]
        err_msg = crs_update_datasource_mxd(args)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

    except Exception as e:
        err_msg = str(e)
        etgLib.log_error(log, "error in CRS_Main2: {0}".format(e))

    etgLib.log_close(log, start)
    print("Finished!!!  Please check the result in ArcMap or ArcCatalog")

    if sendMail:
        if err_msg != None:
            emailSubject = 'Run {} - Failed'.format(script_name)
        else:
            emailSubject = 'Run {} - Successful'.format(script_name)

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText,
                          emailAttachments, smtpServer)
Exemple #7
0
def main_func():
    
    start=datetime.datetime.now()

    crs = os.path.join(wkgFolder,crsName)
    mxd = os.path.join(wkgFolder, mxdName)

    err_msg = None
    args = []
    global emailAttachments

    try:  
        # generate log file
        log_path = os.path.join(sys.path[0], 'logs')      
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "Can't create a log file", start)        

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(log, "working folder: {0}".format(wkgFolder))
        etgLib.log_info(log, "mxd name: {0}".format(mxd))
        etgLib.log_info(log, "crs gdb: {0}".format(crs))
        etgLib.log_info(log, "extent string: {0}".format(extentString))
        etgLib.log_info(log, "staging sde path: {0}".format(stgSdePath))

        ## ========================================
        ## Process: check work folder age
        ## ========================================
        err_msg = etgLib.check_folder_age(wkgFolder, cutoffage)
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)        

       
        # =============================
        # Process: check data existance 
        # check if check_data.aprx and CRS.GDB are in \CRS\MMMYYY folder
        # =============================
        etgLib.log_info(log, "Checking data existance",True)
        args = [prj,crs]
        for f in args:           
            if not arcpy.Exists(f):
                err = "file does not exist: {}".format(f)                
                exit_sys(log, err, start, sendMail) 
             
        ## ========================================
        ## Process: check if data is in nz boundary
        ## ========================================
        args = [crs, extentString, []]
        err_msg, log_msgs = crs_check_data_extent(args)
        etgLib.log_info_all(log, log_msgs)
        
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)

        ## =====================================
        ## Process: call CRS_updateDataSourceMxd
        ## =====================================
        args = [mxd,crs,log]        
        err_msg = crs_update_datasource_mxd(args)
        
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)
                
        
        ## ================================
        ## Process: call CRS1_repairCRSdata
        ## ================================   
        args = [crs,log]        
        err_msg, log_msgs = crs1_repair_crs_data(args)

        etgLib.log_info_all(log, log_msgs)
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)

        ## ===============================
        ## Process: call CRS2_emptyNDCSTAG
        ## ===============================   
        args = [stgSdePath]        
        err_msg, log_msgs = crs2_empty_stage_sde(args)

        etgLib.log_info_all(log, log_msgs)
        
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)
              

        ## ===================================
        ## Process: call CRS3_copyFCsToNZCSTAG
        ## ===================================   
        args = [stgSdePath,crs,stgSdePrefix]        
        err_msg, log_msgs = crs3_copy_fcs_stage(args)

        etgLib.log_info_all(log, log_msgs)
        
        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)
        
        ## ======================================
        ## Process: call CRS4_copyTablesToNZCSTAG
        ## ======================================   
        args = [stgSdePath,crs,stgSdePrefix]        
        err_msg, log_msgs = crs4_copy_tbls_stage(args)

        etgLib.log_info_all(log, log_msgs)
        
        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

    except Exception as e:       
        err_msg = str(e)        
        etgLib.log_error(log,"error in CRS_Main1: {0}".format(e))

    etgLib.log_close(log, start)
    print ("Finished!!!  Please check the result in ArcMap or ArcCatalog")
    

    if sendMail:
        if err_msg != None:
            emailSubject = 'Run {} - Failed'.format(script_name)
        else:
            emailSubject = 'Run {} - Successful'.format(script_name)

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText, emailAttachments, smtpServer)
def main_func():
   
    start=datetime.datetime.now()
    # dateStamp = start.strftime("%Y%m%d")

    err_msg = None
    args = []
    global emailAttachments

    try:               
        log_path = os.path.join(sys.path[0], 'logs')      
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "can't create a log file", start)        

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(log, "working folder: {0}".format(wkgFolder))
        

        ## ========================================
        ## Process: call CRS6_addDataPreparation
        ## ========================================       
        args = [wkgFolder,labelGDBname]            
        err_msg, log_msgs = crs6_add_data_preparation(args)
        
        etgLib.log_info_all(log, log_msgs)
        
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)

        ## ========================================
        ## Process: call CRS7_removeOldDataFromPreprod
        ## ========================================       
        args = [contextdSdePath,contextSdePrefix]            
        err_msg, log_msgs = crs7_remove_old_data_from_preprod(args)
        
        etgLib.log_info_all(log, log_msgs)
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)            
       
        ## ========================================
        ## Process: call CRS8_Extract_for_Connect
        ## ========================================      
        args = [wkgFolder, assetsGDBname, spreportSdePath,spreportSdePrefix,stgSdePath, stgSdePrefix]            
        err_msg, log_msgs = crs8_extract_for_connection(args)

        etgLib.log_info_all(log, log_msgs)
        
        if err_msg != None:
            exit_sys(log, err_msg, start,sendMail)  
                
    except Exception as e:       
        err_msg = str(e)        
        etgLib.log_error(log,"error in CRS_Main3: {0}".format(e))

    etgLib.log_close(log, start)
    print ("Finished!!!  Please check the result in ArcMap or ArcCatalog")
    

    if sendMail:
        if err_msg != None:
            emailSubject = 'Run {} - Failed'.format(script_name)
        else:
            emailSubject = 'Run {} - Successful'.format(script_name)

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText, emailAttachments, smtpServer)
Exemple #9
0
def main_func():

    start = datetime.datetime.now()
    # dateStamp = start.strftime("%Y%m%d")

    #Change this depending on whether using MXD or APRX (ArcGIS Pro) project
    prj = os.path.join(wkgFolder, prjName)
    lbl = os.path.join(wkgFolder, labelGDBname)

    err_msg = None
    args = []
    global emailAttachments

    try:
        log_path = os.path.join(sys.path[0], 'logs')
        log, logfile = etgLib.create_log(log_path, log_name)
        if log == None: exit_sys(log, "can't create a log file", start)

        emailAttachments = [logfile]

        etgLib.log_start(log)
        etgLib.log_info(log, "script parameters:")
        etgLib.log_info(log, "------------------------")
        etgLib.log_info(log, "working folder: {0}".format(wkgFolder))
        etgLib.log_info(log, "arcpro project: {0}".format(prj))
        etgLib.log_info(log, "lbl gdb: {0}".format(lbl))
        etgLib.log_info(log, "extent string: {0}".format(extentString))
        etgLib.log_info(log, "sde path: {0}".format(stgSdePath))

        # =============================
        # Process: check data existance
        # check if create_Annotations.mxd/.aprx  is in \CRS\MMMYYY folder
        # =============================
        etgLib.log_info(log, "Checking data existance", True)
        args = [prj]
        for f in args:
            if not arcpy.Exists(f):
                err_msg = "file does not exist: {}".format(f)
                exit_sys(log, err_msg, start, sendMail)

        ## ========================================
        ## Process: call CRS5_prepareForCRSLabels
        ## ========================================
        args = [wkgFolder, labelGDBname, stgSdePath, stgSdePrefix]
        err_msg, log_msgs = crs5_prepare_for_labels(args)

        etgLib.log_info_all(log, log_msgs)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

        ## ========================================
        ## Process: check if data is in NZ boundary by calling CRS_checkDataExtent
        ## ========================================
        args = [lbl, extentString, ['PARCEL_LABEL_PT']]
        err_msg, log_msgs = crs_check_data_extent(args)

        etgLib.log_info_all(log, log_msgs)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

        ## =====================================
        ## Process: call CRS_updateDataSourceAprx
        ## =====================================
        etgLib.log_info(log, 'calling CRS_updateDataSourceAprx', True)
        args = [prj, lbl]
        err_msg, log_msgs = crs_update_datasource(args)

        etgLib.log_info_all(log, log_msgs)

        if err_msg != None:
            exit_sys(log, err_msg, start, sendMail)

        # ## =====================================
        # ## Process: call CRS_exportLabelToAnnoAprx
        # ## =====================================
        # etgLib.log_info(log, 'calling CRS_exportLabelToAnnoAprx', True)
        # args = [prj,lbl]
        # err_msg, log_msgs = crs_label_to_annotation(args)
        # etgLib.log_info_all(log, log_msgs)
        # if err_msg != None:
        #     exit_sys(log, err_msg, start,sendMail)

    except Exception as e:
        err_msg = str(e)
        etgLib.log_error(log, "error in CRS_Main2: {0}".format(e))

    etgLib.log_close(log, start)
    print("Finished!!!  Please check the result in ARcGIS Pro or ArcCatalog")

    if sendMail:
        if err_msg != None:
            emailSubject = 'Run {} - Failed'.format(script_name)
        else:
            emailSubject = 'Run {} - Successful'.format(script_name)

        etgLib.send_email(emailFrom, emailTo, emailSubject, emailText,
                          emailAttachments, smtpServer)