Skip to content
This repository was archived by the owner on Aug 16, 2021. It is now read-only.

Commit 5c47798

Browse files
dmiusDmitry
authored andcommitted
-v replaced on -z, save log
1 parent c9d35d9 commit 5c47798

File tree

1 file changed

+49
-35
lines changed

1 file changed

+49
-35
lines changed

nancy_run.sh

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ then
9696
fi
9797

9898
function checkPath() {
99-
if [ ! -v $1 ]
99+
if [ -z $1 ]
100100
then
101101
return 1
102102
fi
@@ -108,6 +108,7 @@ function checkPath() {
108108
if [[ $path =~ "file:///" ]]
109109
then
110110
path=${path/file:\/\//}
111+
echo "CHECK $path"
111112
if [ -f $path ]
112113
then
113114
eval "$1=\"$path\"" # update original variable
@@ -138,43 +139,43 @@ function checkParams() {
138139
exit 1
139140
fi
140141
if [ "$RUN_ON" = "aws" ]; then
141-
if [ ! -v AWS_KEY_PAIR ] || [ ! -v AWS_KEY_PATH ]
142+
if [ -z ${AWS_KEY_PAIR+x} ] || [ -z ${AWS_KEY_PATH+x} ]
142143
then
143144
>&2 echo "ERROR: AWS keys not given."
144145
exit 1
145146
fi
146147

147-
if [ ! -v AWS_EC2_TYPE ]
148+
if [ -z ${AWS_EC2_TYPE+x} ]
148149
then
149150
>&2 echo "ERROR: AWS EC2 Instance type not given."
150151
exit 1
151152
fi
152153
fi
153154

154-
if [ ! -v PG_VERSION ]
155+
if [ -z ${PG_VERSION+x} ]
155156
then
156157
>&2 echo "WARNING: Postgres version not given. Will use 9.6."
157158
PG_VERSION="9.6"
158159
fi
159160

160-
if [ ! -v TMP_PATH ]
161+
if [ -z ${TMP_PATH+x} ]
161162
then
162163
TMP_PATH="/var/tmp/nancy_run"
163164
>&2 echo "WARNING: Temp path not given. Will use $TMP_PATH"
164165
fi
165166
#make tmp path if not found
166167
[ ! -d $TMP_PATH ] && mkdir $TMP_PATH
167168

168-
if [ ! -v S3_CFG_PATH ]
169+
if [ -z ${S3_CFG_PATH+x} ]
169170
then
170171
>&2 echo "WARNING: S3 config file path not given. Will use ~/.s3cfg"
171172
S3_CFG_PATH=$(echo ~)"/.s3cfg"
172173
fi
173174

174175
workloads_count=0
175-
[ -v WORKLOAD_BASIS_PATH ] && let workloads_count=$workloads_count+1
176-
[ -v WORKLOAD_FULL_PATH ] && let workloads_count=$workloads_count+1
177-
[ -v WORKLOAD_CUSTOM_SQL ] && let workloads_count=$workloads_count+1
176+
[ ! -z ${WORKLOAD_BASIS_PATH+x} ] && let workloads_count=$workloads_count+1
177+
[ ! -z ${WORKLOAD_FULL_PATH+x} ] && let workloads_count=$workloads_count+1
178+
[ ! -z ${WORKLOAD_CUSTOM_SQL+x} ] && let workloads_count=$workloads_count+1
178179

179180
# --workload-full-path or --workload-basis-path or --workload-custom-sql
180181
if [ "$workloads_count" -eq "0" ]
@@ -190,45 +191,52 @@ function checkParams() {
190191
fi
191192

192193
#--db-prepared-snapshot or --db-dump-path
193-
if ([ ! -v DB_PREPARED_SNAPSHOT ] && [ ! -v DB_DUMP_PATH ])
194+
if ([ -z ${DB_PREPARED_SNAPSHOT+x} ] && [ -z ${DB_DUMP_PATH+x} ])
194195
then
195196
>&2 echo "ERROR: Snapshot or dump not given."
196197
exit 1;
197198
fi
198199

199-
if ([ -v DB_PREPARED_SNAPSHOT ] && [ -v DB_DUMP_PATH ])
200+
if ([ ! -z ${DB_PREPARED_SNAPSHOT+x} ] && [ ! -z ${DB_DUMP_PATH+x} ])
200201
then
201202
>&2 echo "ERROR: Both snapshot and dump sources given."
202203
exit 1
203204
fi
204205

205-
[ -v DB_DUMP_PATH ] && ! checkPath DB_DUMP_PATH && >&2 echo "ERROR: file $DB_DUMP_PATH given by db_dump_path not found" && exit 1
206+
if [ ! -z ${DB_DUMP_PATH+x} ]
207+
then
208+
echo "DB_DUMP_PATH found"
209+
else
210+
echo "DB_DUMP_PATH NOT found"
211+
fi
212+
213+
[ ! -z ${DB_DUMP_PATH+x} ] && ! checkPath DB_DUMP_PATH && >&2 echo "ERROR: file $DB_DUMP_PATH given by db_dump_path not found" && exit 1
206214

207-
if (([ ! -v TARGET_DDL_UNDO ] && [ -v TARGET_DDL_DO ]) || ([ ! -v TARGET_DDL_DO ] && [ -v TARGET_DDL_UNDO ]))
215+
if (([ -z ${TARGET_DDL_UNDO+x} ] && [ ! -z ${TARGET_DDL_DO+x} ]) || ([ -z ${TARGET_DDL_DO+x} ] && [ ! -z ${TARGET_DDL_UNDO+x} ]))
208216
then
209217
>&2 echo "ERROR: DDL code must have do and undo part."
210218
exit 1;
211219
fi
212220

213-
if [ ! -v ARTIFACTS_DESTINATION ]
221+
if [ -z ${ARTIFACTS_DESTINATION+x} ]
214222
then
215223
>&2 echo "WARNING: Artifacts destination not given. Will use ./"
216224
ARTIFACTS_DESTINATION="."
217225
fi
218226

219-
if [ ! -v ARTIFACTS_FILENAME ]
227+
if [ -z ${ARTIFACTS_FILENAME+x} ]
220228
then
221229
>&2 echo "WARNING: Artifacts destination not given. Will use $DOCKER_MACHINE"
222230
ARTIFACTS_FILENAME=$DOCKER_MACHINE
223231
fi
224232

225-
[ -v WORKLOAD_FULL_PATH ] && ! checkPath WORKLOAD_FULL_PATH && >&2 echo "ERROR: file $WORKLOAD_FULL_PATH given by workload_full_path not found" && exit 1
233+
[ ! -z ${WORKLOAD_FULL_PATH+x} ] && ! checkPath WORKLOAD_FULL_PATH && >&2 echo "ERROR: file $WORKLOAD_FULL_PATH given by workload_full_path not found" && exit 1
226234

227235
echo "WORKLOAD_FULL_PATH: $WORKLOAD_FULL_PATH"
228236

229-
[ -v WORKLOAD_BASIS_PATH ] && ! checkPath WORKLOAD_BASIS_PATH && >&2 echo "WARNING: file $WORKLOAD_BASIS_PATH given by workload_basis_path not found"
237+
[ ! -z ${WORKLOAD_BASIS_PATH+x} ] && ! checkPath WORKLOAD_BASIS_PATH && >&2 echo "WARNING: file $WORKLOAD_BASIS_PATH given by workload_basis_path not found"
230238

231-
if [ -v WORKLOAD_CUSTOM_SQL ]
239+
if [ ! -z ${WORKLOAD_CUSTOM_SQL+x} ]
232240
then
233241
checkPath WORKLOAD_CUSTOM_SQL
234242
if [ "$?" -ne "0" ]
@@ -241,7 +249,7 @@ function checkParams() {
241249
fi
242250
fi
243251

244-
if [ -v AFTER_DB_INIT_CODE ]
252+
if [ ! -z ${AFTER_DB_INIT_CODE+x} ]
245253
then
246254
checkPath AFTER_DB_INIT_CODE
247255
if [ "$?" -ne "0" ]
@@ -254,7 +262,7 @@ function checkParams() {
254262
fi
255263
fi
256264

257-
if [ -v TARGET_DDL_DO ]
265+
if [ ! -z ${TARGET_DDL_DO+x} ]
258266
then
259267
checkPath TARGET_DDL_DO
260268
if [ "$?" -ne "0" ]
@@ -267,7 +275,7 @@ function checkParams() {
267275
fi
268276
fi
269277

270-
if [ -v TARGET_DDL_UNDO ]
278+
if [ ! -z ${TARGET_DDL_UNDO} ]
271279
then
272280
checkPath TARGET_DDL_UNDO
273281
if [ "$?" -ne "0" ]
@@ -280,7 +288,7 @@ function checkParams() {
280288
fi
281289
fi
282290

283-
if [ -v TARGET_CONFIG ]
291+
if [ ! -z ${TARGET_CONFIG+x} ]
284292
then
285293
checkPath TARGET_CONFIG
286294
if [ "$?" -ne "0" ]
@@ -429,14 +437,14 @@ function copyFile() {
429437
fi
430438
}
431439

432-
[ -v S3_CFG_PATH ] && copyFile $S3_CFG_PATH && docker_exec cp /machine_home/.s3cfg /root/.s3cfg
440+
[ ! -z ${S3_CFG_PATH+x} ] && copyFile $S3_CFG_PATH && docker_exec cp /machine_home/.s3cfg /root/.s3cfg
433441

434-
[ -v DB_DUMP_PATH ] && copyFile $DB_DUMP_PATH
435-
[ -v TARGET_CONFIG ] && copyFile $TARGET_CONFIG
436-
[ -v TARGET_DDL_DO ] && copyFile $TARGET_DDL_DO
437-
[ -v TARGET_DDL_UNDO ] && copyFile $TARGET_DDL_UNDO
438-
[ -v WORKLOAD_CUSTOM_SQL ] && copyFile $WORKLOAD_CUSTOM_SQL
439-
[ -v WORKLOAD_FULL_PATH ] && copyFile $WORKLOAD_FULL_PATH
442+
[ ! -z ${DB_DUMP_PATH+x} ] && copyFile $DB_DUMP_PATH
443+
[ ! -z ${TARGET_CONFIG+x} ] && copyFile $TARGET_CONFIG
444+
[ ! -z ${TARGET_DDL_DO+x} ] && copyFile $TARGET_DDL_DO
445+
[ ! -z ${TARGET_DDL_UNDO+x} ] && copyFile $TARGET_DDL_UNDO
446+
[ ! -z ${WORKLOAD_CUSTOM_SQL+x} ] && copyFile $WORKLOAD_CUSTOM_SQL
447+
[ ! -z ${WORKLOAD_FULL_PATH+x} ] && copyFile $WORKLOAD_FULL_PATH
440448

441449
## Apply machine features
442450
# Dump
@@ -445,7 +453,7 @@ DB_DUMP_FILENAME=$(basename $DB_DUMP_PATH)
445453
docker_exec bash -c "bzcat /machine_home/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres test"
446454
# After init database sql code apply
447455
echo "Apply sql code after db init"
448-
if ([ -v AFTER_DB_INIT_CODE ] && [ "$AFTER_DB_INIT_CODE" != "" ])
456+
if ([ ! -z ${AFTER_DB_INIT_CODE+x} ] && [ "$AFTER_DB_INIT_CODE" != "" ])
449457
then
450458
AFTER_DB_INIT_CODE_FILENAME=$(basename $AFTER_DB_INIT_CODE)
451459
if [[ $AFTER_DB_INIT_CODE =~ "s3://" ]]; then
@@ -457,13 +465,13 @@ then
457465
fi
458466
# Apply DDL code
459467
echo "Apply DDL SQL code"
460-
if ([ -v TARGET_DDL_DO ] && [ "$TARGET_DDL_DO" != "" ]); then
468+
if ([ ! -z ${TARGET_DDL_DO+x} ] && [ "$TARGET_DDL_DO" != "" ]); then
461469
TARGET_DDL_DO_FILENAME=$(basename $TARGET_DDL_DO)
462470
docker_exec bash -c "psql -U postgres test -E -f /machine_home/$TARGET_DDL_DO_FILENAME"
463471
fi
464472
# Apply postgres configuration
465473
echo "Apply postgres conf"
466-
if ([ -v TARGET_CONFIG ] && [ "$TARGET_CONFIG" != "" ]); then
474+
if ([ ! -z ${TARGET_CONFIG+x} ] && [ "$TARGET_CONFIG" != "" ]); then
467475
TARGET_CONFIG_FILENAME=$(basename $TARGET_CONFIG)
468476
docker_exec bash -c "cat /machine_home/$TARGET_CONFIG_FILENAME >> /etc/postgresql/$PG_VERSION/main/postgresql.conf"
469477
docker_exec bash -c "sudo /etc/init.d/postgresql restart"
@@ -474,13 +482,13 @@ docker_exec vacuumdb -U postgres test -j $(cat /proc/cpuinfo | grep processor |
474482
docker_exec bash -c "echo '' > /var/log/postgresql/postgresql-$PG_VERSION-main.log"
475483
# Execute workload
476484
echo "Execute workload..."
477-
if [ -v WORKLOAD_FULL_PATH ] && [ "$WORKLOAD_FULL_PATH" != '' ];then
485+
if [ ! -z ${WORKLOAD_FULL_PATH+x} ] && [ "$WORKLOAD_FULL_PATH" != '' ];then
478486
echo "Execute pgreplay queries..."
479487
docker_exec psql -U postgres test -c 'create role testuser superuser login;'
480488
WORKLOAD_FILE_NAME=$(basename $WORKLOAD_FULL_PATH)
481489
docker_exec bash -c "pgreplay -r -j /machine_home/$WORKLOAD_FILE_NAME"
482490
else
483-
if ([ -v WORKLOAD_CUSTOM_SQL ] && [ "$WORKLOAD_CUSTOM_SQL" != "" ]); then
491+
if ([ ! -z ${WORKLOAD_CUSTOM_SQL+x} ] && [ "$WORKLOAD_CUSTOM_SQL" != "" ]); then
484492
WORKLOAD_CUSTOM_FILENAME=$(basename $WORKLOAD_CUSTOM_SQL)
485493
echo "Execute custom sql queries..."
486494
docker_exec bash -c "psql -U postgres test -E -f /machine_home/$WORKLOAD_CUSTOM_FILENAME"
@@ -495,18 +503,24 @@ echo "Save JSON log..."
495503
if [[ $ARTIFACTS_DESTINATION =~ "s3://" ]]; then
496504
docker_exec s3cmd put /machine_home/$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
497505
else
506+
logpath=$(docker_exec bash -c "psql -XtU postgres \
507+
-c \"select string_agg(setting, '/' order by name) from pg_settings where name in ('log_directory', 'log_filename');\" \
508+
| grep / | sed -e 's/^[ \t]*//'")
509+
docker_exec bash -c "gzip -c $logpath > /machine_home/$ARTIFACTS_FILENAME.log.gz"
498510
if [ "$RUN_ON" = "localhost" ]; then
499511
cp "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/"$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
512+
cp "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/"$ARTIFACTS_FILENAME.log.gz $ARTIFACTS_DESTINATION/
500513
elif [ "$RUN_ON" = "aws" ]; then
501514
docker-machine scp $DOCKER_MACHINE:/home/ubuntu/$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
515+
docker-machine scp $DOCKER_MACHINE:/home/ubuntu/$ARTIFACTS_FILENAME.log.gz $ARTIFACTS_DESTINATION/
502516
else
503517
>&2 echo "ASSERT: must not reach this point"
504518
exit 1
505519
fi
506520
fi
507521

508522
echo "Apply DDL undo SQL code"
509-
if ([ -v TARGET_DDL_UNDO ] && [ "$TARGET_DDL_UNDO" != "" ]); then
523+
if ([ ! -z ${TARGET_DDL_UNDO+x} ] && [ "$TARGET_DDL_UNDO" != "" ]); then
510524
TARGET_DDL_UNDO_FILENAME=$(basename $TARGET_DDL_UNDO)
511525
docker_exec bash -c "psql -U postgres test -E -f /machine_home/$TARGET_DDL_UNDO_FILENAME"
512526
fi

0 commit comments

Comments
 (0)