summaryrefslogtreecommitdiffstats
path: root/dovetail/report.py
diff options
context:
space:
mode:
authorMoshe <moshehoa@amdocs.com>2018-03-04 15:42:23 +0200
committerMoshe <moshehoa@amdocs.com>2018-03-29 14:04:48 +0300
commit698cd3f4246c4e472c306fcad57d8d7b6431333f (patch)
tree5dd2ba4d4e571941c0d0c1e6d191b1045278e9c1 /dovetail/report.py
parentcaf95e09ef0206354b46d51f83690e20bc69e848 (diff)
Integrate dovetail with ONAP
Change-Id: I6a1fa5f27df2f5127eb00156b3135dc79caf5e77 Issue-ID: DOVETAIL-629 Signed-off-by: Moshe <moshehoa@amdocs.com>
Diffstat (limited to 'dovetail/report.py')
-rw-r--r--dovetail/report.py69
1 files changed, 67 insertions, 2 deletions
diff --git a/dovetail/report.py b/dovetail/report.py
index 9d0517b4..dea9e426 100644
--- a/dovetail/report.py
+++ b/dovetail/report.py
@@ -27,7 +27,8 @@ from testcase import Testcase
class Report(object):
- results = {'functest': {}, 'yardstick': {}, 'bottlenecks': {}, 'shell': {}}
+ results = {'functest': {}, 'yardstick': {},
+ 'bottlenecks': {}, 'shell': {}, 'vnftest': {}}
logger = None
@@ -427,11 +428,56 @@ class ShellCrawler(object):
return None
+class VnftestCrawler(object):
+
+ logger = None
+
+ def __init__(self):
+ self.type = 'vnftest'
+ self.logger.debug('Create crawler: {}'.format(self.type))
+
+ @classmethod
+ def create_log(cls):
+ cls.logger = \
+ dt_logger.Logger(__name__ + '.VnftestCrawler').getLogger()
+
+ def crawl(self, testcase):
+ report_dest = dt_cfg.dovetail_config['report_dest']
+ if report_dest.lower() == 'file':
+ return self.crawl_from_file(testcase)
+
+ if report_dest.lower().startswith('http'):
+ return self.crawl_from_url(testcase)
+
+ def crawl_from_file(self, testcase):
+
+ file_path = os.path.join(dt_cfg.dovetail_config['result_dir'],
+ testcase.name() + '.out')
+ if not os.path.exists(file_path):
+ self.logger.error('Result file not found: {}'.format(file_path))
+ return None
+ criteria = 'FAIL'
+ with open(file_path, 'r') as f:
+ for jsonfile in f:
+ data = json.loads(jsonfile)
+ try:
+ criteria = data['result']['criteria']
+ except KeyError as e:
+ self.logger.exception('Pass flag not found {}'.format(e))
+ json_results = {'criteria': criteria}
+ self.logger.debug('Results: {}'.format(str(json_results)))
+ return json_results
+
+ def crawl_from_url(self, testcase=None):
+ return None
+
+
class CrawlerFactory(object):
CRAWLER_MAP = {'functest': FunctestCrawler,
'yardstick': YardstickCrawler,
'bottlenecks': BottlenecksCrawler,
+ 'vnftest': VnftestCrawler,
'shell': ShellCrawler}
@classmethod
@@ -558,12 +604,31 @@ class ShellChecker(object):
testcase.passed(False)
+class VnftestChecker(object):
+
+ logger = None
+
+ @classmethod
+ def create_log(cls):
+ cls.logger = \
+ dt_logger.Logger(__name__ + '.VnftestCheckers').getLogger()
+
+ @staticmethod
+ def check(testcase, result):
+ if not result:
+ testcase.passed('FAIL')
+ else:
+ testcase.passed(result['criteria'])
+ return
+
+
class CheckerFactory(object):
CHECKER_MAP = {'functest': FunctestChecker,
'yardstick': YardstickChecker,
'bottlenecks': BottlenecksChecker,
- 'shell': ShellChecker}
+ 'shell': ShellChecker,
+ 'vnftest': VnftestChecker}
@classmethod
def create(cls, type):