summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander.sulfrian@fu-berlin.de>2015-07-21 20:52:32 +0200
committerAlexander Sulfrian <alexander.sulfrian@fu-berlin.de>2015-07-22 00:37:41 +0200
commit61d90fbfd7397b8042b09b542a547b78d31851e0 (patch)
treec71ddc07679d76a061e270d6b7ac056661d74d60
parenta120c653a8bf2c380cc2d158e5169a9b7d2020a8 (diff)
downloadbcfg2-61d90fbfd7397b8042b09b542a547b78d31851e0.tar.gz
bcfg2-61d90fbfd7397b8042b09b542a547b78d31851e0.tar.bz2
bcfg2-61d90fbfd7397b8042b09b542a547b78d31851e0.zip
Options: Set default values from config, right after adding a new option
If adding an option during the "Main Parser Loop" (for example because of loading a component for bcfg-lint) a value for the option from the config file is simply ignored. After adding the option, the parser first tries to find the value in the command line, but cannot find it and set the default value from the source code as option value. After that the value from the config file is set as new default, but because the option already is in the Namespace, it does not use the new "default" value from the config file. This patch simply sets the default value from the config file for the new options, right after adding it to the parser and so the correct value is used afterwards, if the parser cannot find the flag on the command line.
-rw-r--r--src/lib/Bcfg2/Options/Parser.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Options/Parser.py b/src/lib/Bcfg2/Options/Parser.py
index d146e3aa2..b72a495f1 100644
--- a/src/lib/Bcfg2/Options/Parser.py
+++ b/src/lib/Bcfg2/Options/Parser.py
@@ -141,6 +141,9 @@ class Parser(argparse.ArgumentParser):
self.option_list.extend(option.list_options())
option.add_to_parser(self)
+ for opt in option.list_options():
+ opt.default_from_config(self._cfp)
+ self._defaults_set.append(opt)
def add_component(self, component):
""" Add a component (and all of its options) to the