summaryrefslogtreecommitdiffstats
path: root/libs/parser
diff options
context:
space:
mode:
Diffstat (limited to 'libs/parser')
-rw-r--r--libs/parser/parser.py73
1 files changed, 30 insertions, 43 deletions
diff --git a/libs/parser/parser.py b/libs/parser/parser.py
index 6695b19..8d9f32c 100644
--- a/libs/parser/parser.py
+++ b/libs/parser/parser.py
@@ -1,7 +1,7 @@
""" Parser module contains parsers for parsing:
*) TestrunInfo file
*) TestEnvironment file
-*) Testcaselist file.
+*) Testcaselist file.
"""
import ConfigParser
@@ -9,6 +9,7 @@ import re
from collections import OrderedDict
import os
from atfglobals import GlobalObj
+import pdb
def verify_necessary_options(cp, section, necessary_options):
"""Helper function for all parsers to verify necessary options
@@ -32,7 +33,7 @@ def verify_necessary_options(cp, section, necessary_options):
(option, section))
all_options_found = False
return all_options_found
-
+
def parse_testrun_info_file(filename):
"""
@@ -60,20 +61,20 @@ def parse_testrun_info_file(filename):
unmatched_sections.append(section)
else:
matched_sections.append(matched_obj.group(0))
-
+
if not found_all_sections:
for section in unmatched_sections:
logger.error("Section %s Not Found" % section)
logger.error("Please define the above sections in TestRunInfo File")
return 1
-
+
else:
for section in matched_sections:
Map = {}
if re.match("keywords", section, re.IGNORECASE):
Map = dict(cp.items(section))
testruninfo_obj.addKeywords(Map['keywords'])
-
+
elif re.match("testunits", section, re.IGNORECASE):
Map = dict(cp.items(section))
testunits = Map.values()
@@ -100,7 +101,7 @@ def parse_testcaseslist_file(filename):
return_status = 1
testcaseslist = []
logger = GlobalObj.getLoggerObj()
-
+
if not os.path.exists(filename):
logger.error("%s file not found." % filename)
return return_status
@@ -132,7 +133,7 @@ def parse_testcaseslist_file(filename):
if re.match("^(<|>|=|<=|>=)", testcase['version']):
condition, version = (x.strip() for x in
testcase['version'].split())
-
+
if ((condition == "<=" and glusterversion <= version) or
(condition == ">=" and glusterversion >= version) or
(condition == "<" and glusterversion < version) or
@@ -148,8 +149,8 @@ def parse_testcaseslist_file(filename):
selected_testcases.append(testcase['testcaseid'])
return selected_testcases
-
-
+
+
def parse_testenv_configfile(filename):
"""
parse testenv.cfg file
@@ -165,10 +166,11 @@ def parse_testenv_configfile(filename):
"client" : "addClient",
"mountdevice" : "addMountDevice",
"mount" : "addMount",
+ "slave" : "addSlave",
"defaults" : "addDefaults"}
- section_pattern = re.compile('(export|server|brick|volume|client|mountdevice|mount)*')
+ section_pattern = re.compile('(export|server|brick|volume|client|mountdevice|mount|slave)*')
logger = GlobalObj.getLoggerObj()
-
+
if not cp.read(filename):
logger.error("Error reading file ' %s '.File Not found " % filename)
return 1
@@ -187,12 +189,12 @@ def parse_testenv_configfile(filename):
funcname = sections_to_functions_mapping[result]
function = getattr(env, funcname)
necessary_options = []
-
+
if re.match('export', result):
necessary_options = ["dir"]
if verify_necessary_options(cp, section, necessary_options):
dir_ = items.pop('dir')
- function(section, dir_, **items)
+ function(section, dir_, **items)
else:
return 1
@@ -220,7 +222,7 @@ def parse_testenv_configfile(filename):
function(section, hostname, user, password,
glusterversion, **items)
else:
- return 1
+ return 1
elif re.match('brick', result):
necessary_options = ["hostname", "path"]
@@ -240,18 +242,18 @@ def parse_testenv_configfile(filename):
replica = items.pop('replica')
else:
replica = None
-
+
if (items.has_key('stripe') and items['stripe']):
stripe = items.pop('stripe')
else:
stripe = None
-
+
if (items.has_key('transporttype') and
items['transporttype']):
transporttype = items.pop('transporttype')
else:
transporttype = None
-
+
function(section, volumename, replica,
stripe, transporttype, bricks)
else:
@@ -271,35 +273,20 @@ def parse_testenv_configfile(filename):
dir_ = items.pop('dir')
device = items.pop('device')
function(section, client, dir_, device, **items)
+ else:
+ return 1
+ elif re.match('slave', result):
+ necessary_options = ["hostname","path"]
+ if verify_necessary_options(cp, section, necessary_options):
+ path = items.pop('path')
+ hostname = items.pop('hostname')
+ function(section, hostname, path, **items)
else:
return 1
- return 0
-
-
+ return 0
+
+
__all__ = ['parse_testrun_info_file',
'parse_testcaseslist_file',
'parse_testenv_configfile']
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-