This file was originally in new_tko/tko, but was lost during the merge to
frontend/tko
Index: autotest/frontend/tko/preconfigs.py
===================================================================
--- autotest/frontend/tko/preconfigs.py (revision 0)
+++ autotest/frontend/tko/preconfigs.py (revision 0)
@@ -0,0 +1,67 @@
+import os
+
+class PreconfigManager(object):
+ _preconfigs = {}
+ _is_init = False
+
+ def _get_preconfig_path(self, suffix):
+ """\
+ Get the absolute path to a prefix directory or file.
+
+ suffix: list of suffixes after the 'preconfigs' directory to navigate to
+ E.g., ['metrics', 'abc'] gives the path to
+ <tko>/preconfigs/metrics/abc
+ """
+ rel_path = os.path.join(os.path.dirname(__file__), 'preconfigs',
+ *suffix)
+ return os.path.abspath(rel_path)
+
+
+ def _init_preconfigs(self):
+ """\
+ Read the names of all the preconfigs from disk and store them in the
+ _preconfigs dictionary.
+ """
+ if not self._is_init:
+ # Read the data
+ self._preconfigs['metrics'] = dict.fromkeys(
+ os.listdir(self._get_preconfig_path(['metrics'])))
+ self._preconfigs['qual'] = dict.fromkeys(
+ os.listdir(self._get_preconfig_path(['qual'])))
+ self._is_init = True
+
+ def _read_preconfig(self, name, type):
+ """\
+ Populate the _preconfigs dictionary entry for the preconfig described
+ by the given parameters. If the preconfig has already been loaded,
+ do nothing.
+
+ name: specific name of the preconfig
+ type: 'metrics' or 'qual'
+ """
+ if self._preconfigs[type][name] is not None:
+ return
+
+ self._preconfigs[type][name] = {}
+ path = self._get_preconfig_path([type, name])
+ config = open(path)
+ try:
+ for line in config:
+ parts = line.split(':')
+ self._preconfigs[type][name][parts[0]] = parts[1].strip()
+ finally:
+ config.close()
+
+
+ def get_preconfig(self, name, type):
+ self._init_preconfigs()
+ self._read_preconfig(name, type)
+ return self._preconfigs[type][name]
+
+
+ def all_preconfigs(self):
+ self._init_preconfigs()
+ return dict(self._preconfigs)
+
+
+manager = PreconfigManager()
Property changes on: autotest/frontend/tko/preconfigs.py
___________________________________________________________________
Added: svn:executable
+ *
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest