X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=installation%2Fsdnc%2Fsrc%2Fmain%2Fscripts%2FstartODL.oom.sh;h=1ce4a1b0aa693ca5309de5620c010532a87e4fba;hb=480d32b05d418c3b3a6ee1ee5a43929e99a01a5e;hp=e5e0d8c01e30a3a6eccbe7e2ac2879f3e66ad314;hpb=2729820a6f266dabe6fe550c0fa6e6ded6855d6d;p=sdnc%2Foam.git diff --git a/installation/sdnc/src/main/scripts/startODL.oom.sh b/installation/sdnc/src/main/scripts/startODL.oom.sh index e5e0d8c0..1ce4a1b0 100755 --- a/installation/sdnc/src/main/scripts/startODL.oom.sh +++ b/installation/sdnc/src/main/scripts/startODL.oom.sh @@ -27,10 +27,26 @@ # List of used constants, that are provided during container initialization ODL_HOME=${ODL_HOME:-/opt/opendaylight/current} +ODL_FEATURES_BOOT_FILE=$ODL_HOME/etc/org.apache.karaf.features.cfg +FEATURESBOOTMARKER="^featuresBoot *=" +REPOSITORIESBOOTMARKER="^featuresRepositories *=" + +# +ODL_REMOVEIDMDB=${ODL_REMOVEIDMDB:-false} + +#ODL_CERT_DIR ODL_ADMIN_USERNAME=${ODL_ADMIN_USERNAME:-admin} -ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} +if $ODL_REMOVEIDMDB ; then + echo "Remove odl idmdb" + rm $ODL_HOME/data/idmlight.db.mv.db + ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-admin} +else + ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} +fi + export ODL_ADMIN_PASSWORD ODL_ADMIN_USERNAME +JDEBUG=${JDEBUG:-false} SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc} SDNC_BIN=${SDNC_BIN:-/opt/onap/sdnc/bin} CCSDK_HOME=${CCSDK_HOME:-/opt/onap/ccsdk} @@ -52,9 +68,17 @@ SDNC_AAF_ENABLED=${SDNC_AAF_ENABLED:-false} SDNRWT=${SDNRWT:-false} SDNRWT_BOOTFEATURES=${SDNRWT_BOOTFEATURES:-sdnr-wt-feature-aggregator} SDNRDM=${SDNRDM:-false} -SDNRDM_BOOTFEATURES=${SDNRDM_BOOTFEATURES:-sdnr-wt-feature-aggregator-devicemanager} - +# Add devicemanager base and specific repositories +SDNR_BASE_REPO=${SDNRDM_BASE_REPO:-mvn:org.onap.ccsdk.features.sdnr.wt/sdnr-wt-feature-aggregator/$CCSDKFEATUREVERSION/xml/features} +SDNRDM_BASE_REPO=${SDNRDM_BASE_REPO:-mvn:org.onap.ccsdk.features.sdnr.wt/sdnr-wt-feature-aggregator-devicemanager-base/$CCSDKFEATUREVERSION/xml/features} +SDNRDM_ONF_REPO=${SDNRDM_ONF_REPO:-mvn:org.onap.ccsdk.features.sdnr.wt/sdnr-wt-devicemanager-onf-feature/$CCSDKFEATUREVERSION/xml/features} +SDNRDM_ORAN_REPO=${SDNRDM_ORAN_REPO:-mvn:org.onap.ccsdk.features.sdnr.wt/sdnr-wt-devicemanager-oran-feature/$CCSDKFEATUREVERSION/xml/features} +SDNRDM_GRAN_REPO=${SDNRDM_GRAN_REPO:-mvn:org.onap.ccsdk.features.sdnr.wt/sdnr-wt-devicemanager-gran-feature/$CCSDKFEATUREVERSION/xml/features} +# Add devicemanager features +SDNRDM_SDM_LIST=${SDNRDM_SDM_LIST:-sdnr-wt-devicemanager-onf-feature, sdnr-wt-devicemanager-oran-feature, sdnr-wt-devicemanager-gran-feature} +SDNRDM_BOOTFEATURES=${SDNRDM_BOOTFEATURES:-sdnr-wt-feature-aggregator-devicemanager-base, ${SDNRDM_SDM_LIST}} SDNRINIT=${SDNRINIT:-false} +SDNRONLY=${SDNRONLY:-false} SDNRDBURL=${SDNRDBURL:-http://sdnrdb:9200} #SDNRDBUSERNAME #SDNRDBPASSWORD @@ -64,32 +88,79 @@ SDNRDBCOMMAND=${SDNRDBCOMMAND:--c init -db $SDNRDBURL -dbu $SDNRDBUSERNAME -dbp SDNR_NORTHBOUND=${SDNR_NORTHBOUND:-false} SDNR_NORTHBOUND_BOOTFEATURES=${SDNR_NORTHBOUND_BOOTFEATURES:-sdnr-northbound-all} +#OVERRIDE_FEATURES_BOOT + # Functions +# Test if repository exists, like this mvn:org.onap.ccsdk.features.sdnr.wt/sdnr-wt-devicemanager-oran-feature/0.7.2/xml/features +# $1 repository +function isRepoExisting() { + REPO=$(echo $1 | sed -E "s#mvn:(.*)/xml/features\$#\1#") + OIFS="$IFS" + IFS='/' parts=($REPO) + IFS="$OIFS" + path="$ODL_HOME/system/"${parts[0]//./\/}"/"${parts[1]}"/"${parts[2]} + [ -d "$path" ] +} + +# Add features repository to karaf featuresRepositories configuration +# $1 repositories to be added +function addRepository() { + CFG=$ODL_FEATURES_BOOT_FILE + ORIG=$CFG.orig + if isRepoExisting "$1" ; then + echo "Add repository: $1" + sed -i "\|featuresRepositories|s|$|, $1|" $CFG + else + echo "Repo does not exist: $1" + fi +} +# Append features to karaf boot feature configuration +# $1 search pattern .. no leading "," +# $2 replacement .. if "" remove +function replaceRepository() { + CFG=$ODL_FEATURES_BOOT_FILE + if [ -n "$2" ] ; then + echo "Replace feature repo $1 with: $2" + sed -i "/$REPOSITORIESBOOTMARKER/ s/,* *$1/,$2/g" $CFG + else + echo "Remove feature repo $1" + sed -i "/$REPOSITORIESBOOTMARKER/ s/,* *$1//g" $CFG + fi +} + # Append features to karaf boot feature configuration # $1 additional feature to be added # $2 repositories to be added (optional) function addToFeatureBoot() { - CFG=$ODL_HOME/etc/org.apache.karaf.features.cfg + CFG=$ODL_FEATURES_BOOT_FILE ORIG=$CFG.orig if [ -n "$2" ] ; then - echo "Add repository: $2" - mv $CFG $ORIG - cat $ORIG | sed -e "\|featuresRepositories|s|$|,$2|" > $CFG + addRepository $2 fi echo "Add boot feature: $1" - mv $CFG $ORIG - cat $ORIG | sed -e "\|featuresBoot *=|s|$|,$1|" > $CFG + sed -i "\|$FEATURESBOOTMARKER|s|$|,$1|" $CFG } # Append features to karaf boot feature configuration -# $1 search pattern -# $2 replacement +# $1 search pattern .. no leading "," +# $2 replacement .. if "" remove function replaceFeatureBoot() { - CFG=$ODL_HOME/etc/org.apache.karaf.features.cfg - ORIG=$CFG.orig - echo "Replace boot feature $1 with: $2" - sed -i "/featuresBoot/ s/$1/$2/g" $CFG + CFG=$ODL_FEATURES_BOOT_FILE + if [ -n "$2" ] ; then + echo "Replace boot feature $1 with: $2" + sed -i "/$FEATURESBOOTMARKER/ s/,* *$1/,$2/g" $CFG + else + echo "Remove boot feature $1" + sed -i "/$FEATURESBOOTMARKER/ s/,* *$1//g" $CFG + fi +} + +# Remove all sdnc specific features +function cleanupFeatureBoot() { + echo "Remove northbound bootfeatures " + sed -i "/$FEATURESBOOTMARKER/ s/,ccsdk-sli-core-all.*$//g" $ODL_FEATURES_BOOT_FILE + sed -i "/$FEATURESBOOTMARKER/ s/odl-restconf-nb-rfc8040,//g" $ODL_FEATURES_BOOT_FILE } function initialize_sdnr() { @@ -98,13 +169,40 @@ function initialize_sdnr() { INITCMD+="$ODL_HOME/system/org/onap/ccsdk/features/sdnr/wt/sdnr-wt-data-provider-setup/$CCSDKFEATUREVERSION/sdnr-dmt.jar " INITCMD+="$SDNRDBCOMMAND" echo "Execute: $INITCMD" - $INITCMD + n=0 + until [ $n -ge 5 ] ; do + $INITCMD && break + n=$[$n+1] + sleep 15 + done return $? } function install_sdnrwt_features() { # Repository setup provided via sdnc dockerfile if $SDNRWT; then + #Clean up <----------------- + #Uses wrong version + echo "Remove sdnr-northbound-all and add BGP" + replaceFeatureBoot "sdnr-northbound-all" + #Add missing org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329 + #addRepository "mvn:org.opendaylight.bgpcep/odl-bgpcep-bgp-dependencies/0.11.1/xml/features" + #replaceFeatureBoot "odl-daexim-all" "odl-daexim-all, odl-bgpcep-bgp-dependencies" + + # remove old existing + replaceRepository "mvn:org.onap.ccsdk.features.sdnr.wt\/sdnr-wt-feature-aggregator\/[^\/]*\/xml\/features" + replaceRepository "mvn:org.onap.ccsdk.features.sdnr.wt\/sdnr-wt-feature-aggregator-devicemanager\/[^\/]*\/xml\/features" + # Add devicemanagers + addRepository $SDNR_BASE_REPO + addRepository $SDNRDM_BASE_REPO + addRepository $SDNRDM_ONF_REPO + addRepository $SDNRDM_ORAN_REPO + addRepository $SDNRDM_GRAN_REPO + + if $SDNRONLY; then + cleanupFeatureBoot + addToFeatureBoot ccsdk-aafshiro + fi if $SDNRDM; then addToFeatureBoot "$SDNRDM_BOOTFEATURES" else @@ -113,6 +211,7 @@ function install_sdnrwt_features() { fi } + function install_sdnr_northbound_features() { # Repository setup provided via sdnc dockerfile addToFeatureBoot "$SDNR_NORTHBOUND_BOOTFEATURES" @@ -181,12 +280,37 @@ function enable_odl_cluster(){ # ----------------------- # Main script starts here +if $JDEBUG ; then + echo "Activate remote debugging" + #JSTADTPOLICYFILE="$ODL_HOME/etc/tools.policy" + #echo -e "grant codebase \"file:${JAVA_HOME}/lib/tools.jar\" {\n permission java.security.AllPermission;\n };" > $JSTADTPOLICYFILE + #sleep 1 + #$JAVA_HOME/bin/jstatd -p 1089 -J-Djava.security.policy=$JSTADTPOLICYFILE & + EXTRA_JAVA_OPTS+=" -Dcom.sun.management.jmxremote.port=1090" + EXTRA_JAVA_OPTS+=" -Dcom.sun.management.jmxremote.rmi.port=1090" + EXTRA_JAVA_OPTS+=" -Djava.rmi.server.hostname=$HOSTNAME" + EXTRA_JAVA_OPTS+=" -Dcom.sun.management.jmxremote.local.only=false" + EXTRA_JAVA_OPTS+=" -Dcom.sun.management.jmxremote.ssl=false" + EXTRA_JAVA_OPTS+=" -Dcom.sun.management.jmxremote.authenticate=false" + export EXTRA_JAVA_OPTS +fi + +echo "Image path=${IMAGEPATH}" +echo "Image names=${IMAGENAMES}" +echo "Hostname=${HOSTNAME}" echo "Settings:" +echo " USER=$(whoami)" +echo " SDNC_BIN=$SDNC_BIN" +echo " SDNC_HOME=$SDNC_HOME" +echo " ODL_CERT_DIR=$ODL_CERT_DIR" +echo " CCSDKFEATUREVERSION=$CCSDKFEATUREVERSION" +echo " OVERRIDE_FEATURES_BOOT=$OVERRIDE_FEATURES_BOOT" echo " ENABLE_ODL_CLUSTER=$ENABLE_ODL_CLUSTER" +echo " ODL_REMOVEIDMDB=$ODL_REMOVEIDMDB" echo " SDNC_REPLICAS=$SDNC_REPLICAS" -echo " CCSDKFEATUREVERSION=$CCSDKFEATUREVERSION" echo " SDNRWT=$SDNRWT" echo " SDNRDM=$SDNRDM" +echo " SDNRONLY=$SDNRONLY" echo " SDNRINIT=$SDNRINIT" echo " SDNRDBURL=$SDNRDBURL" echo " SDNRDBUSERNAME=$SDNRDBUSERNAME" @@ -196,7 +320,8 @@ echo " IS_PRIMARY_CLUSTER=$IS_PRIMARY_CLUSTER" echo " MY_ODL_CLUSTER=$MY_ODL_CLUSTER" echo " PEER_ODL_CLUSTER=$PEER_ODL_CLUSTER" echo " AAF_ENABLED=$SDNC_AAF_ENABLED" - +echo " JDEBUG=$JDEBUG" +echo " EXTRA_JAVA_OPTS=$EXTRA_JAVA_OPTS" if $SDNC_AAF_ENABLED; then export SDNC_STORE_DIR=/opt/app/osaaf/local @@ -219,13 +344,19 @@ if $SDNRINIT ; then initialize_sdnr init_result=$? echo "Result of init script: $init_result" - exit $init_result + if $SDNRWT ; then + echo "Proceed to initialize sdnr" + else + exit $init_result + fi fi if [ ! -f ${SDNC_HOME}/.installed ] then echo "Installing SDN-C keyStore" /bin/bash ${SDNC_HOME}/bin/addSdncKeyStore.sh + echo "Installing A1-adapter trustStore" + /bin/bash ${SDNC_HOME}/bin/addA1TrustStore.sh if $ENABLE_ODL_CLUSTER ; then enable_odl_cluster ; fi @@ -236,9 +367,24 @@ then echo "Installed at `date`" > ${SDNC_HOME}/.installed fi -if [ -d /opt/opendaylight/current/certs ] ; then - cp /opt/opendaylight/current/certs/* /tmp +if [ -n "$OVERRIDE_FEATURES_BOOT" ] ; then + echo "Override features boot: $OVERRIDE_FEATURES_BOOT" + sed -i "/$FEATURESBOOTMARKER/c\featuresBoot = $OVERRIDE_FEATURES_BOOT" $ODL_FEATURES_BOOT_FILE +fi + +# Odl configuration done +ODL_REPOSITORIES_BOOT=$(sed -n "/$REPOSITORIESBOOTMARKER/p" $ODL_FEATURES_BOOT_FILE) +ODL_FEATURES_BOOT=$(sed -n "/$FEATURESBOOTMARKER/p" $ODL_FEATURES_BOOT_FILE) +export ODL_FEATURES_BOOT + +if [ -z "$ODL_CERT_DIR" ] ; then + echo "No certs provided. Skip installation." +else + echo "Start background cert installer" + nohup python3 ${SDNC_BIN}/installCerts.oom.py & fi -nohup python ${SDNC_BIN}/installCerts.py & +echo "Startup opendaylight" +echo $ODL_REPOSITORIES_BOOT +echo $ODL_FEATURES_BOOT exec ${ODL_HOME}/bin/karaf server