diff options
author | Balazs Gibizer <balazs.gibizer@est.tech> | 2021-07-23 18:13:37 +0200 |
---|---|---|
committer | Balazs Gibizer <balazs.gibizer@est.tech> | 2021-11-01 09:20:30 +0100 |
commit | 90ed7e574d06a241297b859354237350cc6eb82a (patch) | |
tree | 08244ca797678b43d8f086cf3b3ceed7b123fa3c /nova/exception.py | |
parent | e14eef0719eceef35e7e96b3e3d242ec79a80969 (diff) | |
download | nova-90ed7e574d06a241297b859354237350cc6eb82a.tar.gz |
[nova-manage]support extended resource request
The nova-manage placement heal_allocations CLI is capable of healing
missing placement allocations due to port resource requests. To support
the new extended port resource request this code needs to be adapted
too.
When the heal_allocation command got the port resource request
support in train, the only way to figure out the missing allocations was
to dig into the placement RP tree directly. Since then nova gained
support for interface attach with such ports and to support that
placement gained support for in_tree filtering in allocation candidate
queries. So now the healing logic can be generalized to following:
For a given instance
1) Find the ports that has resource request but no allocation key in the
binding profile. These are the ports we need to heal
2) Gather the RequestGroups from the these ports and run an
allocation_candidates query restricted to the current compute of the
instance with in_tree filtering.
3) Extend the existing instance allocation with a returned allocation
candidate and update the instance allocation in placement.
4) Update the binding profile of these ports in neutron
The main change compared to the existing implementation is in step 2)
the rest mostly the same.
Note that support for old resource request format is kept alongside of
the new resource request format until Neutron makes the new format
mandatory.
blueprint: qos-minimum-guaranteed-packet-rate
Change-Id: I58869d2a5a4ed988fc786a6f1824be441dd48484
Diffstat (limited to 'nova/exception.py')
-rw-r--r-- | nova/exception.py | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/nova/exception.py b/nova/exception.py index 5ee06a7379..1884c3e900 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -2291,28 +2291,6 @@ class HealPortAllocationException(NovaException): msg_fmt = _("Healing port allocation failed.") -class MoreThanOneResourceProviderToHealFrom(HealPortAllocationException): - msg_fmt = _("More than one matching resource provider %(rp_uuids)s is " - "available for healing the port allocation for port " - "%(port_id)s for instance %(instance_uuid)s. This script " - "does not have enough information to select the proper " - "resource provider from which to heal.") - - -class NoResourceProviderToHealFrom(HealPortAllocationException): - msg_fmt = _("No matching resource provider is " - "available for healing the port allocation for port " - "%(port_id)s for instance %(instance_uuid)s. There are no " - "resource providers with matching traits %(traits)s in the " - "provider tree of the resource provider %(node_uuid)s ." - "This probably means that the neutron QoS configuration is " - "wrong. Consult with " - "https://docs.openstack.org/neutron/latest/admin/" - "config-qos-min-bw.html for information on how to configure " - "neutron. If the configuration is fixed the script can be run " - "again.") - - class UnableToQueryPorts(HealPortAllocationException): msg_fmt = _("Unable to query ports for instance %(instance_uuid)s: " "%(error)s") |