@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/poolmember") @POST @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @StatusCodes({ @ResponseCode(code = 201, condition = "Pool member created 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 = 409, condition = "Pool member already exist"), @ResponseCode(code = 415, condition = "Invalid input data") }) public Response addPoolMember( @PathParam("containerName") String containerName, @TypeHint(PoolMember.class) PoolMember inPoolMember) { PoolMember pmInput = inPoolMember; String name = pmInput.getName(); String memberIP = pmInput.getIp(); String poolName = pmInput.getPoolName(); if (name.isEmpty() || memberIP.isEmpty() || 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); if (!configManager.memberExists(name, memberIP, poolName)) { PoolMember poolMember = configManager.addPoolMember(name, memberIP, poolName); if (poolMember != null) { return Response.status(Response.Status.CREATED).build(); } } else { throw new ResourceConflictException(NBConst.RES_POOLMEMBER_ALREADY_EXIST); } throw new InternalServerErrorException(NBConst.RES_POOLMEMBER_CREATION_FAILED); }
@Path("/{containerName}/update/vip") @PUT @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) @StatusCodes({ @ResponseCode(code = 201, condition = "VIP updated successfully"), @ResponseCode(code = 404, condition = "The containerName not found"), @ResponseCode(code = 503, condition = "VIP not found"), @ResponseCode(code = 404, condition = "Pool not found"), @ResponseCode(code = 405, condition = "Pool already attached to the VIP"), @ResponseCode(code = 415, condition = "Invalid input name") }) public Response updateVIP( @PathParam("containerName") String containerName, @TypeHint(VIP.class) VIP inVIP) { VIP vipInput = inVIP; String name = vipInput.getName(); String poolName = vipInput.getPoolName(); if (name.isEmpty() || 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); if (configManager.getVIPAttachedPool(name) != null) throw new MethodNotAllowedException(NBConst.RES_VIP_POOL_EXIST); if (configManager.updateVIP(name, poolName) != null) return Response.status(Response.Status.ACCEPTED).build(); throw new InternalServerErrorException(NBConst.RES_VIP_UPDATE_FAILED); }