blob: f85b75e75daf8bd646267454c05149a6b2eb7f01 [file] [log] [blame]
package net.floodlightcontroller.core.web;
import java.util.HashMap;
import net.floodlightcontroller.core.IFloodlightProviderService;
import net.floodlightcontroller.core.IOFSwitch;
import org.projectfloodlight.openflow.util.HexString;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
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;
}
}