@Path("/{containerName}/delete/pool/{poolName}") @DELETE @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @StatusCodes({ @ResponseCode(code = 200, condition = "Pool deleted successfully"), @ResponseCode(code = 404, condition = "The containerName not found"), @ResponseCode(code = 503, condition = "Load balancer service is unavailable"), @ResponseCode(code = 404, condition = "Pool not found"), @ResponseCode(code = 500, condition = "Failed to delete Pool") }) public Response deletePool( @PathParam(value = "containerName") String containerName, @PathParam(value = "poolName") String poolName) { if (poolName.isEmpty()) throw new UnsupportedMediaTypeException(RestMessages.INVALIDDATA.toString()); IConfigManager configManager = getConfigManagerService(containerName); if (configManager == null) { throw new ServiceUnavailableException( "Load Balancer" + RestMessages.SERVICEUNAVAILABLE.toString()); } if (!configManager.poolExists(poolName)) throw new ResourceNotFoundException(NBConst.RES_POOL_NOT_FOUND); for (Pool pool : configManager.getAllPools()) { if (pool.getName().equals(poolName)) { configManager.deletePool(poolName); return Response.ok().build(); } } throw new InternalServerErrorException(NBConst.RES_POOL_DELETION_FAILED); }
@Path("/{containerName}/create/pool") @POST @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @StatusCodes({ @ResponseCode(code = 201, condition = "Pool created successfully"), @ResponseCode(code = 404, condition = "The containerName not found"), @ResponseCode(code = 503, condition = "Load balancer service is unavailable"), @ResponseCode(code = 409, condition = "Pool already exist"), @ResponseCode(code = 415, condition = "Invalid input data") }) public Response addPool( @PathParam("containerName") String containerName, @TypeHint(Pool.class) Pool inPool) { Pool poolInput = inPool; String name = poolInput.getName(); String lbMethod = poolInput.getLbMethod(); if (name.isEmpty() || lbMethod.isEmpty()) { throw new UnsupportedMediaTypeException(RestMessages.INVALIDDATA.toString()); } IConfigManager configManager = getConfigManagerService(containerName); if (configManager == null) { throw new ServiceUnavailableException( "Load Balancer " + RestMessages.SERVICEUNAVAILABLE.toString()); } if (!configManager.poolExists(name)) { Pool pool = configManager.createPool(name, lbMethod); if (pool != null) { return Response.status(Response.Status.CREATED).build(); } } else { throw new ResourceConflictException(NBConst.RES_POOL_ALREADY_EXIST); } throw new InternalServerErrorException(NBConst.RES_POOL_CREATION_FAILED); }