Use cfg.URIOpt for URLs with required schemes

instead of specifying URL config options as StrOpt + regex enforcing
the string starting with 'http://' or 'https://'.

URIOpt is already available in minimal version of oslo.config that is
required by ironic.

Change-Id: I47089e215f730b3990004a66e0f35262a5f9d9bd
This commit is contained in:
Pavlo Shchelokovskyy 2017-05-24 11:05:08 +00:00
parent 3ea3771776
commit 13d91bd7b4
3 changed files with 7 additions and 13 deletions

View File

@ -974,7 +974,7 @@
# URL for connecting to cinder. If set, the value must start
# with either http:// or https://. This option is part of
# boot-from-volume work, which is not currently exposed to
# users. (string value)
# users. (uri value)
#url = <None>
# User's domain id (string value)
@ -1023,7 +1023,7 @@
# URL of Ironic API service. If not set ironic can get the
# current value from the keystone service catalog. If set, the
# value must start with either http:// or https://. (string
# value must start with either http:// or https://. (uri
# value)
#api_url = <None>

View File

@ -17,8 +17,8 @@ from ironic.common.i18n import _
from ironic.conf import auth
opts = [
cfg.StrOpt('url',
regex='^http(s?):\/\/.+',
cfg.URIOpt('url',
schemes=('http', 'https'),
help=_('URL for connecting to cinder. If set, the value must '
'start with either http:// or https://. This option is '
'part of boot-from-volume work, which is not currently '
@ -47,10 +47,4 @@ def register_opts(conf):
def list_opts():
# NOTE(jtaryma): Function add_auth_opts uses deepcopy on passed array.
# Since deepcopy does not support regex, to enable regex
# protocol restriction for 'url' option, empty array is
# passed. The result is appended to opts array and resorted.
cinder_opts = opts + auth.add_auth_opts([])
cinder_opts.sort(key=lambda x: x.name)
return cinder_opts
return auth.add_auth_opts(opts)

View File

@ -28,8 +28,8 @@ opts = [
cfg.IntOpt('heartbeat_interval',
default=10,
help=_('Seconds between conductor heart beats.')),
cfg.StrOpt('api_url',
regex='^http(s?):\/\/.+',
cfg.URIOpt('api_url',
schemes=('http', 'https'),
help=_('URL of Ironic API service. If not set ironic can '
'get the current value from the keystone service '
'catalog. If set, the value must start with either '