Merge "Fix lease update when resource_type parameter is missing"

This commit is contained in:
Zuul 2022-02-04 16:49:05 +00:00 committed by Gerrit Code Review
commit fb599ec609
2 changed files with 21 additions and 0 deletions

View File

@ -396,6 +396,17 @@ class ManagerService(service_utils.RPCServer):
self._send_notification(lease, ctx, events=['create'])
return lease
def _add_resource_type(self, reservations, existing_reservations):
rsvns_by_id = {}
for r in existing_reservations:
rsvns_by_id[r['id']] = r
for r in reservations:
if 'resource_type' not in r:
r['resource_type'] = rsvns_by_id[r['id']]['resource_type']
return reservations
@status.lease.lease_status(
transition=status.lease.UPDATING,
result_in=status.lease.STABLE,
@ -461,6 +472,10 @@ class ManagerService(service_utils.RPCServer):
'Please enter valid reservation IDs. Invalid reservation '
'IDs are: %s' % ','.join([str(id) for id in invalid_ids]))
# Populate resource_type if missing from data passed by client
reservations = self._add_resource_type(reservations,
existing_reservations)
try:
[
self.plugins[r['resource_type']] for r

View File

@ -0,0 +1,6 @@
---
fixes:
- |
Fixes failure to update reservations when the ``resource_type`` parameter
is not provided in the API request. For more details, see `bug 1957761
<https://bugs.launchpad.net/blazar/+bug/1957761>`_.