Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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