3gpp yang model pruning and installation 72/8472/4
authorHariomGupta <hariom.g@hcl.com>
Wed, 1 Jun 2022 09:57:05 +0000 (15:27 +0530)
committerHariomGupta <hariom.g@hcl.com>
Mon, 6 Jun 2022 14:03:59 +0000 (19:33 +0530)
IssueID:  ODUHIGH-454

Signed-off-by: HariomGupta <hariom.g@hcl.com>
Change-Id: Id705b826ef4407438b71987599f3a74e14ca9748

build/scripts/load_yang.sh

index 03b999f..b5b6608 100755 (executable)
@@ -1,3 +1,4 @@
+#!/bin/bash
 ################################################################################
 #   Copyright (c) [2020-2021] [HCL Technologies Ltd.]                          #
 #                                                                              #
 #   limitations under the License.                                             #
 ################################################################################
 # This script is used to install yang module and load initial configuration
-#!/bin/bash
-
 
+#initialize globle variables
 CURRENT_DIR=$PWD
 ROOT_DIR=$CURRENT_DIR/../../
+CONFIG_PATH=$ROOT_DIR/bin/odu/config/
+YANG_PATH_3GPP="https://forge.3gpp.org/rep/sa5/MnS/-/raw/0032d2835382c47bc402c077b40ef71d77c9a3c9/yang-models"
+
+#list of 3gpp yang models
+declare -a YANG_MODEL_3GPP=( "_3gpp-common-yang-types.yang"
+                        "_3gpp-common-top.yang"
+                        "_3gpp-common-measurements.yang"
+                        "_3gpp-common-trace.yang"
+                        "_3gpp-common-managed-function.yang"
+                        "_3gpp-common-subscription-control.yang"
+                        "_3gpp-common-fm.yang"
+                        "_3gpp-common-managed-element.yang"
+                        "_3gpp-5g-common-yang-types.yang"
+                        "_3gpp-nr-nrm-rrmpolicy.yang"
+                        "_3gpp-nr-nrm-gnbdufunction.yang"
+                        "_3gpp-nr-nrm-nrcelldu.yang")
+
+
+#list of ORAN yang models
+declare -a YANG_MODEL_ORAN=( "o-ran-sc-odu-alarm-v1.yang"
+                        "o-ran-sc-du-hello-world.yang"
+                       "o-ran-sc-odu-interface-v1.yang")
+
+
+#list of config files
+declare -a CONFIGURATION_ARRAY=( "startup_config.xml"
+                                 "nacm_config.xml"
+                                 "netconf_server_ipv6.xml")
+
+#list of modules corresponding to the above config files
+declare -a MODULE_ARRAY=( "o-ran-sc-odu-interface-v1"
+                          "ietf-netconf-acm"
+                          "ietf-netconf-server")
+
 
-if [ -d "$ROOT_DIR/bin/odu/config" ]
-then
-       CONFIG_PATH=$ROOT_DIR/bin/odu/config/
-       echo "CONFIG_PATH = $CONFIG_PATH"
-else
-       CONFIG_PATH=$ROOT_DIR/build/config/
-       echo "CONFIG_PATH = $CONFIG_PATH"
-fi
-       echo "CONFIG_PATH = $CONFIG_PATH"
+#check 3GPP yang module if not available then  downalod and update
+check3gppYang()
+{
+   #check 3GPP yang modules available
+   for yang in "${YANG_MODEL_3GPP[@]}"
+   do
 
-#load yand models
-echo "### loading yang model ###"
-sysrepoctl -i $ROOT_DIR/build/yang/o-ran-sc-odu-alarm-v1.yang
-sysrepoctl -i $ROOT_DIR/build/yang/o-ran-sc-du-hello-world.yang
-sysrepoctl -i $ROOT_DIR/build/yang/o-ran-sc-odu-interface-v1.yang
+      if [ ! -f "$ROOT_DIR/build/yang/$yang" ]
+      then
+            wget $YANG_PATH_3GPP/$yang -P $ROOT_DIR/build/yang
+      fi
 
-echo "### loading yang model Done###"
+   done
+}
+
+#3GPP yang modules having some warning so fix it.
+updateYang()
+{
+   sed -i -e "s/'\.\/tj/'\.\.\/tj/g" $ROOT_DIR/build/yang/_3gpp-common-trace.yang
+   sed -i -e "s/\ \.\/tj/\ \.\.\/tj/g" $ROOT_DIR/build/yang/_3gpp-common-trace.yang
+   sed -i -e 's/"IMMEDIATE_MDT"/"IMMEDIATE_MDT_ONLY"/g' $ROOT_DIR/build/yang/_3gpp-common-trace.yang
+   sed -i -e 's/"TRACE"/"TRACE_ONLY"/g' $ROOT_DIR/build/yang/_3gpp-common-trace.yang
+
+   echo "updateYang done"
+}
+
+
+#initialize the variable
+init()
+{
+   if [ -d "$ROOT_DIR/bin/odu/config" ]
+   then
+      CONFIG_PATH=$ROOT_DIR/bin/odu/config/
+      echo "CONFIG_PATH = $CONFIG_PATH"
+   else
+      CONFIG_PATH=$ROOT_DIR/build/config/
+      echo "CONFIG_PATH = $CONFIG_PATH"
+   fi
+      echo "CONFIG_PATH = $CONFIG_PATH"
+
+}
+
+#install 3GPP and ORAN yang modules
+installYang()
+{
+   echo "### install yang modules ###"
+   #install 3GPP yang modules
+   for yang in "${YANG_MODEL_3GPP[@]}"
+   do
+      sysrepoctl -i      $ROOT_DIR/build/yang/$yang
+   done
+
+   #install ORAN yang modules
+   for yang in "${YANG_MODEL_ORAN[@]}"
+   do
+      sysrepoctl -i      $ROOT_DIR/build/yang/$yang
+   done
+}
 
 #load initial configuration
-echo "### loading initial configuration ###"
+loadConfig()
+{
+   echo "### load initial configuration ###"
+
+   for ((i=0;i<${#CONFIGURATION_ARRAY[@]};i++))
+   do
+      sysrepocfg --import=$CONFIG_PATH/${CONFIGURATION_ARRAY[$i]} -v 3 --datastore running --module  ${MODULE_ARRAY[$i]}
+   done
+
+   echo "### load initial configuration done ###"
+}
 
-sysrepocfg --import=$CONFIG_PATH/startup_config.xml -v 3 --datastore running --module  o-ran-sc-odu-interface-v1
-sysrepocfg --import=$CONFIG_PATH/nacm_config.xml -v 3 --datastore running --module  ietf-netconf-acm
-sysrepocfg --import=$CONFIG_PATH/netconf_server_ipv6.xml -v 3 --datastore running --module  ietf-netconf-server
-echo "### loading initial configuration done ###"
+init
+check3gppYang
+updateYang
+installYang
+loadConfig
 
 ################################################################################
 #                              End of file                                     #