aboutsummaryrefslogtreecommitdiffstats
path: root/test/mocks/netconf-pnp-simulator/engine/entrypoint.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/mocks/netconf-pnp-simulator/engine/entrypoint.sh')
-rwxr-xr-xtest/mocks/netconf-pnp-simulator/engine/entrypoint.sh120
1 files changed, 7 insertions, 113 deletions
diff --git a/test/mocks/netconf-pnp-simulator/engine/entrypoint.sh b/test/mocks/netconf-pnp-simulator/engine/entrypoint.sh
index 6636080fb..378f33b3a 100755
--- a/test/mocks/netconf-pnp-simulator/engine/entrypoint.sh
+++ b/test/mocks/netconf-pnp-simulator/engine/entrypoint.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/ash
# shellcheck disable=SC2086
#-
@@ -20,120 +20,14 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
-set -o errexit
-set -o nounset
-set -o pipefail
-set -o xtrace
+set -eu
-export PATH=/opt/bin:/usr/local/bin:/usr/bin:/bin
+HERE=${0%/*}
+source $HERE/common.sh
-CONFIG=/config
-SSH_CONFIG=$CONFIG/ssh
-TLS_CONFIG=$CONFIG/tls
-MODELS_CONFIG=$CONFIG/modules
-KEY_PATH=/opt/etc/keystored/keys
-BASE_VIRTUALENVS=$HOME/.local/share/virtualenvs
+configure_ssh startup merge $TEMPLATES
+configure_tls startup merge $TEMPLATES
-find_file() {
- local dir=$1
- shift
- for prog in "$@"; do
- if [ -f $dir/$prog ]; then
- echo -n $dir/$prog
- break
- fi
- done
-}
-
-find_executable() {
- local dir=$1
- shift
- for prog in "$@"; do
- if [ -x $dir/$prog ]; then
- echo -n $dir/$prog
- break
- fi
- done
-}
-
-configure_ssh()
-{
- sysrepocfg --datastore=startup --format=xml ietf-system --import=$SSH_CONFIG/load_auth_pubkey.xml
-}
-
-configure_tls()
-{
- cp $TLS_CONFIG/server_key.pem $KEY_PATH
- cp $TLS_CONFIG/server_key.pem.pub $KEY_PATH
- sysrepocfg --datastore=startup --format=xml ietf-keystore --merge=$TLS_CONFIG/load_server_certs.xml
- sysrepocfg --datastore=startup --format=xml ietf-netconf-server --merge=$TLS_CONFIG/tls_listen.xml
-}
-
-configure_modules()
-{
- for dir in "$MODELS_CONFIG"/*; do
- if [ -d $dir ]; then
- model=${dir##*/}
- install_and_configure_yang_model $dir $model
- prog=$(find_executable $dir subscriber.py)
- if [ -n "$prog" ]; then
- configure_subscriber_execution $dir $model $prog
- fi
- fi
- done
-}
-
-install_and_configure_yang_model()
-{
- local dir=$1
- local model=$2
-
- yang=$(find_file $dir $model.yang model.yang)
- sysrepoctl --install --yang=$yang
- data=$(find_file $dir startup.json startup.xml data.json data.xml)
- if [ -n "$data" ]; then
- sysrepocfg --datastore=startup --import=$data $model
- fi
-}
-
-configure_subscriber_execution()
-{
- local dir=$1
- local model=$2
- local prog=$3
-
- PROG_PATH=$PATH
- if [ -r "$dir/requirements.txt" ]; then
- env_dir=$(create_python_venv $dir)
- PROG_PATH=$env_dir/bin:$PROG_PATH
- fi
- cat > /etc/supervisord.d/$model.conf <<EOF
-[program:subs-$model]
-command=$prog $model
-redirect_stderr=true
-autorestart=true
-environment=PATH=$PROG_PATH,PYTHONUNBUFFERED="1"
-EOF
-}
-
-create_python_venv()
-{
- local dir=$1
-
- mkdir -p $BASE_VIRTUALENVS
- env_dir=$BASE_VIRTUALENVS/$model
- (
- python3 -m venv --system-site-packages $env_dir
- cd $env_dir
- . ./bin/activate
- pip install --upgrade pip
- pip install -r "$dir"/requirements.txt
- ) 1>&2
- echo $env_dir
-}
-
-configure_ssh
-configure_tls
-configure_modules
+$HERE/configure-modules.sh
exec /usr/local/bin/supervisord -c /etc/supervisord.conf