From 690d329a91af99777a0d48cdd2ea84ac7e803c0e Mon Sep 17 00:00:00 2001 From: MatthewLi Date: Wed, 12 Oct 2016 05:17:29 -0400 Subject: preparation for setup.py JIRA: DOVETAIL-26 1)change the directory scripts to dovetail, to make it unified in OPNFV and for setup.py 2)change the paths accordingly 3)this should be first merged, since docker is changed, then to add setup.py and run the local test Change-Id: I65974bde17f310ebbfe3c025532b05dae8752945 Signed-off-by: MatthewLi --- dovetail/parser.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 dovetail/parser.py (limited to 'dovetail/parser.py') diff --git a/dovetail/parser.py b/dovetail/parser.py new file mode 100644 index 00000000..1c0c0450 --- /dev/null +++ b/dovetail/parser.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# +# grakiss.wanglei@huawei.com +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +# + +import jinja2 + + +import utils.dovetail_logger as dt_logger +import utils.dovetail_utils as dt_utils + +logger = dt_logger.Logger('parser.py').getLogger() + +from conf.dovetail_config import * + +class Parser: + '''preprocess configuration files''' + + @classmethod + def parse_cmd(cls, cmd, testcase): + cmd_lines = None + try: + template = jinja2.Template(cmd, undefined=jinja2.StrictUndefined) + kwargs = {} + for arg in dovetail_config['parameters']: + path = eval(arg['path']) + logger.debug('name: %s, eval path: %s ' % (arg['name'], path)) + kwargs[arg['name']] = dt_utils.get_obj_by_path(testcase.testcase,path) + + logger.debug('kwargs: %s' % kwargs) + cmd_lines = template.render(**kwargs) + except Exception as e: + logger.error('failed to parse cmd %s, exception:%s' % (cmd, e)) + return None + + return cmd_lines -- cgit 1.2.3-korg