def load_suites(self): """ This is the workhorse. It reads each output.xml file and extract the various test attributes. """ suite_records = [] test_records = [] for filename in self._input_files: filename = filename.strip() if helpers.file_not_empty(filename): print("Reading %s" % filename) try: suite = TestSuite(filename, is_regression=self._is_regression, is_baseline=self._is_baseline) except: print("ERROR: Unable to parse %s. Test suite will not be added to Test Catalog." % filename) print helpers.exception_info() else: suite.extract_attributes() self._suites.append(suite) suite_records.append(suite.suite()) test_records = test_records + suite.tests() self.dump_records_to_json_file(self._output_suites, suite_records) self.dump_records_to_json_file(self._output_testcases, test_records) # Import baseline data into DB (if not regression data) if self._is_regression == False: f = self._output_suites print("Importing %s into Mongo test suites collection" % f) (status, output, error, error_code) = helpers.run_cmd2( cmd="./mongoimport_suites_collection.sh %s" % f, shell=True) print("Status:\n'%s'" % helpers.indent_str(status)) print("Output:\n'%s'" % helpers.indent_str(output)) print("Error:\n'%s'" % helpers.indent_str(error)) print("Error code:\n'%s'" % helpers.indent_str(error_code)) f = self._output_testcases print("Importing %s into Mongo test case collection" % f) (status, output, error, error_code) = helpers.run_cmd2( cmd="./mongoimport_testcases_collection.sh %s" % f, shell=True) print("Status:\n'%s'" % helpers.indent_str(status)) print("Output:\n'%s'" % helpers.indent_str(output)) print("Error:\n'%s'" % helpers.indent_str(error)) print("Error code:\n'%s'" % helpers.indent_str(error_code))
def check_controller_cli_cmds(self, support_bundle_folder=None, node_name='master'): ''' check for controller cli cmds are logged ''' node_mac = self.get_node_mac_address(node_name) node_mac = re.sub(':', '', node_mac) result = True support_bundle_folder = re.sub('\.tar\.gz', '', support_bundle_folder) for root, dirs, files in os.walk(support_bundle_folder): helpers.log("Dir Name: %s File Name: %s" % (dirs, files)) for directory in dirs: if re.match(r'.*%s.*' % node_mac, directory): for root, dirs, files in os.walk(support_bundle_folder + '/' + directory + '/cli'): for file_name in files: helpers.log(str(file_name)) output = helpers.run_cmd2( 'cat %s' % (support_bundle_folder + '/' + directory + '/cli/' + file_name), shell=True) outputs = output[1] helpers.log(str(outputs)) return True
def check_switch_hardware_counters(self, support_bundle_folder=None, node_name='master'): ''' Check for hardware counters are logded on support logs ''' node_mac = self.get_node_mac_address(node_name) node_mac = re.sub(':', '', node_mac) result = True support_bundle_folder = re.sub('\.tar\.gz', '', support_bundle_folder) for root, dirs, files in os.walk(support_bundle_folder): helpers.log("Dir Name: %s File Name: %s" % (dirs, files)) for directory in dirs: if re.match(r'.*%s.*' % node_mac, directory): if len(files) == 0: helpers.test_failure( "Please check for connected switches / Support Fail to Generate Switch support logs" ) else: for file_name in files: if file_name == 'support.log': helpers.log( "Skipping checking for support.log") else: output = helpers.run_cmd2( 'cat %s/%s | grep "ofad-ctl brcm port-hw counters-all" | wc -l' % (support_bundle_folder, file_name), shell=True) outputs = output[1] helpers.log(str(outputs)) match = re.match(r'.*(\d+).*', str(outputs)) if match: if int(match.group(0)) == 32 or int(match.group(0)) == 54 or\ int(match.group(0)) == 128 or int(match.group(0)) == 78: helpers.log( "Expected switch hardware counters are logged in switch file : %s" % file_name) else: helpers.log( "Expected switch hardware counters are not logged.." ) helpers.log(str(match.group(0))) return result return False
def check_switch_cmd(self, switch_cmd, support_bundle_folder=None, node_name='master'): ''' Check whether the given switch cmd is logded on support logs ''' node_mac = self.get_node_mac_address(node_name) node_mac = re.sub(':', '', node_mac) result = False support_bundle_folder = re.sub('\.tar\.gz', '', support_bundle_folder) helpers.log("Support_bundle_folder: %s" % support_bundle_folder) for root, dirs, files in os.walk(support_bundle_folder): helpers.log("Dir Name: %s File Name: %s" % (dirs, files)) for directory in dirs: if re.match(r'.*%s.*' % node_mac, directory): if len(files) == 0: helpers.test_failure( "Please check for connected switches / Support Fail to Generate Switch support logs" ) else: for file_name in files: if file_name == 'support.log': helpers.log( "Skipping checking for support.log") else: output = helpers.run_cmd2( 'cat %s/%s | grep -i "%s" | wc -l' % (support_bundle_folder, file_name, switch_cmd), shell=True) outputs = output[1] helpers.log(str(outputs)) match = re.match(r'.*(\d+).*', str(outputs)) if match: helpers.log(str(match.group(0))) if int(match.group(0)) > 0: helpers.log( "Found the given match string in switch log..!" ) result = True return result