summaryrefslogtreecommitdiffstats
path: root/dovetail/parser.py
diff options
context:
space:
mode:
authorMatthewLi <matthew.lijun@huawei.com>2016-10-12 05:17:29 -0400
committerMatthewLi <matthew.lijun@huawei.com>2016-10-12 05:18:22 -0400
commit690d329a91af99777a0d48cdd2ea84ac7e803c0e (patch)
tree856546379df2af45a6a1deccad122db4b89ae96d /dovetail/parser.py
parent47bd76a388cb6a5b3e023fc6239584b59e19b336 (diff)
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 <matthew.lijun@huawei.com>
Diffstat (limited to 'dovetail/parser.py')
-rw-r--r--dovetail/parser.py40
1 files changed, 40 insertions, 0 deletions
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