Example #1
0
 def _copy_logs(self):
     """
 Copy logs from remote machines to local destination
 """
     if "LOGS_DIRECTORY" in self.master_config.mapping:
         logs_dir = self.master_config.mapping.get("LOGS_DIRECTORY")
     else:
         logs_dir = self.dynamic_config_module.LOGS_DIRECTORY
     utils.makedirs(logs_dir)
     for deployer in runtime.get_deployers():
         for process in deployer.get_processes():
             logs = []
             if (hasattr(self.dynamic_config_module, "process_logs")):
                 logs += self.dynamic_config_module.process_logs(
                     process.servicename)
             if (hasattr(self.dynamic_config_module, "machine_logs")):
                 logs += self.dynamic_config_module.machine_logs().get(
                     process.unique_id, [])
             if (hasattr(self.dynamic_config_module, "naarad_logs")):
                 logs += self.dynamic_config_module.naarad_logs().get(
                     process.unique_id, [])
             if hasattr(self.dynamic_config_module, 'log_patterns'):
                 pattern = self.dynamic_config_module.log_patterns().get(
                     process.unique_id, '^$')
             else:
                 pattern = '^$'
             deployer.get_logs(process.unique_id, logs, logs_dir, pattern)
Example #2
0
    def generate(self):
        """
    Generates the report
    """
        self._setup()

        header_html = self._generate_header()
        footer_html = self._generate_footer()
        results_topbar_html = self._generate_topbar("results")
        summary_topbar_html = self._generate_topbar("summary")

        summary_body_html = self._generate_summary_body()
        summary_html = header_html + summary_topbar_html + summary_body_html + footer_html
        Reporter._make_file(summary_html, self.report_info.home_page)

        for config_name in self.report_info.config_to_test_names_map.keys():
            config_dir = os.path.join(self.report_info.resource_dir,
                                      config_name)
            utils.makedirs(config_dir)

            config_body_html = self._generate_config_body(config_name)
            config_html = header_html + results_topbar_html + config_body_html + footer_html
            config_file = os.path.join(
                config_dir, config_name + self.report_info.report_file_sfx)
            Reporter._make_file(config_html, config_file)

            for test_name in self.data_source.get_test_names(config_name):
                test_body_html = self._generate_test_body(
                    config_name, test_name)
                test_html = header_html + results_topbar_html + test_body_html + footer_html
                test_file = os.path.join(
                    config_dir, test_name + self.report_info.report_file_sfx)
                Reporter._make_file(test_html, test_file)
Example #3
0
  def generate(self):
    """
    Generates the report
    """
    self._setup()

    header_html = self._generate_header()
    footer_html = self._generate_footer()
    results_topbar_html = self._generate_topbar("results")
    summary_topbar_html = self._generate_topbar("summary")

    summary_body_html = self._generate_summary_body()
    summary_html = header_html + summary_topbar_html + summary_body_html + footer_html
    Reporter._make_file(summary_html, self.report_info.home_page)

    for config_name in self.report_info.config_to_test_names_map.keys():
      config_dir = os.path.join(self.report_info.resource_dir, config_name)
      utils.makedirs(config_dir)

      config_body_html = self._generate_config_body(config_name)
      config_html = header_html + results_topbar_html + config_body_html + footer_html
      config_file = os.path.join(config_dir, config_name + self.report_info.report_file_sfx)
      Reporter._make_file(config_html, config_file)

      for test_name in self.data_source.get_test_names(config_name):
        test_body_html = self._generate_test_body(config_name, test_name)
        test_html = header_html + results_topbar_html + test_body_html + footer_html
        test_file = os.path.join(config_dir, test_name + self.report_info.report_file_sfx)
        Reporter._make_file(test_html, test_file)
Example #4
0
 def generate(self):
   """
   Generates the report
   """
   self._setup()
   for config_name in self.report_info.config_to_test_names_map.keys():
     config_dir = os.path.join(self.report_info.resource_dir, config_name)
     utils.makedirs(config_dir)
     testsuite = self._generate_junit_xml(config_name)
     with open(os.path.join(self.report_info.junit_xml_path, 'zopkio_junit_reports.xml'), 'w') as file:
         TestSuite.to_file(file, [testsuite], prettyprint=False)
Example #5
0
def setup_logging(output_dir):
  date_time = time.strftime("_%Y%m%d_%H%M%S",
                            time.localtime(runtime.get_init_time()))
  log_dir = os.path.join(output_dir, "logs", "zopkio_log" + date_time)
  utils.makedirs(log_dir)
  log_file = os.path.join(log_dir, "zopkio_log" + date_time + ".log")
  logging.basicConfig(filename=log_file,
                      filemode='a',
                      format="%(asctime)s %(name)s [%(levelname)s] %(message)s",
                      datefmt="%Y-%m-%d %H:%M:%S",
                      level=logging.INFO)
Example #6
0
def setup_logging(output_dir, log_level, console_level):
  log_dir = os.path.join(output_dir, "logs", "zopkio_log")
  utils.makedirs(log_dir)
  log_file = os.path.join(log_dir, "zopkio_log.log")
  logging.basicConfig(filename=log_file,
                      filemode='a',
                      format="%(asctime)s %(name)s [%(levelname)s] %(message)s",
                      datefmt="%Y-%m-%d %H:%M:%S",
                      level=string_to_level(log_level))
  console = logging.StreamHandler()
  console.setLevel(string_to_level(console_level))
  console.setFormatter(logging.Formatter("%(asctime)s %(name)s [%(levelname)s] %(message)s"))
  logging.getLogger('').addHandler(console)
Example #7
0
 def _copy_logs(self):
   """
   Copy logs from remote machines to local destination
   """
   if "LOGS_DIRECTORY" in self.master_config.mapping:
     logs_dir = self.master_config.mapping.get("LOGS_DIRECTORY")
   else:
     logs_dir = self.dynamic_config_module.LOGS_DIRECTORY
   utils.makedirs(logs_dir)
   for deployer in runtime.get_deployers():
     for process in deployer.get_processes():
       logs = self.dynamic_config_module.machine_logs()[process.unique_id] + self.dynamic_config_module.naarad_logs()[process.unique_id]
       deployer.get_logs(process.unique_id, logs, logs_dir)
Example #8
0
 def generate(self):
     """
 Generates the report
 """
     self._setup()
     for config_name in self.report_info.config_to_test_names_map.keys():
         config_dir = os.path.join(self.report_info.resource_dir,
                                   config_name)
         utils.makedirs(config_dir)
         testsuite = self._generate_junit_xml(config_name)
         with open(
                 os.path.join(self.report_info.junit_xml_path,
                              '_junit_reports.xml'), 'w') as file:
             TestSuite.to_file(file, [testsuite], prettyprint=False)
Example #9
0
  def __init__(self, *args, **kwargs):
    """

    :param kwargs:
    :return:
    """
    if ('ztestsuite' in kwargs):
      self._new_constuctor(**kwargs)
    elif (len(args) >= 3):
      self._old_constructor(args[0], args[1], args[2])
    #create logs dir
    self._logs_dir = self.master_config.mapping.get("LOGS_DIRECTORY") if "LOGS_DIRECTORY" in self.master_config.mapping else \
      self.dynamic_config_module.LOGS_DIRECTORY
    try:
      utils.makedirs(self._logs_dir)
    except:
      logger.error("Unable to create logs dir {0};  no logs will be created".format(self._logs_dir))
      self._logs_dir = None
    #####
    #create methods used for identifying various types of logs if
    #not provided by client, creating them to return an empty list
    #The functions are wrapped to allow backwards compatibility with
    #an older signature for each function
    def wrap(func):
      def helper( unique_id ):
        try:
          return func( unique_id)
        except:
          #backwards compatible signature taking no arguments:
          return func().get(unique_id, [])
      return helper

    def assign_log_methods( method_name):
      if not hasattr( self.dynamic_config_module, method_name):
        setattr(self.dynamic_config_module, method_name,lambda unique_id:  [])
      else:
        setattr(self.dynamic_config_module,method_name,
                wrap(getattr( self.dynamic_config_module, method_name,self.dynamic_config_module)))

    for method_name in ("process_logs", "machine_logs", "naarad_logs" ):
      assign_log_methods( method_name )

    if not hasattr( self.dynamic_config_module, "log_patterns"):
      setattr( self.dynamic_config_module, "log_patterns", wrap( lambda unique_id: constants.FILTER_NAME_ALLOW_ALL ))
    else:
      self.dynamic_config_module.log_patterns = wrap( self.dynamic_config_module.log_patterns)
    self._output_dir = self.master_config.mapping.get("OUTPUT_DIRECTORY") or self.dynamic_config_module.OUTPUT_DIRECTORY
    self._failed_count = 0
    self._success_count = 0
Example #10
0
  def __init__(self, *args, **kwargs):
    """

    :param kwargs:
    :return:
    """
    if ('ztestsuite' in kwargs):
      self._new_constuctor(**kwargs)
    elif (len(args) >= 3):
      self._old_constructor(args[0], args[1], args[2])
    #create logs dir
    self._logs_dir = self.master_config.mapping.get("LOGS_DIRECTORY") if "LOGS_DIRECTORY" in self.master_config.mapping else \
      self.dynamic_config_module.LOGS_DIRECTORY
    try:
      utils.makedirs(self._logs_dir)
    except:
      logger.error("Unable to create logs dir {0};  no logs will be created".format(self._logs_dir))
      self._logs_dir = None
    #####
    #create methods used for identifying various types of logs if
    #not provided by client, creating them to return an empty list
    #The functions are wrapped to allow backwards compatibility with
    #an older signature for each function
    def wrap(func):
      def helper( unique_id ):
        try:
          return func( unique_id)
        except:
          #backwards compatible signature taking no arguments:
          return func().get(unique_id, [])
      return helper

    def assign_log_methods( method_name):
      if not hasattr( self.dynamic_config_module, method_name):
        setattr(self.dynamic_config_module, method_name,lambda unique_id:  [])
      else:
        setattr(self.dynamic_config_module,method_name,
                wrap(getattr( self.dynamic_config_module, method_name,self.dynamic_config_module)))

    for method_name in ("process_logs", "machine_logs", "naarad_logs" ):
      assign_log_methods( method_name )

    if not hasattr( self.dynamic_config_module, "log_patterns"):
      setattr( self.dynamic_config_module, "log_patterns", wrap( lambda unique_id: constants.FILTER_NAME_ALLOW_NONE ))
    else:
      self.dynamic_config_module.log_patterns = wrap( self.dynamic_config_module.log_patterns)
    self._output_dir = self.master_config.mapping.get("OUTPUT_DIRECTORY") or self.dynamic_config_module.OUTPUT_DIRECTORY
    self._failed_count = 0
    self._success_count = 0
Example #11
0
 def _copy_logs(self):
     """
 Copy logs from remote machines to local destination
 """
     if "LOGS_DIRECTORY" in self.master_config.mapping:
         logs_dir = self.master_config.mapping.get("LOGS_DIRECTORY")
     else:
         logs_dir = self.dynamic_config_module.LOGS_DIRECTORY
     utils.makedirs(logs_dir)
     for deployer in runtime.get_deployers():
         for process in deployer.get_processes():
             logs = self.dynamic_config_module.machine_logs(
             )[process.unique_id] + self.dynamic_config_module.naarad_logs(
             )[process.unique_id]
             deployer.get_logs(process.unique_id, logs, logs_dir)
Example #12
0
def setup_logging(output_dir, log_level, console_level):
    log_dir = os.path.join(output_dir, "logs", "zopkio_log")
    utils.makedirs(log_dir)
    log_file = os.path.join(log_dir, "zopkio_log.log")
    logging.basicConfig(
        filename=log_file,
        filemode='a',
        format="%(asctime)s %(name)s [%(levelname)s] %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
        level=string_to_level(log_level))
    console = logging.StreamHandler()
    console.setLevel(string_to_level(console_level))
    console.setFormatter(
        logging.Formatter("%(asctime)s %(name)s [%(levelname)s] %(message)s"))
    logging.getLogger('').addHandler(console)
Example #13
0
def directory_setup(testfile, perf_module, configs):
  """
  Sets up the output directories.

  :param testfile: the main testfile used in run_test(); only used here for its file name
  :returns: dict with keys ["report_name", "report_dir", "logs_dir"]
  """
  dir_info = {}

  utils.makedirs(runtime.get_reports_dir())

  report_name = os.path.splitext(os.path.basename(testfile))[0]  # getting the file name without extension
  date_time = time.strftime("_%Y%m%d_%H%M%S", time.localtime(runtime.get_init_time()))
  report_name += date_time
  dir_info["report_name"] = report_name

  results_dir = os.path.join(runtime.get_reports_dir(), report_name)
  utils.makedirs(results_dir)
  dir_info["results_dir"] = results_dir

  if "LOGS_DIRECTORY" in configs.mapping:
    logs_dir = configs.mapping.get("LOGS_DIRECTORY")
  else:
    logs_dir = perf_module.LOGS_DIRECTORY
  utils.makedirs(logs_dir)
  dir_info["logs_dir"] = logs_dir

  return dir_info
Example #14
0
 def _copy_logs(self):
   """
   Copy logs from remote machines to local destination
   """
   if "LOGS_DIRECTORY" in self.master_config.mapping:
     logs_dir = self.master_config.mapping.get("LOGS_DIRECTORY")
   else:
     logs_dir = self.dynamic_config_module.LOGS_DIRECTORY
   utils.makedirs(logs_dir)
   for deployer in runtime.get_deployers():
     for process in deployer.get_processes():
       logs = []
       if (hasattr(self.dynamic_config_module, "process_logs")):
         logs += self.dynamic_config_module.process_logs(process.servicename)
       if (hasattr(self.dynamic_config_module, "machine_logs")):
         logs += self.dynamic_config_module.machine_logs().get(process.unique_id, [])
       if (hasattr(self.dynamic_config_module, "naarad_logs")):
         logs += self.dynamic_config_module.naarad_logs().get(process.unique_id, [])
       if hasattr(self.dynamic_config_module, 'log_patterns'):
         pattern = self.dynamic_config_module.log_patterns().get(process.unique_id, '^$')
       else:
         pattern = '^$'
       deployer.get_logs(process.unique_id, logs, logs_dir, pattern)
Example #15
0
 def _setup(self):
   utils.makedirs(self.report_info.output_dir)
   utils.makedirs(self.report_info.resource_dir)
   self.report_info.config_to_test_names_map = self.get_config_to_test_names_map()
Example #16
0
 def _setup(self):
   utils.makedirs(self.report_info.output_dir)
   utils.makedirs(self.report_info.resource_dir)
   self.report_info.config_to_test_names_map = self.get_config_to_test_names_map()