def compare_node_status(previous_session_data, current_session_data, lookup_field): try: info_logger.info(" Comparing Node Details ") previous_session_node_details = json.loads(previous_session_data) def compare(current_session_data_dataObj): for node_index in range(0, len(previous_session_node_details)): if current_session_data_dataObj[ 'id'] == previous_session_node_details[node_index][ 'id']: keys = lookup_field.split('.') previous_run_data = get_value_for_lookUp_fields( previous_session_node_details[node_index], keys) current_run_data = get_value_for_lookUp_fields( current_session_data_dataObj, keys) return previous_run_data != current_run_data return True unique_result = list(filter(compare, current_session_data)) if not unique_result: info_logger.info(" no change ") else: write_node_data_to_file(current_session_data, current_session_data_file) return unique_result except Exception as e: error_logger.exception(str(e))
def read_previous_session_node_data(): previous_session_node_details=[] try: info_logger.info(" reading previous session node details ") if os.path.exists(os.path.join(sub_path,current_session_data_file)): previous_session_file = open(os.path.join(sub_path,current_session_data_file),'r') previous_session_node_details = previous_session_file.read() return previous_session_node_details except Exception as e: error_logger.exception(str(e))
def send_email(subject, message): try: server = smtplib.SMTP(settings.smtp_server, settings.smtp_port) server.starttls() server.login(settings.email_from, settings.email_from_pass) msg = MIMEMultipart("alternative") msg["Subject"] = Header(subject, 'utf-8') msg.attach(MIMEText(message.encode('utf-8'), 'html', 'UTF-8')) server.sendmail(settings.email_from, settings.email_to, msg.as_string()) except Exception, e: error_logger.exception(e)
def write_changes_in_node_result(node_data,comparator): info_logger.info(" writing result ") try: changed_data= json.dumps(node_data) if not os.path.isdir(path): os.mkdir(path) opened_result_file = open(os.path.join(path, "changes_in_"+comparator+".json"),'w') opened_result_file.write(str(changed_data)) opened_result_file.close() except Exception as e: error_logger.exception(str(e))
def write_node_data_to_file(node_data, file): try: node_dump_data= json.dumps(node_data) if not os.path.isdir(path): os.makedirs(sub_path) else: if not os.path.isdir(sub_path): os.mkdir(sub_path) info_logger.info(" writing Node Details for "+ file +" ") previous_session_file = open(os.path.join(sub_path,file),'w') previous_session_file.write(str(node_dump_data)) previous_session_file.close() except Exception as e: error_logger.exception(str(e))
def fetch_catchpoint_node_deatils(url, token): info_logger.info("fetching Node Details") try: headers = {'content-length': '0', 'accept': 'application/json', 'authorization': 'Bearer {}'.format(token) } response = requests.get( url,headers=headers) if response: data = response.json() return data['items'] except Exception as e: error_logger.exception(str(e))
def process(self): self._log_start() try: self._process() except Exception, e: error_logger.exception(e)
# from configparser import ConfigParser import os import logging import sys current_working_directory = os.getcwd() sys.path.insert(0, current_working_directory + '/libs') sys.path.insert(0, current_working_directory + '/utils') from common import check_node_field_changes from logger import info_logger, error_logger ## Main function try: check_node_field_changes() except Exception as e: error_logger.exception(str(e))