mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 03:07:56 +00:00
lf_check.py : path updates, font updates, email updates per lf_check_jbr.py (dank u)
Signed-off-by: Chuck SmileyRekiere <chuck.smileyrekiere@candelatech.com>
This commit is contained in:
@@ -18,7 +18,8 @@ Before using lf_check.py
|
||||
2. update lf_check_config.ini to enable (TRUE) tests to be run in the TEST_DICTIONARY , the TEST_DICTIONARY needs to be passed in
|
||||
|
||||
'''
|
||||
|
||||
import datetime
|
||||
import pprint
|
||||
import sys
|
||||
if sys.version_info[0] != 3:
|
||||
print("This script requires Python3")
|
||||
@@ -26,17 +27,14 @@ if sys.version_info[0] != 3:
|
||||
|
||||
|
||||
import os
|
||||
import pexpect
|
||||
import socket
|
||||
import logging
|
||||
import time
|
||||
from time import sleep
|
||||
import argparse
|
||||
import json
|
||||
from json import load
|
||||
import configparser
|
||||
from pprint import *
|
||||
import subprocess
|
||||
import re
|
||||
import csv
|
||||
import shutil
|
||||
import os.path
|
||||
@@ -106,15 +104,41 @@ class lf_check():
|
||||
self.host_ip_test = None
|
||||
|
||||
# NOT complete : will send the email results
|
||||
def send_results_email(self):
|
||||
def send_results_email(self, report_file=None):
|
||||
if (report_file is None):
|
||||
print( "No report file, not sending email.")
|
||||
return
|
||||
report_url=report_file.replace('/home/lanforge/', '')
|
||||
if report_url.startswith('/'):
|
||||
report_url = report_url[1:]
|
||||
# Following recommendation
|
||||
# NOTE: https://stackoverflow.com/questions/24196932/how-can-i-get-the-ip-address-from-nic-in-python
|
||||
#command = 'echo "$HOSTNAME mail system works!" | mail -s "Test: $HOSTNAME $(date)" chuck.rekiere@candelatech.com'
|
||||
hostname = socket.gethostname()
|
||||
ip = socket.gethostbyname(hostname)
|
||||
message_txt = """Results from {hostname}:\\n
|
||||
http://{ip}/{report}\\n
|
||||
NOTE: for now to see stdout and stderr remove /home/lanforge from path.\\n
|
||||
""".format(hostname=hostname, ip=ip, report=report_url)
|
||||
|
||||
|
||||
mail_subject = "Regression Test [{hostname}] {date}".format(hostname=hostname,
|
||||
date=datetime.datetime.now())
|
||||
try:
|
||||
if(self.production_run == "TRUE"):
|
||||
command = 'echo "Results from $HOSTNAME {}/html-reports/lf_check_latest.html NOTE: for now to see stdout and stderr remove /home/lanforge from path " | mail -s "Regression Test Results from: $HOSTNAME $(date)" {}'.format(self.host_ip_production,self.email_list_production)
|
||||
if self.production_run == "TRUE":
|
||||
msg = message_txt.format(ip=self.host_ip_production)
|
||||
command = "echo \"{message}\" | mail -s \"{subject}\" {address}".format(
|
||||
message=msg,
|
||||
subject=mail_subject,
|
||||
ip=self.host_ip_production,
|
||||
address=self.email_list_production)
|
||||
else:
|
||||
command = 'echo "Results from $HOSTNAME {}/html-reports/lf_check_latest.html NOTE: for now to see stdout and stderr remove /home/lanforge from path" | mail -s "Regression Test Results from: $HOSTNAME $(date)" {}'.format(self.host_ip_test,self.email_list_test)
|
||||
msg = message_txt.format(ip=ip)
|
||||
command = "echo \"{message}\" | mail -s \"{subject}\" {address}".format(
|
||||
message=msg,
|
||||
subject=mail_subject,
|
||||
ip=ip, #self.host_ip_test,
|
||||
address=self.email_list_test)
|
||||
|
||||
print("running {}".format(command))
|
||||
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
||||
@@ -432,7 +456,9 @@ for running scripts listed in lf_check_config.ini
|
||||
args = parser.parse_args()
|
||||
|
||||
# output report.
|
||||
report = lf_report(_results_dir_name = "lf_check",_output_html="lf_check.html",_output_pdf="lf-check.pdf")
|
||||
report = lf_report(_results_dir_name="lf_check",
|
||||
_output_html="lf_check.html",
|
||||
_output_pdf="lf-check.pdf")
|
||||
|
||||
current_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
|
||||
csv_results = "lf_check{}-{}.csv".format(args.outfile,current_time)
|
||||
@@ -473,6 +499,7 @@ for running scripts listed in lf_check_config.ini
|
||||
# Generate Ouptput reports
|
||||
report.set_title("LF Check: lf_check.py")
|
||||
report.build_banner()
|
||||
report.start_content_div()
|
||||
report.set_table_title("LF Check Test Results")
|
||||
report.build_table_title()
|
||||
report.set_text("git sha: {}".format(git_sha))
|
||||
@@ -484,28 +511,51 @@ for running scripts listed in lf_check_config.ini
|
||||
print("html report: {}".format(html_report))
|
||||
report.write_pdf_with_timestamp()
|
||||
|
||||
|
||||
report_path = os.path.dirname(html_report)
|
||||
parent_report_dir = os.path.dirname(report_path)
|
||||
|
||||
# copy results to lastest so someone may see the latest.
|
||||
lf_check_latest_html = os.path.dirname(os.path.dirname(html_report)) + "/lf_check_latest.html"
|
||||
lf_check_latest_html = parent_report_dir + "/lf_check_latest.html"
|
||||
# duplicates html_report file up one directory
|
||||
lf_check_html_report = os.path.dirname(os.path.dirname(html_report)) + "/{}.html".format(outfile)
|
||||
lf_check_html_report = parent_report_dir + "/{}.html".format(outfile)
|
||||
|
||||
#
|
||||
banner_src_png = os.path.dirname(html_report)+ "/banner.png"
|
||||
banner_dest_png = os.path.dirname(os.path.dirname(html_report))+ "/banner.png"
|
||||
CandelaLogo_src_png = os.path.dirname(html_report) + "/CandelaLogo2-90dpi-200x90-trans.png"
|
||||
CandelaLogo_dest_png = os.path.dirname(os.path.dirname(html_report)) + "/CandelaLogo2-90dpi-200x90-trans.png"
|
||||
banner_src_png = report_path + "/banner.png"
|
||||
banner_dest_png = parent_report_dir + "/banner.png"
|
||||
CandelaLogo_src_png = report_path + "/CandelaLogo2-90dpi-200x90-trans.png"
|
||||
CandelaLogo_dest_png = parent_report_dir + "/CandelaLogo2-90dpi-200x90-trans.png"
|
||||
report_src_css = report_path + "/report.css"
|
||||
report_dest_css = parent_report_dir + "/report.css"
|
||||
custom_src_css = report_path + "/custom.css"
|
||||
custom_dest_css = parent_report_dir + "/custom.css"
|
||||
font_src_woff = report_path + "/CenturyGothic.woff"
|
||||
font_dest_woff = parent_report_dir + "/CenturyGothic.woff"
|
||||
|
||||
#pprint.pprint([
|
||||
# ('banner_src', banner_src_png),
|
||||
# ('banner_dest', banner_dest_png),
|
||||
# ('CandelaLogo_src_png', CandelaLogo_src_png),
|
||||
# ('CandelaLogo_dest_png', CandelaLogo_dest_png),
|
||||
# ('report_src_css', report_src_css),
|
||||
# ('custom_src_css', custom_src_css)
|
||||
#])
|
||||
|
||||
# copy one directory above
|
||||
shutil.copyfile(html_report,lf_check_latest_html)
|
||||
shutil.copyfile(html_report,lf_check_html_report)
|
||||
shutil.copyfile(html_report, lf_check_latest_html)
|
||||
shutil.copyfile(html_report, lf_check_html_report)
|
||||
|
||||
# copy banner and logo
|
||||
shutil.copyfile(banner_src_png, banner_dest_png)
|
||||
shutil.copyfile(CandelaLogo_src_png,CandelaLogo_dest_png)
|
||||
print("lf_check_latest.html: {}".format(lf_check_latest_html))
|
||||
print("lf_check_html_report: {}".format(lf_check_html_report))
|
||||
shutil.copyfile(banner_src_png, banner_dest_png)
|
||||
shutil.copyfile(CandelaLogo_src_png, CandelaLogo_dest_png)
|
||||
shutil.copyfile(report_src_css, report_dest_css)
|
||||
shutil.copyfile(custom_src_css, custom_dest_css)
|
||||
shutil.copyfile(font_src_woff, font_dest_woff)
|
||||
|
||||
check.send_results_email()
|
||||
print("lf_check_latest.html: "+lf_check_latest_html)
|
||||
print("lf_check_html_report: "+lf_check_html_report)
|
||||
|
||||
check.send_results_email(report_file=lf_check_html_report)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user