Load deployer input file automatically

This patch add the load of deployer-input automatically, if exists in
default path (~/tempest-deployer-input.conf).
It also add the option to not load it, with --no-default-deployer
This will fix the cases that user miss to add --deployer-input and
tempestconf miss some configuration due of that.

Change-Id: I17ce46bac06158dd3cca298f33c6ea929051fb06
This commit is contained in:
Arx Cruz 2018-05-07 11:51:33 +02:00 committed by Martin Kopec
parent 1e3caa063c
commit 42ba94a164
3 changed files with 28 additions and 3 deletions

View File

@ -21,6 +21,8 @@ LOG = logging.getLogger(__name__)
# Get the current tempest workspace path
TEMPEST_WORKSPACE = os.getcwd()
DEPLOYER_INPUT = os.path.join(os.path.expanduser("~"),
"tempest-deployer-input.conf")
DEFAULTS_FILE = os.path.join(TEMPEST_WORKSPACE, "etc",
"default-overrides.conf")
DEFAULT_IMAGE = ("http://download.cirros-cloud.net/0.3.5/"

View File

@ -123,13 +123,16 @@ def read_deployer_input(deployer_input_file, conf):
def set_options(conf, deployer_input, non_admin, overrides=[],
test_accounts=None, cloud_creds=None):
test_accounts=None, cloud_creds=None,
no_default_deployer=False):
"""Set options in conf provided by different source.
1. read the default values in default-overrides file
2. read a file provided by --deployer-input argument
3. set values from client's config (os-client-config support) if provided
4. set overrides - may override values which were set in the steps above
3. read default DEPLOYER_INPUT if --no-deployer-input is False and no
deployer_input was passed
4. set values from client's config (os-client-config support) if provided
5. set overrides - may override values which were set in the steps above
:param conf: TempestConf object
:param deployer_input: Path to the deployer inut file
@ -149,7 +152,13 @@ def set_options(conf, deployer_input, non_admin, overrides=[],
load_basic_defaults(conf)
if deployer_input and os.path.isfile(deployer_input):
LOG.info("Reading deployer input from file {}".format(
deployer_input))
read_deployer_input(deployer_input, conf)
elif os.path.isfile(C.DEPLOYER_INPUT) and not no_default_deployer:
LOG.info("Reading deployer input from file {}".format(
C.DEPLOYER_INPUT))
read_deployer_input(C.DEPLOYER_INPUT, conf)
if non_admin:
# non admin, so delete auth admin values which were set
@ -207,6 +216,11 @@ def get_arg_parser():
key/value pairs they will be applied after the
deployer-input file.
""")
parser.add_argument('--no-default-deployer', action='store_true',
default=False,
help="""Do not check for the default deployer input in
$home/tempest-deployer-input.conf
""")
parser.add_argument('overrides', nargs='*', default=[],
help="""key value pairs to modify. The key is
section.key where section is a section header

View File

@ -0,0 +1,9 @@
---
features:
- |
The deployer-input file will be loaded automatically if exists in the
default path, which is ~/tempest-deployer-input.conf.
This will fix the cases that user forgot to add --deployer-input and
python-tempestconf forgot some configuration due of that.
Also a new argument (--no-default-deployer) is added, which will make
python-tempestconf not to load the file automatically.