Fix command line arguments has lower priority than config file

*This bug happened because of how oslo is handling the order of command line

  *Make sure the command line parameter will always send last

Change-Id: Ia106ce2bd2994c494a6c25039d92358eeb0abdb9
Closes-Bug: #1454111
This commit is contained in:
Limor Stotland 2015-05-26 12:48:36 +00:00
parent 4e699ce21b
commit 379c6eb85b

View File

@ -157,9 +157,29 @@ def print_server_info():
print('Launching server components %s...' % comp_str) print('Launching server components %s...' % comp_str)
def get_properly_ordered_parameters():
"""In oslo it's important the order of the launch parameters.
if --config-file came after the command line parameters the command
line parameters are ignored.
So to make user command line parameters are never ignored this method
moves --config-file to be always first.
"""
args = sys.argv[1:]
for arg in sys.argv[1:]:
if arg == '--config-file' or arg.startswith('--config-file='):
conf_file_value = args[args.index(arg) + 1]
args.remove(conf_file_value)
args.remove(arg)
args.insert(0, arg)
args.insert(1, conf_file_value)
return args
def main(): def main():
try: try:
config.parse_args() config.parse_args(get_properly_ordered_parameters())
print_server_info() print_server_info()