X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fdispatcher%2Ffile.py;h=8acd5dfbb2d9e5a3768e745a631b45f92e18ce6d;hb=418b31051fb38881e3f18ad93d036878297e8ad7;hp=c2cc265ba8a774b0c012a97533efe060dafa26ce;hpb=35c360e3e41c8e736604a434781a178a8a34204a;p=yardstick.git diff --git a/yardstick/dispatcher/file.py b/yardstick/dispatcher/file.py index c2cc265ba..8acd5dfbb 100644 --- a/yardstick/dispatcher/file.py +++ b/yardstick/dispatcher/file.py @@ -16,28 +16,11 @@ # yardstick comment: this is a modified copy of # ceilometer/ceilometer/dispatcher/file.py -import logging -import logging.handlers -import json - -from oslo_config import cfg +from __future__ import absolute_import from yardstick.dispatcher.base import Base as DispatchBase - -CONF = cfg.CONF -OPTS = [ - cfg.StrOpt('file_path', - default='/tmp/yardstick.out', - help='Name and the location of the file to record ' - 'data.'), - cfg.IntOpt('max_bytes', - default=0, - help='The max size of the file.'), - cfg.IntOpt('backup_count', - default=0, - help='The max number of the files to keep.'), -] -CONF.register_opts(OPTS, group="dispatcher_file") +from yardstick.common import constants as consts +from yardstick.common import utils class FileDispatcher(DispatchBase): @@ -46,31 +29,18 @@ class FileDispatcher(DispatchBase): __dispatcher_type__ = "File" - def __init__(self, conf): + def __init__(self, conf, config): super(FileDispatcher, self).__init__(conf) - self.log = None - - # if the directory and path are configured, then log to the file - if CONF.dispatcher_file.file_path: - dispatcher_logger = logging.Logger('dispatcher.file') - dispatcher_logger.setLevel(logging.INFO) - # create rotating file handler which logs result - rfh = logging.handlers.RotatingFileHandler( - self.conf.get('file_path', CONF.dispatcher_file.file_path), - maxBytes=CONF.dispatcher_file.max_bytes, - backupCount=CONF.dispatcher_file.backup_count, - encoding='utf8') - - rfh.setLevel(logging.INFO) - # Only wanted the data to be saved in the file, not the - # project root logger. - dispatcher_logger.propagate = False - dispatcher_logger.addHandler(rfh) - self.log = dispatcher_logger + self.result = [] def record_result_data(self, data): - if self.log: - self.log.info(json.dumps(data)) + self.result.append(data) def flush_result_data(self): - pass + file_path = self.conf.get('file_path', consts.DEFAULT_OUTPUT_FILE) + + res = utils.read_json_from_file(file_path).get('result') + res.extend(self.result) + + data = {'status': 0, 'result': res} + utils.write_json_to_file(file_path, data)