diff --git a/cinder/keymgr/barbican.py b/cinder/keymgr/barbican.py index ee59cbc5a879..4d6a31194bc3 100644 --- a/cinder/keymgr/barbican.py +++ b/cinder/keymgr/barbican.py @@ -23,6 +23,7 @@ import binascii import re from barbicanclient import client as barbican_client +from barbicanclient import exceptions as barbican_exc from keystoneclient.auth import identity from keystoneclient import session from oslo_config import cfg @@ -333,6 +334,13 @@ class BarbicanKeyManager(key_mgr.KeyManager): try: secret_ref = self._create_secret_ref(key_id, barbican_client) barbican_client.secrets.delete(secret_ref) + except barbican_exc.HTTPClientError as e: + if e.status_code == 404: + LOG.warning("Warning: secret %s doesn't exist in Barbican" % key_id) + pass + else: + with excutils.save_and_reraise_exception(): + LOG.exception(_LE("Error deleting key.")) except Exception: with excutils.save_and_reraise_exception(): LOG.exception(_LE("Error deleting key."))