CORD Subscriber GUI - Plumbing CordModelCache through to XOS service, to pick first subscriber.
Change-Id: I7ebe991b2ba25b7129a5ca8e35dc6656d6c8c9e4
diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/XosManager.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/XosManager.java
index 20b1baf..2af231f 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/XosManager.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/XosManager.java
@@ -17,6 +17,10 @@
package org.onosproject.cord.gui;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import org.onosproject.cord.gui.model.Bundle;
import org.onosproject.cord.gui.model.SubscriberUser;
import org.onosproject.cord.gui.model.XosFunction;
@@ -24,6 +28,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
import java.util.Set;
/**
@@ -31,9 +36,15 @@
*/
public class XosManager {
+ private static final ObjectMapper MAPPER = new ObjectMapper();
+
+ private static final String TEST_XOS_SERVER_ADDRESS = "10.254.1.22";
+ private static final int TEST_XOS_SERVER_PORT = 8000;
private static final String URI_BASE = "/rs/subscriber/";
- private final XosManagerRestUtils xosUtils = new XosManagerRestUtils(URI_BASE);
+ private final XosManagerRestUtils xosUtils =
+ new XosManagerRestUtils(TEST_XOS_SERVER_ADDRESS,
+ TEST_XOS_SERVER_PORT, URI_BASE);
private final Logger log = LoggerFactory.getLogger(getClass());
/**
@@ -41,6 +52,38 @@
*/
XosManager() {}
+ /**
+ * Returns the subscriber ID to use for calls to the XOS backend.
+ * Right now, this is implemented to get a list of all subscribers
+ * in the system and return the first one.
+ *
+ * @return subscriber ID
+ */
+ public int getSubscriberId() {
+ log.info("getSubscriberId() called");
+ String result = xosUtils.getRest();
+ log.info("from XOS: {}", result);
+
+ JsonNode node;
+ try {
+ node = MAPPER.readTree(result);
+ } catch (IOException e) {
+ log.error("failed to read subscriber JSON", e);
+ return 0;
+ }
+
+ ArrayNode subscribers = (ArrayNode) node.get("subscribers");
+ if (subscribers.size() == 0) {
+ log.error("no subscribers found");
+ return 0;
+ }
+
+ ObjectNode first = (ObjectNode) subscribers.get(0);
+ int id = first.get("id").asInt();
+ log.info("Using subscriber id {}.", id);
+ return id;
+ }
+
private String subId(int subscriberId) {
return String.format("%d/", subscriberId);