X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdiameter%2Flauncher%2FDEPLOY.sh;h=7963f07d36c06f1c24c79b6015103f0bc4121c38;hb=74730c7d0e4f713c932d6b06a07644d1c3c6c6c1;hp=d593fdc6d5faa8ed7c4251ce19e62a8c7b168839;hpb=431d322261ecfd6ef354abb392edbf8987e2407a;p=anna.git diff --git a/example/diameter/launcher/DEPLOY.sh b/example/diameter/launcher/DEPLOY.sh index d593fdc..7963f07 100755 --- a/example/diameter/launcher/DEPLOY.sh +++ b/example/diameter/launcher/DEPLOY.sh @@ -7,11 +7,17 @@ SETUPS_DIR=../../../source/diameter/stack/setups MSGDTD=../../../include/anna/diameter/codec/message.dtd DCTDTD=../../../include/anna/diameter/stack/dictionary.dtd BASE_PROT=commands_baseProtocol.xml +SERVICES=./resources/services_examples +SRVDTD=$SERVICES/services.dtd # Executables in priority order: EXEC_installed=/opt/bin/anna/example_diameter_launcher EXECS=( $EXEC_installed ./release/example_diameter_launcher ./debug/example_diameter_launcher ) +# Stack management +STACKMGMT_EXEC_installed=/opt/bin/anna/example_diameter_stackManagement +STACKMGMT_EXECS=( $STACKMGMT_EXEC_installed ../stackManagement/release/example_diameter_stackManagement ../stackManagement/debug/example_diameter_stackManagement ) + ############# # FUNCTIONS # ############# @@ -33,20 +39,23 @@ usage () { echo " non-existent path directory." echo echo " For example:" - echo " $0 b $HOME/ADL/basicServer" - echo " $0 b $HOME/ADL/MMSbalancer" - echo " $0 f $HOME/ADL/tester" + echo " $0 b $HOME/ADML/basicServer" + echo " $0 b $HOME/ADML/MMSbalancer" + echo " $0 f $HOME/ADML/tester" echo exit 0 } # $1: deployment type createRunScript () { - # Basic launcher 'run.sh' will be created at deployment configuration: [ "$1" = "b" ] && return - [ "$1" = "a" ] && exe=ADL-launcher - [ "$1" = "f" ] && { exe=ADL-ftclient ; ln -s ADL-launcher $exe ; } + + local other= + [ "$1" = "a" ] && { exe=ADML-launcher ; other="--httpServer \`grep -v ^# .httpServer\`"; } + [ "$1" = "f" ] && { exe=ADML-ftclient ; ln -s ADML-launcher $exe ; } + + echo "Creating 'run.sh' script ..." cat << EOF > run.sh #!/bin/bash @@ -58,35 +67,47 @@ STARTED=\`pgrep \$EXE 2>/dev/null\` 0> launcher.trace rm -f counters/* # Execution line: -./\$EXE --cntDir counters $(for i in `cat args.txt | grep -v "^#"`; do echo -n "$i "; done)& +./\$EXE --services services.xml --cntDir counters $other & echo \$! > .pid EOF chmod a+x run.sh - rm args.txt } createDictionaryPaths () { + echo "Creating dictionaries ..." + for i in stacks/*commands*xml do stacks/dependence.sh $i >/dev/null stack=`basename $i` if test "$stack" != "$BASE_PROT" then - > .dictionary__${stack} + > .dictionary-${stack} for j in `cat ${i}.dep` do - echo -n "${j}," >> .dictionary__${stack} + echo -n "${j} " >> .dictionary-${stack} done - echo "stacks/$BASE_PROT,stacks/${stack}" >> .dictionary__${stack} + echo "stacks/$BASE_PROT stacks/${stack}" >> .dictionary-${stack} fi done - # Default: - ln -s .dictionary__commands_qosControl.xml .dictionary + # Create autonomous dictionaries: + mkdir stacks/autonomous + for i in `ls .dictionary-*` + do + name=$(echo $i | cut -d\- -f2) + $STACKMGMT_EXEC `cat $i` >/dev/null + mv result.xml stacks/autonomous/$name + done - # Remove deps: + # Cleanup: rm -f stacks/*.dep + rm -f .dictionary-* + rm -f example_diameter_stackManagement.trace* + + # Default: + ln -s stacks/autonomous/commands_qosControl.xml dictionary.xml } ############# @@ -95,19 +116,29 @@ createDictionaryPaths () { cd `dirname $0` echo echo "---------------------------------------" -echo "Anna Diameter Launcher (ADL) deployment" +echo "Anna Diameter Launcher (ADML) deployment" echo "---------------------------------------" [ "$1" = "--help" -o "$1" = "-h" ] && usage echo " (--help or -h for more info)" echo echo "Basic checkings ..." +# Launcher executable: available= for EXEC in ${EXECS[@]}; do echo -n "Looking executable at '$EXEC' ... " [ -x $EXEC ] && { available=yes ; echo "available !" ; break ; } echo "not found" done -[ -z "$available" ] && _exit "Anna Diameter Launcher (ADL) is not installed neither linked. See README.md (Install section)." +[ -z "$available" ] && _exit "Anna Diameter Launcher (ADML) is not installed neither linked. See README.md (Install section)." +# Dictionary creation: +available= +for STACKMGMT_EXEC in ${STACKMGMT_EXECS[@]}; do + echo -n "Looking stack management executable at '$STACKMGMT_EXEC' ... " + [ -x $STACKMGMT_EXEC ] && { available=yes ; echo "available !" ; break ; } + echo "not found" +done +[ -z "$available" ] && _exit "Anna Diameter Stack Management Tool is not installed neither linked. See README.md (Install section)." + [ ! -d $SETUPS_DIR ] && _exit "Diameter stacks not found ($SETUPS_DIR)." echo @@ -131,19 +162,19 @@ case $option in a) echo "Advanced deployment" DEPLOYMENTS_DIR=deployments/advanced - DPATH_dflt=$HOME/ADL/advanced + DPATH_dflt=$HOME/ADML/advanced ;; b) echo "Basic deployment" DEPLOYMENTS_DIR=deployments/basic - DPATH_dflt=$HOME/ADL/basic + DPATH_dflt=$HOME/ADML/basic ;; f) echo "FT deployment" DEPLOYMENTS_DIR=deployments/ft-client - DPATH_dflt=$HOME/ADL/ft-client + DPATH_dflt=$HOME/ADML/ft-client ;; *) @@ -168,20 +199,21 @@ mkdir -p $DPATH mkdir -p $DPATH/stacks mkdir -p $DPATH/DTDs mkdir -p $DPATH/counters -mkdir -p $DPATH/resources +[ "option" = "b" ] && mkdir -p $DPATH/services if [ "$EXEC" = "$EXEC_installed" ] then - ln -s $EXEC_installed $DPATH/ADL-launcher + ln -s $EXEC_installed $DPATH/ADML-launcher else - cp $EXEC $DPATH/ADL-launcher + cp $EXEC $DPATH/ADML-launcher fi cp -rL $DEPLOYMENTS_DIR/* $DPATH -cp resources/* $DPATH/resources cp $SETUPS_DIR/*xml $DPATH/stacks cp $SETUPS_DIR/*sh $DPATH/stacks cp $SETUPS_DIR/readme.txt $DPATH/stacks cp $MSGDTD $DPATH/DTDs cp $DCTDTD $DPATH/DTDs +cp $SRVDTD $DPATH/DTDs +[ "option" = "b" ] && cp $SERVICES/* $DPATH/services echo "Preparing ..." cd $DPATH