diff -r 000000000000 -r 2e8eeb919028 configurationengine/source/scripts/cone_subaction.py --- /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()