def test_delete_exeption_HTTPNotFound_db_securitygroup_id_not_found(self): self.mox.StubOutWithMock(db, "securitygroup_get_by_securitygroup_id") db.securitygroup_get_by_securitygroup_id( IsA(context.RequestContext), GID, SECURITYGROUP_ID)\ .AndReturn({"processes": [], "neutron_securitygroup_id": "fake_id"}) self.mox.StubOutWithMock(manager.ResourceOperator, "securitygroup_delete") manager.ResourceOperator.securitygroup_delete( IsA(context.RequestContext), "fake_id") self.mox.StubOutWithMock(db, "securitygroup_delete") db.securitygroup_delete(IsA(context.RequestContext), GID, SECURITYGROUP_ID)\ .AndRaise(exception.SecuritygroupNotFound( securitygroup_id=SECURITYGROUP_ID)) self.mox.ReplayAll() url = get_base_url(GID) + "/" + SECURITYGROUP_ID req = get_request(url, "DELETE") res = req.get_response(self.app) self.assertEqual(res.status_code, 404)
def test_delete_securitygroup_not_found(self): self.mox.StubOutWithMock(db, "securitygroup_get_by_securitygroup_id") db.securitygroup_get_by_securitygroup_id(IsA(context.RequestContext), GID, SECURITYGROUP_ID).AndReturn( {"processes": []} ) self.mox.StubOutWithMock(db, "securitygroup_delete") db.securitygroup_delete(IsA(context.RequestContext), GID, SECURITYGROUP_ID).AndRaise( exception.SecuritygroupNotFound(securitygroup_id=SECURITYGROUP_ID) ) self.mox.ReplayAll() url = get_base_url(GID) + "/" + SECURITYGROUP_ID req = get_request(url, "DELETE") res = req.get_response(self.app) self.assertEqual(res.status_code, 404)
def test_securitygroup_delete(self): gid = "12345678-1234-5678-9123-123456789012" self._create_group(gid) values_before = self._get_base_values(gid) securitygroup = db.securitygroup_create(self.user_ctxt, values_before) securitygroup_after = db.securitygroup_delete( self.user_ctxt, gid, securitygroup["securitygroup_id"]) self.assertEqual("DELETING", securitygroup_after["status"]) self.assertEqual(1, securitygroup_after["deleted"]) self.assertIsNotNone(securitygroup_after.get("deleted_at"))
def delete(self, req, gid, securitygroup_id): def _validate(gid, securitygroup_id): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if not uuidutils.is_uuid_like(securitygroup_id): raise exception.SecuritygroupNotFound( securitygroup_id=securitygroup_id) try: _validate(gid, securitygroup_id) context = req.environ['rack.context'] securitygroup = db.securitygroup_get_by_securitygroup_id( context, gid, securitygroup_id) if securitygroup["processes"]: raise exception.SecuritygroupInUse( securitygroup_id=securitygroup_id) securitygroup = db.securitygroup_delete( context, gid, securitygroup_id) except exception.SecuritygroupInUse as exc: raise webob.exc.HTTPConflict(explanation=exc.format_message()) except exception.NotFound as exc: raise webob.exc.HTTPNotFound(explanation=exc.format_message()) try: host = self.scheduler_rpcapi.select_destinations( context, request_spec={}, filter_properties={}) self.operator_rpcapi.securitygroup_delete( context, host["host"], neutron_securitygroup_id=securitygroup["neutron_securitygroup" "_id"]) except Exception: raise exception.SecuritygroupDeleteFailed()