blob: 5da2e7cd2ba08458e8a5bcec2b5b58d4b0d428ab [file] [log] [blame]
Jonathan Hart3d7730a2013-02-22 11:51:17 -08001package net.onrc.onos.registry.controller;
2
3import java.util.ArrayList;
4import java.util.Collection;
5
Jonathan Hartbc4893a2013-03-14 22:21:37 -07006import org.restlet.Response;
7import org.restlet.data.Status;
8import org.restlet.representation.Representation;
9import org.restlet.representation.StringRepresentation;
Jonathan Hart3d7730a2013-02-22 11:51:17 -080010import org.restlet.resource.Get;
11import org.restlet.resource.ServerResource;
12import org.slf4j.Logger;
13import org.slf4j.LoggerFactory;
14
15public class ControllerRegistryResource extends ServerResource {
16
17 protected static Logger log = LoggerFactory.getLogger(ControllerRegistryResource.class);
18
19 @Get("json")
20 public Collection<String> getControllers() {
21 IControllerRegistryService registry =
22 (IControllerRegistryService) getContext().getAttributes().
23 get(IControllerRegistryService.class.getCanonicalName());
24
25 Collection<String> controllers = null;
26 try {
27 controllers = registry.getAllControllers();
28 } catch (RegistryException e) {
29 log.warn("Error retrieving controller list: {}", e.getMessage());
30 }
31
32 if (controllers == null){
33 controllers = new ArrayList<String>();
Jonathan Hartbc4893a2013-03-14 22:21:37 -070034 Response response = getResponse();
35 response.setStatus(Status.CLIENT_ERROR_NOT_FOUND);
36 Representation error = new StringRepresentation("Null data returned. Zookeeper connection may be down");
37 response.setEntity(error);
38 return null;
Jonathan Hart3d7730a2013-02-22 11:51:17 -080039 }
Jonathan Hartbc4893a2013-03-14 22:21:37 -070040
Jonathan Hart3d7730a2013-02-22 11:51:17 -080041 return controllers;
42 }
43
44}