import org.codehaus.jackson.map.ObjectMapper;
import org.opendaylight.controller.usermanager.IUserManager;
+import org.opendaylight.controller.web.DaylightWebUtil;
import org.opendaylight.controller.web.IDaylightWeb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
private final String WEB_NAME = "Devices";
private final String WEB_ID = "devices";
private final short WEB_ORDER = 1;
- private final String containerName = GlobalConstants.DEFAULT.toString();
public Devices() {
ServiceHelper.registerGlobalService(IDaylightWeb.class, this, null);
@RequestMapping(value = "/nodesLearnt", method = RequestMethod.GET)
@ResponseBody
- public DevicesJsonBean getNodesLearnt() {
+ public DevicesJsonBean getNodesLearnt(HttpServletRequest request, @RequestParam(required = false) String container) {
Gson gson = new Gson();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
List<Map<String, String>> nodeData = new ArrayList<Map<String, String>>();
- Map<String, String> portListStatus = new HashMap<String, String>();
for (Switch device : switchManager.getNetworkDevices()) {
HashMap<String, String> nodeDatum = new HashMap<String, String>();
Node node = device.getNode();
nodeDatum.put("mac",
HexEncode.bytesToHexString(device.getDataLayerAddress()));
StringBuffer sb1 = new StringBuffer();
- StringBuffer sb2 = new StringBuffer();
Set<NodeConnector> nodeConnectorSet = device.getNodeConnectors();
- String nodeConnectorName;
- String nodeConnectorNumberToStr;
if (nodeConnectorSet != null && nodeConnectorSet.size() > 0) {
Map<Short, String> portList = new HashMap<Short, String>();
for (NodeConnector nodeConnector : nodeConnectorSet) {
- nodeConnectorNumberToStr = nodeConnector.getID().toString();
+ String nodeConnectorNumberToStr = nodeConnector.getID().toString();
Name ncName = ((Name) switchManager.getNodeConnectorProp(
nodeConnector, Name.NamePropName));
Config portStatus = ((Config) switchManager
.getNodeConnectorProp(nodeConnector,
Config.ConfigPropName));
- nodeConnectorName = (ncName != null) ? ncName.getValue()
+
+ String nodeConnectorName = (ncName != null) ? ncName.getValue()
: "";
+ nodeConnectorName += " ("+nodeConnector.getID()+")";
+
+ if (portStatus != null) {
+ if (portStatus.getValue() == Config.ADMIN_UP) {
+ nodeConnectorName = "<span style='color:green;'>"+nodeConnectorName+"</span>";
+ } else if (portStatus.getValue() == Config.ADMIN_DOWN) {
+ nodeConnectorName = "<span style='color:red;'>"+nodeConnectorName+"</span>";
+ }
+ }
+
portList.put(Short.parseShort(nodeConnectorNumberToStr),
nodeConnectorName);
- portListStatus
- .put(nodeConnectorName, portStatus.toString());
}
- Map<Short, String> sortedPortList = new TreeMap<Short, String>(
- portList);
+ Map<Short, String> sortedPortList = new TreeMap<Short, String>(portList);
for (Entry<Short, String> e : sortedPortList.entrySet()) {
- sb1.append(e.getValue() + "(" + e.getKey() + ")");
+ sb1.append(e.getValue());
sb1.append("<br>");
- sb2.append(portListStatus.get(e.getValue()) + "<br>");
}
}
nodeDatum.put("ports", sb1.toString());
- nodeDatum.put("portStatus", sb2.toString());
nodeData.add(nodeDatum);
}
DevicesJsonBean result = new DevicesJsonBean();
@RequestParam("nodeId") String nodeId,
@RequestParam("tier") String tier,
@RequestParam("operationMode") String operationMode,
- HttpServletRequest request) {
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
@RequestMapping(value = "/staticRoutes", method = RequestMethod.GET)
@ResponseBody
- public DevicesJsonBean getStaticRoutes() {
+ public DevicesJsonBean getStaticRoutes(HttpServletRequest request, @RequestParam(required = false) String container) {
Gson gson = new Gson();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper
.getInstance(IForwardingStaticRouting.class, containerName,
this);
+ if (staticRouting == null) {
+ return null;
+ }
List<Map<String, String>> staticRoutes = new ArrayList<Map<String, String>>();
ConcurrentMap<String, StaticRouteConfig> routeConfigs = staticRouting
.getStaticRouteConfigs();
public StatusJsonBean addStaticRoute(
@RequestParam("routeName") String routeName,
@RequestParam("staticRoute") String staticRoute,
- @RequestParam("nextHop") String nextHop, HttpServletRequest request) {
+ @RequestParam("nextHop") String nextHop,
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean result = new StatusJsonBean();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
try {
IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper
.getInstance(IForwardingStaticRouting.class, containerName,
@ResponseBody
public StatusJsonBean deleteStaticRoute(
@RequestParam("routesToDelete") String routesToDelete,
- HttpServletRequest request) {
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
try {
IForwardingStaticRouting staticRouting = (IForwardingStaticRouting) ServiceHelper
.getInstance(IForwardingStaticRouting.class, containerName,
@RequestMapping(value = "/subnets", method = RequestMethod.GET)
@ResponseBody
- public DevicesJsonBean getSubnetGateways() {
+ public DevicesJsonBean getSubnetGateways(HttpServletRequest request, @RequestParam(required = false) String container) {
Gson gson = new Gson();
List<Map<String, String>> subnets = new ArrayList<Map<String, String>>();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
for (SubnetConfig conf : switchManager.getSubnetsConfigList()) {
public StatusJsonBean addSubnetGateways(
@RequestParam("gatewayName") String gatewayName,
@RequestParam("gatewayIPAddress") String gatewayIPAddress,
- HttpServletRequest request) {
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
@ResponseBody
public StatusJsonBean deleteSubnetGateways(
@RequestParam("gatewaysToDelete") String gatewaysToDelete,
- HttpServletRequest request) {
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
public StatusJsonBean addSubnetGatewayPort(
@RequestParam("portsName") String portsName,
@RequestParam("ports") String ports,
- @RequestParam("nodeId") String nodeId, HttpServletRequest request) {
+ @RequestParam("nodeId") String nodeId,
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
public StatusJsonBean deleteSubnetGatewayPort(
@RequestParam("gatewayName") String gatewayName,
@RequestParam("nodePort") String nodePort,
- HttpServletRequest request) {
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
try {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
@RequestMapping(value = "/spanPorts", method = RequestMethod.GET)
@ResponseBody
- public DevicesJsonBean getSpanPorts() {
+ public DevicesJsonBean getSpanPorts(HttpServletRequest request, @RequestParam(required = false) String container) {
Gson gson = new Gson();
List<String> spanConfigs_json = new ArrayList<String>();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
for (SpanConfig conf : switchManager.getSpanConfigList()) {
config.put(name, config_data.get(name));
// Add switch name value (non-configuration field)
config.put("nodeName",
- getNodeDesc(config_data.get("nodeId")));
+ getNodeDesc(config_data.get("nodeId"), containerName));
}
config.put("json", config_json);
spanConfigs.add(config);
@RequestMapping(value = "/nodeports")
@ResponseBody
- public Map<String, Object> getNodePorts() {
+ public Map<String, Object> getNodePorts(HttpServletRequest request, @RequestParam(required = false) String container) {
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
if (switchManager == null)
@ResponseBody
public StatusJsonBean addSpanPort(
@RequestParam("jsonData") String jsonData,
- HttpServletRequest request) {
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
try {
Gson gson = new Gson();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
SpanConfig cfgObject = gson.fromJson(jsonData, SpanConfig.class);
@ResponseBody
public StatusJsonBean deleteSpanPorts(
@RequestParam("spanPortsToDelete") String spanPortsToDelete,
- HttpServletRequest request) {
+ HttpServletRequest request, @RequestParam(required = false) String container) {
if (!authorize(UserLevel.NETWORKADMIN, request)) {
return unauthorizedMessage();
}
StatusJsonBean resultBean = new StatusJsonBean();
try {
Gson gson = new Gson();
+ String containerName = DaylightWebUtil.getAuthorizedContainer(request, container, this);
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
String[] spans = spanPortsToDelete.split("###");
return resultBean;
}
- private String getNodeDesc(String nodeId) {
+ private String getNodeDesc(String nodeId, String containerName) {
ISwitchManager switchManager = (ISwitchManager) ServiceHelper
.getInstance(ISwitchManager.class, containerName, this);
String description = "";