diff --git a/ironic_python_agent/config.py b/ironic_python_agent/config.py index 6c5ca9639..2fccb3a29 100644 --- a/ironic_python_agent/config.py +++ b/ironic_python_agent/config.py @@ -25,8 +25,10 @@ cli_opts = [ cfg.StrOpt('api_url', default=APARAMS.get('ipa-api-url'), deprecated_name='api-url', + regex='^http(s?):\/\/.+', help='URL of the Ironic API. ' - 'Can be supplied as "ipa-api-url" kernel parameter.'), + 'Can be supplied as "ipa-api-url" kernel parameter.' + 'The value must start with either http:// or https://.'), cfg.StrOpt('listen_host', default=APARAMS.get('ipa-listen-host', '0.0.0.0'), diff --git a/releasenotes/notes/fail_ipa_start_if_ironic_api_invalid-7b78fcaba2141cc5.yaml b/releasenotes/notes/fail_ipa_start_if_ironic_api_invalid-7b78fcaba2141cc5.yaml new file mode 100644 index 000000000..2f4ca3010 --- /dev/null +++ b/releasenotes/notes/fail_ipa_start_if_ironic_api_invalid-7b78fcaba2141cc5.yaml @@ -0,0 +1,8 @@ +--- +fixes: + - Accepting ``ipa-api-url`` value specified in the configuration + file that does not start with either ``https://`` or ``http://``. + Such value leads failure while contacting ironic-api. + This misconfiguration will be detected on ironic-python-agent start. + An exception will be raised and an error about the invalid value + will be logged.