From 8b8fc495b03528ec7de71cda26a1dc437b59575e Mon Sep 17 00:00:00 2001 From: liusheng Date: Mon, 18 Sep 2017 20:00:47 +0800 Subject: [PATCH] Support quota rollback when creating/importing keypair failed Change-Id: I83a7410f7509913aa574fe7fe9fc08e4688b32f6 Closes-Bug: #1717912 --- mogan/engine/api.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mogan/engine/api.py b/mogan/engine/api.py index 7edf2909..730d710d 100644 --- a/mogan/engine/api.py +++ b/mogan/engine/api.py @@ -553,7 +553,11 @@ class API(object): keypair.fingerprint = fingerprint keypair.public_key = public_key keypair.project_id = context.tenant - keypair.create() + try: + keypair.create() + except Exception: + with excutils.save_and_reraise_exception(): + self.quota.rollback(context, reservations) # Commit keypairs reservations if reservations: self.quota.commit(context, reservations) @@ -577,7 +581,11 @@ class API(object): keypair.fingerprint = fingerprint keypair.public_key = public_key keypair.project_id = context.tenant - keypair.create() + try: + keypair.create() + except Exception: + with excutils.save_and_reraise_exception(): + self.quota.rollback(context, reservations) # Commit keypairs reservations if reservations: self.quota.commit(context, reservations)