blob: fe708776b08222232d43800fa0c24dfb498de0a6 [file] [log] [blame]
package net.onrc.onos.ofcontroller.core.web;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import net.floodlightcontroller.core.IFloodlightProviderService;
import net.floodlightcontroller.core.IOFSwitch;
import org.codehaus.jackson.map.ObjectMapper;
import org.openflow.util.HexString;
import org.restlet.resource.Post;
import org.restlet.resource.ServerResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ClearFlowTableResource extends ServerResource {
final static Logger log = LoggerFactory.getLogger(ClearFlowTableResource.class);
@Post("json")
public List<String> ClearFlowTable(String jsonData){
IFloodlightProviderService floodlightProvider =
(IFloodlightProviderService) getContext().getAttributes()
.get(IFloodlightProviderService.class.getCanonicalName());
Map<Long, IOFSwitch> switches = floodlightProvider.getSwitches();
List<String> response = new ArrayList<String>();
ObjectMapper mapper = new ObjectMapper();
String[] dpids = null;
try {
dpids = mapper.readValue(jsonData, String[].class);
} catch (IOException e) {
log.debug("Error parsing switch dpid array: {}", e.getMessage());
response.add("Error parsing input");
return response;
}
for (String dpid : dpids){
IOFSwitch sw = switches.get(HexString.toLong(dpid));
if (sw != null){
sw.clearAllFlowMods();
response.add(dpid + " cleared");
}
else {
response.add(dpid + " not found");
}
}
return response;
}
}