Merge "Schema creation and Data pre-load to on cps-xnf-proxy start-up using liquibase"
diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml
index 83d1808..a592085 100644
--- a/checkstyle/pom.xml
+++ b/checkstyle/pom.xml
@@ -5,7 +5,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.onap.cps</groupId>
     <artifactId>checkstyle</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.2-SNAPSHOT</version>
 
     <properties>
         <nexusproxy>https://nexus.onap.org</nexusproxy>
diff --git a/cps-application/pom.xml b/cps-application/pom.xml
index e5b46f6..8ea2db3 100644
--- a/cps-application/pom.xml
+++ b/cps-application/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.cps</groupId>
         <artifactId>cps-parent</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.2-SNAPSHOT</version>
         <relativePath>../cps-parent/pom.xml</relativePath>
     </parent>
 
@@ -34,7 +34,6 @@
 
     <properties>
         <app>org.onap.cps.Application</app>
-        <image.name>cps-service</image.name>
         <image.version>${project.version}</image.version>
         <jib-maven-plugin.version>2.6.0</jib-maven-plugin.version>
         <minimum-coverage>0.0</minimum-coverage>
@@ -105,10 +104,6 @@
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
-            <plugin>
-                <groupId>com.google.cloud.tools</groupId>
-                <artifactId>jib-maven-plugin</artifactId>
-            </plugin>
         </plugins>
     </build>
     <profiles>
@@ -117,12 +112,24 @@
             <activation>
                 <activeByDefault>false</activeByDefault>
             </activation>
+
+            <properties>
+                <image.name>cps-service</image.name>
+            </properties>
             <dependencies>
                 <dependency>
                     <groupId>${project.groupId}</groupId>
                     <artifactId>cps-rest</artifactId>
                 </dependency>
             </dependencies>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.google.cloud.tools</groupId>
+                        <artifactId>jib-maven-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
         </profile>
         <profile>
             <id>xnf-docker</id>
@@ -140,11 +147,19 @@
                     <artifactId>cps-nf-proxy-rest</artifactId>
                 </dependency>
             </dependencies>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.google.cloud.tools</groupId>
+                        <artifactId>jib-maven-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
         </profile>
         <profile>
             <id>cps-xnf-docker</id>
             <activation>
-                <activeByDefault>false</activeByDefault>
+                <activeByDefault>true</activeByDefault>
             </activation>
 
             <properties>
@@ -161,6 +176,14 @@
                     <artifactId>cps-nf-proxy-rest</artifactId>
                 </dependency>
             </dependencies>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.google.cloud.tools</groupId>
+                        <artifactId>jib-maven-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
         </profile>
     </profiles>
 </project>
\ No newline at end of file
diff --git a/cps-bom/pom.xml b/cps-bom/pom.xml
index 9ae8a80..cf5025d 100644
--- a/cps-bom/pom.xml
+++ b/cps-bom/pom.xml
@@ -5,7 +5,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.onap.cps</groupId>
     <artifactId>cps-bom</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.2-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <description>This artifact contains dependencyManagement declarations of all published CPS components.</description>
diff --git a/cps-dependencies/pom.xml b/cps-dependencies/pom.xml
index 8076d65..202f8b2 100755
--- a/cps-dependencies/pom.xml
+++ b/cps-dependencies/pom.xml
@@ -6,7 +6,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.onap.cps</groupId>
     <artifactId>cps-dependencies</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.2-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <name>${project.groupId}:${project.artifactId}</name>
diff --git a/cps-nf-proxy-rest/pom.xml b/cps-nf-proxy-rest/pom.xml
index 94420f7..ac891e1 100755
--- a/cps-nf-proxy-rest/pom.xml
+++ b/cps-nf-proxy-rest/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.onap.cps</groupId>
         <artifactId>cps-parent</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.2-SNAPSHOT</version>
         <relativePath>../cps-parent/pom.xml</relativePath>
     </parent>
 
diff --git a/cps-nf-proxy-service/pom.xml b/cps-nf-proxy-service/pom.xml
index d32d0ad..67ffaeb 100644
--- a/cps-nf-proxy-service/pom.xml
+++ b/cps-nf-proxy-service/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>org.onap.cps</groupId>
         <artifactId>cps-parent</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.2-SNAPSHOT</version>
         <relativePath>../cps-parent/pom.xml</relativePath>
     </parent>
 
diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml
index ecc9898..0f8e643 100755
--- a/cps-parent/pom.xml
+++ b/cps-parent/pom.xml
@@ -31,7 +31,7 @@
 
     <groupId>org.onap.cps</groupId>
     <artifactId>cps-parent</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.2-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>
diff --git a/cps-rest/pom.xml b/cps-rest/pom.xml
index 2bb053b..840228e 100755
--- a/cps-rest/pom.xml
+++ b/cps-rest/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.onap.cps</groupId>
         <artifactId>cps-parent</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.2-SNAPSHOT</version>
         <relativePath>../cps-parent/pom.xml</relativePath>
     </parent>
 
diff --git a/cps-ri/pom.xml b/cps-ri/pom.xml
index e4921cf..2a704cf 100644
--- a/cps-ri/pom.xml
+++ b/cps-ri/pom.xml
@@ -5,7 +5,7 @@
     <parent>

         <groupId>org.onap.cps</groupId>

         <artifactId>cps-parent</artifactId>

-        <version>0.0.1-SNAPSHOT</version>

+        <version>0.0.2-SNAPSHOT</version>

         <relativePath>../cps-parent/pom.xml</relativePath>

     </parent>

 

diff --git a/cps-service/pom.xml b/cps-service/pom.xml
index fc4ca12..7225e43 100644
--- a/cps-service/pom.xml
+++ b/cps-service/pom.xml
@@ -5,7 +5,7 @@
   <parent>

     <groupId>org.onap.cps</groupId>

     <artifactId>cps-parent</artifactId>

-    <version>0.0.1-SNAPSHOT</version>

+    <version>0.0.2-SNAPSHOT</version>

     <relativePath>../cps-parent/pom.xml</relativePath>

   </parent>

 

diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
index 75c98a8..a24bd0a 100755
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
@@ -106,7 +106,7 @@
         def dataNodeStored

         given: 'valid yang resource as name-to-content map'

             def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(

-                    'e2e/basic/cps-ran-inventory.yang')

+                    'e2e/basic/cps-ran-inventory@2021-01-28.yang')

             def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap).getSchemaContext()

         and : 'a valid json is provided for the model'

             def jsonData = TestUtils.getResourceFileContent('e2e/basic/cps-ran-inventory-data.json')

@@ -122,18 +122,23 @@
                     { args -> dataNodeStored = args[2]}

         and: 'the size of the tree is correct'

             def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored)

-            assert  cpsRanInventory.size() == 3

+            assert  cpsRanInventory.size() == 4

         and: 'ran-inventory contains the correct child node'

             def ranInventory = cpsRanInventory.get('/ran-inventory')

-            def sliceProfilesList = cpsRanInventory.get('/ran-inventory/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']')

-            def pLMNIdList = cpsRanInventory.get('/ran-inventory/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']/pLMNIdList[@mcc=\'310\' and @mnc=\'410\']')

+            def ranSlices = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']')

+            def sliceProfilesList = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']')

+            def pLMNIdList = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']/pLMNIdList[@mcc=\'310\' and @mnc=\'410\']')

             ranInventory.getChildDataNodes().size() == 1

-            ranInventory.getChildDataNodes().find( {it.xpath == sliceProfilesList.xpath})

+            ranInventory.getChildDataNodes().find( {it.xpath == ranSlices.xpath})

+        and: 'ranSlices contains the correct child node'

+            ranSlices.getChildDataNodes().size() == 1

+            ranSlices.getChildDataNodes().find( {it.xpath == sliceProfilesList.xpath})

         and: 'sliceProfilesList contains the correct child node'

             sliceProfilesList.getChildDataNodes().size() == 1

             sliceProfilesList.getChildDataNodes().find( {it.xpath == pLMNIdList.xpath})

-        and: 'pLMNIdList contains the no child nodes'

+        and: 'pLMNIdList contains no children'

             pLMNIdList.getChildDataNodes().size() == 0

+

     }

 

     def 'E2E RAN Schema Model.'(){

diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json
index 1dbdab2..fb2efb1 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json
@@ -1,31 +1,34 @@
 {
-"ran-inventory":{
-   "rannfnssiid": "14559ead-f4fe-4c1c-a94c-8015fad3ea35",
-   "subnetStatus": "active",
-   "nsstid": "2372a5dc-ee24-4a45-85f5-65103dfdc5b4",
-   "slicetype": "embb",
-   "isshareable": "Shareable",
-   "sliceProfilesList": [
-     {
-       "sliceProfileId": "f33a9dd8-ae51-4acf-8073-c9390c25f6f1",
-       "sNSSAI": "001-11000",
-       "maxNumberofUEs": 300,
-       "latency": 5,
-       "uLThptPerSlice": 40,
-       "dLThptPerSlice": 50,
-       "maxNumberofConns": 500,
-       "uEMobilityLevel": "FULLY MOBILITY",
-       "coverageAreaList": [
-         "Washington"
-       ],
-       "resourceSharingLevel": "Shareable",
-       "pLMNIdList": [
-         {
-           "mcc": "310",
-           "mnc": "410"
-         }
-       ]
-     }
-   ]
+  "cps-ran-inventory:ran-inventory":{
+    "ran-slices":[{
+      "rannfnssiid": "14559ead-f4fe-4c1c-a94c-8015fad3ea35",
+      "subnetStatus": "active",
+      "nsstid": "2372a5dc-ee24-4a45-85f5-65103dfdc5b4",
+      "slicetype": "embb",
+      "isshareable": "Shareable",
+      "sliceProfilesList": [
+        {
+          "sliceProfileId": "f33a9dd8-ae51-4acf-8073-c9390c25f6f1",
+          "sNSSAI": "001-11000",
+          "maxNumberofUEs": 300,
+          "latency": 5,
+          "uLThptPerSlice": 40,
+          "dLThptPerSlice": 50,
+          "maxNumberofConns": 500,
+          "uEMobilityLevel": "FULLY MOBILITY",
+          "coverageAreaList": [
+            "Washington"
+          ],
+          "resourceSharingLevel": "Shareable",
+          "pLMNIdList": [
+            {
+              "mcc": "310",
+              "mnc": "410"
+            }
+          ]
+        }
+      ]
+    }
+    ]
   }
 }
\ No newline at end of file
diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang
similarity index 61%
rename from cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang
rename to cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang
index 0e504ca..c16a682 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang
@@ -57,46 +57,46 @@
   }
 
     grouping SliceProfile{
-  		leaf sliceProfileId{
-  			type string;
-  			mandatory true;
-  			description "slice profile id";
-  		}
-  		leaf sNSSAI{
-  			type string;
-  			mandatory false;
-  			description "The S-NSSAI may include both the SST and SD fields (in which case the S-NSSAI length is 32 bits in total), or the S-NSSAI may just include the SST field (in which case the S-NSSAI length is 8 bits only)";
-  		}
-  		leaf maxNumberofUEs{
-  			type int64 { range "0..68719476735"; }
-        		mandatory false;
-          		description "maximum number of UEs";
-  		}
-  		leaf latency{
-  			type int64 { range "0..68719476735"; }
-        		mandatory false;
-          		description "latency of the slice requested by the operator";
-  		}
-  		leaf uLThptPerSlice{
-  			type int64 { range "0..68719476735"; }
-        		mandatory false;
-          		description "uplink throughput of the slice requested by the operator";
-  		}
-  		leaf dLThptPerSlice{
-  			type int64 { range "0..68719476735"; }
-        		mandatory false;
-          		description "downlink throughput  of the slice requested by the operator";
-  		}
-  		leaf maxNumberofConns{
-  			type int64 { range "0..68719476735"; }
-        		mandatory false;
-          		description "maximum number of connections to be served by the slice";
-  		}
-  		leaf uEMobilityLevel{
-  			type string;
-  			mandatory false;
-  			description "Mobility level of the UE";
-  		}
+                leaf sliceProfileId{
+                        type string;
+                        mandatory true;
+                        description "slice profile id";
+                }
+                leaf sNSSAI{
+                        type string;
+                        mandatory false;
+                        description "The S-NSSAI may include both the SST and SD fields (in which case the S-NSSAI length is 32 bits in total), or the S-NSSAI may just include the SST field (in which case the S-NSSAI length is 8 bits only)";
+                }
+                leaf maxNumberofUEs{
+                        type int64 { range "0..68719476735"; }
+                        mandatory false;
+                        description "maximum number of UEs";
+                }
+                leaf latency{
+                        type int64 { range "0..68719476735"; }
+                        mandatory false;
+                        description "latency of the slice requested by the operator";
+                }
+                leaf uLThptPerSlice{
+                        type int64 { range "0..68719476735"; }
+                        mandatory false;
+                        description "uplink throughput of the slice requested by the operator";
+                }
+                leaf dLThptPerSlice{
+                        type int64 { range "0..68719476735"; }
+                        mandatory false;
+                        description "downlink throughput  of the slice requested by the operator";
+                }
+                leaf maxNumberofConns{
+                        type int64 { range "0..68719476735"; }
+                        mandatory false;
+                        description "maximum number of connections to be served by the slice";
+                }
+                leaf uEMobilityLevel{
+                        type string;
+                        mandatory false;
+                        description "Mobility level of the UE";
+                }
     leaf resourceSharingLevel{
       type string;
       description "Resource sharing level";
@@ -117,7 +117,7 @@
       uses PLMNId;
     }
 
-  	}
+        }
 
     grouping PLMNId {
     description
@@ -141,17 +141,17 @@
     }
   }
 
-    container ran-inventory{
+    grouping ran-slices{
       leaf rannfnssiid{
       description "NSSI of a RAN network function";
       type string;
     }
 
     list sliceProfilesList{
-  		uses SliceProfile;
-  		key "sliceProfileId";
-  		description "List of slice profiles supported by the ran slice";
-  	}
+                uses SliceProfile;
+                key "sliceProfileId";
+                description "List of slice profiles supported by the ran slice";
+        }
 
     leaf subnetStatus{
       description "status of  RAN NF NSSI";
@@ -173,4 +173,11 @@
       type string;
     }
     }
+    container ran-inventory{
+    list ran-slices{
+        uses ran-slices;
+        key "rannfnssiid";
+        description "List of RAN Slices";
+        }
+    }
     }
diff --git a/pom.xml b/pom.xml
index 21d9b2e..de96249 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 

     <groupId>org.onap.cps</groupId>

     <artifactId>cps-aggregator</artifactId>

-    <version>0.0.1-SNAPSHOT</version>

+    <version>0.0.2-SNAPSHOT</version>

     <packaging>pom</packaging>

 

     <name>cps</name>

diff --git a/spotbugs/pom.xml b/spotbugs/pom.xml
index 133c4f7..2a0788e 100644
--- a/spotbugs/pom.xml
+++ b/spotbugs/pom.xml
@@ -5,7 +5,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.onap.cps</groupId>
     <artifactId>spotbugs</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.2-SNAPSHOT</version>
 
     <properties>
         <nexusproxy>https://nexus.onap.org</nexusproxy>
diff --git a/version.properties b/version.properties
index d38d843..304745a 100644
--- a/version.properties
+++ b/version.properties
@@ -3,7 +3,7 @@
 
 major=0
 minor=0
-patch=1
+patch=2
 
 base_version=${major}.${minor}.${patch}