configurationengine/source/scripts/cone_subaction.py
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configurationengine/source/scripts/cone_subaction.py	Thu Mar 11 17:04:37 2010 +0200
@@ -0,0 +1,78 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+import os
+import sys
+import fnmatch 
+import re
+import logging
+
+
+def get_subactions(path,pattern):
+    """ Find out the cone subscripts that are present in the ROOT_PATH """
+    subacts = ActionContainer()
+    for file in os.listdir(path):
+        if fnmatch.fnmatch(file, pattern):
+            sact = SubAction(file,pattern)
+            subacts[sact.name] = sact
+    return subacts
+
+def get_log_level(level):
+    """
+    Change the given user input log level to logging categorisation
+    """
+    if level == 0 : return logging.NOTSET
+    elif level == 1 : return logging.CRITICAL
+    elif level == 2 : return logging.ERROR
+    elif level == 3 : return logging.WARNING
+    elif level == 4 : return logging.INFO
+    elif level == 5 : return logging.DEBUG
+    else : return logging.NOTSET
+
+class ActionContainer(object):
+    def __init__(self):
+        self._actions = {}
+
+    def __len__(self):
+        return len(self._actions)
+
+    def __getitem__(self, key):
+        return self._actions[key]
+
+    def __setitem__( self, key, value):
+        self._actions[key] = value
+
+    def __delitem__( self, key):
+        del self._actions[key]
+
+    def __iter__( self):
+        return self._actions.__iter__()
+
+class SubAction(object):
+    def __init__(self, scriptname, pattern):
+        self._scriptname = scriptname
+        self._pattern = pattern
+
+    @property
+    def name(self):
+        """ translate the pattern """
+        pattern = fnmatch.translate(self._pattern).replace('.*', '(.*)')
+        m = re.match(pattern, self._scriptname)
+        return m.group(1)
+
+    def run(self):
+        module = __import__(self._scriptname.replace('.py',''))
+        module.main()