blob: 1cb39b3604d34a6ed8558fd2859c3c42c6cbed58 [file] [log] [blame]
HIGUCHI Yutaf0499b02013-06-14 15:01:10 -07001package net.onrc.onos.ofcontroller.topology.web;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08002
Pavlin Radoslavov1278ac72013-10-16 04:43:49 -07003import net.onrc.onos.ofcontroller.topology.ITopologyNetService;
Pavlin Radoslavove1b37bc2013-10-16 03:57:06 -07004import net.onrc.onos.ofcontroller.topology.TopologyManager;
HIGUCHI Yuta356086e2013-06-12 15:21:19 -07005import net.onrc.onos.ofcontroller.util.DataPath;
6import net.onrc.onos.ofcontroller.util.Dpid;
7import net.onrc.onos.ofcontroller.util.Port;
8import net.onrc.onos.ofcontroller.util.SwitchPort;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08009
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080010import org.restlet.resource.Get;
11import org.restlet.resource.ServerResource;
12import org.slf4j.Logger;
13import org.slf4j.LoggerFactory;
14
15public class RouteResource extends ServerResource {
16
17 protected static Logger log = LoggerFactory.getLogger(RouteResource.class);
18
19 @Get("json")
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080020 public DataPath retrieve() {
Pavlin Radoslavov1278ac72013-10-16 04:43:49 -070021 ITopologyNetService topologyNetService = new TopologyManager("");
22 if (topologyNetService == null) {
23 log.debug("Topology Net Service not found");
Pavlin Radoslavov382b22a2013-01-28 09:24:04 -080024 return null;
25 }
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080026
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080027 String srcDpidStr = (String) getRequestAttributes().get("src-dpid");
28 String srcPortStr = (String) getRequestAttributes().get("src-port");
29 String dstDpidStr = (String) getRequestAttributes().get("dst-dpid");
30 String dstPortStr = (String) getRequestAttributes().get("dst-port");
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080031
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080032 log.debug( srcDpidStr + "--" + srcPortStr + "--" + dstDpidStr + "--" + dstPortStr);
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080033
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080034 Dpid srcDpid = new Dpid(srcDpidStr);
35 Port srcPort = new Port(Short.parseShort(srcPortStr));
36 Dpid dstDpid = new Dpid(dstDpidStr);
37 Port dstPort = new Port(Short.parseShort(dstPortStr));
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080038
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080039 DataPath result =
Pavlin Radoslavov15954d42013-10-19 15:29:04 -070040 topologyNetService.getDatabaseShortestPath(
41 new SwitchPort(srcDpid, srcPort),
42 new SwitchPort(dstDpid, dstPort));
Pavlin Radoslavovf83aa442013-02-26 14:09:01 -080043 if (result != null) {
Pavlin Radoslavov382b22a2013-01-28 09:24:04 -080044 return result;
45 } else {
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080046 log.debug("ERROR! no route found");
47 return null;
48 }
49 }
50}