| # /usr/bin/env python |
| """ |
| Created on 07-Jan-2013 |
| Copyright 2013 Open Networking Foundation ( ONF ) |
| |
| Please refer questions to either the onos test mailing list at <onos-test@onosproject.org>, |
| the System Testing Plans and Results wiki page at <https://wiki.onosproject.org/x/voMg>, |
| or the System Testing Guide page at <https://wiki.onosproject.org/x/WYQg> |
| |
| author:: Raghav Kashyap( raghavkashyap@paxterrasolutions.com ) |
| |
| TestON is free software: you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation, either version 2 of the License, or |
| ( at your option ) any later version. |
| |
| TestON is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with TestON. If not, see <http://www.gnu.org/licenses/>. |
| |
| |
| """ |
| import xmldict |
| import re |
| |
| |
| class xmlparser: |
| |
| def __init__( self ): |
| self.default = '' |
| |
| def parse( self, fileName ): |
| """ |
| This will parse the params or topo or cfg file and return content in the file as Dictionary |
| """ |
| self.fileName = fileName |
| matchFileName = re.match( r'(.*)\.(params|topo|cfg)', self.fileName, re.M | re.I ) |
| if matchFileName: |
| xml = open( fileName ).read() |
| try: |
| parsedInfo = xmldict.xml_to_dict( xml ) |
| return parsedInfo |
| except Exception as e: |
| print "Error parsing file " + fileName + ": " + e.message |
| else: |
| print "File name is not correct" |
| |
| def parseParams( self, paramsPath ): |
| """ |
| It will take the params file path and will return the params dictionary |
| """ |
| paramsPath = re.sub( "\.", "/", paramsPath ) |
| paramsPath = re.sub( "tests|examples", "", paramsPath ) |
| params = self.parse( main.tests_path + paramsPath + ".params" ) |
| paramsAsString = str( params ) |
| return eval( paramsAsString ) |
| |
| def parseTopology( self, topologyPath ): |
| """ |
| It will take topology file path and will return topology dictionary |
| """ |
| topologyPath = re.sub( "\.", "/", topologyPath ) |
| topologyPath = re.sub( "tests|examples", "", topologyPath ) |
| # topology = self.parse( main.tests_path+"/"+topologyPath+".topo" ) |
| topology = self.parse( main.tests_path + topologyPath + ".topo" ) |
| topoAsString = str( topology ) |
| return eval( topoAsString ) |