diff --git a/doc/xml/release.xml b/doc/xml/release.xml index 027c17c44..51fa99a57 100644 --- a/doc/xml/release.xml +++ b/doc/xml/release.xml @@ -227,6 +227,10 @@

Reduce the frequency that certain tests are run to save time in regression.

+ + +

Disable control master for older OS versions where it is less stable.

+
diff --git a/test/lib/pgBackRestTest/Common/ContainerTest.pm b/test/lib/pgBackRestTest/Common/ContainerTest.pm index 477f63609..02ce8fcc5 100755 --- a/test/lib/pgBackRestTest/Common/ContainerTest.pm +++ b/test/lib/pgBackRestTest/Common/ContainerTest.pm @@ -168,20 +168,30 @@ sub sshSetup my $strOS = shift; my $strUser = shift; my $strGroup = shift; + my $bControlMaster = shift; - return + my $strScript = "# Setup SSH\n" . "RUN mkdir /home/${strUser}/.ssh\n" . "COPY id_rsa /home/${strUser}/.ssh/id_rsa\n" . "COPY id_rsa.pub /home/${strUser}/.ssh/authorized_keys\n" . "RUN echo 'Host *' > /home/${strUser}/.ssh/config\n" . - "RUN echo ' StrictHostKeyChecking no' >> /home/${strUser}/.ssh/config\n" . - "RUN echo ' ControlMaster auto' >> /home/${strUser}/.ssh/config\n" . - "RUN echo ' ControlPath /tmp/\%r\@\%h:\%p' >> /home/${strUser}/.ssh/config\n" . - "RUN echo ' ControlPersist 30' >> /home/${strUser}/.ssh/config\n" . + "RUN echo ' StrictHostKeyChecking no' >> /home/${strUser}/.ssh/config\n"; + + if ($bControlMaster) + { + $strScript .= + "RUN echo ' ControlMaster auto' >> /home/${strUser}/.ssh/config\n" . + "RUN echo ' ControlPath /tmp/\%r\@\%h:\%p' >> /home/${strUser}/.ssh/config\n" . + "RUN echo ' ControlPersist 30' >> /home/${strUser}/.ssh/config\n"; + } + + $strScript .= "RUN chown -R ${strUser}:${strGroup} /home/${strUser}/.ssh\n" . "RUN chmod 700 /home/${strUser}/.ssh\n" . "RUN chmod 600 /home/${strUser}/.ssh/*"; + + return $strScript; } #################################################################################################################################### @@ -502,7 +512,7 @@ sub containerBuild $strImage = "${strOS}-db-${strDbVersion}-doc"; # Install SSH key - $strScript = sshSetup($strOS, POSTGRES_USER, POSTGRES_GROUP); + $strScript = sshSetup($strOS, POSTGRES_USER, POSTGRES_GROUP, $$oVm{$strOS}{&VM_CONTROL_MASTER}); # Setup sudo $strScript .= "\n\n" . sudoSetup($strOS, TEST_GROUP); @@ -517,7 +527,7 @@ sub containerBuild $strImage = "${strOS}-db-${strDbVersion}-test"; # Install SSH key - $strScript = sshSetup($strOS, TEST_USER, TEST_GROUP); + $strScript = sshSetup($strOS, TEST_USER, TEST_GROUP, $$oVm{$strOS}{&VM_CONTROL_MASTER}); # Write the image containerWrite($strTempPath, $strOS, "${strTitle} Test", $strImageParent, $strImage, $strScript, $bVmForce, true, true); @@ -529,7 +539,7 @@ sub containerBuild $strImage = "${strOS}-db-test"; # Install SSH key - $strScript = sshSetup($strOS, TEST_USER, TEST_GROUP); + $strScript = sshSetup($strOS, TEST_USER, TEST_GROUP, $$oVm{$strOS}{&VM_CONTROL_MASTER}); # Write the image containerWrite($strTempPath, $strOS, 'Db Synthetic Test', $strImageParent, $strImage, $strScript, $bVmForce, true, true); @@ -544,11 +554,11 @@ sub containerBuild # Install SSH key $strScript .= - "\n\n" . sshSetup($strOS, BACKREST_USER, BACKREST_GROUP); + "\n\n" . sshSetup($strOS, BACKREST_USER, BACKREST_GROUP, $$oVm{$strOS}{&VM_CONTROL_MASTER}); # Install SSH key $strScript .= - "\n\n" . sshSetup($strOS, TEST_USER, TEST_GROUP); + "\n\n" . sshSetup($strOS, TEST_USER, TEST_GROUP, $$oVm{$strOS}{&VM_CONTROL_MASTER}); # Make test user home readable $strScript .= @@ -569,7 +579,7 @@ sub containerBuild # Install SSH key $strScript .= - "\n\n" . sshSetup($strOS, BACKREST_USER, BACKREST_GROUP); + "\n\n" . sshSetup($strOS, BACKREST_USER, BACKREST_GROUP, $$oVm{$strOS}{&VM_CONTROL_MASTER}); # Write the image containerWrite($strTempPath, $strOS, $strTitle, $strImageParent, $strImage, $strScript, $bVmForce, diff --git a/test/lib/pgBackRestTest/Common/VmTest.pm b/test/lib/pgBackRestTest/Common/VmTest.pm index 50eb34e0d..190c2ee64 100644 --- a/test/lib/pgBackRestTest/Common/VmTest.pm +++ b/test/lib/pgBackRestTest/Common/VmTest.pm @@ -13,6 +13,7 @@ use Carp qw(confess); use Exporter qw(import); our @EXPORT = qw(); +use pgBackRest::Common::Log; use pgBackRest::Db; #################################################################################################################################### @@ -24,6 +25,8 @@ use constant VM_DB_DOC => 'db-doc'; push @EXPORT, qw(VM_DB_DOC); use constant VM_DB_MINIMAL => 'db-minimal'; push @EXPORT, qw(VM_DB_MINIMAL); +use constant VM_CONTROL_MASTER => 'control-master'; + push @EXPORT, qw(VM_CONTROL_MASTER); use constant VM_IMAGE => 'image'; push @EXPORT, qw(VM_IMAGE); use constant VM_OS => 'os'; @@ -77,6 +80,7 @@ my $oyVm = &VM_OS_BASE => VM_OS_BASE_RHEL, &VM_OS => VM_OS_CENTOS, &VM_IMAGE => 'centos:6', + &VM_CONTROL_MASTER => false, &VMDEF_PGSQL_BIN => '/usr/pgsql-{[version]}/bin', &VM_DB => @@ -108,6 +112,7 @@ my $oyVm = &VM_OS_BASE => VM_OS_BASE_RHEL, &VM_OS => VM_OS_CENTOS, &VM_IMAGE => 'centos:7', + &VM_CONTROL_MASTER => true, &VMDEF_PGSQL_BIN => '/usr/pgsql-{[version]}/bin', &VM_DB => @@ -132,6 +137,7 @@ my $oyVm = &VM_OS => VM_OS_DEBIAN, &VM_OS_REPO => 'jessie', &VM_IMAGE => 'debian:8', + &VM_CONTROL_MASTER => true, &VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin', &VM_DB => @@ -188,6 +194,7 @@ my $oyVm = &VM_OS => VM_OS_UBUNTU, &VM_OS_REPO => 'trusty', &VM_IMAGE => 'ubuntu:14.04', + &VM_CONTROL_MASTER => true, &VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin', &VM_DB => @@ -219,6 +226,7 @@ my $oyVm = &VM_OS => VM_OS_UBUNTU, &VM_OS_REPO => 'xenial', &VM_IMAGE => 'ubuntu:16.04', + &VM_CONTROL_MASTER => true, &VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin', &VM_DB =>