| package net.floodlightcontroller.core.web; |
| |
| import java.util.HashMap; |
| |
| import org.openflow.util.HexString; |
| import org.restlet.resource.ServerResource; |
| |
| import net.floodlightcontroller.core.IFloodlightProviderService; |
| import net.floodlightcontroller.core.IOFSwitch; |
| |
| import org.restlet.resource.Get; |
| import org.slf4j.Logger; |
| import org.slf4j.LoggerFactory; |
| |
| public class SwitchRoleResource extends ServerResource { |
| |
| protected final static Logger log = LoggerFactory.getLogger(SwitchRoleResource.class); |
| |
| @Get("json") |
| public Object getRole() { |
| IFloodlightProviderService floodlightProvider = |
| (IFloodlightProviderService)getContext().getAttributes(). |
| get(IFloodlightProviderService.class.getCanonicalName()); |
| |
| String switchId = (String) getRequestAttributes().get("switchId"); |
| |
| RoleInfo roleInfo; |
| |
| if (switchId.equalsIgnoreCase("all")) { |
| HashMap<String,RoleInfo> model = new HashMap<String,RoleInfo>(); |
| for (IOFSwitch sw: floodlightProvider.getSwitches().values()) { |
| switchId = sw.getStringId(); |
| roleInfo = new RoleInfo(sw.getRole()); |
| model.put(switchId, roleInfo); |
| } |
| return model; |
| } |
| |
| Long dpid = HexString.toLong(switchId); |
| IOFSwitch sw = floodlightProvider.getSwitches().get(dpid); |
| if (sw == null) |
| return null; |
| roleInfo = new RoleInfo(sw.getRole()); |
| return roleInfo; |
| } |
| } |