diff -r 87cfa131b535 -r e7e0ae78773e configurationengine/source/scripts/conesub_fix.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configurationengine/source/scripts/conesub_fix.py Tue Aug 10 14:29:28 2010 +0300 @@ -0,0 +1,100 @@ +# +# 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 logging +from optparse import OptionParser, OptionGroup +import cone_common +from cone.public import api, exceptions +from cone.action import fix +from cone.validation import confmlvalidation + +ROOT_PATH = os.path.abspath(os.path.dirname(__file__)) + +VERSION = '1.0' + +logger = logging.getLogger('cone') + +def main(): + """ Run automatic fixes for configurations. """ + parser = OptionParser(version="ConE validate %s" % VERSION) + + parser.add_options(cone_common.COMMON_OPTIONS) + + parser.add_option("-c", "--configuration", + dest="configuration", + help="Defines the name of the configuration for the action", + metavar="CONFIG") + + parser.add_option("-p", "--project", + dest="project", + default=".", + help="defines the location of current project. Default is the "\ + "current working directory.", + metavar="STORAGE") + + group = OptionGroup(parser, 'Fix options', + 'The fix action is intended for performing fixes on a '\ + 'configuration. ') + + group.add_option("--print-available-fixes", + action="store_true", + help="Print all configuration fixer objects available.", + default=False) + + group.add_option("--exclude-filter", + action="append", + help="Exclude problems by given filter. "\ + "Examples: --exclude-filter=schema, --exclude-filter=schema.implml, --exclude-filter=schema.confml, --exclude-filter=schema.implml.ruleml", + default=None) + + group.add_option("--include-filter", + action="append", + help="Include problems by given filter."\ + "Examples: --include-filter=schema.implml, --include-filter=schema.implml.ruleml", + default=None) + + parser.add_option_group(group) + (options, _) = parser.parse_args() + + cone_common.handle_common_options(options) + + + if options.print_available_fixes: + print "Available fixers:" + for fix_class in confmlvalidation.get_fixer_classes(): + print "%s: %s" % (fix_class, fix_class.__doc__) + return 0 + else: + if not options.configuration: + parser.error("A configuration must be given! Use -c / --configuration option.") + action = fix.ConeFixAction(include_filter=options.include_filter or [], + exclude_filter=options.exclude_filter or [], + username=options.username, + password=options.password, + project_name=options.project, + configuration_name=options.configuration) + + status = action.run() + if status: + action.save() + action.close() + + return status + + +if __name__ == "__main__": + main()