def test_deletes_implicitly_drained(self): """Ensures an implicitly drained entity is deleted.""" key = models.InstanceGroupManager( key=instance_group_managers.get_instance_group_manager_key( 'base-name', 'revision', 'zone', ), ).put() models.InstanceTemplateRevision( key=key.parent(), active=[ ndb.Key(models.InstanceGroupManager, 'fake-key-1'), key, ndb.Key(models.InstanceGroupManager, 'fake-key-2'), ], ).put() models.InstanceTemplate( key=key.parent().parent(), drained=[ key.parent(), ], ).put() expected_active = [ ndb.Key(models.InstanceGroupManager, 'fake-key-1'), ndb.Key(models.InstanceGroupManager, 'fake-key-2'), ] future = cleanup.delete_instance_group_manager(key) future.wait() self.failIf(key.get()) self.assertItemsEqual(key.parent().get().active, expected_active)
def test_active_instances(self): """Ensures nothing happens when there are active Instances.""" key = models.InstanceGroupManager( key=instance_group_managers.get_instance_group_manager_key( 'base-name', 'revision', 'zone', ), instances=[ ndb.Key(models.Instance, 'fake-key'), ], ).put() models.InstanceTemplateRevision( key=key.parent(), drained=[ key, ], ).put() models.InstanceTemplate( key=key.parent().parent(), active=key.parent(), ).put() future = cleanup.delete_instance_group_manager(key) future.wait() self.failUnless(key.get())
def test_url_specified(self): """Ensures nothing happens when the entity still has a URL.""" key = models.InstanceGroupManager( key=instance_group_managers.get_instance_group_manager_key( 'base-name', 'revision', 'zone', ), url='url', ).put() models.InstanceTemplateRevision( key=key.parent(), drained=[ key, ], ).put() models.InstanceTemplate( key=key.parent().parent(), active=key.parent(), ).put() future = cleanup.delete_instance_group_manager(key) future.wait() self.failUnless(key.get())
def test_deletes_implicitly_drained(self): """Ensures an implicitly drained entity is deleted.""" key = models.InstanceGroupManager( key=instance_group_managers.get_instance_group_manager_key( 'base-name', 'revision', 'zone', ), ).put() models.InstanceTemplateRevision( key=key.parent(), drained=[ ndb.Key(models.InstanceGroupManager, 'fake-key-1'), key, ndb.Key(models.InstanceGroupManager, 'fake-key-2'), ], ).put() models.InstanceTemplate( key=key.parent().parent(), drained=[ key.parent(), ], ).put() expected_drained = [ ndb.Key(models.InstanceGroupManager, 'fake-key-1'), ndb.Key(models.InstanceGroupManager, 'fake-key-2'), ] future = cleanup.delete_instance_group_manager(key) future.wait() self.failIf(key.get()) self.assertItemsEqual(key.parent().get().drained, expected_drained)
def test_entity_not_found(self): """Ensures nothing happens when the entity is not found.""" key = ndb.Key(models.InstanceGroupManager, 'fake-key') future = cleanup.delete_instance_group_manager(key) future.wait() self.failIf(key.get())
def test_parent_doesnt_exist(self): """Ensures nothing happens when the parent doesn't exist.""" key = models.InstanceGroupManager( key=instance_group_managers.get_instance_group_manager_key( 'base-name', 'revision', 'zone', ), ).put() models.InstanceTemplate( key=key.parent().parent(), active=key.parent(), ).put() future = cleanup.delete_instance_group_manager(key) future.wait() self.failUnless(key.get())