CORD-506 Apply existing service dependency when VM is detected

Change-Id: Ib0872c823347bfb6091d6c5f872657f10b7b1083
diff --git a/src/main/java/org/onosproject/cordvtn/api/CordVtnConfig.java b/src/main/java/org/onosproject/cordvtn/api/CordVtnConfig.java
index 2c48ba3..9f3a279 100644
--- a/src/main/java/org/onosproject/cordvtn/api/CordVtnConfig.java
+++ b/src/main/java/org/onosproject/cordvtn/api/CordVtnConfig.java
@@ -25,6 +25,7 @@
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.config.Config;
+import org.onosproject.xosclient.api.XosAccess;
 import org.slf4j.Logger;
 
 import java.util.Map;
@@ -59,10 +60,12 @@
     public static final String SSH_KEY_FILE = "sshKeyFile";
 
     public static final String OPENSTACK = "openstack";
-    public static final String OPENSTACK_ENDPOINT = "endpoint";
-    public static final String OPENSTACK_TENANT = "tenant";
-    public static final String OPENSTACK_USER = "user";
-    public static final String OPENSTACK_PASSWORD = "password";
+    public static final String XOS = "xos";
+
+    public static final String ENDPOINT = "endpoint";
+    public static final String TENANT = "tenant";
+    public static final String USER = "user";
+    public static final String PASSWORD = "password";
 
     /**
      * Returns the set of nodes read from network config.
@@ -183,6 +186,28 @@
     }
 
     /**
+     * Returns XOS access information.
+     *
+     * @return XOS access, or null
+     */
+    public XosAccess xosAccess() {
+        JsonNode jsonNode = object.get(XOS);
+        if (jsonNode == null) {
+            log.error("Failed to get XOS configurations");
+            return null;
+        }
+
+        try {
+            return new XosAccess(getConfig(jsonNode, ENDPOINT),
+                                 getConfig(jsonNode, USER),
+                                 getConfig(jsonNode, PASSWORD));
+        } catch (NullPointerException e) {
+            log.error("Failed to get XOS access");
+            return null;
+        }
+    }
+
+    /**
      * Returns OpenStack API access information.
      *
      * @return openstack config
@@ -196,10 +221,10 @@
 
         try {
             return new OpenStackConfig(
-                    jsonNode.path(OPENSTACK_ENDPOINT).asText(),
-                    jsonNode.path(OPENSTACK_TENANT).asText(),
-                    jsonNode.path(OPENSTACK_USER).asText(),
-                    jsonNode.path(OPENSTACK_PASSWORD).asText());
+                    jsonNode.path(ENDPOINT).asText(),
+                    jsonNode.path(TENANT).asText(),
+                    jsonNode.path(USER).asText(),
+                    jsonNode.path(PASSWORD).asText());
         } catch (IllegalArgumentException | NullPointerException e) {
             log.error("Failed to get OpenStack configurations");
             return null;