6 SCR_DIR=`readlink -f $(dirname $0)`
7 PROJECT_ROOT=$(readlink -f $SCR_DIR/../../..)
8 SETUPS_DIR=$PROJECT_ROOT/source/diameter/stack/setups
9 MSGDTD=$PROJECT_ROOT/include/anna/diameter/codec/message.dtd
10 DCTDTD=$PROJECT_ROOT/include/anna/diameter/stack/dictionary.dtd
11 SERVICES=$SCR_DIR/resources/services_examples
12 SCRIPTS=$SCR_DIR/resources/scripts
13 STACK_EXAMPLES=$SCR_DIR/resources/stack_examples
14 SRVDTD=$SERVICES/services.dtd
26 echo "Usage: $0 [deployment_type: a|b|f|s] [deployment_path]"
28 echo " deployment_type:"
31 echo " f=function test client"
32 echo " s=system test client"
33 echo " deployment_path:"
34 echo " non-existent path directory."
37 echo " $0 b $HOME/ADML-basicServer"
38 echo " $0 b $HOME/ADML-MMSbalancer"
39 echo " $0 f $HOME/ADML-tester"
40 echo " $0 s $HOME/ADML-stress-client"
47 # Basic launcher 'run.sh' will be created at deployment configuration:
48 [ "$1" = "b" ] && return
51 [ "$1" = "a" ] && other="--httpServer \`grep -v ^# .httpServer\`"
52 [ "$1" = "f" ] && ln -s ADML $EXE
53 [ "$1" = "s" ] && { other="--disableLogs"; ln -s ADML $EXE ; }
55 echo "Creating 'run.sh' script ..."
61 STARTED=\`pgrep \$EXE$ 2>/dev/null\`
62 [ \$? -eq 0 ] && { echo "Already started!"; echo "\$STARTED" ; exit 1 ; }
65 rm -f counters/* test-reports/*
67 export LD_LIBRARY_PATH=\$PWD/dynlibs
68 ./\$EXE --services services.xml --cntDir counters --tmDir test-reports $other &
80 echo "---------------------------------------"
81 echo "Anna Diameter Launcher (ADML) deployment"
82 echo "---------------------------------------"
83 [ "$1" = "--help" -o "$1" = "-h" ] && usage
84 echo " (--help or -h for more info)"
86 echo "Basic checkings ..."
88 # Get variant and main executables:
89 [ -d $PROJECT_ROOT/build/Release ] && VARIANT=Release
90 [ -d $PROJECT_ROOT/build/Debug ] && VARIANT=Debug
91 [ -z "$VARIANT" ] && _exit "Cannot locate neither 'Release' nor 'Debug' variant !"
92 echo "Variant: $VARIANT"
93 BIN_DIR=$PROJECT_ROOT/build/$VARIANT/bin
94 LIB_DIR=$PROJECT_ROOT/build/$VARIANT/lib
97 ADML_EXEC=$BIN_DIR/anna_diameter_launcher
98 STACKMGMT_EXEC=$BIN_DIR/anna_diameter_stackManagement
100 [ ! -d $SETUPS_DIR ] && _exit "Diameter stacks not found ($SETUPS_DIR)."
106 echo "Deploy one of these versions:"
108 echo " (a)dvanced version: includes burst management script and templates for different scenarios. Automatic configuration during start."
109 echo " (b)asic version: 4 types of launcher (client, server, balancer, dummy), lightly configured and managed through SIGURS2 method."
110 echo " (f)unction test client: special client with regexp scheduler script based on splitted traffic logs. Requires a server to perform the tests."
111 echo " (s)ystem test client: special client for stress testing. Requires a server/s to perform the tests."
113 echo "Input option [b]:"
115 [ "$option" = "" ] && option=b
122 echo "Advanced deployment"
123 DEPLOYMENTS_DIR=deployments/advanced
124 DPATH_dflt=$HOME/ADML-advanced
128 echo "Basic deployment"
129 DEPLOYMENTS_DIR=deployments/basic
130 DPATH_dflt=$HOME/ADML-basic
135 DEPLOYMENTS_DIR=deployments/ft-client
136 DPATH_dflt=$HOME/ADML-ft-client
141 DEPLOYMENTS_DIR=deployments/st-client
142 DPATH_dflt=$HOME/ADML-st-client
146 _exit "Invalid deployment type '$option' !!"
153 echo "Input deployment path [$DPATH_dflt]:"
155 [ "$DPATH" = "" ] && DPATH=$DPATH_dflt
160 [ -d $DPATH ] && _exit "The installation path '$DPATH' must not exists."
161 EXE=`basename $DPATH`
163 echo "Copying to '$DPATH' ..."
166 mkdir -p $DPATH/counters
167 mkdir -p $DPATH/test-reports
170 cp -r $LIB_DIR/dynamic/launcher $DPATH/dynlibs
171 cp $LIB_DIR/libanna_testing_shared.so $DPATH/dynlibs
173 # Get stuff from leaf directories:
174 cd $LIB_DIR/dynamic/launcher
175 leafs=( $(find . -type d -links 2) )
178 cd $PROJECT_ROOT/dynamic/launcher
179 for dir in ${leafs[@]}
181 cp $dir/*.xml $DPATH/dynlibs/$dir 2>/dev/null
182 cp $dir/dynamic.suffix $DPATH/dynlibs/$dir 2>/dev/null
183 cp -r $dir/services $DPATH/dynlibs/$dir 2>/dev/null
187 # ADML dynamic libs selection script:
188 cp $SCR_DIR/resources/scripts/select_dynlib.sh $DPATH/dynlibs/select.sh
190 # Default dynamic library:
192 ln -s default/libanna_launcher_procedure_default_shared.so
196 [ "$option" = "b" ] && mkdir -p $DPATH/services
199 cp -rL $DEPLOYMENTS_DIR/* $DPATH
200 mkdir -p $DPATH/stack_examples/other
201 cp $STACK_EXAMPLES/* $DPATH/stack_examples/other
202 cp $SETUPS_DIR/*xml $DPATH/stack_examples
203 cp $SETUPS_DIR/*sh $DPATH/stack_examples
204 cp $SETUPS_DIR/readme.txt $DPATH/stack_examples
205 cp $MSGDTD $DPATH/DTDs
206 cp $DCTDTD $DPATH/DTDs
207 cp $SRVDTD $DPATH/DTDs
208 [ "$option" = "b" ] && cp $SERVICES/* $DPATH/services
209 cp $SCRIPTS/clone.sh $DPATH
210 cp $SCRIPTS/tinyTestcase.sh $DPATH
213 cp $ADML_EXEC $DPATH/ADML
214 [ ! -f $DPATH/stack_examples/stack-mgmt ] && cp $STACKMGMT_EXEC $DPATH/stack_examples/stack-mgmt
216 echo "Default stack dynamic generation ..."
218 createRunScript $option
219 stack_examples/makeAutonomous.sh commands_qosControl.xml stack_examples/stack-mgmt >/dev/null
220 ln -s stack_examples/autonomous.commands_qosControl.xml dictionary.xml
223 if [ "$option" = "s" ]
226 ln -s services_example services
227 mv run.sh .run-one.sh
229 mv operation.sh .operation-one.sh
230 mv operation_all.sh operation.sh
237 echo "(see README at '$DPATH')"