blob: d598005fee76da05fe5a80f6e33e7882dcdb9fa1 [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001package net.floodlightcontroller.core.web;
2
3import java.util.HashMap;
4
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08005import net.floodlightcontroller.core.IFloodlightProviderService;
6import net.floodlightcontroller.core.IOFSwitch;
7
Jonathan Harta99ec672014-04-03 11:30:34 -07008import org.openflow.util.HexString;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08009import org.restlet.resource.Get;
Jonathan Harta99ec672014-04-03 11:30:34 -070010import org.restlet.resource.ServerResource;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080011import org.slf4j.Logger;
12import org.slf4j.LoggerFactory;
13
14public class SwitchRoleResource extends ServerResource {
15
Yuta HIGUCHI6ac8d182013-10-22 15:24:56 -070016 protected final static Logger log = LoggerFactory.getLogger(SwitchRoleResource.class);
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080017
18 @Get("json")
19 public Object getRole() {
Ray Milkey269ffb92014-04-03 14:43:30 -070020 IFloodlightProviderService floodlightProvider =
21 (IFloodlightProviderService) getContext().getAttributes().
22 get(IFloodlightProviderService.class.getCanonicalName());
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080023
24 String switchId = (String) getRequestAttributes().get("switchId");
Ray Milkey269ffb92014-04-03 14:43:30 -070025
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080026 RoleInfo roleInfo;
Ray Milkey269ffb92014-04-03 14:43:30 -070027
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080028 if (switchId.equalsIgnoreCase("all")) {
Ray Milkey269ffb92014-04-03 14:43:30 -070029 HashMap<String, RoleInfo> model = new HashMap<String, RoleInfo>();
30 for (IOFSwitch sw : floodlightProvider.getSwitches().values()) {
31 switchId = sw.getStringId();
32 roleInfo = new RoleInfo(sw.getRole());
33 model.put(switchId, roleInfo);
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080034 }
35 return model;
36 }
Ray Milkey269ffb92014-04-03 14:43:30 -070037
38 Long dpid = HexString.toLong(switchId);
39 IOFSwitch sw = floodlightProvider.getSwitches().get(dpid);
40 if (sw == null)
41 return null;
42 roleInfo = new RoleInfo(sw.getRole());
43 return roleInfo;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080044 }
45}