Merge "Add a configurable truststore for A1 adapter"
authorHerbert Eiselt <herbert.eiselt@highstreet-technologies.com>
Fri, 28 Aug 2020 13:42:47 +0000 (13:42 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 28 Aug 2020 13:42:47 +0000 (13:42 +0000)
Former-commit-id: 6a9e13ac968d3210919c18714cd646621ac089ed

1  2 
installation/sdnc/src/main/scripts/startODL.oom.sh
installation/sdnc/src/main/scripts/startODL.sh

@@@ -28,9 -28,6 +28,9 @@@
  
  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}
  
@@@ -46,7 -43,6 +46,7 @@@ f
  
  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}
@@@ -69,7 -65,6 +69,7 @@@ SDNRWT=${SDNRWT:-false
  SDNRWT_BOOTFEATURES=${SDNRWT_BOOTFEATURES:-sdnr-wt-feature-aggregator}
  SDNRDM=${SDNRDM:-false}
  # 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}
@@@ -88,8 -83,6 +88,8 @@@ SDNRDBCOMMAND=${SDNRDBCOMMAND:--c init 
  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
@@@ -115,19 -108,6 +115,19 @@@ function addRepository() 
      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
@@@ -139,28 -119,22 +139,28 @@@ function addToFeatureBoot() 
      addRepository $2
    fi
    echo "Add boot feature: $1"
 -  sed -i "\|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_FEATURES_BOOT_FILE
 -  echo "Replace boot feature $1 with: $2"
 -  sed -i "/featuresBoot/ s/$1/$2/g" $CFG
 +  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 "/featuresBoot/ s/,ccsdk-sli-core-all.*$//g" $ODL_FEATURES_BOOT_FILE
 +  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() {
  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
  
      if $SDNRONLY; then
        cleanupFeatureBoot
 +      addToFeatureBoot ccsdk-aafshiro
      fi
      if $SDNRDM; then
        addToFeatureBoot "$SDNRDM_BOOTFEATURES"
@@@ -280,31 -240,14 +280,31 @@@ 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"
@@@ -320,8 -263,6 +320,8 @@@ echo "  IS_PRIMARY_CLUSTER=$IS_PRIMARY_
  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
@@@ -355,6 -296,8 +355,8 @@@ 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
  
      echo "Installed at `date`" > ${SDNC_HOME}/.installed
  fi
  
 +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_FEATURES_BOOT=$(sed -n "/featuresBoot =/p" $ODL_FEATURES_BOOT_FILE)
 +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 python ${SDNC_BIN}/installCerts.oom.py &
 +  nohup python3 ${SDNC_BIN}/installCerts.oom.py &
  fi
  
  echo "Startup opendaylight"
 +echo $ODL_REPOSITORIES_BOOT
  echo $ODL_FEATURES_BOOT
  exec ${ODL_HOME}/bin/karaf server
@@@ -152,6 -152,8 +152,8 @@@ the
        ${SDNC_HOME}/bin/installSdncDb.sh
        echo "Installing SDN-C keyStore"
        ${SDNC_HOME}/bin/addSdncKeyStore.sh
+       echo "Installing A1-adapter trustStore"
+       ${SDNC_HOME}/bin/addA1TrustStore.sh
  
        #${CCSDK_HOME}/bin/installOdlHostKey.sh
  
@@@ -176,6 -178,6 +178,6 @@@ cp /var/custom-certs/* /tm
  # Create ODL data log directory (it nornally is created after karaf
  # is started, but needs to exist before installCerts.py runs)
  mkdir -p /opt/opendaylight/data/log
 -nohup python ${SDNC_BIN}/installCerts.py &
 +nohup python3 ${SDNC_BIN}/installCerts.py &
  
  exec ${ODL_HOME}/bin/karaf server