def updateHeader(self): global dailyAllowanceValue global totalExpensesValue global records global userEmail # totalExpensesValue = get_sum_of_day(currDate)[0]['total'] # calculate sum of all records locally totalExpensesValue = sum([int(rec['amount']) for rec in records]) balanceValue = dailyAllowanceValue - totalExpensesValue percentageUsed = int((totalExpensesValue / dailyAllowanceValue) * 100) self.incomeVal.setText(str(dailyAllowanceValue)) self.expensesVal.setText(str(totalExpensesValue)) self.balanceVal.setText(str(balanceValue)) if (balanceValue > 0): self.progressBar.setValue(percentageUsed) else: send_mail(userEmail, totalExpensesValue) self.progressBar.setValue(100) self.progressBar.setTextVisible(False) # self.progressBar.setFormat(str(percentageUsed) + '%') self.progressBar.setAlignment(Qt.AlignCenter) self.progressBar.setStyleSheet( """QProgressBar::chunk { background: %s; }""" % '#ff4000')
def mean_squared_error(image1, image2): list_of_files = glob.glob('/home/pi/Desktop/camera/*.jpg') latest_file = max(list_of_files, key=os.path.getctime) # get latest file in our directory text = "Possible motion detected" subject = "Pi security camera alert" send_to = "test" send_from = "test" #Load images original = cv2.imread("control.jpg", 0) # control file of what the house looks like questionable = cv2.imread(latest_file, 0) image1 = image1.astype(float) image2 = image2.astype(float) error_rank = np.sum((image1 - image2) ** 2) error_rank /= float(image1.shape[0] * image1.shape[1]) test = calculated(error_ranking) if test == True: send_mail(send_from, send_to, subject, text, latest_file) else: time1 = time.strftime("%d/%m/%Y %H:%M:%S") re.sub('[^A-Za-z0-9]+', '', time1) f = open(error_rank+"-"time1+".txt", 'w+') f.close
def get_accounts(): """ RETURNS ALL SL ACCOUNTS (ACCOUNTS, KEYS AND DESCRIPTION) """ # Get accounts to be procesed url = "https://dstnotes.lexington.ibm.com/DST/servers.nsf/CGI_SLAPIConfig?OpenAgent&login" request = urllib2.Request(url) base64string = base64.encodestring("%s:%s" % ("*****@*****.**", "sadb_uat")).replace("\n", "") request.add_header("Authorization", "Basic %s" % base64string) try: result = urllib2.urlopen(request) except Exception as e: send_mail("", "NOTES AGENT ERROR: Could not be possible to retrieve SL accounts and keys information") log.error("NOTES AGENT ERROR: Could not be possible to retrieve SL accounts and keys information") print "NOTES AGENT ERROR: Could not be possible to retrieve SL accounts and keys" sys.exit(234) sl_accounts = result.read().split("\n") # with open("accounts.txt", "r") as myfile: # data = myfile.read() # accounts = data.split('\n') account_data = [] for sl_acc in sl_accounts: if not sl_acc: continue account_data.append(sl_acc.split("/")) return account_data
def register_user(**kwargs): kwargs.pop('password_confirm', None) user = User.create(**kwargs) signal_context = {'user': user} mail_context = {'user': user} if system_requires_confirmation(): confirmation_token, confirmation_link = \ generate_confirmation_token_and_link(user) signal_context['confirmation_token'] = confirmation_token mail_context['confirmation_link'] = confirmation_link user_registered.send( current_app._get_current_object(), **signal_context) send_mail( 'Thank you for registering!', current_app.config['MAIL_DEFAULT_SENDER'], user.email, plain_template_path='users/emails/welcome.txt.html', html_template_path='users/emails/welcome.html', **mail_context) return user
def create_summary_html(total_count, total_pass, total_fail, pass_percentage, today_date, project_name, json_data): fname = PATH + "/test_data/temp/summary_" + today_date + ".html" base_string = """ <html> <head><title> """ + project_name + """ API Functionality Testing Report </title></head> <body> <table><tr><td> Project Name : """ + project_name + """</td></tr><tr><td> Exection Timestamp : """ + today_date.replace( "_", ":" ) + """</td></tr></table> <table style="border-collapse: collapse;border: 1px solid black;"> <tr><th style="border-collapse: collapse;border: 1px solid black;"> Total # TCs </th><th style="border-collapse: collapse;border: 1px solid black;"> Total Pass </th><th style="border-collapse: collapse;border: 1px solid black;"> Total Failures </th><th style="border-collapse: collapse;border: 1px solid black;"> Passed % </th> </tr><tr> <td style="border-collapse: collapse;border: 1px solid black;">""" + str( total_count ) + """</td><td style="border-collapse: collapse;border: 1px solid black;">""" + str( total_pass ) + """</td><td style="border-collapse: collapse;border: 1px solid black;">""" + str( total_fail ) + """</td><td style="border-collapse: collapse;border: 1px solid black;">""" + str( pass_percentage) + """</td> </table> </br> <hr> </br> Summary Report: </br> </br> <table style="border-collapse: collapse;border: 1px solid black;"> <tr><th style="border-collapse: collapse;border: 1px solid black;">ID</th><th style="border-collapse: collapse;border: 1px solid black;">Summary</th><th style="border-collapse: collapse;border: 1px solid black;">API</th><th>Header Match Result</th><th style="border-collapse: collapse;border: 1px solid black;">Body Match Result</th><th style="border-collapse: collapse;border: 1px solid black;">Code Match Result</th><th style="border-collapse: collapse;border: 1px solid black;">Overall Result</th><th style="border-collapse: collapse;border: 1px solid black;">Reason of Failure</th></tr> """ body_string = "" for test_case in json_data['data']: body_string = body_string + """ <tr><td style="border-collapse: collapse;border: 1px solid black;">""" + str( test_case['@id'] ) + """</td><td style="border-collapse: collapse;border: 1px solid black;">""" + str( test_case['@n'] ) + """</td><td style="border-collapse: collapse;border: 1px solid black;"> """ + str( test_case['@api'] ) + """</td><td style="border-collapse: collapse;border: 1px solid black;">""" + str( test_case['@hr'] ) + """</td><td style="border-collapse: collapse;border: 1px solid black;"> """ + str( test_case['@br'] ) + """</td><td style="border-collapse: collapse;border: 1px solid black;">""" + str( test_case['@cr'] ) + """</td><td style="border-collapse: collapse;border: 1px solid black;"> """ + str( test_case['@o'] ) + """</td><td style="border-collapse: collapse;border: 1px solid black;">""" + str( test_case['reason']) + """</td> """ body_end_string = """ </table> """ final_string = base_string + body_string + body_end_string send_mail(final_string, project_name)
def get_sql(): conn=pymssql.connect(host='119.29.98.161',database='emailremind',user='******',password='******') cur=conn.cursor() #now_time = judge_time() now_time = time.strftime('%Y/%m/%d %H:%M:00',time.localtime(time.time())) #print now_time #降序排序(升序ASC) cur.execute('select * FROM remind WHERE time=%s and condition=%s' ,(now_time,"no")) row = cur.fetchone() if row != None: get_time = row[3].rstrip()[:-3] #如果提醒时间相等,开始提醒并发送邮件 print '提醒时间 :'.decode('utf8')+ now_time title = '【'.decode('utf8')+row[0].rstrip()+'】'.decode('utf8') +row[1].rstrip() print '提醒标题 :'.decode('utf8')+ title content = row[2].rstrip() print '提醒内容 :'.decode('utf8') + content list = row[4] print '提醒邮箱 :'.decode('utf8') + list send_mail(list,title,content) cur.execute('EXEC alter_remind @title=%s,@time=%s,@email=%s',(row[1],row[3],row[4])) conn.commit() #提交修改 print "-----------------------------------" #为了防止数据库中还剩余没有提醒过的活动,状态设为yes # if now_time > get_time: # cur.execute('EXEC alter_remind @title=%s,@time=%s,@email=%s',(row[1],row[3],row[4])) # conn.commit() #提交修改 conn.close()
def report_formatter(bm_scanned, exec_time, scan_type): # Log file files = [] curr_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) kvm_log_file = commands.getstatusoutput("ls -lat %s/logs | grep kvm | head -1 | awk \'{print $9}\'" % curr_dir)[1] kvm_log_file = "%s/logs/%s" % (curr_dir, kvm_log_file) csv_log_file = commands.getstatusoutput("ls -lat %s/logs | grep csv | head -1 | awk \'{print $9}\'" % curr_dir)[1] csv_log_file = "%s/logs/%s" % (curr_dir, csv_log_file) output_file = "%s/logs/output.log" % curr_dir f = open(kvm_log_file, "r") err_lines = [] for line in f: if "SCRIPT STARTED" in line: script_started = line[line.find("SCRIPT STARTED"):].replace("\n", "")[15:] if "ERROR" in line: err_lines.append(line) if "Baremetals scanned" in line: bm_scanned = line[line.find("Baremetals scanned"):].replace("\n", "")[19:] if "END OF EXECUTION" in line: exec_time = line[line.find("END OF EXECUTION"):].replace("\n", "")[17:-4] if "total_guests" in line: total_guests = line[line.find("total_guests"):].replace("\n", "")[13:] if "total_accounts" in line: total_accounts = line[line.find("total_accounts"):].replace("\n", "")[15:] err_file = create_error_file(err_lines) files.append(csv_log_file) files.append(err_file) files.append(output_file) html = html_mail_generator(bm_scanned, script_started, exec_time, total_guests, total_accounts, scan_type) send_mail(files, html) os.system("rm %s" % err_file) f.close()
def filter_match_code(match_code, match_type): msg="" has_new_code=0 f = my_filter(match_code) match_code, restrict_code, expect_loss_code = f.filter_code print ('') # to align the display if match_code: msg += '%s match code are : \n'%match_type for code in match_code: if code not in printed_code: has_new_code = 1 msg += code+"\n" printed_code.append(code) if restrict_code: msg += 'restrict code are : \n' for code in restrict_code: if code not in printed_code: has_new_code = 1 msg += code+"\n" printed_code.append(code) if expect_loss_code: msg += 'expect loss code are : \n' for code in expect_loss_code: if code not in printed_code: has_new_code = 1 msg += code+"\n" printed_code.append(code) print(msg) if args.send_mail and has_new_code: send_mail(msg)
def check_named_conf_by_named_check(): cmd = "named-checkconf %s" % named_config_path result = os.popen(cmd).read() if result != '': print(result) send_mail( u"%s::配置文件检查失败" % title, '<html><head></head><body>named-checkconf has faild:%s<br/>named will not restart and check script stopd</body></html>' % result) exit()
def fullContactEmailSend(sender, user, request, **kwargs): email = user.email data = fullContactCollect(email) if data['status']==200: messgae= data send_mail("Full Contact Data", data, '*****@*****.**', '*****@*****.**', fail_silently=False)
def modify_before_load(max_date_log, sql_script_name, increment_datatype, default_date): try: if path.exists(max_date_log) == True: data_frame = read_csv(max_date_log, delimiter='|', quoting=1) max_value = data_frame.query( 'fileName == @sql_script_name')['maxValueInLastLoad'].max() if (isnull(max_value) == True): if (increment_datatype == 'DATETIME'): new_max_value = default_date modify_log().info( f"New max value {new_max_value} for incremental load for {sql_script_name} " ) else: new_max_value = '0' modify_log().info( f"New max value {new_max_value} for incremental load for {sql_script_name} " ) else: new_max_value = max_value modify_log().info( f"New max value {new_max_value} for incremental load for {sql_script_name} " ) else: new_max_value = { True: '0', False: default_date }[increment_datatype == 'INT'] data_frame = DataFrame({ 'fileName': [sql_script_name], 'maxValueInLastLoad': new_max_value, 'dataType': [increment_datatype] }) data_frame.to_csv(max_date_log, sep='|', index=False, quoting=1, mode='w', header=True) modify_log().info( f"new file creted with new entry for {sql_script_name}") return new_max_value except Exception as e: modify_log().exception(e) send_mail(to_address='*****@*****.**', subject='ALERT: Marketing Cloud Data Feed - Execution Error', email_message=traceback.format_exc())
def handle_uploaded_file(f): # media 不存在创建 media_path = os.path.abspath(settings.MEDIA_ROOT) if not os.path.exists(media_path): os.makedirs() # 文件已存在则删除 file_path = os.path.join(media_path, f.name) if os.path.exists(file_path): os.remove(file_path) destination = open(file_path, 'wb+') for chunk in f.chunks(): destination.write(chunk) destination.close() # if is_mobi(file_path): send_mail(file_path)
def modify_after_load(max_date_log, csv_file_name, sql_script_name, increment_datatype, increment_max_value): try: data_frame = csv_file_name df_configure_file = read_csv( max_date_log, delimiter='|') #Read incremental_load_config file line_count = len(data_frame) if line_count > 0: max_value = increment_max_value if ( (df_configure_file['fileName'] == sql_script_name).max() ) == True: #if sql_script_name is present in config file then swap old max value with new max value index = df_configure_file.index df_configure_file.at[(index[df_configure_file["fileName"] == sql_script_name].tolist()), 'maxValueInLastLoad'] = max_value df_configure_file.to_csv(max_date_log, sep='|', index=False, quoting=1, mode='w', header=True) else: #if sql_script_name is not present in config file add new entry new_line = { 'fileName': sql_script_name, 'maxValueInLastLoad': max_value, 'dataType': increment_datatype } new_df = df_configure_file.append(new_line, ignore_index=True, sort=False) new_df.to_csv(max_date_log, sep='|', index=False, quoting=1, mode='w', header=True) except Exception as e: modify_log().exception(e) send_mail(to_address='*****@*****.**', subject='ALERT: xxx Cloud Data Feed - Execution Error', email_message=traceback.format_exc())
def forget_password(): form = ForgetPasswordForm() if form.validate_on_submit(): user = User.query.filter_by(email = form.email.data).first() if user.nickname == form.nickname.data and user.ID_num == form.ID_num.data: if user.verify_password(form.password.data): flash('密码并未改变!') return redirect(url_for('auth.login')) user.password = form.password.data user.confirmed = False token = user.generate_confirmation_token() send_mail(user.email, '更改密码', 'auth/email/confirm', user=user, token=token) db.session.add(user) db.session.commit() flash('已重新向您的邮箱发送了确认邮件,请前往确认!') return redirect(url_for('auth.login')) flash ('邮箱,昵称及ID号不匹配!') return render_template('auth/forget_password.html', form=form)
def send_mail_to_contact_list(contact_list_file_path, subject, message_template_path, attachments): ''' Send mail to all the contacts from the contact list file individually with subject, message and attachments parameters: contact_list_file_path - the path of the contact list file, it can be a txt/xlsx/csv file subject - subject of the mail message_template_path - path of the message template file attachments - list of attachments to be attached ''' contact_list = get_contact_list(contact_list_file_path) message_template = read_template(message_template_path) for name, email in contact_list: # add in the actual person name to the message template message = message_template.substitute(PERSON_NAME=name.title()) send_mail(email, subject, message, attachments) print("message sent to : ", name)
def register(): form = RegisterForm() if form.validate_on_submit(): user = User(nickname=form.nickname.data, name=form.name.data, gender=form.gender.data, password=form.password.data, ID_num=form.ID_num.data, email=form.email.data, state=True) db.session.add(user) db.session.commit() token = user.generate_confirmation_token() send_mail(user.email, '确认账户', 'auth/email/confirm', user=user, token=token) login_user(user, 1) next = request.args.get('next') if next is None or not next.startswith('/'): next = url_for('main.index') return redirect(next) return render_template('auth/register.html', form=form)
def monitor(self): while True: cur_time = time.time() err_msg = '' if cur_time - self.m_last_check > self.m_check_interval: log_info('monitor start checking.') check_beg_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(self.m_last_check)) check_end_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(cur_time)) '''do new file num check''' if self.m_min_file_num > 0: for file_path in self.m_file_path_lst: cnt = 0 file_lst = get_file_lst(self.m_file_pattern, file_path, False) for file_item in file_lst: if os.path.getmtime(file_item) > self.m_last_check: cnt += 1 if cnt < self.m_min_file_num: cur_err_msg = '[NewFileCheck] [FAILED] %s: new files num %d < %d\n\n' \ % (file_path, cnt, self.m_min_file_num) if err_msg == '': err_msg += 'From %s To %s:\n\n' % (check_beg_time, check_end_time) err_msg += cur_err_msg log_info(cur_err_msg) else: log_info('[NewFileCheck] [OK] new file num: %d' % cnt) if self.m_net_check_url.strip(' ') != '': try: urllib2.urlopen(self.m_net_check_url) log_info('[NetCheck] [OK]') except Exception, err: cur_err_msg = '[NetCheck] [FAILED] %s\n\n' % err if err_msg == '': err_msg += 'From %s To %s:\n\n' % (check_beg_time, check_end_time) err_msg += cur_err_msg log_info(cur_err_msg) if err_msg != '': send_mail(self.m_mail_tolist, self.m_monitor_name, err_msg, self.m_mail_server, \ self.m_mail_username, self.m_mail_password, self.m_mail_postfix, self.m_mail_fromname) self.m_last_check = cur_time if cur_time - self.m_last_check < self.m_check_interval: time.sleep(self.m_check_interval - (cur_time - self.m_last_check))
def change_password(): if not current_user.is_authenticated: flash('您还未登录!') next = request.referrer if next is None or not next.startswith('/'): next = url_for('auth.login') return redirect(next) form = ChangePasswordForm() if form.validate_on_submit(): current_user.password = form.password.data current_user.confirmed = False db.session.add(current_user) db.session.commit() token = user.generate_confirmation_token() send_mail(user.email, '确认密码', 'auth/email/confirm', user=user, token=token) login_user(user, 1) next = request.args.get('next') if next is None or not next.startswith('/'): next = url_for('main.index') return redirect(next) return render_template('auth/change_password.html', form=form)
def send_confirmation_instructions(user): """Sends confirmation instructions email to the specified user :param user: User to send instructions to """ confirmation_token, confirmation_link = \ generate_confirmation_token_and_link(user) signal_context = {'user': user, 'confirmation_token': confirmation_token} mail_context = {'user': user, 'confirmation_link': confirmation_link} send_mail( 'Please confirm your email address', current_app.config['MAIL_DEFAULT_SENDER'], user.email, plain_template_path='users/emails/confirmation_instructions.txt.html', html_template_path='users/emails/confirmation_instructions.html', **mail_context) confirmation_instructions_sent.send( current_app._get_current_object(), **signal_context)
def user_registration(conn): while True: print('user is asking for registration') user_reg_data = recieve(conn) user_reg_data=user_reg_data print(user_reg_data) #chcek if the user exist or not user=user_checker(user_reg_data['email']) print(user) if user==False: code=send_mail(user_reg_data['email']) send(conn,code) while True: email_verified = recieve(conn) if email_verified==True: break create_user(user_reg_data) send(conn,'True') # send(conn,code) break else: send(conn,'False') print('going out of the registration')
def getWlist(): f = open(WHITE_LIST, 'r') for lines in f: l = lines.rstrip() if l == '': continue tempip = IP(l) for x in tempip: wlist.append(x.strNormal()) if __name__ == '__main__': logs = [] list = [] mail_content = [] getLogbuf(logs) if logs == []: exit() for l in logs: list.append(alert(l)) save(list) if mail_content != []: send_mail(mail_to=[ ADMIN_EMAIL, ], mail_subject=SMTP_SUBJECT, mail_content='\n'.join(mail_content)) f = open(LOG_FILE, 'w') f.write('') f.close()
tc += 1 cr.close() book.close() title = u'{0:04d}{1:02d}{2:02d}慧聪负面新闻'.format(now.year, now.month, now.day) mail_send = [ '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**' ] # mail_send = ['*****@*****.**'] body = '' send_mail( title, body, mail_send, 'HuiCong_YuQing_{0:04d}_{1:02d}_{2:02d}.xlsx'.format( now.year, now.month, now.day)) ## reset fetch status cr.execute(''' UPDATE HUICONG_QUQING_KEYWORD_TBL SET BAIDU_WANGYE_FETCH_STATUS=0, BAIDU_XINWEN_FETCH_STATUS=0, BAIDU_ZHIDAO_FETCH_STATUS=0, BAIDU_WENKU_FETCH_STATUS=0, BAIDU_TIEBA_FETCH_STATUS=0, SOGOU_WANGYE_FETCH_STATUS=0, SOGOU_XINWEN_FETCH_STATUS=0, SO_WANGYE_FETCH_STATUS=0, SO_XINWEN_FETCH_STATUS=0, BAIDU_M_QUANBU_FETCH_STATUS=0,
def start(): testDNSInfo, testAInfo = load_test_info() # 加载配置文件 check_named_conf_by_named_check() # 使用named-checkconf检查配置文件 conf = NamedConfig(named_config_path) current_status = check_conf_file(conf) if not current_status: print("settings is different from %s" % named_config_path) exit() start_time = 0 send_mail(u"%s::保护脚本已开启." % title, "<h3>DNS探测保护脚本已开启。</h3>") while conf.check_hash(): all_msg = "<html><head></head><body>" flag = 0 if not check_named_process(): msg = "named process is not existed,try restart;" logger.info(msg) restart_named() send_mail(u"%s::named进程不存在" % title, msg) time.sleep(300) continue msg = "current DNS is %s" % json.dumps(current_status) logger.info(msg) # 检查各个view中的默认forward方向 for view_name, current_rule_id in current_status.iteritems(): status = view_default_forward_check(view_name, current_rule_id) if (type(status) is bool) and (status is False): # 全部dns探测失败,准备切换到楚天 if start_time == 0: # 初次发现,开始计时,策略不变 start_time = time.time() msg = "all of view %s's default forwarders has filed;plan to change dns to %s;left %d s" % ( view_name, ";".join( final_default_change_ip[1]), wait_time) logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) elif time.time() - start_time > wait_time: # 计时达到标准,切换到楚天方向 for one in conf.view_list: if one['name'] == view_name: msg = "change view %s default forwarders to %s;" % ( view_name, ';'.join(status[1])) one['info'][ 'forwarders'] = final_default_change_ip[1] current_status[ view_name] = final_default_change_ip[0] flag += 1 logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) else: pass elif (type(status) is bool) and (status is True): # 当前策略探测成功,且没有优先级更高的策略成功 if start_time != 0: # 若已经开始切换计时,则停止计时 start_time = 0 else: # 当前dns探测失败,且有其他dns探测成功 if status[0] == final_default_change_ip[ 0]: # 其他所有dns探测失败,楚天方向dns探测成功 if start_time == 0: # 初次发现,准备切换到楚天方向 start_time = time.time() msg = "plan change view %s default forwarders to %s;left %d s" % ( view_name, ";".join( final_default_change_ip[1]), wait_time) logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) elif time.time() - start_time > wait_time: for one in conf.view_list: if one['name'] == view_name: msg = "change view %s default forwarders to %s;" % ( view_name, ';'.join(status[1])) one['info']['forwarders'] = status[1] current_status[view_name] = status[0] flag += 1 logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) else: # 其他dns探测成功,正常切换 if start_time != 0: # 若已经开始切换计时,则停止计时 start_time = 0 for one in conf.view_list: if one['name'] == view_name: msg = "change view %s default forwarders to %s;" % ( view_name, ';'.join(status[1])) one['info']['forwarders'] = status[1] current_status[view_name] = status[0] flag += 1 logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) # 检查各view中除默认外的其他forward方向 for testDNSIp, forwardInfos in testDNSInfo.iteritems( ): # forward DNS 监测 status = check_dns(testDNSIp.split(';')) for forwardInfo in forwardInfos["forwardInfo"]: if (status is True) and (forwardInfos['status'] is False): # 链路恢复,forward DNS测试成功 flag += 1 msg = "add view %s include %s,test dns %s;" % ( forwardInfo["viewName"], forwardInfo["forwardName"], testDNSIp) logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) elif (status is False) and (forwardInfos['status'] is True): # 链路故障,forward DNS测试失败 flag += 1 msg = "delete view %s include %s,test dns %s;" % ( forwardInfo["viewName"], forwardInfo["forwardName"], testDNSIp) logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) else: # 链路状态没有变化 pass testDNSInfo[testDNSIp]["status"] = status for testA, forwardInfos in testAInfo.iteritems(): # CDN主机监测 status = check_host_by_tcp_ping(testA.split(';')) for forwardInfo in forwardInfos["forwardInfo"]: if (status is True) and (forwardInfos['status'] is False): # 主机测试成功 flag += 1 msg = "view %s include %s,test IP %s success;" % ( forwardInfo["viewName"], forwardInfo["forwardName"], testA) logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) elif (status is False) and (forwardInfos['status'] is True): # 主机测试失败 flag += 1 msg = "delete view %s include %s,test A %s;" % ( forwardInfo["viewName"], forwardInfo["forwardName"], testA) logger.info(msg.strip()) all_msg += ("%s<br/>" % msg) else: # 链路状态没有变化 pass testAInfo[testA]["status"] = status for one in conf.view_list: # 将探测结果同步到named conf中 one["info"]["include"] = [] for forwardName, testInfo in view_rulers[ one["name"]]["forwards"].iteritems(): testDNS = ';'.join(testInfo["testDNS"]) if "testA" in testInfo: # 如果存在test host, 判断test host是否成功 if (testAInfo[';'.join(testInfo["testA"])]["status"] is True) and (testDNSInfo[testDNS]["status"] is True): one["info"]["include"].append((forwardName, 100)) else: if testDNSInfo[testDNS]["status"] is True: one["info"]["include"].append((forwardName, 100)) if flag != 0: dump_named_conf() if not conf.save(): break restart_named() msg = "restart named service" logger.info(msg) all_msg += ("%s<br/></body></html>" % msg) send_mail(u"%s::DNS切换提醒." % title, all_msg) time.sleep(5) send_mail( u"%s::配置文件异常修改." % title, "%s has been modified by someone,check script stop" % named_config_path)
instance_id = True else: instance_id = False # IP discover options -- scan_type = params[2] # ---------------------- total_accounts = len(accounts) log.info("total_accounts %d" % total_accounts) startTime = datetime.now() # CSV writer writer, csv_log_file = set_csv_writer() # KVM discovery --------------------------------------------------- try: kvm_discovery(accounts, params[1], writer, scan_type) except Exception as e: send_mail("", "Discovery error: Unhandled Exception (%s)" % e) log.error("Discovery error: %s" % e) print "Discovery error: Unhandled Exception (%s)" % e sys.exit(444) # ----------------------------------------------------------------- csv_log_file.close() exec_time = str(datetime.now() - startTime) log.info("Baremetals scanned %d" % bm_scanned) log.info("total_guests %d" % total_guests) log.info("END OF EXECUTION %s" % exec_time) print "\n--------------------------------------------" print "# Baremetals found: %d" % bm_scanned print "# END OF EXECUTION %s" % exec_time print "--------------------------------------------" if not output: sys.stdout.close()
def send_error(user): toaddr = os.environ.get('ERROR_EMAIL') subject = '{user} had a FATAL ERROR!'.format(user=str(user)) body = "Look into heroku logs and notify user" send_mail(toaddr, subject, body)
print(sys.path) <<<<<<< HEAD ======= >>>>>>> 8400c1fce91249948c13240b8074b40f11bd4263 report_file = os.path.join(report_path,'report.txt') if 'report.txt' in os.listdir(report_path): os.remove(report_file) print("######"+report_path) print("*******"+report_file) from send_mail import * def creatsuite(): discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py", top_level_dir=None) print(discover) return discover #discover 方法筛选出来的用例,循环添加到测试套件中 for test_case in discover: print(test_case) testunit.addTests(test_case) return testunit if __name__ == "__main__": runner = unittest.TextTestRunner() runner.run(creatsuite()) send_mail(report_file)
def getResponse(input_statement,sessionId,response,cont_id): note_flag = False lastResponse = "" lastQuery = "" chat_type = "chat" chat_stage="0" replyVal = "" values = {} count_reply = 0 session_ended = "false" vip_list = ["PU","AU","GP","AV","BR"] user_name = assigned_group = company_address = company_division = dbBucket = mongo_bucket = sub_bucket = category = ticket_number = notes = user_problem_query = category_detected = force_enable_flag = "" Corporate_ID = Summary = Urgency = Impact = Assigned_Group = MNM_Chatbot_ID = Notes = user_role_band="" suggestion_enable = False with open(answers_json) as answer_file: answersData = json.load(answer_file) with open("/var/www/html/mSolvebot_response.json") as resp_file: respData = json.load(resp_file) last_resp_row = coll1.find({"_sessionId":sessionId}).sort( [{ "_id",-1 }] ).limit(1) if last_resp_row: mongoObjjson = json.dumps(list(last_resp_row),default=json_util.default) mongoObjjson = json.loads(mongoObjjson) mongoObjjson = filter(None,mongoObjjson) if mongoObjjson: lastResponse = mongoObjjson[0].get('lastResp') category = mongoObjjson[0].get('category') sub_bucket = mongoObjjson[0].get('sub_bucket') lastQuery = mongoObjjson[0].get('lastQuery') count_reply = mongoObjjson[0].get('count_rep') mongo_bucket = mongoObjjson[0].get('bucket') note_flag = mongoObjjson[0].get('note_flag') chat_stage = mongoObjjson[0].get('chat_stage') ticket_number = mongoObjjson[0].get('ticket_number') # user_details_row = userDetailsCollection.find({"sessionId":sessionId}).sort( [{ "_id",-1 }] ) user_details_row = userDetailsCollection.find({"cont_id":cont_id}).sort( [{ "_id",-1 }] ).limit(1) if user_details_row: mongoObjjson = json.dumps(list(user_details_row),default=json_util.default) mongoObjjson = json.loads(mongoObjjson) mongoObjjson = filter(None,mongoObjjson) if mongoObjjson: user_name = mongoObjjson[0].get('user_name') company_address = mongoObjjson[0].get('company_address') company_division = mongoObjjson[0].get('company_division') role = mongoObjjson[0].get('role') manager_id = mongoObjjson[0].get('reports_to') manager_role_band = mongoObjjson[0].get('manager_role_band') user_role_band = mongoObjjson[0].get('user_role_band') ticket_details_row = ticket_details_collection.find({"sessionId":sessionId}).sort( [{ "_id",-1 }] ).limit(1) if ticket_details_row: mongoObjjson = json.dumps(list(ticket_details_row),default=json_util.default) mongoObjjson = json.loads(mongoObjjson) mongoObjjson = filter(None,mongoObjjson) if mongoObjjson: Corporate_ID = mongoObjjson[0].get('Corporate_ID') Summary = mongoObjjson[0].get('Summary') Urgency = mongoObjjson[0].get('Urgency') Impact = mongoObjjson[0].get('Impact') Assigned_Group = mongoObjjson[0].get('Assigned_Group') MNM_Chatbot_ID = mongoObjjson[0].get('MNM_Chatbot_ID') Notes = mongoObjjson[0].get('Notes') input_statement = re.sub(r'[^a-zA-Z0-9-:.@/ ]', '',input_statement).strip() input_statement = ' '.join(input_statement.split()) print("---------------- =++++++++++++++ this is inp {}".format(input_statement)) greet = getGreetings(input_statement) praise = getPraiseWords(input_statement) if input_statement == "createit": replyVal = respData["id-1015"]["answer"] replyJson = {"reply":replyVal} replyJson.update({"chat_type":chat_type}) replyJson["data"]=values note_flag = False chat_stage="0" if values: replyJson["data"]=values chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) replyJson.update({"chatEnable":chat_enable}) replyJson.update({"suggestion_enable":"True"}) replyJson.update({"session_ended":session_ended}) convoTime = datetime.datetime.now() pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,"",count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) pushConversationLogsToMongo(sessionId,convoTime,"Create Ticket",replyVal,user_name,cont_id,Notes) return replyJson elif input_statement == "statusit": ## ticket_list = get_incidentId_from_mongo(cont_id) #ticket_list = get_unresolved_ticket_list(cont_id) #if ticket_list: # ticket_dictionary = {} # for i in ticket_list: # print "00000000000000 --------------- {}".format(i) # if type(i[1]) is list: # ticket_description = " > ".join(i[1]) # else: # ticket_description = i[1] # #if not ticket_description: # # ticket_description = "Sorry, this ticket is not updated yet." # ticket_dictionary[i[0]] = i[0]+": "+ticket_description # replyVal = respData["id-1016"]["answer"] # ticket_dictionary = od(sorted(ticket_dictionary.items(),reverse=True)) # values = ticket_dictionary # # card_values = card_dictionary # replyJson = {"reply":replyVal} # replyJson["data"]=values # chat_stage = "checkstatus" # force_enable_flag = "on" # chat_type = "card" ticket_list = get_open_tickets_by_user(cont_id) if ticket_list: ticket_dict = od() for i in ticket_list: ticket_dict[i] = i+":"+str(ticket_list[i]) replyVal = respData["id-1016"]["answer"] ticket_list = od(sorted(ticket_list.items(),reverse=True)) #values = ticket_list values = ticket_dict # card_values = card_dictionary replyJson = {"reply":replyVal} replyJson["data"]=values chat_stage = "checkstatus" force_enable_flag = "on" chat_type = "card" else: # replyVal = respData["id-1017"]["answer"] replyVal = respData["id-1024"]["answer"] replyJson = {"reply":replyVal} # values = {"createit":"Create Ticket","statusit":"Check Ticket Status"} values = {"createit":"Create Ticket"} chat_stage = "checkstatus" # session_ended = "true" force_enable_flag = "on" chat_type = "radio" replyJson.update({"chat_type":chat_type}) note_flag = True if values: replyJson["data"]=values # replyJson["card_data"] = card_values chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) replyJson.update({"chatEnable":chat_enable}) replyJson.update({"suggestion_enable":"False"}) replyJson.update({"session_ended":session_ended}) convoTime = datetime.datetime.now() pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) pushConversationLogsToMongo(sessionId,convoTime,"Check Ticket Status",replyVal,user_name,cont_id,Notes) return replyJson # elif greet[-1] == True: # replyVal = greet[0].replace("xyz",user_name) # replyJson = {"reply":replyVal} # replyJson.update({"chat_type":chat_type}) # replyJson["data"]=values # if values: # replyJson["data"]=values # chat_enable = chatEnable(chat_type) # replyJson.update({"chatEnable":chat_enable}) # replyJson.update({"session_ended":session_ended}) # convoTime = datetime.datetime.now() # pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) # pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,notes) # return replyJson #elif praise[-1] == True: # replyVal = praise[0].replace("xyz",user_name) # replyJson = {"reply":replyVal} # replyJson.update({"chat_type":chat_type}) # replyJson["data"]=values # if values: # replyJson["data"]=values # chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) # replyJson.update({"chatEnable":chat_enable}) # replyJson.update({"session_ended":session_ended}) # convoTime = datetime.datetime.now() # pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) # pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) # return replyJson else: pass if chat_stage == "sop": if input_statement.lower() == "yeshelpful": replyVal = "Great " + user_name +". Happy to help you. </br> Have a nice day." replyJson = {"reply":replyVal} chat_type = "radio" replyJson.update({"chat_type":chat_type}) values = {"createit":"Create Ticket","statusit":"Ticket Status"} session_ended = "true" elif input_statement.lower() == "nothelpful": resp = requests.request("get","https://emss.mahindra.com/sap/bc/zhr_tq_emp_det?sap-client=500&IV_PERNR="+manager_id) resp_list = resp.text.split("-//-") suggestion_enable = False try: manager_role_band = resp_list[4] except: manager_role_band = "" if "secretary" in role.lower() and manager_role_band in vip_list: replyVal = "I will help you raise a ticket.<br>"+respData["id-1014"]["answer"] chat_stage = "3" chat_type = "radio" manager_name = resp_list[2]+" "+resp_list[3] values = { cont_id : user_name, manager_id : manager_name } else: chat_stage = "note_stage" # replyVal = getRandomApology()+"<br>"+respData["id-1012"]["answer"].replace("xyz-loc",company_address)+" ("+category+")" #replyVal = "I will raise a ticket for you. <br>"+respData["id-1012"]["answer"].replace("xyz-loc",company_address) replyVal = "Alright. I will raise a ticket for you. </br>Please provide some additional details about your issue/request.</br>So that our support team can help you better." replyJson = {"reply":replyVal} replyJson.update({"chat_type":chat_type}) note_flag = True if values: replyJson["data"]=values chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) replyJson.update({"chatEnable":chat_enable}) replyJson.update({"suggestion_enable":"False"}) replyJson.update({"session_ended":session_ended}) convoTime = datetime.datetime.now() pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) return replyJson if chat_stage == "checkstatus": phone = "" #if "INC" in input_statement.upper() and len(input_statement) == 15: if input_statement.upper().startswith("INC") and len(input_statement) == 15 or input_statement.upper().startswith("WO") and len(input_statement) == 15: try: #ticket_stat = ticket_status_details(input_statement.upper()) ticket_stat = get_ticket_status_details(input_statement.upper()) if len(filter(None,ticket_stat)) > 3: if ticket_stat[1] and ticket_stat[3]: replyVal = "Dear <b>{}</b>.</br>Status of your ticket: <b>{}</b>.</br>Reason for the status is: <b>{}</b></br>Your ticket has been assigned to: <b>{}</b>.</br>Happy to help you.".format(user_name,ticket_stat[0],ticket_stat[1],ticket_stat[3]) elif ticket_stat[1] and not ticket_stat[3]: replyVal = "Dear <b>{}</b>.</br>Status of your ticket: <b>{}</b>.</br>Reason for the status is: {}</br>Happy to help you.".format(user_name,ticket_stat[0],ticket_stat[1]) elif ticket_stat[3] and not ticket_stat[1]: replyVal = "Dear <b>{}</b>.</br>Status of your ticket: <b>{}</b>.</br>Your ticket has been assigned to: <b>{}</b>.</br>Happy to help you.".format(user_name,ticket_stat[0],ticket_stat[3]) elif len(filter(None,ticket_stat)) <= 3: replyVal = "Dear <b>{}</b>.</br>Status of your ticket: <b>{}</b>.</br>There are no more details yet. Please check back later.</br>Happy to help you.".format(user_name,ticket_stat[0]) # ticket_stat,comment = status_ticket_bmc(input_statement.upper()) # replyVal = "Dear " + user_name + ". Status of your ticket - <b>" + ticket_stat + "</b>.</br> Have a nice day." replyJson = {"reply":replyVal} #chat_type = "radio" chat_type = "phone" replyJson.update({"chat_type":chat_type}) #values = {"createit":"Create Ticket","statusit":"Check Ticket Status"} values = {"createit":"Create Ticket","statusit":"Ticket Status"} phone = "02224915544" session_ended = "true" except: replyVal = respData["id-1018"]["answer"] replyJson = {"reply":replyVal} replyJson.update({"chat_type":chat_type}) replyJson["data"]=values replyJson["phone"]=phone chat_stage = "checkstatus" else: replyVal = respData["id-1019"]["answer"] replyJson = {"reply":replyVal} replyJson.update({"chat_type":chat_type}) replyJson["data"]=values chat_stage = "checkstatus" note_flag = True if values: replyJson["data"]=values chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) replyJson.update({"chatEnable":chat_enable}) replyJson.update({"suggestion_enable":"False"}) replyJson.update({"session_ended":session_ended}) convoTime = datetime.datetime.now() pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) return replyJson if chat_stage == "1": if input_statement == "skip": location = company_address if user_role_band and user_role_band in vip_list: assigned_group = get_assigned_group(location,"vip",category) push_ticket_details_mongo(sessionId,Assigned_Group=assigned_group,Urgency="2-High",Impact="2-Significant/Large") print("asssssssgggggggg group {}".format(assigned_group)) elif "secretary" in role.lower() and manager_role_band in vip_list: assigned_group = get_assigned_group(location,company_division,category,secretary_flag = True) push_ticket_details_mongo(sessionId,Assigned_Group=assigned_group,Urgency="4-Low",Impact="4-Minor/Localized") print("asssssssgggggggg group {}".format(assigned_group)) else: assigned_group = get_assigned_group(location,company_division,category) push_ticket_details_mongo(sessionId,Assigned_Group=assigned_group,Urgency="4-Low",Impact="4-Minor/Localized") print("asssssssgggggggg group {}".format(assigned_group)) else: location_list = [] with open("/var/www/html/mahindra_location_list.csv") as f: location_data = csv.reader(f) for i in location_data: location_list.append(i[0].lower()) location_details = input_statement.split(" - ") if len(location_details) > 1: location_input = location_details[0].lower().strip() company_division = location_details[1].strip() else: location_input = location_details[0].lower().strip() #if input_statement.lower() in location_list: #location = input_statement if str(location_input) in location_list: if user_role_band and user_role_band in vip_list: location = location_input assigned_group = get_assigned_group(location,"vip",category) push_ticket_details_mongo(sessionId,Assigned_Group=assigned_group,Urgency="2-High",Impact="2-Significant/Large") print("gggggggggrouppppppppppp {}".format(assigned_group)) else: location = location_input assigned_group = get_assigned_group(location,company_division,category) push_ticket_details_mongo(sessionId,Assigned_Group=assigned_group,Urgency="4-Low",Impact="4-Minor/Localized") print("gggggggggrouppppppppppp {}".format(assigned_group)) else: note_flag = True chat_stage = "1" chat_type = "address" replyVal = "Please enter a valid location." replyJson = {"reply":replyVal} replyJson.update({"chat_type":"chat"}) replyJson.update({"chatEnable":"true"}) replyJson.update({"suggestion_enable":"False"}) replyJson.update({"session_ended":"false"}) return replyJson if "kanhe" in location.lower(): note_flag = True chat_stage = "1i" chat_type = "radio" values = {"kanhe1":"Kanhe1","kanhe2":"Kanhe2"} # force_enable_flag = "on" replyVal = respData["id-1013"]["answer"] else: note_flag = True chat_stage = "last" chat_type = "radio" values = od() values["confirm"] = "Confirm" values["cancel"] = "Cancel" replyVal = respData["id-1008"]["answer"] elif chat_stage == "1i": location = input_statement assigned_group = get_assigned_group(location,company_division,category) push_ticket_details_mongo(sessionId,Assigned_Group=assigned_group,Urgency="4-Low",Impact="4-Minor/Localized") print("grrrrrrrrp assignd {}".format(assigned_group)) note_flag = True chat_stage = "2" #chat_type = "radio" #values = {"skip":"Skip"} #force_enable_flag = "on" #replyVal = respData["id-1007"]["answer"]+"<br>"+respData["id-1001"]["answer"]+" "+assigned_group #replyVal = respData["id-1007"]["answer"]+"<br>"+respData["id-1001"]["answer"] replyVal = "Alright.</br>Please elaborate your issue.</br>So that our support team can help you better." elif chat_stage == "note_stage": replyVal = getRandomApology()+"<br>"+respData["id-1012"]["answer"].replace("xyz-loc",company_address) notes = input_statement push_ticket_details_mongo(sessionId,Notes=notes) note_flag = True chat_stage = "1" chat_type = "address" values = {"skip":"Skip"} force_enable_flag = "on" elif chat_stage == "2": if input_statement == "skip": pass else: notes = input_statement push_ticket_details_mongo(sessionId,Notes=notes) note_flag = True chat_stage = "last" chat_type = "radio" values = {"cancel":"Cancel","confirm":"Confirm"} replyVal = respData["id-1008"]["answer"] elif chat_stage == "rating": replyVal = respData["id-1011"]["answer"] + user_name + ", for your feedback." values = {"createit":"Create Ticket","statusit":"Ticket Status"} chat_type = "radio" # force_enable_flag = "on" session_ended = "true" elif chat_stage == "3": if input_statement == manager_id: assigned_group = get_assigned_group(company_address,"vip",category) push_ticket_details_mongo(sessionId,Assigned_Group=assigned_group,Urgency="2-High",Impact="2-Significant/Large") print("vip assigned group ------ {}".format(assigned_group)) note_flag = True chat_stage = "2" #chat_type = "radio" #values = {"skip":"Skip"} #force_enable_flag = "on" #replyVal = respData["id-1007"]["answer"]+"<br>"+respData["id-1001"]["answer"]+ " "+assigned_group #replyVal = respData["id-1007"]["answer"]+"<br>"+respData["id-1001"]["answer"] replyVal = "Alright.</br>Please elaborate your issue.</br>So that our support team can help you better." else: # print "vip assigned group ------ {}".format(get_assigned_group(company_address,"secretary",category)) # note_flag = True # chat_stage = "2" # chat_type = "radio" # values = {"skip":"Skip"} # force_enable_flag = "on" # replyVal = respData["id-1007"]["answer"]+"<br>"+respData["id-1001"]["answer"] chat_stage = "note_stage" # chat_type = "radio" replyVal = "Alright. I will raise a ticket for you. </br>Please provide some additional details about your issue/request.</br>So that our support team can help you better." elif chat_stage == "last": if input_statement == "cancel": replyVal = respData["id-1010"]["answer"] + user_name +". "+ respData["id-1009"]["answer"] #remove ticket details which have not been created i.e. cancelled ones ticket_details_collection.delete_one({"sessionId":sessionId}) chat_type = "radio" values = {"createit": "Create Ticket", "statusit":"Ticket Status"} #force_enable_flag = "on" session_ended = "true" elif input_statement == "confirm": try: ticket_number = create_ticket_bmc(Corporate_ID=Corporate_ID,Summary=Summary, Urgency=Urgency,Impact=Impact,Assigned_Group=Assigned_Group,MNM_Chatbot_ID=sessionId,Notes=Notes) #ticket_number = ticketGenerator() except: api_error_report = traceback.format_exc() send_mail(Corporate_ID,api_error_report,time_stamp=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),Summary=Summary, Urgency=Urgency,Impact=Impact,Assigned_Group=Assigned_Group,MNM_Chatbot_ID=sessionId,Notes=Notes) push_bmc_API_error_details_mongo(sessionId) push_bmc_API_error_details_mongo(sessionId,Corporate_ID=Corporate_ID,TS=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),Summary=Summary,Assigned_Group=Assigned_Group,API_error_report=api_error_report) raise push_to_ticket_archieve_mongo(sessionId) push_to_ticket_archieve_mongo(sessionId, incidentId = ticket_number,Corporate_ID=Corporate_ID,Summary=Summary, Urgency=Urgency,Impact=Impact,Assigned_Group=Assigned_Group,MNM_Chatbot_ID=sessionId,Notes=Notes) # replyVal = respData["id-1011"]["answer"] + user_name +". "+ respData["id-1002"]["answer"].replace('XYZ123',ticket_number) replyVal = respData["id-1002"]["answer"].replace('XYZ123',ticket_number) chat_type = "rating" chat_stage = "rating" note_flag = True # values = {"statusit":"Check Ticket Status"} # force_enable_flag = "on" # session_ended = "true" query = input_statement if note_flag is False: if lastQuery: query = lastQuery+" "+query bucket,sub_bucket,kwd = extract_buckets(query.lower()) if not mongo_bucket: mongo_bucket = bucket reply,confidence = bot.get_response(query) push_ticket_details_mongo(sessionId) push_ticket_details_mongo(sessionId,Summary=query,Corporate_ID=cont_id,MNM_Chatbot_ID=sessionId) print("response ----------------------- {}".format(reply)) resp = requests.request("get","https://emss.mahindra.com/sap/bc/zhr_tq_emp_det?sap-client=500&IV_PERNR="+manager_id) resp_list = resp.text.split("-//-") try: manager_role_band = resp_list[4] except: manager_role_band = "" if mongo_bucket and sub_bucket: reply = str(reply) category = answersData[reply]['answer'] #if category == "Identity Management > Password Reset": # replyVal = "Please follow below steps to reset the password. </br> 1. Go to this link https://example.com/password_reset </br> 2. Click on change password. </br> 3. Enter old password. </br> 4. Enter new password. </br> 5. Click submit and you're done. </br></br> Was this helpful?" # note_flag = True # chat_stage = "sop" # chat_type = "radio" # values = { "yeshelpful" : "Yes", "nothelpful" : "No, create ticket." } # replyJson = {"reply":replyVal} # replyJson.update({"chat_type":chat_type}) # replyJson["data"]=values # if values: # replyJson["data"]=values # chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) # replyJson.update({"chatEnable":chat_enable}) # replyJson.update({"session_ended":session_ended}) # convoTime = datetime.datetime.now() #pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) #pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) #return replyJson if category == "Operating Systems > Drivers Installation > Printer driver installation": replyVal = respData["id-1021"]["answer"]+"</br></br>"+respData["id-1022"]["answer"] note_flag = True chat_stage = "sop" chat_type = "radio" values = { "yeshelpful" : "Yes", "nothelpful" : "No, create ticket." } replyJson = {"reply":replyVal} replyJson.update({"chat_type":chat_type}) replyJson["data"]=values if values: replyJson["data"]=values chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) replyJson.update({"chatEnable":chat_enable}) replyJson.update({"session_ended":session_ended}) convoTime = datetime.datetime.now() pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) return replyJson elif category == "Operating Systems > System settings > System proxy settings": replyVal = respData["id-1023"]["answer"]+"</br></br>"+respData["id-1022"]["answer"] note_flag = True chat_stage = "sop" chat_type = "radio" values = { "yeshelpful" : "Yes", "nothelpful" : "No, create ticket." } replyJson = {"reply":replyVal} replyJson.update({"chat_type":chat_type}) replyJson["data"]=values if values: replyJson["data"]=values chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) replyJson.update({"chatEnable":chat_enable}) replyJson.update({"session_ended":session_ended}) convoTime = datetime.datetime.now() pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) return replyJson note_flag = True if "secretary" in role.lower() and manager_role_band in vip_list: replyVal = getRandomApology()+"<br>"+respData["id-1014"]["answer"] suggestion_enable = False chat_stage = "3" chat_type = "radio" manager_name = resp_list[2]+" "+resp_list[3] values = { cont_id : user_name, manager_id : manager_name } else: chat_stage = "note_stage" suggestion_enable = False replyVal = "Alright.</br>Please elaborate your issue.</br>So that our support team can help you better." elif mongo_bucket and not sub_bucket: reply = str(reply) category = answersData[reply]['answer'] single_word_reply = handleSingleWords(reply) if single_word_reply: replyVal = single_word_reply suggestion_enable = True else: # if category == "Identity Management > Password Reset": # replyVal = "Please follow steps mentioned below to reset the password. </br> 1. Go to this link https://example.com/password_reset </br> 2. Click on change password. </br> 3. Enter old password. </br> 4. Enter new password. </br> 5. Click submit and you're done. </br></br> Was this helpful?" # note_flag = True # chat_stage = "sop" # chat_type = "radio" # values = { "yeshelpful" : "Yes", "nothelpful" : "No, create ticket." } # replyJson = {"reply":replyVal} # replyJson.update({"chat_type":chat_type}) # replyJson["data"]=values # if values: # replyJson["data"]=values # chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) # replyJson.update({"chatEnable":chat_enable}) # replyJson.update({"session_ended":session_ended}) # convoTime = datetime.datetime.now() # # pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) # pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) # return replyJson # elif category == "Operating Systems > Drivers Installation > Printer driver installation": # replyVal = respData["id-1021"]["answer"]+"</br></br>"+respData["id-1022"]["answer"] # note_flag = True # chat_stage = "sop" # chat_type = "radio" # values = { "yeshelpful" : "Yes", "nothelpful" : "No, create ticket." } # replyJson = {"reply":replyVal} # replyJson.update({"chat_type":chat_type}) # replyJson["data"]=values # if values: # replyJson["data"]=values # chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) # replyJson.update({"chatEnable":chat_enable}) # replyJson.update({"session_ended":session_ended}) # convoTime = datetime.datetime.now() # # pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) # pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) # return replyJson # elif category == "Operating Systems > System settings > System proxy settings": # replyVal = respData["id-1023"]["answer"]+"</br></br>"+respData["id-1022"]["answer"] # note_flag = True # chat_stage = "sop" # chat_type = "radio" # values = { "yeshelpful" : "Yes", "nothelpful" : "No, create ticket." } # replyJson = {"reply":replyVal} # replyJson.update({"chat_type":chat_type}) # replyJson["data"]=values # if values: # replyJson["data"]=values # chat_enable = chatEnable(chat_type,force_enable_flag=force_enable_flag) # replyJson.update({"chatEnable":chat_enable}) # replyJson.update({"session_ended":session_ended}) # convoTime = datetime.datetime.now() # # pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,input_statement,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) # pushConversationLogsToMongo(sessionId,convoTime,input_statement,replyVal,user_name,cont_id,Notes) # return replyJson if "secretary" in role.lower() and manager_role_band in vip_list: note_flag = True replyVal = getRandomApology()+"<br>"+respData["id-1014"]["answer"] suggestion_enable = False chat_stage = "3" chat_type = "radio" manager_name = resp_list[2]+" "+resp_list[3] values = { cont_id : user_name, manager_id : manager_name } else: # replyVal = getRandomApology()+"<br>"+respData["id-1012"]["answer"].replace("xyz-loc",company_address)+" ("+category+")" replyVal = "Alright.</br>Please provide some additional details about your issue/request.</br>So that our support team can help you better." chat_stage = "note_stage" suggestion_enable = False # chat_type = "radio" elif sub_bucket and not mongo_bucket: count_reply = count_reply+1 replyVal = respData["id-1003"]["answer"] suggestion_enable = True if count_reply == 2: if "secretary" in role.lower() and manager_role_band in vip_list: note_flag = True suggestion_enable = False replyVal = respData["id-1004"]["answer"]+"<br>"+respData["id-1014"]["answer"] chat_stage = "3" chat_type = "radio" manager_name = resp_list[2]+" "+resp_list[3] values = { cont_id : user_name, manager_id : manager_name } else: note_flag = True # replyVal = respData["id-1004"]["answer"]+"<br>"+respData["id-1012"]["answer"].replace("xyz-loc",company_address)+" ("+category+")" replyVal = respData["id-1004"]["answer"]+"<br>"+"Please provide some additional details about your issue/request.</br>So that our support team can help you better." chat_stage = "note_stage" suggestion_enable = False push_unclassified_queries_mongo(sessionId) push_unclassified_queries_mongo(sessionId,Corporate_ID=cont_id,Query=query) elif not mongo_bucket and not sub_bucket: print("i am here in this condition --------------- ........... {}".format(count_reply)) count_reply = count_reply+1 single_word_reply = handleSingleWords(reply) if single_word_reply: replyVal = single_word_reply suggestion_enable = True else: replyVal = respData["id-1003"]["answer"] suggestion_enable = True if count_reply == 2: print("am i here +++++++++++ .......... +++++++++++++++ {}".format(count_reply)) if "secretary" in role.lower() and manager_role_band in vip_list: note_flag = True replyVal = respData["id-1004"]["answer"]+"<br>"+respData["id-1014"]["answer"] suggestion_enable = False chat_stage = "3" chat_type = "radio" manager_name = resp_list[2]+" "+resp_list[3] values = { cont_id : user_name, manager_id : manager_name } else: note_flag = True # replyVal = respData["id-1004"]["answer"]+"<br>"+respData["id-1012"]["answer"].replace("xyz-loc",company_address)+" ("+category+")" replyVal = respData["id-1004"]["answer"]+"<br>"+"Please provide some additional details about your issue/request.</br>So that our support team can help you better." suggestion_enable = False chat_stage = "note_stage" # chat_type = "radio" push_unclassified_queries_mongo(sessionId) push_unclassified_queries_mongo(sessionId,Corporate_ID=cont_id,Query=query) replyJson = {"reply":replyVal} replyJson.update({"chat_type":chat_type}) replyJson["data"]=values if suggestion_enable: replyJson.update({"suggestion_enable":"True"}) else: replyJson.update({"suggestion_enable":"False"}) if values: replyJson["data"]=values chat_enable = chatEnable(chat_type,force_enable_flag = force_enable_flag) replyJson.update({"chatEnable":chat_enable}) replyJson.update({"session_ended":session_ended}) convoTime = datetime.datetime.now() if note_flag is not False: input_statement = "" print("category --- problem category --------------- {}".format(category)) pushUserDetailsToMongo(sessionId = sessionId, manager_role_band = manager_role_band) pushLastResponseInMongo(sessionId,replyVal,category,sub_bucket,query,count_reply,mongo_bucket,note_flag,chat_stage,ticket_number,session_ended) # pushLastResponseInMongo(sessionId,r = replyVal,c = category) pushConversationLogsToMongo(sessionId,convoTime,query,replyVal,user_name,cont_id,Notes) return replyJson
price_change = est_perc_increase(ticker, algo_inputs) return price_change, current_price, historical_dataset if __name__ == "__main__" and len(sys.argv) > 1 and sys.argv[1] == "auto": while True: d = datetime.datetime.now(pytz.timezone('US/Eastern')) try: print(d) if d.hour == 9 and d.minute == 30: market_clock = api.get_clock() if market_clock.is_open: print('buying now') stuff = opening_buys(["JNUG", "NUGT", "JDST", "DUST"]) print(f"info: {stuff}") else: print('market is closed today') send_mail(subject="Market closed today", body="We are not performing any transactions") time.sleep(60 * 60 * 24 - 60 * 5) # sleep one day minus five minutes elif d.hour == 15 and d.minute == 58: print('liquidate') liquidate() except Exception as e: print(e) continue finally: time.sleep(60)
filename = file_name_with_path.split("\\")[-1] attachment_file = open(file_name_with_path, "rb") # Instance of MIMEBase and named as attachment attachment = MIMEBase('application', 'octet-stream') # To change the payload into encoded form attachment.set_payload((attachment_file).read()) # Encode into base64 encoders.encode_base64(attachment) #Add header to the attachment attachment.add_header('Content-Disposition', "attachment; filename= %s" % filename) # Attach the instance 'p' to instance 'msg' msg.attach(attachment) return msg if __name__ == '__main__': #importing for testing from send_mail import * import smtp_server_config as config receiver_mail = config.RECEIVER_EMAIL print(receiver_mail) subject = 'Python email' message = "Python Test Mail" attachments = ['price.xlsx'] send_mail(receiver_mail, subject, message, attachments)
def send(self): logger.info("send email to %s, subject: %s, message: %s" % (self.email, self.subject, self.message)) from {{cookiecutter.project}}.rpc.message.email.django import send_mail return send_mail(self.subject, self.message, self.email)
if __name__ == "__main__": """ MAIN """ startTime = datetime.now() params = menu() if params[0]: account = params[0] date = datetime.now().strftime("%d/%m/%Y %H:%M:%S") print '\n---------------------------------------' print "# SCRIPT STARTED at %s" % str(date) print '---------------------------------------' # Script startup mail notification ------- html = html_mail_script_started(startTime) send_mail([], html) # --------------------------------------- # This procedure will collect the report records ---------------- try: records = get_records(account) except Exception as e: send_mail('', "Billing Script: Unhandled Exception (%s)" % e) print "Billing Script: Unhandled Exception (%s)" % e sys.exit(444) # --------------------------------------------------------------- print "\n" print 48 * "-" print "# Creating CSV records" print 48 * "-"
def resend_confirmation(): token = current_user.generate_confirmation_token() send_mail(current_user.email, '确认账户', 'auth/email/confirm', user=current_user, token=token) flash('已向您的邮箱新发送了一封确认邮件,请登录邮箱确认您的账户。') return redirect(url_for('main.index'))
def send(subject,body,recipient_list): body += MAIL_FOOT send_mail(subject,body,FROM_EMAIL,recipient_list)
if l == '': continue tempip = IP(l) for x in tempip: wlist.append(x.strNormal()) if __name__ == "__main__": queues = {} wlist = [] getWlist() rf() mail_content = [] for key in queues.keys(): cmds = ';'.join(queues[key][4:]) content = "%s, hostname=%s, DeviceIP=%s, user logged from %s, command(s) is(are) %s" % (queues[key][0], queues[key][1], queues[key][2], queues[key][3], cmds ) mail_content.append(content) mail_content = '\n\n'.join(mail_content) if mail_content == "": exit() f = open(FILE, 'w') f.write('') f.close() ADMIN_EMAIL = "*****@*****.**" SMTP_SUBJECT = "Some Subject" send_mail(mail_to=[ADMIN_EMAIL, ], mail_subject=SMTP_SUBJECT, mail_content=mail_content)
loglist.append(line) f.close() return def getWlist(): f = open(WHITE_LIST, 'r') for lines in f: l = lines.rstrip() if l == '': continue tempip = IP(l) for x in tempip: wlist.append(x.strNormal()) if __name__ == '__main__': logs = [] list = [] mail_content = [] getLogbuf(logs) if logs == []: exit() for l in logs: list.append(alert(l)) save(list) if mail_content != []: send_mail(mail_to=[ADMIN_EMAIL,], mail_subject=SMTP_SUBJECT, mail_content='\n'.join(mail_content)) f = open(LOG_FILE, 'w') f.write('') f.close()