You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2015/01/28 05:36:48 UTC
[10/50] trafficserver-qa git commit: Add configs for records.config
Add configs for records.config
Project: http://git-wip-us.apache.org/repos/asf/trafficserver-qa/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver-qa/commit/f16c79a8
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver-qa/tree/f16c79a8
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver-qa/diff/f16c79a8
Branch: refs/heads/master
Commit: f16c79a8d3f08b8b59581ace841fe3e1fa0e1eaf
Parents: 1cec7ac
Author: Thomas Jackson <ja...@gmail.com>
Authored: Tue Dec 23 10:50:13 2014 -0800
Committer: Thomas Jackson <ja...@gmail.com>
Committed: Tue Dec 23 10:50:13 2014 -0800
----------------------------------------------------------------------
tsqa/configs.py | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver-qa/blob/f16c79a8/tsqa/configs.py
----------------------------------------------------------------------
diff --git a/tsqa/configs.py b/tsqa/configs.py
new file mode 100644
index 0000000..51f563f
--- /dev/null
+++ b/tsqa/configs.py
@@ -0,0 +1,62 @@
+class Config(object):
+ '''
+ Class to represent a config file
+ '''
+
+ def __init__(self, filename):
+ self.filename = filename
+ self.load()
+
+ def load(self):
+ with open(self.filename, 'r') as fh:
+ self.contents = fh.read()
+
+ def write(self):
+ '''
+ Write contents to disk
+ '''
+ with open(self.filename, 'w') as fh:
+ fh.write(self.contents)
+
+
+
+class RecordsConfig(Config, dict):
+ '''
+ Create a "dict" representation of records.config
+ '''
+ kind_map = {'STRING': str,
+ 'INT': int,
+ 'FLOAT': float,
+ }
+
+ reverse_kind_map = {str: 'STRING',
+ int: 'INT',
+ float: 'FLOAT',
+ }
+
+ line_template = 'CONFIG {name} {kind} {val}\n'
+
+ def __init__(self, filename):
+ dict.__init__(self)
+ self.filename = filename
+
+ self.load()
+
+ def load(self):
+ self._config = {}
+ with open(self.filename, 'r') as fh:
+ for line in fh:
+ line = line.strip()
+ # skip comments
+ if line.startswith('#'):
+ continue
+ _, name, kind, val = line.split(' ', 3)
+ self[name] = self.kind_map[kind](val)
+
+ def write(self, dest):
+ with open(dest, 'w') as fh:
+ for name, val in self.iteritems():
+ fh.write(self.line_template.format(name=name,
+ kind=self.reverse_kind_map[type(val)],
+ val=val))
+