Remove upgrade specific info from user facing exception text

One of the PortUpdateFailed exception usage case introduced by the
bp support-move-ops-with-qos-ports overly chatty about upgrade and
pinned RPC. This message can reach the end user during resize so the
deployment specific information is removed from the exception message
and logged instead. Also a TODO is added that the whole check can be
removed once we bump the compute RPC to 6.0

Change-Id: I37b02da02a42cab09d2efe6d1a4b88cbc8b9b0d0
This commit is contained in:
Balazs Gibizer 2019-09-24 10:44:46 +02:00
parent 38c774a8e0
commit 5d650753e2
2 changed files with 13 additions and 9 deletions

View File

@ -3361,22 +3361,28 @@ class API(base_api.NetworkAPI):
if p.get('resource_request'):
if not provider_mappings:
# TODO(gibi): Remove this check when compute RPC API is
# bumped to 6.0
# NOTE(gibi): This should not happen as the API level
# minimum compute service version check ensures that the
# compute services already send the RequestSpec during
# the move operations between the source and the
# destination and the dest compute calculates the
# mapping based on that.
LOG.warning(
"Provider mappings are not available to the compute "
"service but are required for ports with a resource "
"request. If compute RPC API versions are pinned for "
"a rolling upgrade, you will need to retry this "
"operation once the RPC version is unpinned and the "
"nova-compute services are all upgraded.",
instance=instance)
raise exception.PortUpdateFailed(
port_id=p['id'],
reason=_(
"Provider mappings are not available to the "
"compute service but are required for ports with "
"a resource request. If compute RPC API versions "
"are pinned for a rolling upgrade, you will need "
"to retry this operation once the RPC version is "
"unpinned and the nova-compute services are all "
"upgraded."))
"a resource request."))
# NOTE(gibi): In the resource provider mapping there can be
# more than one RP fulfilling a request group. But resource

View File

@ -4580,10 +4580,8 @@ class TestNeutronv2WithMock(TestNeutronv2Base):
instance, 'new-host', migration, provider_mappings=None)
self.assertIn(
"Provider mappings are not available to the compute service but "
"are required for ports with a resource request. If compute RPC "
"API versions are pinned for a rolling upgrade, you will need to "
"retry this operation once the RPC version is unpinned and the "
"nova-compute services are all upgraded.", six.text_type(ex))
"are required for ports with a resource request.",
six.text_type(ex))
def test_get_pci_mapping_for_migration(self):
instance = fake_instance.fake_instance_obj(self.context)