diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallDisableResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallDisableResource.java index 6f51ebf74d863112a48378ede05a2985f66336a5..83c612283fc60d0bf53daa83c86d1e650a170fd8 100644 --- a/src/main/java/net/floodlightcontroller/firewall/FirewallDisableResource.java +++ b/src/main/java/net/floodlightcontroller/firewall/FirewallDisableResource.java @@ -17,8 +17,9 @@ package net.floodlightcontroller.firewall; -import org.restlet.resource.Post; import org.restlet.resource.Get; +import org.restlet.resource.Put; +import org.restlet.data.Status; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,27 +27,26 @@ import org.slf4j.LoggerFactory; /* * Rest API endpoint to disable the firewall - * - * Contrary to best practices it changes the state on both GET and POST - * We should disable this behavior for GET as soon as we can be sure - * that no clients depend on this behavior. */ public class FirewallDisableResource extends FirewallResourceBase { private static final Logger log = LoggerFactory.getLogger(FirewallDisableResource.class); @Get("json") public Object handleRequest() { - log.warn("REST call to FirewallDisableResource with method GET is depreciated. Use POST: "); - - return handlePost(); + log.warn("call to FirewallDisableResource with method GET is not allowed. Use PUT: "); + + setStatus(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED); + return "{\"status\" : \"failure\", \"details\" : \"Use PUT to disable firewall\"}"; } - @Post("json") - public Object handlePost() { + @Put("json") + public Object handlePut() { IFirewallService firewall = getFirewallService(); firewall.enableFirewall(false); + setStatus(Status.SUCCESS_OK); + return "{\"status\" : \"success\", \"details\" : \"firewall stopped\"}"; } } diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallEnableResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallEnableResource.java index 4355db1b17ac4c7804d80322960c170ba913a7ca..fa77096813c616ca00574104a49a1474eb21c660 100644 --- a/src/main/java/net/floodlightcontroller/firewall/FirewallEnableResource.java +++ b/src/main/java/net/floodlightcontroller/firewall/FirewallEnableResource.java @@ -17,8 +17,9 @@ package net.floodlightcontroller.firewall; -import org.restlet.resource.Post; import org.restlet.resource.Get; +import org.restlet.resource.Put; +import org.restlet.data.Status; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,27 +27,26 @@ import org.slf4j.LoggerFactory; /* * Rest API endpoint to enable the firewall - * - * Contrary to best practices it changes the state on both GET and POST - * We should disable this behavior for GET as soon as we can be sure - * that no clients depend on this behavior. */ public class FirewallEnableResource extends FirewallResourceBase { private static final Logger log = LoggerFactory.getLogger(FirewallEnableResource.class); @Get("json") public Object handleRequest() { - log.warn("REST call to FirewallEnableResource with method GET is depreciated. Use POST: "); - - return handlePost(); + log.warn("call to FirewallDisableResource with method GET is not allowed. Use PUT: "); + + setStatus(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED); + return "{\"status\" : \"failure\", \"details\" : \"Use PUT to enable firewall\"}"; } - @Post("json") - public Object handlePost() { + @Put("json") + public Object handlePut() { IFirewallService firewall = getFirewallService(); firewall.enableFirewall(true); + setStatus(Status.SUCCESS_OK); + return "{\"status\" : \"success\", \"details\" : \"firewall running\"}"; } } diff --git a/src/main/java/net/floodlightcontroller/firewall/FirewallSubnetMaskResource.java b/src/main/java/net/floodlightcontroller/firewall/FirewallSubnetMaskResource.java index f76dd78404c8a6c510f51dae9ff40b97a0b83d80..e9ff632c94a54fdbf3a2a94f2e1cd545716751e6 100644 --- a/src/main/java/net/floodlightcontroller/firewall/FirewallSubnetMaskResource.java +++ b/src/main/java/net/floodlightcontroller/firewall/FirewallSubnetMaskResource.java @@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.MappingJsonFactory; import org.restlet.resource.Post; import org.restlet.resource.Get; import org.restlet.resource.ServerResource; +import org.restlet.data.Status; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,9 +54,14 @@ public class FirewallSubnetMaskResource extends FirewallResourceBase { newMask = jsonExtractSubnetMask(fmJson); } catch (IOException e) { log.error("Error parsing new subnet mask: " + fmJson, e); + setStatus(Status.CLIENT_ERROR_BAD_REQUEST); return "{\"status\" : \"Error! Could not parse new subnet mask, see log for details.\"}"; } + firewall.setSubnetMask(newMask); + + setStatus(Status.SUCCESS_OK); + return ("{\"status\" : \"subnet mask set\"}"); }