From: Tony Mack Date: Wed, 2 Nov 2011 12:21:56 +0000 (-0400) Subject: initial checkin X-Git-Tag: sfa-1.1-2~11 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=fd6dbd285dee3964e33676bd465859b0ee3346a2;p=sfa.git initial checkin --- diff --git a/sfa/util/topology.py b/sfa/util/topology.py new file mode 100644 index 00000000..bd7eb189 --- /dev/null +++ b/sfa/util/topology.py @@ -0,0 +1,40 @@ +## +# SFA Topology Info +# +# This module holds topology configuration for SFA. It is implemnted as a +# list of site_id tuples + +import os.path +import traceback +from sfa.util.sfalogging import logger + +class Topology(set): + """ + Parse the topology configuration file. + """ + + #def __init__(self, config_file = "/etc/sfa/topology"): + def __init__(self, config_file = "/tmp/topology"): + set.__init__(self) + self.config_file = None + self.config_path = None + self.load(config_file) + + def load(self, config_file): + try: + + self.config_file = config_file + # path to configuration data + self.config_path = os.path.dirname(config_file) + # load the links + f = open(config_file, 'r') + for line in f: + ignore = line.find('#') + if ignore > -1: + line = line[0:ignore] + tup = line.split() + if len(tup) > 1: + self.add((tup[0], tup[1])) + except Exception, e: + logger.log_exc("Could not find or load the configuration file: %s" % config_file) + raise