Update VMURL to use a range for the version 09/17109/1
authorRY303T <RY303T@att.com>
Tue, 3 Oct 2017 18:18:28 +0000 (14:18 -0400)
committerRY303T <RY303T@att.com>
Tue, 3 Oct 2017 18:18:54 +0000 (14:18 -0400)
Replaced hardcoded 'v2' in url format with a range

Issue-Id: APPC-257
Change-Id: I0411f15d0d2166fb7cf72d2df587ea17b9c8705b
Signed-off-by: RY303T <RY303T@att.com>
appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/openecomp/appc/adapter/iaas/impl/VMURL.java
appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/openecomp/appc/adapter/iaas/impl/TestVMURL.java

index 20b15bb..d9c9c7b 100644 (file)
@@ -37,7 +37,7 @@ public class VMURL {
      * various component parts of the URL.
      */
     private static Pattern pattern = Pattern
-        .compile("(\\p{Alnum}+)://([^/:]+)(?::([0-9]+))?(/.*)?/v2/([^/]+)/servers/([^/]+)");
+        .compile("(\\p{Alnum}+)://([^/:]+)(?::([0-9]+))?(/.*)?/(v[0-9\\.]+)/([^/]+)/servers/([^/]+)");
 
     /**
      * The URL scheme or protocol, such as HTTP or HTTPS
@@ -69,6 +69,11 @@ public class VMURL {
      */
     private String serverId;
 
+    /**
+     * The version of the service
+     */
+    private String version;
+
     /**
      * A private default constructor prevents instantiation by any method other than the factory method
      * 
@@ -96,8 +101,9 @@ public class VMURL {
                 obj.host = matcher.group(2);
                 obj.port = matcher.group(3);
                 obj.path = matcher.group(4);
-                obj.tenantId = matcher.group(5);
-                obj.serverId = matcher.group(6);
+                obj.version = matcher.group(5);
+                obj.tenantId = matcher.group(6);
+                obj.serverId = matcher.group(7);
             }
         }
 
@@ -146,6 +152,13 @@ public class VMURL {
         return serverId;
     }
 
+    /**
+     * @return The version of the service 
+     */
+    public String getVersion() {
+        return version;
+    }
+
     @Override
     public String toString() {
         StringBuilder str = new StringBuilder();
@@ -156,7 +169,7 @@ public class VMURL {
         if (path != null) {
             str.append(path);
         }
-        str.append("/v2/" + tenantId + "/servers/" + serverId);
+        str.append("/" + version + "/" + tenantId + "/servers/" + serverId);
         return str.toString();
     }
 
index c143427..46dd5ee 100644 (file)
@@ -94,6 +94,22 @@ public class TestVMURL {
         assertEquals("/api/multicloud/v0/cloudowner_region", url.getPath());
         assertEquals(TENANTID, url.getTenantId());
         assertEquals(VMID, url.getServerId());
+        assertEquals("v2",url.getVersion());
+        assertEquals(url.toString(), URL);
+    }
+
+    @Test
+    public void testValidURL4() {
+        URL = "http://msb.onap.org:80/api/multicloud/v0/cloudowner_region/v2.1/abcde12345fghijk6789lmnopq123rst/servers/abc12345-1234-5678-890a-abcdefg12345";
+        VMURL url = VMURL.parseURL(URL);
+        assertNotNull(url);
+        assertEquals("http", url.getScheme());
+        assertEquals("msb.onap.org", url.getHost());
+        assertEquals("80", url.getPort());
+        assertEquals("/api/multicloud/v0/cloudowner_region", url.getPath());
+        assertEquals(TENANTID, url.getTenantId());
+        assertEquals(VMID, url.getServerId());
+        assertEquals("v2.1",url.getVersion());
         assertEquals(url.toString(), URL);
     }