rsrc.state)
return rsrc
+ def create_user(self, t, stack, resource_name):
+ rsrc = stack[resource_name]
+ self.assertEqual(None, rsrc.validate())
+ scheduler.TaskRunner(rsrc.create)()
+ self.assertEqual(rsrc.CREATE_COMPLETE, rsrc.state)
+ return rsrc
+
def test_access_key(self):
self.m.StubOutWithMock(user.AccessKey, 'keystone')
+ self.m.StubOutWithMock(user.User, 'keystone')
user.AccessKey.keystone().MultipleTimes().AndReturn(self.fc)
+ user.User.keystone().MultipleTimes().AndReturn(self.fc)
self.m.ReplayAll()
t = template_format.parse(user_accesskey_template)
- # Override the Ref for UserName with a hard-coded name,
- # so we don't need to create the User resource
- username = str(utils.PhysName('test_stack', 'CfnUser'))
- t['Resources']['HostKeys']['Properties']['UserName'] = username
stack = parse_stack(t)
- stack.resources['CfnUser'].resource_id = self.fc.user_id
- stack.resources['CfnUser'].state = 'CREATE_COMPLETE'
+ self.create_user(t, stack, 'CfnUser')
rsrc = self.create_access_key(t, stack, 'HostKeys')
self.assertRaises(resource.UpdateReplace,
self.assertEqual(None, rsrc.delete())
self.m.VerifyAll()
- # Check for double delete
- test_key = object()
+ def test_access_key_deleted(self):
+ self.m.StubOutWithMock(user.AccessKey, 'keystone')
+ self.m.StubOutWithMock(user.User, 'keystone')
+ user.AccessKey.keystone().MultipleTimes().AndReturn(self.fc)
+ user.User.keystone().MultipleTimes().AndReturn(self.fc)
+
+ self.m.ReplayAll()
+
+ t = template_format.parse(user_accesskey_template)
+ stack = parse_stack(t)
+
+ self.create_user(t, stack, 'CfnUser')
+ rsrc = self.create_access_key(t, stack, 'HostKeys')
+ self.assertEqual(rsrc.CREATE_COMPLETE, rsrc.state)
+
self.m.StubOutWithMock(self.fc, 'delete_ec2_keypair')
NotFound = keystoneclient.exceptions.NotFound
self.fc.delete_ec2_keypair(self.fc.user_id,
- test_key).AndRaise(NotFound('Gone'))
-
+ rsrc.resource_id).AndRaise(NotFound('Gone'))
self.m.ReplayAll()
- rsrc.state = rsrc.CREATE_COMPLETE
- rsrc.resource_id = test_key
+
self.assertEqual(None, rsrc.delete())
+
self.m.VerifyAll()
def test_access_key_no_user(self):