@@ -281,7 +281,6 @@ function checkPath() {
281
281
if [[ $path =~ " file:///" ]]
282
282
then
283
283
path=${path/ file: \/\/ / }
284
- echo " CHECK $path "
285
284
if [ -f $path ]
286
285
then
287
286
eval " $1 =\" $path \" " # update original variable
@@ -662,14 +661,14 @@ elif [[ "$RUN_ON" = "aws" ]]; then
662
661
>&2 echo " Failed: Docker $DOCKER_MACHINE is NOT running."
663
662
exit 1;
664
663
fi
665
-
666
664
echo " Docker $DOCKER_MACHINE is running."
667
665
666
+ echo " Attempt use high speed disk"
667
+ docker-machine ssh $DOCKER_MACHINE " sudo sh -c \" mkdir /home/storage\" "
668
668
if [ ${AWS_EC2_TYPE: 0: 2} == ' i3' ]
669
669
then
670
670
# Init i3 storage, just mount existing volume
671
671
echo " Attach i3 nvme volume"
672
- docker-machine ssh $DOCKER_MACHINE df -h
673
672
docker-machine ssh $DOCKER_MACHINE sudo add-apt-repository -y ppa:sbates
674
673
docker-machine ssh $DOCKER_MACHINE sudo apt-get update || :
675
674
docker-machine ssh $DOCKER_MACHINE sudo apt-get install -y nvme-cli
@@ -683,23 +682,18 @@ elif [[ "$RUN_ON" = "aws" ]]; then
683
682
684
683
docker-machine ssh $DOCKER_MACHINE sudo sfdisk /dev/nvme0n1 < /tmp/nvme.part
685
684
docker-machine ssh $DOCKER_MACHINE sudo mkfs -t ext4 /dev/nvme0n1p1
686
- docker-machine ssh $DOCKER_MACHINE " sudo sh -c \" mkdir /home/storage\" "
687
685
docker-machine ssh $DOCKER_MACHINE sudo mount /dev/nvme0n1p1 /home/storage
688
- # docker-machine ssh $DOCKER_MACHINE "sudo sh -c \"echo 'Check mount storage TEST' > /home/storage/nvme0n1p1-test.txt\""
689
- docker-machine ssh $DOCKER_MACHINE df -h
690
686
else
691
687
# Create new volume and attach them for non i3 instances if need
692
688
if [ ! -z ${EBS_SIZE+x} ]; then
693
689
echo " Create and attach EBS volume"
694
690
[ $DEBUG -eq 1 ] && echo " Create volume with size: $EBS_SIZE Gb"
695
- VOLUME_ID=$( aws ec2 create-volume --size 10 --region us-east-1 --availability-zone us-east-1a --volume-type gp2 | jq -r .VolumeId)
691
+ VOLUME_ID=$( aws ec2 create-volume --size $EBS_SIZE --region us-east-1 --availability-zone us-east-1a --volume-type gp2 | jq -r .VolumeId)
696
692
INSTANCE_ID=$( docker-machine ssh $DOCKER_MACHINE curl -s http://169.254.169.254/latest/meta-data/instance-id)
697
693
sleep 10 # wait to volume will ready
698
694
attachResult=$( aws ec2 attach-volume --device /dev/xvdf --volume-id $VOLUME_ID --instance-id $INSTANCE_ID --region us-east-1)
699
695
docker-machine ssh $DOCKER_MACHINE sudo mkfs.ext4 /dev/xvdf
700
- docker-machine ssh $DOCKER_MACHINE " sudo sh -c \" mkdir /home/storage\" "
701
696
docker-machine ssh $DOCKER_MACHINE sudo mount /dev/xvdf /home/storage
702
- # docker-machine ssh $DOCKER_MACHINE "sudo sh -c \"echo 'Check mount storage TEST' > /home/storage/xvdf-test.txt\""
703
697
fi
704
698
fi
705
699
@@ -720,8 +714,20 @@ alias docker_exec='docker $dockerConfig exec -i ${containerHash} '
720
714
721
715
MACHINE_HOME=" /machine_home/nancy_${containerHash} "
722
716
docker_exec sh -c " mkdir $MACHINE_HOME && chmod a+w $MACHINE_HOME "
723
-
724
- # docker_exec bash -c "ls -al /storage/"
717
+ docker_exec bash -c " ln -s /storage/ $MACHINE_HOME /storage"
718
+ MACHINE_HOME=" /machine_home/nancy_${containerHash} /storage"
719
+ docker_exec sh -c " chmod a+w $MACHINE_HOME "
720
+ docker_exec sh -c " chmod a+w /storage"
721
+
722
+ echo " Move posgresql to high speed disk"
723
+ docker_exec bash -c " sudo /etc/init.d/postgresql stop"
724
+ sleep 2 # wait for postgres stopped
725
+ docker_exec bash -c " sudo mkdir /storage/postgresql"
726
+ docker_exec bash -c " sudo mv /var/lib/postgresql/* /storage/postgresql"
727
+ docker_exec bash -c " rm -R /var/lib/postgresql"
728
+ docker_exec bash -c " ln -s /storage/postgresql /var/lib/postgresql"
729
+ docker_exec bash -c " sudo /etc/init.d/postgresql start"
730
+ sleep 2 # wait for postgres started
725
731
726
732
function copyFile() {
727
733
if [ " $1 " != ' ' ]; then
@@ -733,7 +739,7 @@ function copyFile() {
733
739
# TODO: option – hard links OR regular `cp`
734
740
docker cp ${1/ file: \/\/ / } $containerHash :$MACHINE_HOME /
735
741
elif [ " $RUN_ON " = " aws" ]; then
736
- docker-machine scp $1 $DOCKER_MACHINE :/home/ubuntu/nancy_ ${containerHash}
742
+ docker-machine scp $1 $DOCKER_MACHINE :/home/storage
737
743
else
738
744
>&2 echo " ASSERT: must not reach this point"
739
745
exit 1
@@ -756,24 +762,21 @@ function copyFile() {
756
762
# Dump
757
763
sleep 2 # wait for postgres up&running
758
764
DB_DUMP_FILENAME=$( basename $DB_DUMP_PATH )
759
- docker_exec bash -c " bzcat $MACHINE_HOME /$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres test"
765
+ echo " Restore database dump"
766
+ docker_exec bash -c " bzcat $MACHINE_HOME /$DB_DUMP_FILENAME | psql -E --set ON_ERROR_STOP=on -U postgres test > /dev/null"
760
767
# After init database sql code apply
761
768
echo " Apply sql code after db init"
762
769
if ([ ! -z ${AFTER_DB_INIT_CODE+x} ] && [ " $AFTER_DB_INIT_CODE " != " " ])
763
770
then
764
771
AFTER_DB_INIT_CODE_FILENAME=$( basename $AFTER_DB_INIT_CODE )
765
- if [[ $AFTER_DB_INIT_CODE =~ " s3://" ]]; then
766
- docker_exec s3cmd sync $AFTER_DB_INIT_CODE $MACHINE_HOME /
767
- else
768
- docker-machine scp $AFTER_DB_INIT_CODE $DOCKER_MACHINE :/home/ubuntu/nancy_$containerHash
769
- fi
770
- docker_exec bash -c " psql -U postgres test -E -f $MACHINE_HOME /$AFTER_DB_INIT_CODE_FILENAME "
772
+ copyFile $AFTER_DB_INIT_CODE
773
+ docker_exec bash -c " psql -U postgres test -b -f $MACHINE_HOME /$AFTER_DB_INIT_CODE_FILENAME "
771
774
fi
772
775
# Apply DDL code
773
776
echo " Apply DDL SQL code"
774
777
if ([ ! -z ${TARGET_DDL_DO+x} ] && [ " $TARGET_DDL_DO " != " " ]); then
775
778
TARGET_DDL_DO_FILENAME=$( basename $TARGET_DDL_DO )
776
- docker_exec bash -c " psql -U postgres test -E -f $MACHINE_HOME /$TARGET_DDL_DO_FILENAME "
779
+ docker_exec bash -c " psql -U postgres test -b -f $MACHINE_HOME /$TARGET_DDL_DO_FILENAME "
777
780
fi
778
781
# Apply initial postgres configuration
779
782
echo " Apply initial postgres configuration"
@@ -818,26 +821,26 @@ docker_exec bash -c "/root/pgbadger/pgbadger \
818
821
--prefix '%t [%p]: [%l-1] db=%d,user=%u (%a,%h)' /var/log/postgresql/* -f stderr \
819
822
-o $MACHINE_HOME /$ARTIFACTS_FILENAME .json"
820
823
821
- echo " Save JSON log..."
824
+ logpath=$( \
825
+ docker_exec bash -c " psql -XtU postgres \
826
+ -c \" select string_agg(setting, '/' order by name) from pg_settings where name in ('log_directory', 'log_filename');\" \
827
+ | grep / | sed -e 's/^[ \t]*//'"
828
+ )
829
+ docker_exec bash -c " gzip -c $logpath > $MACHINE_HOME /$ARTIFACTS_FILENAME .log.gz"
830
+ echo " Save artifcats..."
822
831
if [[ $ARTIFACTS_DESTINATION =~ " s3://" ]]; then
823
- docker_exec s3cmd put /$MACHINE_HOME /$ARTIFACTS_FILENAME .json \
824
- $ARTIFACTS_DESTINATION /
832
+ docker_exec s3cmd put /$MACHINE_HOME /$ARTIFACTS_FILENAME .json $ARTIFACTS_DESTINATION /
833
+ docker_exec s3cmd put / $MACHINE_HOME / $ARTIFACTS_FILENAME .log.gz $ARTIFACTS_DESTINATION /
825
834
else
826
- logpath=$( \
827
- docker_exec bash -c " psql -XtU postgres \
828
- -c \" select string_agg(setting, '/' order by name) from pg_settings where name in ('log_directory', 'log_filename');\" \
829
- | grep / | sed -e 's/^[ \t]*//'"
830
- )
831
- docker_exec bash -c " gzip -c $logpath > $MACHINE_HOME /$ARTIFACTS_FILENAME .log.gz"
832
835
if [ " $RUN_ON " = " localhost" ]; then
833
836
docker cp $containerHash :$MACHINE_HOME /$ARTIFACTS_FILENAME .json $ARTIFACTS_DESTINATION /
834
837
docker cp $containerHash :$MACHINE_HOME /$ARTIFACTS_FILENAME .log.gz $ARTIFACTS_DESTINATION /
835
838
# TODO option: ln / cp
836
839
# cp "$TMP_PATH/nancy_$containerHash/"$ARTIFACTS_FILENAME.json $ARTIFACTS_DESTINATION/
837
840
# cp "$TMP_PATH/nancy_$containerHash/"$ARTIFACTS_FILENAME.log.gz $ARTIFACTS_DESTINATION/
838
841
elif [ " $RUN_ON " = " aws" ]; then
839
- docker-machine scp $DOCKER_MACHINE :/home/ubuntu/nancy_ $containerHash /$ARTIFACTS_FILENAME .json $ARTIFACTS_DESTINATION /
840
- docker-machine scp $DOCKER_MACHINE :/home/ubuntu/nancy_ $containerHash /$ARTIFACTS_FILENAME .log.gz $ARTIFACTS_DESTINATION /
842
+ docker-machine scp $DOCKER_MACHINE :/home/storage /$ARTIFACTS_FILENAME .json $ARTIFACTS_DESTINATION /
843
+ docker-machine scp $DOCKER_MACHINE :/home/storage /$ARTIFACTS_FILENAME .log.gz $ARTIFACTS_DESTINATION /
841
844
else
842
845
>&2 echo " ASSERT: must not reach this point"
843
846
exit 1
847
850
echo " Apply DDL undo SQL code"
848
851
if ([ ! -z ${TARGET_DDL_UNDO+x} ] && [ " $TARGET_DDL_UNDO " != " " ]); then
849
852
TARGET_DDL_UNDO_FILENAME=$( basename $TARGET_DDL_UNDO )
850
- docker_exec bash -c " psql -U postgres test -E -f $MACHINE_HOME /$TARGET_DDL_UNDO_FILENAME "
853
+ docker_exec bash -c " psql -U postgres test -b -f $MACHINE_HOME /$TARGET_DDL_UNDO_FILENAME "
851
854
fi
852
855
853
856
echo -e " Run done!"
854
857
echo -e " Report: $ARTIFACTS_DESTINATION /$ARTIFACTS_FILENAME .json"
855
858
echo -e " Query log: $ARTIFACTS_DESTINATION /$ARTIFACTS_FILENAME .log.gz"
856
859
echo -e " -------------------------------------------"
857
860
echo -e " Summary:"
858
- echo -e " Queries duration:\t\t" $( cat $ARTIFACTS_DESTINATION /$ARTIFACTS_FILENAME .json | jq ' .overall_stat.queries_duration' ) " ms"
859
- echo -e " Queries count:\t\t" $( cat $ARTIFACTS_DESTINATION /$ARTIFACTS_FILENAME .json | jq ' .overall_stat.queries_number' )
860
- echo -e " Normalized queries count:\t" $( cat $ARTIFACTS_DESTINATION /$ARTIFACTS_FILENAME .json | jq ' .normalyzed_info| length' )
861
- echo -e " Errors count:\t\t\t" $( cat $ARTIFACTS_DESTINATION /$ARTIFACTS_FILENAME .json | jq ' .overall_stat.errors_number' )
861
+ echo -e " Queries duration:\t\t" $( docker_exec cat / $MACHINE_HOME /$ARTIFACTS_FILENAME .json | jq ' .overall_stat.queries_duration' ) " ms"
862
+ echo -e " Queries count:\t\t" $( docker_exec cat / $MACHINE_HOME /$ARTIFACTS_FILENAME .json | jq ' .overall_stat.queries_number' )
863
+ echo -e " Normalized queries count:\t" $( docker_exec cat / $MACHINE_HOME /$ARTIFACTS_FILENAME .json | jq ' .normalyzed_info| length' )
864
+ echo -e " Errors count:\t\t\t" $( docker_exec cat / $MACHINE_HOME /$ARTIFACTS_FILENAME .json | jq ' .overall_stat.errors_number' )
862
865
echo -e " -------------------------------------------"
863
866
864
867
sleep $DEBUG_TIMEOUT
0 commit comments