Merge "To delete the keypair preparing for update replacement"

This commit is contained in:
Jenkins 2016-07-27 23:15:06 +00:00 committed by Gerrit Code Review
commit f82f7b0a8e
2 changed files with 19 additions and 0 deletions

View File

@ -135,6 +135,13 @@ class KeyPair(resource.Resource):
def get_reference_id(self):
return self.resource_id
def prepare_for_replace(self):
if self.resource_id is None:
return
with self.client_plugin().ignore_not_found:
self.client().keypairs.delete(self.resource_id)
def resource_mapping():
return {'OS::Nova::KeyPair': KeyPair}

View File

@ -145,6 +145,18 @@ class NovaKeyPairTest(common.HeatTestCase):
self.assertIn("boom", six.text_type(exc))
self.assertEqual((res.CHECK, res.FAILED), res.state)
def test_update_replace(self):
res = self._get_test_resource(self.kp_template)
res.state_set(res.CHECK, res.FAILED, 'for test')
res.resource_id = 'my_key'
# to delete the keypair preparing for replace
self.fake_keypairs.delete('my_key')
self.m.ReplayAll()
updater = scheduler.TaskRunner(res.update, res.t)
self.assertRaises(exception.UpdateReplace, updater)
self.m.ReplayAll()
def test_delete_key_not_found(self):
"""Test delete non-existent key."""
test_res = self._get_test_resource(self.kp_template)