@Path("{floatingipUUID}")
@GET
@Produces({ MediaType.APPLICATION_JSON })
@StatusCodes({
@ResponseCode(code = 200, condition = "Operation successful"),
@ResponseCode(code = 401, condition = "Unauthorized"),
@ResponseCode(code = 404, condition = "Not Found"),
@ResponseCode(code = 501, condition = "Not Implemented") })
public Response showFloatingIP(
@PathParam("floatingipUUID") String floatingipUUID,
@QueryParam("fields") List<String> fields ) {
INeutronFloatingIPCRUD floatingIPInterface = NeutronCRUDInterfaces.getINeutronFloatingIPCRUD(this);
if (floatingIPInterface == null) {
throw new ServiceUnavailableException("Floating IP CRUD Interface "
+ RestMessages.SERVICEUNAVAILABLE.toString());
}
if (!floatingIPInterface.floatingIPExists(floatingipUUID))
throw new ResourceNotFoundException("Floating IP UUID doesn't exist.");
if (fields.size() > 0) {
NeutronFloatingIP ans = floatingIPInterface.getFloatingIP(floatingipUUID);
return Response.status(200).entity(
new NeutronFloatingIPRequest(extractFields(ans, fields))).build();
} else
return Response.status(200).entity(
new NeutronFloatingIPRequest(floatingIPInterface.getFloatingIP(floatingipUUID))).build();
}