blob: f9eb8770ac2e90e348c61d6219918b138a8f0f89 [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() {
20 IFloodlightProviderService floodlightProvider =
21 (IFloodlightProviderService)getContext().getAttributes().
22 get(IFloodlightProviderService.class.getCanonicalName());
23
24 String switchId = (String) getRequestAttributes().get("switchId");
25
26 RoleInfo roleInfo;
27
28 if (switchId.equalsIgnoreCase("all")) {
29 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);
34 }
35 return model;
36 }
37
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;
44 }
45}