Merge "Read subnetCapabilities configuration file from SO pod"
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstances.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstances.java
index b1486c9..a25a140 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstances.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstances.java
@@ -20,6 +20,9 @@
 
 package org.onap.so.apihandlerinfra;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
 import java.sql.Timestamp;
 import java.util.HashMap;
 import java.util.UUID;
@@ -72,6 +75,7 @@
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -124,6 +128,9 @@
     @Autowired
     private ResponseHandler responseHandler;
 
+    @Value("${subnetCapability.config.file}")
+    private String subnetCapabilityConfigFile;
+
     /**
      * POST Requests for 3GPP Service create Instance on a version provided
      *
@@ -583,13 +590,23 @@
         }
     }
 
-    // To be implemented for fetching Subnet capabilities
     private Response getSubnetCapabilities(List<SubnetTypes> subnetTypes, String version) throws ApiException {
         ObjectMapper oMapper = new ObjectMapper();
-        InputStream inputStream = TypeReference.class.getResourceAsStream("/subnetCapability.json");
+        String inputFileString = "";
         Map<String, Object> subnetCapability = new HashMap<>();
+        BufferedReader br = null;
         try {
-            subnetCapability = oMapper.readValue(inputStream, Map.class);
+            logger.debug("Reading SubnetCapability file");
+            br = new BufferedReader(new FileReader(new File(subnetCapabilityConfigFile)));
+            StringBuilder sb = new StringBuilder();
+            String line = br.readLine();
+            while (line != null) {
+                sb.append(line);
+                sb.append("\n");
+                line = br.readLine();
+            }
+            inputFileString = sb.toString();
+            subnetCapability = oMapper.readValue(inputFileString, Map.class);
         } catch (Exception e) {
             logger.debug("Exception while reading subnet capability value from json", e);
         }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml b/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml
index b46690f..6064f73 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/resources/application.yaml
@@ -83,3 +83,7 @@
       adapters:
         network:
           encryptionKey: aa3871669d893c7fb8abbcda31b88b4f
+
+subnetCapability:
+  config:
+      file: /app/subnetCapability.json
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/resources/subnetCapability.json b/mso-api-handlers/mso-api-handler-infra/src/main/resources/subnetCapability.json
deleted file mode 100644
index 0d5acef..0000000
--- a/mso-api-handlers/mso-api-handler-infra/src/main/resources/subnetCapability.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "AN": {
-    "latency": "5",
-    "maxNumberofUEs": "100",
-    "maxThroughput": "150",
-    "terminalDensity": "50"
-  },
-  "CN": {
-    "latency": "10",
-    "maxThroughput": "50",
-    "maxNumberofConns": "100"
-  },
-  "TN_FH": {
-    "latency": "10",
-    "maxThroughput": "100"
-  },
-  "TN_MH": {
-    "latency": "5",
-    "maxThroughput": "50"
-  },
-  "TN_BH": {
-    "latency": "10",
-    "maxThroughput": "100"
-  }
-}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstancesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstancesTest.java
index 95f00c3..14a87bf 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstancesTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/Onap3gppServiceInstancesTest.java
@@ -187,7 +187,7 @@
         String request = "{\"subnetTypes\":[\"AN\"]}";
         QuerySubnetCapability subnetCapabilityRequest = MAPPER.readValue(request, QuerySubnetCapability.class);
         String expectedResponse =
-                "{\"AN\":{\"latency\":\"5\",\"maxNumberofUEs\":\"100\",\"maxThroughput\":\"150\",\"terminalDensity\":\"50\"}}";
+                "{\"AN\":{\"latency\":5,\"maxNumberofUEs\":\"100\",\"maxThroughput\":\"150\",\"terminalDensity\":\"50\"}}";
         Response response = objUnderTest.getSliceSubnetCapabilities(subnetCapabilityRequest, "v1");
         String actualResponse = (String) response.getEntity();
         assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/Onap3gppServiceInstancesTest/subnetCapability.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Onap3gppServiceInstancesTest/subnetCapability.json
new file mode 100644
index 0000000..55b3831
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/Onap3gppServiceInstancesTest/subnetCapability.json
@@ -0,0 +1,31 @@
+{
+  "AN": {
+    "latency": 5,
+    "maxNumberofUEs": "100",
+    "maxThroughput": "150",
+    "terminalDensity": "50"
+  },
+  "CN": {
+    "latency": 10,
+    "maxThroughput": "50",
+    "maxNumberofConns": "100"
+  },
+  "TN_FH": {
+    "latency": 10,
+    "maxThroughput": "100"
+  },
+  "TN_MH": {
+    "latency": 5,
+    "maxThroughput": "50"
+  },
+  "TN_BH": {
+    "latency": 10,
+    "maxThroughput": "100"
+  },
+  "AN_NF": {
+    "latency": 5,
+    "maxNumberofUEs": "100",
+    "maxThroughput": "150",
+    "terminalDensity": "50"
+  }
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml b/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml
index 1429ac9..bcd36b8 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/application-test.yaml
@@ -140,3 +140,8 @@
       adapters:
         network:
           encryptionKey: aa3871669d893c7fb8abbcda31b88b4f
+
+subnetCapability:
+  config:
+      file: src/test/resources/Onap3gppServiceInstancesTest/subnetCapability.json
+