def test_removed(self): """Ensures an instance can be removed.""" def delete_machine(*args, **kwargs): return {} def send_machine_event(*args, **kwargs): pass self.mock(catalog.machine_provider, 'delete_machine', delete_machine) self.mock(catalog.metrics, 'send_machine_event', send_machine_event) key = instances.get_instance_key( 'base-name', 'revision', 'zone', 'instance-name', ) key = models.Instance( key=key, cataloged=True, instance_group_manager=instances.get_instance_group_manager_key( key), ).put() catalog.remove(key) self.failUnless(key.get().cataloged) self.failUnless(key.get().pending_deletion)
def test_not_cataloged(self): """Ensures an instance is set for deletion when not cataloged.""" def delete_machine(*args, **kwargs): return {'error': 'ENTRY_NOT_FOUND'} def send_machine_event(*args, **kwargs): pass self.mock(catalog.machine_provider, 'delete_machine', delete_machine) self.mock(catalog.metrics, 'send_machine_event', send_machine_event) key = instances.get_instance_key( 'base-name', 'revision', 'zone', 'instance-name', ) key = models.Instance( key=key, cataloged=False, instance_group_manager=instances.get_instance_group_manager_key( key), ).put() catalog.remove(key) self.failIf(key.get().cataloged) self.failUnless(key.get().pending_deletion)
def test_not_found(self): """Ensures nothing happens when the instance doesn't exist.""" def delete_machine(*args, **kwargs): self.fail('delete_machine called') self.mock(catalog.machine_provider, 'delete_machine', delete_machine) catalog.remove(ndb.Key(models.Instance, 'fake-instance')) self.failIf(models.Instance.query().get())
def post(self): """Removes a cataloged instance. Params: key: URL-safe key for a models.Instance. """ key = ndb.Key(urlsafe=self.request.get('key')) assert key.kind() == 'Instance', key catalog.remove(key)
def test_removal_error(self): """Ensures an instance isn't set for deletion on error.""" def delete_machine(*args, **kwargs): return {'error': 'error'} self.mock(catalog.machine_provider, 'delete_machine', delete_machine) key = instances.get_instance_key( 'base-name', 'revision', 'zone', 'instance-name', ) key = models.Instance( key=key, cataloged=True, instance_group_manager=instances.get_instance_group_manager_key( key), ).put() catalog.remove(key) self.failUnless(key.get().cataloged) self.failIf(key.get().pending_deletion)