blob: 944c7255b670c210c005d86460ec67d7c135c445 [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001package net.floodlightcontroller.core.web;
2
3import java.util.HashMap;
4
5import org.openflow.util.HexString;
6import org.restlet.resource.ServerResource;
7
8import net.floodlightcontroller.core.IFloodlightProviderService;
9import net.floodlightcontroller.core.IOFSwitch;
10
11import org.restlet.resource.Get;
12import org.slf4j.Logger;
13import org.slf4j.LoggerFactory;
14
15public class SwitchRoleResource extends ServerResource {
16
Yuta HIGUCHI6ac8d182013-10-22 15:24:56 -070017 protected final static Logger log = LoggerFactory.getLogger(SwitchRoleResource.class);
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080018
19 @Get("json")
20 public Object getRole() {
21 IFloodlightProviderService floodlightProvider =
22 (IFloodlightProviderService)getContext().getAttributes().
23 get(IFloodlightProviderService.class.getCanonicalName());
24
25 String switchId = (String) getRequestAttributes().get("switchId");
26
27 RoleInfo roleInfo;
28
29 if (switchId.equalsIgnoreCase("all")) {
30 HashMap<String,RoleInfo> model = new HashMap<String,RoleInfo>();
31 for (IOFSwitch sw: floodlightProvider.getSwitches().values()) {
32 switchId = sw.getStringId();
33 roleInfo = new RoleInfo(sw.getRole());
34 model.put(switchId, roleInfo);
35 }
36 return model;
37 }
38
39 Long dpid = HexString.toLong(switchId);
40 IOFSwitch sw = floodlightProvider.getSwitches().get(dpid);
41 if (sw == null)
42 return null;
43 roleInfo = new RoleInfo(sw.getRole());
44 return roleInfo;
45 }
46}