Catch NotFound exception on user delete_key

Deleting a key which doesn't exist shouldn't cause a failure. Catch
NotFound exceptions so delete can succeed in this case.

Change-Id: If651a2936862f8ed2168c2c216ef6df8e944d6ba
Closes-Bug: #1291060
This commit is contained in:
Gregory Haynes 2014-03-12 16:41:50 -07:00
parent 6a7fd79ae1
commit efeb365f7b
2 changed files with 11 additions and 1 deletions

View File

@ -135,7 +135,11 @@ class StackUser(resource.Resource):
# Subclasses may optionally call this to delete a keypair created
# via _create_keypair
user_id = self._get_user_id()
credential_id = db_api.resource_data_get(self, 'credential_id')
try:
credential_id = db_api.resource_data_get(self, 'credential_id')
except exception.NotFound:
return
try:
self.keystone().delete_stack_domain_user_keypair(
user_id=user_id, project_id=self.stack.stack_user_project_id,

View File

@ -304,6 +304,12 @@ class StackUserTest(HeatTestCase):
self.assertEqual({'user_id': 'auserdel'}, rs_data)
self.m.VerifyAll()
def test_delete_keypair_no_credential_id(self):
rsrc = self._user_create(stack_name='user_testdel',
project_id='aprojectdel',
user_id='auserdel')
rsrc._delete_keypair()
def test_delete_keypair_legacy(self):
rsrc = self._user_create(stack_name='user_testdel',
project_id='aprojectdel',