6 SETUPS_DIR=../../../source/diameter/stack/setups
7 MSGDTD=../../../include/anna/diameter/codec/message.dtd
8 DCTDTD=../../../include/anna/diameter/stack/dictionary.dtd
9 SERVICES=./resources/services_examples
10 STACK_EXAMPLES=./resources/stack_examples
11 SRVDTD=$SERVICES/services.dtd
13 # Executables in priority order:
14 EXEC_installed=/opt/bin/anna/example_diameter_launcher
15 EXECS=( $EXEC_installed ./release/example_diameter_launcher ./debug/example_diameter_launcher )
18 STACKMGMT_EXEC_installed=/opt/bin/anna/example_diameter_stackManagement
19 STACKMGMT_EXECS=( $STACKMGMT_EXEC_installed ../stackManagement/release/example_diameter_stackManagement ../stackManagement/debug/example_diameter_stackManagement )
22 #DYNLIB_installed=/usr/local/lib/libanna_dynamicLauncherProcedure.so
23 #DYNLIBS=( $DYNLIB_installed ../../../dynamic/launcher/default/release/libanna_dynamicLauncherProcedure.so ../../../dynamic/launcher/default/debug/libanna_dynamicLauncherProcedure.so )
36 echo "Usage: $0 [deployment_type: a|b|f|s] [deployment_path]"
38 echo " deployment_type:"
41 echo " f=function test client"
42 echo " s=system test client"
43 echo " deployment_path:"
44 echo " non-existent path directory."
47 echo " $0 b $HOME/ADML-basicServer"
48 echo " $0 b $HOME/ADML-MMSbalancer"
49 echo " $0 f $HOME/ADML-tester"
50 echo " $0 s $HOME/ADML-stress-client"
57 # Basic launcher 'run.sh' will be created at deployment configuration:
58 [ "$1" = "b" ] && return
61 [ "$1" = "a" ] && other="--httpServer \`grep -v ^# .httpServer\`"
62 [ "$1" = "f" ] && ln -s ADML-launcher $EXE
63 [ "$1" = "s" ] && { other="--disableLogs"; ln -s ADML-launcher $EXE ; }
65 echo "Creating 'run.sh' script ..."
71 STARTED=\`pgrep \$EXE$ 2>/dev/null\`
72 [ \$? -eq 0 ] && { echo "Already started!"; echo "\$STARTED" ; exit 1 ; }
75 rm -f counters/* test-reports/*
77 export LD_LIBRARY_PATH=\$PWD/dynlibs
78 ./\$EXE --services services.xml --cntDir counters --tmDir test-reports $other &
90 echo "---------------------------------------"
91 echo "Anna Diameter Launcher (ADML) deployment"
92 echo "---------------------------------------"
93 [ "$1" = "--help" -o "$1" = "-h" ] && usage
94 echo " (--help or -h for more info)"
96 echo "Basic checkings ..."
98 # Launcher executable:
100 for EXEC in ${EXECS[@]}; do
101 echo -n "Looking executable at '$EXEC' ... "
102 [ -x $EXEC ] && { available=yes ; echo "available !" ; break ; }
105 [ -z "$available" ] && _exit "Anna Diameter Launcher (ADML) is not installed neither linked. See README.md (Install section)."
107 # Dynamic library variant:
109 [ -f ./release/example_diameter_launcher ] && dynlib_variant=release
110 [ -f ./debug/example_diameter_launcher ] && dynlib_variant=debug
111 [ -z "$dynlib_variant" ] && _exit "Unknown dynamic library variant"
113 # Dictionary creation:
115 for STACKMGMT_EXEC in ${STACKMGMT_EXECS[@]}; do
116 echo -n "Looking stack management executable at '$STACKMGMT_EXEC' ... "
117 [ -x $STACKMGMT_EXEC ] && { available=yes ; echo "available !" ; break ; }
120 [ -z "$available" ] && _exit "Anna Diameter Stack Management Tool is not installed neither linked. See README.md (Install section)."
121 STACKMGMT_EXEC=`readlink -f $STACKMGMT_EXEC`
125 #for DYNLIB in ${DYNLIBS[@]}; do
126 # echo -n "Looking dynamic library at '$DYNLIB' ... "
127 # [ -x $DYNLIB ] && { available=yes ; echo "available !" ; break ; }
130 #[ -z "$available" ] && _exit "Anna Diameter Launcher Dynamic Procedure Library (ADML) is not installed neither linked. See README.md (Install section)."
132 [ ! -d $SETUPS_DIR ] && _exit "Diameter stacks not found ($SETUPS_DIR)."
138 echo "Deploy one of these versions:"
140 echo " (a)dvanced version: includes burst management script and templates for different scenarios. Automatic configuration during start."
141 echo " (b)asic version: 4 types of launcher (client, server, balancer, dummy), lightly configured and managed through SIGURS2 method."
142 echo " (f)unction test client: special client with regexp scheduler script based on splitted traffic logs. Requires a server to perform the tests."
143 echo " (s)ystem test client: special client for stress testing. Requires a server/s to perform the tests."
145 echo "Input option [b]:"
147 [ "$option" = "" ] && option=b
154 echo "Advanced deployment"
155 DEPLOYMENTS_DIR=deployments/advanced
156 DPATH_dflt=$HOME/ADML-advanced
160 echo "Basic deployment"
161 DEPLOYMENTS_DIR=deployments/basic
162 DPATH_dflt=$HOME/ADML-basic
167 DEPLOYMENTS_DIR=deployments/ft-client
168 DPATH_dflt=$HOME/ADML-ft-client
173 DEPLOYMENTS_DIR=deployments/st-client
174 DPATH_dflt=$HOME/ADML-st-client
178 _exit "Invalid deployment type '$option' !!"
185 echo "Input deployment path [$DPATH_dflt]:"
187 [ "$DPATH" = "" ] && DPATH=$DPATH_dflt
192 [ -d $DPATH ] && _exit "The installation path '$DPATH' must not exists."
193 EXE=`basename $DPATH`
195 echo "Copying to '$DPATH' ..."
197 mkdir -p $DPATH/stacks
199 mkdir -p $DPATH/counters
200 mkdir -p $DPATH/test-reports
203 mkdir -p $DPATH/dynlibs
204 cd ../../../dynamic/launcher
205 DYNLIBS=( $(find . -name "*.so") )
206 for dl in ${DYNLIBS[@]}
208 dir=$(dirname $dl | xargs dirname)
209 mkdir -p $DPATH/dynlibs/$dir
210 cp $dir/$dynlib_variant/*.so $DPATH/dynlibs/$dir
211 cp $dir/*.xml $DPATH/dynlibs/$dir 2>/dev/null
212 cp $dir/dynamic.suffix $DPATH/dynlibs/$dir 2>/dev/null
215 cp ./resources/scripts/select_dynlib.sh $DPATH/dynlibs/select.sh
217 ln -s default/libanna_dynamicLauncherProcedure.so
220 [ "$option" = "b" ] && mkdir -p $DPATH/services
223 if [ "$EXEC" = "$EXEC_installed" ]
225 ln -s $EXEC_installed $DPATH/ADML-launcher
227 cp $EXEC $DPATH/ADML-launcher
230 # Stack management tool:
231 if [ "$STACKMGMT_EXEC" = "$STACKMGMT_EXEC_installed" ]
233 ln -s $STACKMGMT_EXEC_installed $DPATH/stacks/stack-mgmt
235 # Copy binary just in case:
236 [ ! -f $DPATH/stacks/stack-mgmt ] && cp $STACKMGMT_EXEC $DPATH/stacks/stack-mgmt
238 cp -rL $DEPLOYMENTS_DIR/* $DPATH
239 cp $SETUPS_DIR/*xml $DPATH/stacks
240 cp $SETUPS_DIR/*sh $DPATH/stacks
241 cp $SETUPS_DIR/readme.txt $DPATH/stacks
242 mkdir $DPATH/stacks/other_examples
243 cp $STACK_EXAMPLES/* $DPATH/stacks/other_examples
244 cp $MSGDTD $DPATH/DTDs
245 cp $DCTDTD $DPATH/DTDs
246 cp $SRVDTD $DPATH/DTDs
247 [ "$option" = "b" ] && cp $SERVICES/* $DPATH/services
251 createRunScript $option
252 stacks/makeAutonomous.sh commands_qosControl.xml stacks/stack-mgmt >/dev/null
253 ln -s stacks/autonomous.commands_qosControl.xml dictionary.xml
256 if [ "$option" = "s" ]
259 ln -s services_example services
260 mv run.sh .run-one.sh
262 mv operation.sh .operation-one.sh
263 mv operation_all.sh operation.sh
270 echo "Go to '$DPATH' and see README file"