blob: 5da2e7cd2ba08458e8a5bcec2b5b58d4b0d428ab [file] [log] [blame]
package net.onrc.onos.registry.controller;
import java.util.ArrayList;
import java.util.Collection;
import org.restlet.Response;
import org.restlet.data.Status;
import org.restlet.representation.Representation;
import org.restlet.representation.StringRepresentation;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ControllerRegistryResource extends ServerResource {
protected static Logger log = LoggerFactory.getLogger(ControllerRegistryResource.class);
@Get("json")
public Collection<String> getControllers() {
IControllerRegistryService registry =
(IControllerRegistryService) getContext().getAttributes().
get(IControllerRegistryService.class.getCanonicalName());
Collection<String> controllers = null;
try {
controllers = registry.getAllControllers();
} catch (RegistryException e) {
log.warn("Error retrieving controller list: {}", e.getMessage());
}
if (controllers == null){
controllers = new ArrayList<String>();
Response response = getResponse();
response.setStatus(Status.CLIENT_ERROR_NOT_FOUND);
Representation error = new StringRepresentation("Null data returned. Zookeeper connection may be down");
response.setEntity(error);
return null;
}
return controllers;
}
}