diff --git a/ci-scripts/Jenkinsfile-tmp-ran b/ci-scripts/Jenkinsfile-tmp-ran index 547970e45e..39347b3558 100644 --- a/ci-scripts/Jenkinsfile-tmp-ran +++ b/ci-scripts/Jenkinsfile-tmp-ran @@ -218,7 +218,7 @@ pipeline { buildStageStatus = false } } - sh "python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus}" + sh "python3 main.py --mode=FinalizeHtml --finalStatus=${buildStageStatus} --eNBIPAddress=${params.eNB_IPAddress} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password}" } } } diff --git a/ci-scripts/main.py b/ci-scripts/main.py index 7774a92de5..7e18ba7c6e 100644 --- a/ci-scripts/main.py +++ b/ci-scripts/main.py @@ -118,6 +118,12 @@ class SSHConnection(): self.htmlTabNames = [] self.htmlTabIcons = [] self.finalStatus = False + self.eNBOsVersion = '' + self.eNBKernelVersion = '' + self.eNBUhdVersion = '' + self.eNBCpuNb = '' + self.eNBCpuModel = '' + self.eNBCpuMHz = '' def open(self, ipaddress, username, password): count = 0 @@ -1947,6 +1953,37 @@ class SSHConnection(): self.command('cp /opt/ltebox/var/log/xGwLog.0 .', '\$', 5) self.command('zip spgw.log.zip xGwLog.0', '\$', 60) self.close() + def RetrieveSystemVersion(self): + if self.eNBIPAddress == '' or self.eNBUserName == '' or self.eNBPassword == '': + Usage() + sys.exit('Insufficient Parameter') + self.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword) + self.command('lsb_release -a', '\$', 5) + result = re.search('Description:\\\\t(?P[a-zA-Z0-9\-\_\.\ ]+)', str(self.ssh.before)) + if result is not None: + self.eNBOsVersion = result.group('os_type') + logging.debug('OS is: ' + self.eNBOsVersion) + self.command('uname -r', '\$', 5) + result = re.search('uname -r\\\\r\\\\n(?P[a-zA-Z0-9\-\_\.]+)', str(self.ssh.before)) + if result is not None: + self.eNBKernelVersion = result.group('kernel_version') + logging.debug('Kernel Version is: ' + self.eNBKernelVersion) + self.command('dpkg --list | egrep --color=never uhd-host', '\$', 5) + result = re.search('uhd-host *(?P[0-9\.]+)', str(self.ssh.before)) + if result is not None: + self.eNBUhdVersion = result.group('uhd_version') + logging.debug('UHD Version is: ' + self.eNBUhdVersion) + self.command('lscpu', '\$', 5) + result = re.search('CPU\(s\): *(?P[0-9]+).*Model name: *(?P[a-zA-Z0-9\-\_\.\ \(\)]+).*CPU MHz: *(?P[0-9\.]+)', str(self.ssh.before)) + if result is not None: + self.eNBCpuNb = result.group('nb_cpus') + logging.debug('nb_cpus: ' + self.eNBCpuNb) + self.eNBCpuModel = result.group('model') + logging.debug('model: ' + self.eNBCpuModel) + self.eNBCpuMHz = result.group('cpu_mhz') + ' MHz' + logging.debug('cpu_mhz: ' + self.eNBCpuMHz) + self.close() + #----------------------------------------------------------- # HTML Reporting.... #----------------------------------------------------------- @@ -2097,17 +2134,37 @@ class SSHConnection(): def CreateHtmlFooter(self, passStatus): if (os.path.isfile('test_results.html')): + self.RetrieveSystemVersion() self.htmlFile = open('test_results.html', 'a') self.htmlFile.write('\n') self.htmlFile.write('

\n') - self.htmlFile.write(' \n') - self.htmlFile.write(' \n') - self.htmlFile.write(' \n') + self.htmlFile.write('
Final Status
\n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') if passStatus: - self.htmlFile.write(' \n') + self.htmlFile.write(' \n') else: - self.htmlFile.write(' \n') - self.htmlFile.write(' \n') + self.htmlFile.write(' \n') + self.htmlFile.write(' \n') self.htmlFile.write('
eNB Server Characteristics
OS Version' + self.eNBOsVersion + 'Kernel Version' + self.eNBKernelVersion + 'UHD Version' + self.eNBUhdVersion + '
Nb CPUs' + self.eNBCpuNb + 'CPU Model Name' + self.eNBCpuModel + 'CPU Frequency' + self.eNBCpuMHz + '
Final StatusPASS PASS FAIL FAIL
\n') self.htmlFile.write('

\n') self.htmlFile.write('
End of Test Report -- Copyright 2018 OpenAirInterface. All Rights Reserved.
\n')