@@ -610,13 +610,20 @@ trap cleanup EXIT
610
610
611
611
alias docker_exec=' docker $dockerConfig exec -i pg_nancy_${CURRENT_TS} '
612
612
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
+
613
620
function copyFile() {
614
621
if [ " $1 " != ' ' ]; then
615
622
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 /
617
624
else
618
625
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`
620
627
elif [ " $RUN_ON " = " aws" ]; then
621
628
docker-machine scp $1 $DOCKER_MACHINE :/home/ubuntu
622
629
else
@@ -627,8 +634,7 @@ function copyFile() {
627
634
fi
628
635
}
629
636
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
632
638
[ ! -z ${DB_DUMP_PATH+x} ] && copyFile $DB_DUMP_PATH
633
639
[ ! -z ${PG_CONGIF+x} ] && copyFile $PG_CONGIF
634
640
[ ! -z ${TARGET_CONFIG+x} ] && copyFile $TARGET_CONFIG
@@ -641,30 +647,30 @@ function copyFile() {
641
647
# Dump
642
648
sleep 1 # wait for postgres up&running
643
649
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"
645
651
# After init database sql code apply
646
652
echo " Apply sql code after db init"
647
653
if ([ ! -z ${AFTER_DB_INIT_CODE+x} ] && [ " $AFTER_DB_INIT_CODE " != " " ])
648
654
then
649
655
AFTER_DB_INIT_CODE_FILENAME=$( basename $AFTER_DB_INIT_CODE )
650
656
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 /
652
658
else
653
659
docker-machine scp $AFTER_DB_INIT_CODE $DOCKER_MACHINE :/home/ubuntu
654
660
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 "
656
662
fi
657
663
# Apply DDL code
658
664
echo " Apply DDL SQL code"
659
665
if ([ ! -z ${TARGET_DDL_DO+x} ] && [ " $TARGET_DDL_DO " != " " ]); then
660
666
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 "
662
668
fi
663
669
# Apply initial postgres configuration
664
670
echo " Apply initial postgres configuration"
665
671
if ([ ! -z ${PG_CONFIG+x} ] && [ " $PG_CONFIG " != " " ]); then
666
672
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"
668
674
if [ -z ${TARGET_CONFIG+x} ]
669
675
then
670
676
docker_exec bash -c " sudo /etc/init.d/postgresql restart"
674
680
echo " Apply postgres configuration"
675
681
if ([ ! -z ${TARGET_CONFIG+x} ] && [ " $TARGET_CONFIG " != " " ]); then
676
682
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"
678
684
docker_exec bash -c " sudo /etc/init.d/postgresql restart"
679
685
fi
680
686
# Clear statistics and log
@@ -687,30 +693,30 @@ if [ ! -z ${WORKLOAD_FULL_PATH+x} ] && [ "$WORKLOAD_FULL_PATH" != '' ];then
687
693
echo " Execute pgreplay queries..."
688
694
docker_exec psql -U postgres test -c ' create role testuser superuser login;'
689
695
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 "
691
697
else
692
698
if ([ ! -z ${WORKLOAD_CUSTOM_SQL+x} ] && [ " $WORKLOAD_CUSTOM_SQL " != " " ]); then
693
699
WORKLOAD_CUSTOM_FILENAME=$( basename $WORKLOAD_CUSTOM_SQL )
694
700
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 "
696
702
fi
697
703
fi
698
704
699
705
# # Get statistics
700
706
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"
702
708
703
709
echo " Save JSON log..."
704
710
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 /
706
712
else
707
713
logpath=$( docker_exec bash -c " psql -XtU postgres \
708
714
-c \" select string_agg(setting, '/' order by name) from pg_settings where name in ('log_directory', 'log_filename');\" \
709
715
| 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"
711
717
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 /
714
720
elif [ " $RUN_ON " = " aws" ]; then
715
721
docker-machine scp $DOCKER_MACHINE :/home/ubuntu/$ARTIFACTS_FILENAME .json $ARTIFACTS_DESTINATION /
716
722
docker-machine scp $DOCKER_MACHINE :/home/ubuntu/$ARTIFACTS_FILENAME .log.gz $ARTIFACTS_DESTINATION /
723
729
echo " Apply DDL undo SQL code"
724
730
if ([ ! -z ${TARGET_DDL_UNDO+x} ] && [ " $TARGET_DDL_UNDO " != " " ]); then
725
731
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 "
727
733
fi
728
734
729
735
echo -e " Run done!"
0 commit comments