mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-02 03:37:55 +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
|
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
|
import sys
|
||||||
if sys.version_info[0] != 3:
|
if sys.version_info[0] != 3:
|
||||||
print("This script requires Python3")
|
print("This script requires Python3")
|
||||||
@@ -26,17 +27,14 @@ if sys.version_info[0] != 3:
|
|||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import pexpect
|
import socket
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
from time import sleep
|
from time import sleep
|
||||||
import argparse
|
import argparse
|
||||||
import json
|
import json
|
||||||
from json import load
|
|
||||||
import configparser
|
import configparser
|
||||||
from pprint import *
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import re
|
|
||||||
import csv
|
import csv
|
||||||
import shutil
|
import shutil
|
||||||
import os.path
|
import os.path
|
||||||
@@ -106,15 +104,41 @@ class lf_check():
|
|||||||
self.host_ip_test = None
|
self.host_ip_test = None
|
||||||
|
|
||||||
# NOT complete : will send the email results
|
# 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
|
# Following recommendation
|
||||||
# NOTE: https://stackoverflow.com/questions/24196932/how-can-i-get-the-ip-address-from-nic-in-python
|
# 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'
|
#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:
|
try:
|
||||||
if(self.production_run == "TRUE"):
|
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)
|
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:
|
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))
|
print("running {}".format(command))
|
||||||
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
|
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()
|
args = parser.parse_args()
|
||||||
|
|
||||||
# output report.
|
# 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())
|
current_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
|
||||||
csv_results = "lf_check{}-{}.csv".format(args.outfile,current_time)
|
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
|
# Generate Ouptput reports
|
||||||
report.set_title("LF Check: lf_check.py")
|
report.set_title("LF Check: lf_check.py")
|
||||||
report.build_banner()
|
report.build_banner()
|
||||||
|
report.start_content_div()
|
||||||
report.set_table_title("LF Check Test Results")
|
report.set_table_title("LF Check Test Results")
|
||||||
report.build_table_title()
|
report.build_table_title()
|
||||||
report.set_text("git sha: {}".format(git_sha))
|
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))
|
print("html report: {}".format(html_report))
|
||||||
report.write_pdf_with_timestamp()
|
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.
|
# 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
|
# 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_src_png = report_path + "/banner.png"
|
||||||
banner_dest_png = os.path.dirname(os.path.dirname(html_report))+ "/banner.png"
|
banner_dest_png = parent_report_dir + "/banner.png"
|
||||||
CandelaLogo_src_png = os.path.dirname(html_report) + "/CandelaLogo2-90dpi-200x90-trans.png"
|
CandelaLogo_src_png = report_path + "/CandelaLogo2-90dpi-200x90-trans.png"
|
||||||
CandelaLogo_dest_png = os.path.dirname(os.path.dirname(html_report)) + "/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
|
# copy one directory above
|
||||||
shutil.copyfile(html_report,lf_check_latest_html)
|
shutil.copyfile(html_report, lf_check_latest_html)
|
||||||
shutil.copyfile(html_report,lf_check_html_report)
|
shutil.copyfile(html_report, lf_check_html_report)
|
||||||
|
|
||||||
# copy banner and logo
|
# copy banner and logo
|
||||||
shutil.copyfile(banner_src_png, banner_dest_png)
|
shutil.copyfile(banner_src_png, banner_dest_png)
|
||||||
shutil.copyfile(CandelaLogo_src_png,CandelaLogo_dest_png)
|
shutil.copyfile(CandelaLogo_src_png, CandelaLogo_dest_png)
|
||||||
print("lf_check_latest.html: {}".format(lf_check_latest_html))
|
shutil.copyfile(report_src_css, report_dest_css)
|
||||||
print("lf_check_html_report: {}".format(lf_check_html_report))
|
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__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user