| package net.onrc.onos.apps.bgproute; |
| |
| |
| import org.restlet.resource.Delete; |
| import org.restlet.resource.Post; |
| import org.restlet.resource.ServerResource; |
| import org.slf4j.Logger; |
| import org.slf4j.LoggerFactory; |
| |
| |
| public class BgpRouteResourceSynch extends ServerResource { |
| |
| protected final static Logger log = LoggerFactory |
| .getLogger(BgpRouteResource.class); |
| |
| @Post |
| public String store(String fmJson) { |
| |
| IBgpRouteService bgpRoute = (IBgpRouteService) getContext().getAttributes(). |
| get(IBgpRouteService.class.getCanonicalName()); |
| |
| String router_id = (String) getRequestAttributes().get("routerid"); |
| String prefix = (String) getRequestAttributes().get("prefix"); |
| String mask = (String) getRequestAttributes().get("mask"); |
| String nexthop = (String) getRequestAttributes().get("nexthop"); |
| |
| try { |
| |
| String BGPdRestIp = bgpRoute.getBGPdRestIp(); |
| |
| //bgpdRestIp includes port number, such as 1.1.1.1:8080 |
| RestClient.post("http://" + BGPdRestIp + "/wm/bgp/" + router_id + "/" + prefix + "/" + mask + "/" + nexthop); |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| |
| String reply = ""; |
| reply = "[POST: " + prefix + "/" + mask + ":" + nexthop + "/synch]"; |
| log.info(reply); |
| |
| return reply + "\n"; |
| |
| |
| } |
| |
| @Delete |
| public String delete(String fmJson) { |
| IBgpRouteService bgpRoute = (IBgpRouteService) getContext().getAttributes(). |
| get(IBgpRouteService.class.getCanonicalName()); |
| |
| String routerId = (String) getRequestAttributes().get("routerid"); |
| String prefix = (String) getRequestAttributes().get("prefix"); |
| String mask = (String) getRequestAttributes().get("mask"); |
| String nextHop = (String) getRequestAttributes().get("nexthop"); |
| |
| String reply = ""; |
| try { |
| String BGPdRestIp = bgpRoute.getBGPdRestIp(); |
| |
| RestClient.delete("http://" + BGPdRestIp + "/wm/bgp/" + routerId + "/" + prefix + "/" + mask + "/" + nextHop); |
| |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| |
| reply = reply + "[DELE: " + prefix + "/" + mask + ":" + nextHop + "/synch]"; |
| |
| log.info(reply); |
| |
| |
| return reply + "\n"; |
| } |
| } |