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

Commit 4ae4cd1

Browse files
authored
Merge pull request #31 from startupturbo/dmius-container-hash
Use contaierHash in paths
2 parents 1467dba + 9a78cfc commit 4ae4cd1

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

nancy_run.sh

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -610,13 +610,20 @@ trap cleanup EXIT
610610

611611
alias docker_exec='docker $dockerConfig exec -i pg_nancy_${CURRENT_TS} '
612612

613+
if [[ "$RUN_ON" = "localhost" ]]; then
614+
MACHINE_HOME="/machine_home/${containerHash}"
615+
mkdir $TMP_PATH/pg_nancy_home_${CURRENT_TS}/${containerHash}
616+
else
617+
MACHINE_HOME="/machine_home"
618+
fi
619+
613620
function copyFile() {
614621
if [ "$1" != '' ]; then
615622
if [[ "$1" =~ "s3://" ]]; then # won't work for .s3cfg!
616-
docker_exec s3cmd sync $1 /machine_home/
623+
docker_exec s3cmd sync $1 $MACHINE_HOME/
617624
else
618625
if [ "$RUN_ON" = "localhost" ]; then
619-
ln $1 "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/" # TODO: option – hard links OR regular `cp`
626+
ln $1 "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/$containerHash/" # TODO: option – hard links OR regular `cp`
620627
elif [ "$RUN_ON" = "aws" ]; then
621628
docker-machine scp $1 $DOCKER_MACHINE:/home/ubuntu
622629
else
@@ -627,8 +634,7 @@ function copyFile() {
627634
fi
628635
}
629636

630-
[ ! -z ${S3_CFG_PATH+x} ] && copyFile $S3_CFG_PATH && docker_exec cp /machine_home/.s3cfg /root/.s3cfg
631-
637+
[ ! -z ${S3_CFG_PATH+x} ] && copyFile $S3_CFG_PATH && docker_exec cp /$MACHINE_HOME/.s3cfg /root/.s3cfg
632638
[ ! -z ${DB_DUMP_PATH+x} ] && copyFile $DB_DUMP_PATH
633639
[ ! -z ${PG_CONGIF+x} ] && copyFile $PG_CONGIF
634640
[ ! -z ${TARGET_CONFIG+x} ] && copyFile $TARGET_CONFIG
@@ -641,30 +647,30 @@ function copyFile() {
641647
# Dump
642648
sleep 1 # wait for postgres up&running
643649
DB_DUMP_FILENAME=$(basename $DB_DUMP_PATH)
644-
docker_exec bash -c "bzcat /machine_home/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres test"
650+
docker_exec bash -c "bzcat /$MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres test"
645651
# After init database sql code apply
646652
echo "Apply sql code after db init"
647653
if ([ ! -z ${AFTER_DB_INIT_CODE+x} ] && [ "$AFTER_DB_INIT_CODE" != "" ])
648654
then
649655
AFTER_DB_INIT_CODE_FILENAME=$(basename $AFTER_DB_INIT_CODE)
650656
if [[ $AFTER_DB_INIT_CODE =~ "s3://" ]]; then
651-
docker_exec s3cmd sync $AFTER_DB_INIT_CODE /machine_home/
657+
docker_exec s3cmd sync $AFTER_DB_INIT_CODE /$MACHINE_HOME/
652658
else
653659
docker-machine scp $AFTER_DB_INIT_CODE $DOCKER_MACHINE:/home/ubuntu
654660
fi
655-
docker_exec bash -c "psql -U postgres test -E -f /machine_home/$AFTER_DB_INIT_CODE_FILENAME"
661+
docker_exec bash -c "psql -U postgres test -E -f /$MACHINE_HOME/$AFTER_DB_INIT_CODE_FILENAME"
656662
fi
657663
# Apply DDL code
658664
echo "Apply DDL SQL code"
659665
if ([ ! -z ${TARGET_DDL_DO+x} ] && [ "$TARGET_DDL_DO" != "" ]); then
660666
TARGET_DDL_DO_FILENAME=$(basename $TARGET_DDL_DO)
661-
docker_exec bash -c "psql -U postgres test -E -f /machine_home/$TARGET_DDL_DO_FILENAME"
667+
docker_exec bash -c "psql -U postgres test -E -f /$MACHINE_HOME/$TARGET_DDL_DO_FILENAME"
662668
fi
663669
# Apply initial postgres configuration
664670
echo "Apply initial postgres configuration"
665671
if ([ ! -z ${PG_CONFIG+x} ] && [ "$PG_CONFIG" != "" ]); then
666672
PG_CONFIG_FILENAME=$(basename $PG_CONFIG)
667-
docker_exec bash -c "cat /machine_home/$PG_CONFIG_FILENAME >> /etc/postgresql/$PG_VERSION/main/postgresql.conf"
673+
docker_exec bash -c "cat /$MACHINE_HOME/$PG_CONFIG_FILENAME >> /etc/postgresql/$PG_VERSION/main/postgresql.conf"
668674
if [ -z ${TARGET_CONFIG+x} ]
669675
then
670676
docker_exec bash -c "sudo /etc/init.d/postgresql restart"
@@ -674,7 +680,7 @@ fi
674680
echo "Apply postgres configuration"
675681
if ([ ! -z ${TARGET_CONFIG+x} ] && [ "$TARGET_CONFIG" != "" ]); then
676682
TARGET_CONFIG_FILENAME=$(basename $TARGET_CONFIG)
677-
docker_exec bash -c "cat /machine_home/$TARGET_CONFIG_FILENAME >> /etc/postgresql/$PG_VERSION/main/postgresql.conf"
683+
docker_exec bash -c "cat /$MACHINE_HOME/$TARGET_CONFIG_FILENAME >> /etc/postgresql/$PG_VERSION/main/postgresql.conf"
678684
docker_exec bash -c "sudo /etc/init.d/postgresql restart"
679685
fi
680686
# Clear statistics and log
@@ -687,30 +693,30 @@ if [ ! -z ${WORKLOAD_FULL_PATH+x} ] && [ "$WORKLOAD_FULL_PATH" != '' ];then
687693
echo "Execute pgreplay queries..."
688694
docker_exec psql -U postgres test -c 'create role testuser superuser login;'
689695
WORKLOAD_FILE_NAME=$(basename $WORKLOAD_FULL_PATH)
690-
docker_exec bash -c "pgreplay -r -j /machine_home/$WORKLOAD_FILE_NAME"
696+
docker_exec bash -c "pgreplay -r -j /$MACHINE_HOME/$WORKLOAD_FILE_NAME"
691697
else
692698
if ([ ! -z ${WORKLOAD_CUSTOM_SQL+x} ] && [ "$WORKLOAD_CUSTOM_SQL" != "" ]); then
693699
WORKLOAD_CUSTOM_FILENAME=$(basename $WORKLOAD_CUSTOM_SQL)
694700
echo "Execute custom sql queries..."
695-
docker_exec bash -c "psql -U postgres test -E -f /machine_home/$WORKLOAD_CUSTOM_FILENAME"
701+
docker_exec bash -c "psql -U postgres test -E -f /$MACHINE_HOME/$WORKLOAD_CUSTOM_FILENAME"
696702
fi
697703
fi
698704

699705
## Get statistics
700706
echo "Prepare JSON log..."
701-
docker_exec bash -c "/root/pgbadger/pgbadger -j $(cat /proc/cpuinfo | grep processor | wc -l) --prefix '%t [%p]: [%l-1] db=%d,user=%u (%a,%h)' /var/log/postgresql/* -f stderr -o /machine_home/$ARTIFACTS_FILENAME.json"
707+
docker_exec bash -c "/root/pgbadger/pgbadger -j $(cat /proc/cpuinfo | grep processor | wc -l) --prefix '%t [%p]: [%l-1] db=%d,user=%u (%a,%h)' /var/log/postgresql/* -f stderr -o /$MACHINE_HOME/$ARTIFACTS_FILENAME.json"
702708

703709
echo "Save JSON log..."
704710
if [[ $ARTIFACTS_DESTINATION =~ "s3://" ]]; then
705-
docker_exec s3cmd put /machine_home/$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
711+
docker_exec s3cmd put /$MACHINE_HOME/$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
706712
else
707713
logpath=$(docker_exec bash -c "psql -XtU postgres \
708714
-c \"select string_agg(setting, '/' order by name) from pg_settings where name in ('log_directory', 'log_filename');\" \
709715
| grep / | sed -e 's/^[ \t]*//'")
710-
docker_exec bash -c "gzip -c $logpath > /machine_home/$ARTIFACTS_FILENAME.log.gz"
716+
docker_exec bash -c "gzip -c $logpath > /$MACHINE_HOME/$ARTIFACTS_FILENAME.log.gz"
711717
if [ "$RUN_ON" = "localhost" ]; then
712-
cp "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/"$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
713-
cp "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/"$ARTIFACTS_FILENAME.log.gz $ARTIFACTS_DESTINATION/
718+
cp "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/$containerHash/"$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
719+
cp "$TMP_PATH/pg_nancy_home_${CURRENT_TS}/$containerHash/"$ARTIFACTS_FILENAME.log.gz $ARTIFACTS_DESTINATION/
714720
elif [ "$RUN_ON" = "aws" ]; then
715721
docker-machine scp $DOCKER_MACHINE:/home/ubuntu/$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
716722
docker-machine scp $DOCKER_MACHINE:/home/ubuntu/$ARTIFACTS_FILENAME.log.gz $ARTIFACTS_DESTINATION/
@@ -723,7 +729,7 @@ fi
723729
echo "Apply DDL undo SQL code"
724730
if ([ ! -z ${TARGET_DDL_UNDO+x} ] && [ "$TARGET_DDL_UNDO" != "" ]); then
725731
TARGET_DDL_UNDO_FILENAME=$(basename $TARGET_DDL_UNDO)
726-
docker_exec bash -c "psql -U postgres test -E -f /machine_home/$TARGET_DDL_UNDO_FILENAME"
732+
docker_exec bash -c "psql -U postgres test -E -f /$MACHINE_HOME/$TARGET_DDL_UNDO_FILENAME"
727733
fi
728734

729735
echo -e "Run done!"

0 commit comments

Comments
 (0)