def test_instance_data_gc_works(self): server_mgr = self.fake_client_set.compute.servers instances.admin_client_set().AndReturn(self.fake_client_set) instances.InstanceDataDAO.list_all()\ .AndReturn([InstanceData(instance_id='v1'), InstanceData(instance_id='v2')]) server_mgr.get('v1').AndRaise(osc_exc.NotFound('deleted')) instances.InstanceDataDAO.delete('v1') server_mgr.get('v2') self.mox.ReplayAll() with self.app.test_request_context(): instances.instance_data_gc()
def test_instance_data_gc_other_exception(self): server_mgr = self.fake_client_set.compute.servers instances.admin_client_set().AndReturn(self.fake_client_set) instances.InstanceDataDAO.list_all()\ .AndReturn([InstanceData(instance_id='v1'), InstanceData(instance_id='v2')]) server_mgr.get('v1').AndRaise(RuntimeError('log me')) self.app.logger.exception(mox.IsA(basestring)) server_mgr.get('v2') self.mox.ReplayAll() with self.app.test_request_context(): instances.instance_data_gc()
def test_remind_reminds(self): server_mgr = self.fake_client_set.compute.servers instances.admin_client_set().AndReturn(self.fake_client_set) user_mgr = self.fake_client_set.identity_admin.users server = doubles.make(self.mox, doubles.Server, id='v2', name='instance-2', user_id='UID') user = doubles.make(self.mox, doubles.User, id='UID', name='user', email='*****@*****.**', fullname='The Test User Fullname') expires = datetime(2013, 1, 19, 11, 12, 13) instances.datetime.utcnow().AndReturn('UTCNOW') instances.InstanceDataDAO.remind_list('UTCNOW')\ .AndReturn([InstanceData(instance_id='v2', expires_at=expires)]) server_mgr.get('v2').AndReturn(server) user_mgr.get('UID').AndReturn(user) instances.send_instance_reminder(user.email, 'instance-2', 'v2', expires, greeting=user.fullname) instances.InstanceDataDAO.update('v2', remind_at=None) self.mox.ReplayAll() with self.app.test_request_context(): instances.remind_about_instances()
def test_rip_expired_instances_not_found(self): server_mgr = self.fake_client_set.compute.servers instances.admin_client_set().AndReturn(self.fake_client_set) instances.datetime.utcnow().AndReturn('UTCNOW') instances.InstanceDataDAO.expired_list('UTCNOW')\ .AndReturn([InstanceData(instance_id='v1'), InstanceData(instance_id='v2')]) server_mgr.delete('v1').AndRaise(osc_exc.NotFound('deleted')) instances.InstanceDataDAO.delete('v1') # check we continued to iterate after exception server_mgr.delete('v2') instances.AuditDAO.create_record(mox.IsA(dict)) self.mox.ReplayAll() with self.app.test_request_context(): instances.rip_expired_instances()
def test_rip_expired_instances_other_exception(self): server_mgr = self.fake_client_set.compute.servers instances.admin_client_set().AndReturn(self.fake_client_set) instances.datetime.utcnow().AndReturn('UTCNOW') instances.InstanceDataDAO.expired_list('UTCNOW')\ .AndReturn([InstanceData(instance_id='v1'), InstanceData(instance_id='v2')]) server_mgr.delete('v1').AndRaise(RuntimeError('log me')) self.app.logger.exception(mox.IsA(basestring)) # check we continued to iterate after exception server_mgr.delete('v2') instances.AuditDAO.create_record(mox.IsA(dict)) self.mox.ReplayAll() with self.app.test_request_context(): instances.rip_expired_instances()
def setUp(self): super(InstanceFromNovaTestCase, self).setUp() self.mox.StubOutWithMock(instances, 'InstanceDataDAO') self.instance = doubles.make(self.mox, doubles.Server, id=u'VMID', name=u'test instance', user_id=u'UID', tenant_id=u'TENANT', addresses={ u'some-network': [{ u'version': 4, u'addr': u'10.5.1.3' }, { u'version': 6, u'addr': u'::1' }] }, accessIPv4=u'', accessIPv6=u'', image={ u'id': u'IMAGE', }, flavor={ u'id': u'1', }, status=u'BUILD', updated=u'2012-12-12T06:20:37Z', hostId=u'6186525952c6568e1f6f5ae666c6', key_name=u'', created=u'2012-12-12T06:20:27Z', metadata={}) self.tenant = doubles.make(self.mox, doubles.Tenant, name=u'test project', id=u'TENANT') self.flavor = doubles.make(self.mox, doubles.Flavor, name=u'test instance type', id=u'1') self.user = doubles.make(self.mox, doubles.User, name=u'test user', id=u'UID') self.image = doubles.make(self.mox, doubles.Image, name=u'test image', id=u'IMAGE') self.instancedata = InstanceData( instance_id=u'VMID', expires_at=datetime(2012, 12, 11, 10, 9, 8), remind_at=datetime(2012, 12, 10, 8, 6, 4))
def test_remind_other_exception(self): server_mgr = self.fake_client_set.compute.servers expires = datetime(2013, 1, 19, 11, 12, 13) instances.admin_client_set().AndReturn(self.fake_client_set) instances.datetime.utcnow().AndReturn('UTCNOW') instances.InstanceDataDAO.remind_list('UTCNOW')\ .AndReturn([InstanceData(instance_id='v1', expires_at=expires)]) server_mgr.get('v1').AndRaise(RuntimeError('log me')) self.app.logger.exception(mox.IsA(basestring)) self.mox.ReplayAll() with self.app.test_request_context(): instances.remind_about_instances()
def test_remind_server_not_found(self): server_mgr = self.fake_client_set.compute.servers expires = datetime(2013, 1, 19, 11, 12, 13) instances.admin_client_set().AndReturn(self.fake_client_set) instances.datetime.utcnow().AndReturn('UTCNOW') instances.InstanceDataDAO.remind_list('UTCNOW')\ .AndReturn([InstanceData(instance_id='v1', expires_at=expires)]) server_mgr.get('v1').AndRaise(osc_exc.NotFound('deleted')) instances.InstanceDataDAO.delete('v1') self.mox.ReplayAll() with self.app.test_request_context(): instances.remind_about_instances()
def test_rip_expired_instances(self): server_mgr = self.fake_client_set.compute.servers instances.admin_client_set().AndReturn(self.fake_client_set) instances.datetime.utcnow().AndReturn('UTCNOW') instances.InstanceDataDAO.expired_list('UTCNOW')\ .AndReturn([InstanceData(instance_id='v1')]) server_mgr.delete('v1') instances.AuditDAO.create_record({ 'resource': '/v1/instances/v1', 'method': 'DELETE', 'response_status': 200, 'message': 'Automatically deleted expired instance' }) self.mox.ReplayAll() with self.app.test_request_context(): instances.rip_expired_instances()
def test_remind_user_not_found(self): server_mgr = self.fake_client_set.compute.servers user_mgr = self.fake_client_set.identity_admin.users server = doubles.make(self.mox, doubles.Server, id='v2', name='instance-2', user_id='UID') expires = datetime(2013, 1, 19, 11, 12, 13) instances.admin_client_set().AndReturn(self.fake_client_set) instances.datetime.utcnow().AndReturn('UTCNOW') instances.InstanceDataDAO.remind_list('UTCNOW')\ .AndReturn([InstanceData(instance_id='v2', expires_at=expires)]) server_mgr.get('v2').AndReturn(server) user_mgr.get('UID').AndRaise(osc_exc.NotFound('deleted')) instances.InstanceDataDAO.update('v2', remind_at=None) self.mox.ReplayAll() with self.app.test_request_context(): instances.remind_about_instances()