blob: fea0ce9375f02ba9097f0db52e79a932a09a7db8 [file] [log] [blame]
adminbae64d82013-08-01 10:50:15 -07001#/usr/bin/env python
2'''
3Created on 07-Jan-2013
Jon Hall4ba53f02015-07-29 13:07:41 -07004
adminbae64d82013-08-01 10:50:15 -07005@author: Raghav Kashyap(raghavkashyap@paxterrasolutions.com)
6
7 TestON is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 2 of the License, or
10 (at your option) any later version.
11
12 TestON is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
Jon Hall4ba53f02015-07-29 13:07:41 -070018 along with TestON. If not, see <http://www.gnu.org/licenses/>.
adminbae64d82013-08-01 10:50:15 -070019
20
21'''
22
23import xmldict
24import re
25
26class xmlparser :
Jon Hall4ba53f02015-07-29 13:07:41 -070027
adminbae64d82013-08-01 10:50:15 -070028 def __init__(self) :
29 self.default = ''
30
31 def parse(self,fileName) :
32 '''
33 This will parse the params or topo or cfg file and return content in the file as Dictionary
34 '''
35 self.fileName = fileName
36 matchFileName = re.match(r'(.*)\.(params|topo|cfg)', self.fileName, re.M | re.I)
37 if matchFileName:
38 xml = open(fileName).read()
39 try :
40 parsedInfo = xmldict.xml_to_dict(xml)
41 return parsedInfo
Jon Hallfebb1c72015-03-05 13:30:09 -080042 except Exception:
Jon Hall4ba53f02015-07-29 13:07:41 -070043 print "There is no such file to parse " + fileName
adminbae64d82013-08-01 10:50:15 -070044 else :
45 print "file name is not correct"
46
47 def parseParams(self,paramsPath):
48 '''
49 It will take the params file path and will return the params dictionary
50 '''
Jon Hall4ba53f02015-07-29 13:07:41 -070051 paramsPath = re.sub("\.","/",paramsPath)
adminbae64d82013-08-01 10:50:15 -070052 paramsPath = re.sub("tests|examples","",paramsPath)
53 params = self.parse(main.tests_path+paramsPath+".params")
54 paramsAsString = str(params)
55 return eval(paramsAsString)
56
57 def parseTopology(self,topologyPath):
58 '''
59 It will take topology file path and will return topology dictionary
60 '''
61 topologyPath = re.sub("\.","/",topologyPath)
62 topologyPath = re.sub("tests|examples","",topologyPath)
andrewonlab31d9f2d2014-10-09 13:25:13 -040063 #topology = self.parse(main.tests_path+"/"+topologyPath+".topo")
64 topology = self.parse(main.tests_path+topologyPath+".topo")
adminbae64d82013-08-01 10:50:15 -070065 topoAsString = str(topology)
66 return eval(topoAsString)
Jon Hall4ba53f02015-07-29 13:07:41 -070067