Change default num_retries for glance to 3

Previously, the default value of num_retries for glance is 0.
It means that the request to glance is sent only one time.
On the other hand, neutron and cinder clients set the default
value to 3.
To align the default value for retry to other components, we
should change the default value to 3.

Closes-Bug: #1888168
Change-Id: Ibbd4bd26408328b9e1a1128b3794721405631193
(cherry picked from commit 662af9fab6)
(cherry picked from commit 1f9dd694b9)
(cherry picked from commit ca2fd8098a)
(cherry picked from commit ed7767865f)
This commit is contained in:
Keigo Noha 2020-07-10 10:32:02 +09:00
parent 3c77443550
commit 11e391c314
4 changed files with 19 additions and 8 deletions

View File

@ -44,7 +44,7 @@ Possible values:
(i.e. "http://10.0.1.0:9292" or "https://my.glance.server/image").
"""),
cfg.IntOpt('num_retries',
default=0,
default=3,
min=0,
help="""
Enable glance operation retries.

View File

@ -148,7 +148,7 @@ class TestGlanceStore(stubs.XenAPITestBaseNoDB):
mock_sr_path.assert_called_once_with(self.session)
mock_extra_header.assert_called_once_with(self.context)
mock_upload.assert_called_once_with(
self.session, 0, mock.ANY, mock.ANY, 'fake_image_uuid',
self.session, 3, mock.ANY, mock.ANY, 'fake_image_uuid',
'fake_sr_path', 'fake_extra_header', **params)
@mock.patch.object(utils, 'get_auto_disk_config_from_instance')
@ -169,7 +169,7 @@ class TestGlanceStore(stubs.XenAPITestBaseNoDB):
mock_sr_path.assert_called_once_with(self.session)
mock_extra_header.assert_called_once_with(self.context)
mock_upload.assert_called_once_with(
self.session, 0, mock.ANY, mock.ANY, 'fake_image_uuid',
self.session, 3, mock.ANY, mock.ANY, 'fake_image_uuid',
'fake_sr_path', 'fake_extra_header', **params)
mock_disk_config.assert_called_once_with(self.instance)
@ -190,7 +190,7 @@ class TestGlanceStore(stubs.XenAPITestBaseNoDB):
mock_sr_path.assert_called_once_with(self.session)
mock_extra_header.assert_called_once_with(self.context)
mock_upload.assert_called_once_with(
self.session, 0, mock.ANY, mock.ANY, 'fake_image_uuid',
self.session, 3, mock.ANY, mock.ANY, 'fake_image_uuid',
'fake_sr_path', 'fake_extra_header', **params)
mock_disk_config.assert_called_once_with(self.instance)
@ -211,7 +211,7 @@ class TestGlanceStore(stubs.XenAPITestBaseNoDB):
mock_sr_path.assert_called_once_with(self.session)
mock_extra_header.assert_called_once_with(self.context)
mock_upload.assert_called_once_with(
self.session, 0, mock.ANY, mock.ANY, 'fake_image_uuid',
self.session, 3, mock.ANY, mock.ANY, 'fake_image_uuid',
'fake_sr_path', 'fake_extra_header', **params)
@mock.patch.object(common_glance, 'generate_identity_headers')
@ -231,7 +231,7 @@ class TestGlanceStore(stubs.XenAPITestBaseNoDB):
mock_sr_path.assert_called_once_with(self.session)
mock_extra_header.assert_called_once_with(self.context)
mock_upload.assert_called_once_with(
self.session, 0, mock.ANY, mock.ANY, 'fake_image_uuid',
self.session, 3, mock.ANY, mock.ANY, 'fake_image_uuid',
'fake_sr_path', 'fake_extra_header', **params)
@mock.patch.object(time, 'sleep')
@ -330,5 +330,5 @@ class TestGlanceStore(stubs.XenAPITestBaseNoDB):
mock_sr_path.assert_called_once_with(self.session)
mock_extra_header.assert_called_once_with(self.context)
mock_upload.assert_called_once_with(
self.session, 0, mock.ANY, mock.ANY, 'fake_image_uuid',
self.session, 3, mock.ANY, mock.ANY, 'fake_image_uuid',
'fake_sr_path', 'fake_extra_header', **params)

View File

@ -256,7 +256,7 @@ class FetchVhdImageTestCase(VMUtilsTestBase):
self.mock_call_plugin.assert_called_once_with(
'glance.py',
'download_vhd2',
0,
3,
mock.ANY,
mock.ANY,
extra_headers={'X-Auth-Token': 'auth_token',

View File

@ -0,0 +1,11 @@
---
upgrade:
- |
The default for ``[glance] num_retries`` has changed from ``0`` to ``3``.
The option controls how many times to retry a Glance API call in response
to a HTTP connection failure. When deploying Glance behind HAproxy it is
possible for a response to arrive just after the HAproxy idle time. As a
result, an exception will be raised when the connection is closed resulting
in a failed request. By increasing the default value, Nova can be more
resilient to this scenario were HAproxy is misconfigured by retrying the
request.