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)
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)
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)
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)
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)
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)