summaryrefslogtreecommitdiff
path: root/nova/exception.py
diff options
context:
space:
mode:
authorBalazs Gibizer <balazs.gibizer@est.tech>2021-07-23 18:13:37 +0200
committerBalazs Gibizer <balazs.gibizer@est.tech>2021-11-01 09:20:30 +0100
commit90ed7e574d06a241297b859354237350cc6eb82a (patch)
tree08244ca797678b43d8f086cf3b3ceed7b123fa3c /nova/exception.py
parente14eef0719eceef35e7e96b3e3d242ec79a80969 (diff)
downloadnova-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.py22
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")