Handle dg-loader DGs approach with platform-logic 61/20461/1
authorHector Anapan-Lavalle <ha076r@att.com>
Tue, 24 Oct 2017 23:13:22 +0000 (19:13 -0400)
committerHector Anapan-Lavalle <ha076r@att.com>
Tue, 24 Oct 2017 23:13:45 +0000 (19:13 -0400)
This commit takes care of adding the necessary code to be able to:
1) Convert JSON DGs to XML DGs in the dg-loader-dgs path
2) Load & Activate these converted XML DGs into the MySQL DB

This approach is used in appc.git's dg-loader-provider to handle DGs.
Combining platform-logic approach and dg-loader-provider approach to
handle DGs coming from these two separate paths.

Change-Id: I46505a3380afcdd3c6794e24fda75aef62ccc58f
Signed-off-by: Hector Anapan-Lavalle <ha076r@att.com>
Issue-Id:[APPC-287]

installation/appc/src/main/scripts/startODL.sh
platform-logic/appc/pom.xml
platform-logic/appc/src/main/resources/dg_activate.txt [new file with mode: 0644]
platform-logic/installer/src/assembly/assemble_zip.xml
platform-logic/installer/src/main/scripts/install-converted-dgs.sh [new file with mode: 0644]

index 5ff7b32..7642820 100644 (file)
@@ -22,8 +22,8 @@
 ###
 
 #
-# This script takes care of installing the SDN-C & APP-C platform components 
-#  if not already installed, and starts the APP-C Docker Container
+# This script takes care of installing the SDNC & APPC platform components 
+#  if not already installed, and starts the APPC Docker Container
 #
 
 ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
@@ -64,9 +64,9 @@ echo -e "\nmysql ready"
 
 if [ ! -f ${SDNC_HOME}/.installed ]
 then
-       echo "Installing SDN-C database"
+       echo "Installing SDNC database"
        ${SDNC_HOME}/bin/installSdncDb.sh
-       echo "Installing APP-C database"
+       echo "Installing APPC database"
        ${APPC_HOME}/bin/installAppcDb.sh
        echo "Starting OpenDaylight"
        ${ODL_HOME}/bin/start
@@ -75,7 +75,7 @@ then
        echo "Inserting modified installFeatures.sh for sdnc"
        rm ${SDNC_HOME}/bin/installFeatures.sh
        cp ${APPC_HOME}/data/sdncInstallFeatures.sh ${SDNC_HOME}/bin/installFeatures.sh
-       echo "Installing SDN-C platform features"
+       echo "Installing SDNC platform features"
        ${SDNC_HOME}/bin/installFeatures.sh
        if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ]
        then
@@ -83,14 +83,20 @@ then
                ${SDNC_HOME}/svclogic/bin/install.sh
        fi
        
-       echo "Installing APP-C platform features"
+       echo "Installing APPC platform features"
        ${APPC_HOME}/bin/installFeatures.sh
        if [ -x ${APPC_HOME}/svclogic/bin/install.sh ]
        then
-               echo "Installing directed graphs for APP-C"
+               echo "Installing APPC DGs using platform-logic"
                ${APPC_HOME}/svclogic/bin/install.sh
        fi
 
+       if [ -x ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh ]
+       then
+               echo "Installing APPC JSON DGs converted to XML using dg-loader"
+               ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh
+       fi
+
        echo "Restarting OpenDaylight"
        ${ODL_HOME}/bin/stop
        echo "Installed at `date`" > ${SDNC_HOME}/.installed
index deb425d..36938e1 100644 (file)
        <name>Platform Logic : APP-C</name>
        <description>Contains platform-level service logic for the APP-C Platform</description>
 
-
        <build>
                <plugins>
+                   <!-- Copying the XML DG Graph scripts from platform-logic/appc/src/main/xml to container's <SVCLOGIC_DIR>/graphs/appc path -->
                        <plugin>
                                <artifactId>maven-resources-plugin</artifactId>
                                <version>2.6</version>
                                <executions>
                                        <execution>
-                                               <id>copy-version</id>
+                                               <id>copy-xml-dgs</id>
                                                <goals>
                                                        <goal>copy-resources</goal>
-                                               </goals><!-- here the phase you need -->
+                                               </goals>
                                                <phase>validate</phase>
                                                <configuration>
                                                        <outputDirectory>../target/graphs/appc</outputDirectory>
                                        </execution>
                                </executions>
                        </plugin>
+                       <!-- Copying the JSON DG Graph scripts from platform-logic/appc/src/main/json/dg-loader-dgs to container's <SVCLOGIC_DIR>/graphs/appc/json/dg-loader-dgs path --> 
+                       <plugin>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>2.6</version>
+                               <executions>
+                                       <execution>
+                                               <id>copy-dgloader-dgs</id>
+                                               <goals>
+                                                       <goal>copy-resources</goal>
+                                               </goals>
+                                               <phase>validate</phase>
+                                               <configuration>
+                                                       <outputDirectory>../target/graphs/appc/json/dg-loader-dgs</outputDirectory>
+                                                       <resources>
+                                                               <resource>
+                                                                       <directory>src/main/json/dg-loader-dgs</directory>
+                                                                       <includes>
+                                                                               <include>**/*.json</include>
+                                                                       </includes>
+                                                                       <filtering>true</filtering>
+                                                               </resource>
+                                                               <resource>
+                                                                       <directory>src/main/resources</directory>
+                                                                       <includes>
+                                                                               <include>dg_activate.txt</include>
+                                                                       </includes>
+                                                                       <filtering>true</filtering>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       <!-- Copying the default platform-logic scripts from platform-logic/appc/src/main/json to container's <SVCLOGIC_DIR>/graphs/appc/json path --> 
+                       <plugin>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>2.6</version>
+                               <executions>
+                                       <execution>
+                                               <id>copy-default-dgs</id>
+                                               <goals>
+                                                       <goal>copy-resources</goal>
+                                               </goals>
+                                               <phase>validate</phase>
+                                               <configuration>
+                                                       <outputDirectory>../target/graphs/appc/json</outputDirectory>
+                                                       <resources>
+                                                               <resource>
+                                                                       <directory>src/main/json</directory>
+                                                                       <includes>
+                                                                               <include>*.json</include>
+                                                                       </includes>
+                                                                       <filtering>true</filtering>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
                </plugins>
        </build>
+       
+       
 
 </project>
diff --git a/platform-logic/appc/src/main/resources/dg_activate.txt b/platform-logic/appc/src/main/resources/dg_activate.txt
new file mode 100644 (file)
index 0000000..9d2d805
--- /dev/null
@@ -0,0 +1,77 @@
+# MODULE NAME:RPC NAME:VERSION:MODE
+# Example -> APPC:GetDeviceRunningConfiguration:3.0.0:sync
+APPC:CheckConfigStatus:4.0.0:sync
+APPC:CommonConfiguration:4.0.0:sync
+APPC:Configure:4.0.0:sync
+APPC:DownloadCliConfig:4.0.0:sync
+APPC:DownloadIsbcConfig:4.0.0:sync
+APPC:DownloadRestconfConfig:4.0.0:sync
+APPC:DownloadSBGConfig:4.0.0:sync
+APPC:DownloadvIRCChefConfig:4.0.0:sync
+APPC:DownloadXmlConfig:4.0.0:sync
+APPC:GenerateTemplateConfig:4.0.0:sync
+APPC:GetConfigParams:4.0.0:sync
+APPC:GetDeviceRunningConfig:4.0.0:sync
+APPC:GenerateConfig:4.0.0:sync
+APPC:SaveRunningConfig:4.0.0:sync
+APPC:SetStatus:4.0.0:sync
+APPC:UpdateAaiInfo:4.0.0:sync
+APPC:GetAaiInfo:4.0.0:sync
+APPC:GetVfModuleInfo:4.0.0:sync
+APPC:ProcessParameterDefinition:4.0.0:sync
+APPC:PublishConfiguration:4.0.0:sync
+APPC:topology-operation-all:2.0.0:sync
+ASDC-MESSAGE:configuration-document-request:3.0.0:sync
+
+Appc-API:service-configuration-operation:4.0.0:sync
+Appc-API:service-configuration-prepare:4.0.0:sync
+Appc-API:service-configuration-activate:4.0.0:sync
+Appc-API:service-configuration-backup:4.0.0:sync
+Appc-API:service-configuration-notification:4.0.0:sync
+Appc-API:audit-configuration-operation:4.0.0:sync
+Appc-API:audit-configuration-notification:4.0.0:sync
+Appc-API:update-aai:4.0.0:sync
+Appc-API:update-aai-sbg:4.0.0:sync
+Appc-API:update-vserver-info:4.0.0:sync
+Appc-API:update-vnfc-info:4.0.0:sync
+
+Appc-API:Generic_Evacuate:2.0.0:sync
+
+#
+APPC:GetRunningConfig:2.0.0:sync
+APPC:Restart-Active-Active_VNFC:2.0.0:sync
+APPC:Restart-Active-Passive_VNFC:2.0.0:sync
+APPC:Check-Active_VNFC_vSCP:2.0.0:sync
+APPC:HealthCheck_VNF_vSCP:2.0.0:sync
+APPC:Restart_VNF:2.0.0:sync
+APPC:Restart_VNFC:2.0.0:sync
+APPC:Restart_VM:2.0.0:sync
+APPC:Stop_VNFC:2.0.2:sync
+APPC:Stop_VNF:2.0.2:sync
+APPC:StopVM_VM:2.0.0:sync
+APPC:Stop_VM:2.0.0:sync
+APPC:StopApplication_VM_vSCP:2.0.0:sync
+APPC:Generic_Sync:2.0.0:sync
+APPC:Generic_Audit:2.0.0:sync
+APPC:Start_VNF:2.0.0:sync
+APPC:Start_VNFC:2.0.0:sync
+APPC:Start_VM:2.0.0:sync
+APPC:StartApplication_VM_vSCP:2.0.0:sync
+APPC:RestartVM_VM:2.0.0:sync
+APPC:Rebuild_VM:2.0.0:sync
+
+APPC:EvacuateVM:2.0.0:sync
+APPC:RebuildVM:2.0.0:sync
+APPC:CreateSnapShotVM:2.0.0:sync
+APPC:MigrateVM:2.0.0:sync
+APPC:RestartVMCommonFlow:2.0.0:sync
+APPC:RestartVMVNFCommonFlow:2.0.0:sync
+
+APPC:setInputParams:4:0:0:sync
+APPC:healthcheck:4:0:0:sync
+APPC:chef:4:0:0sync
+APPC:ansible-adapter-1.0:4:0:0:sync
+APPC:Generic_AnsibleDG:4:0:0:sync
+APPC:GetTemplateConfig_Ansible:4:0:0:sync
+APPC:GetTemplateConfig_Chef:4:0:0:sync
+APPC_Generic_ChefDG:4:0:0:sync
index 8fc1342..56e6bf2 100644 (file)
@@ -38,7 +38,9 @@
                        <outputDirectory>svclogic/graphs</outputDirectory>
                        <includes>
                                <include>**/*.xml</include>
+                               <include>**/*.json</include>
                                <include>**/graph.versions</include>
+                               <include>**/dg_activate.txt</include>
                        </includes>
                        <lineEnding>unix</lineEnding>
                </fileSet>
diff --git a/platform-logic/installer/src/main/scripts/install-converted-dgs.sh b/platform-logic/installer/src/main/scripts/install-converted-dgs.sh
new file mode 100644 (file)
index 0000000..5047a68
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+###
+
+###
+### Convert XML DGs to JSON DGs using dg-loader, then load/activate them in the MySQL DB. ###
+###
+
+export APPC_HOME=${APPC_HOME:-/opt/openecomp/appc}
+
+# SVCLOGIC_DIR env variable points to /opt/openecomp/appc/svclogic
+export SVCLOGIC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
+
+# Check if the JSON Directory exists under the env. variable defined
+export DG_JSON_DIR=${SVCLOGIC_DIR}/graphs/appc/json/dg-loader-dgs
+echo "Processing DG JSON directory : ${DG_JSON_DIR}"
+if [ ! -d "$DG_JSON_DIR" ] 
+then
+    echo "DG-Loader JSON Directory is Missing"
+exit 1
+fi
+
+# Temporarily use wget to download the JAR needed to execute the dg-loader actions below (NEEDS TO GET THE JAR WITH DEPENDENCIES)
+wget -P ${SVCLOGIC_DIR}/lib https://nexus.onap.org/content/groups/staging/org/openecomp/appc/plugins/dg-loader-provider/1.1.0/dg-loader-provider-1.1.0.jar
+
+cd ${DG_JSON_DIR}
+mkdir -p ${DG_JSON_DIR}/converted-xml
+
+# Generate XML DGs from JSON DGs
+$JAVA_HOME/bin/java -cp ${SVCLOGIC_DIR}/lib/dg-loader-jar-with-dependencies.jar org.openecomp.sdnc.dg.loader.DGXMLGenerator ${DG_JSON_DIR} ${DG_JSON_DIR}/converted-xml
+
+# Load converted XML DGs to the SVC_LOGIC DB in the MySQL Docker Container
+$JAVA_HOME/bin/java -cp ${SVCLOGIC_DIR}/lib/dg-loader-jar-with-dependencies.jar org.openecomp.sdnc.dg.loader.DGXMLLoad ${DG_JSON_DIR}/converted-xml ${APPC_HOME}/data/properties/dblib.properties
+
+# Activate converted XML DGs to the SVC_LOGIC DB in the MySQL Docker Container
+$JAVA_HOME/bin/java -cp ${SVCLOGIC_DIR}/lib/dg-loader-jar-with-dependencies.jar org.openecomp.sdnc.dg.loader.DGXMLActivate ${DG_JSON_DIR}/dg_activate.txt ${APPC_HOME}/data/properties/dblib.properties
+
+exit 0