2016-06-24 08:12:58 -04:00
|
|
|
####################################################################################################################################
|
|
|
|
# HostBackupTest.pm - Backup host
|
|
|
|
####################################################################################################################################
|
2017-05-12 16:43:04 -04:00
|
|
|
package pgBackRestTest::Env::Host::HostBaseTest;
|
2016-06-24 08:12:58 -04:00
|
|
|
use parent 'pgBackRestTest::Common::HostTest';
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Perl includes
|
|
|
|
####################################################################################################################################
|
|
|
|
use strict;
|
|
|
|
use warnings FATAL => qw(all);
|
|
|
|
use Carp qw(confess);
|
|
|
|
|
|
|
|
use Cwd qw(abs_path);
|
|
|
|
use Exporter qw(import);
|
|
|
|
our @EXPORT = qw();
|
|
|
|
use File::Basename qw(dirname);
|
|
|
|
|
2020-03-10 15:41:56 -04:00
|
|
|
use pgBackRestDoc::Common::Log;
|
2020-03-10 17:57:02 -04:00
|
|
|
use pgBackRestDoc::ProjectInfo;
|
2020-03-10 15:12:44 -04:00
|
|
|
|
2016-10-01 13:39:44 -04:00
|
|
|
use pgBackRestTest::Common::ContainerTest;
|
2017-02-21 08:59:23 -05:00
|
|
|
use pgBackRestTest::Common::ExecuteTest;
|
2017-11-26 18:43:51 -05:00
|
|
|
use pgBackRestTest::Common::JobTest;
|
2016-12-23 08:22:59 -05:00
|
|
|
use pgBackRestTest::Common::RunTest;
|
2020-03-10 15:12:44 -04:00
|
|
|
use pgBackRestTest::Common::StorageRepo;
|
2016-12-12 18:54:07 -05:00
|
|
|
use pgBackRestTest::Common::VmTest;
|
2016-06-24 08:12:58 -04:00
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Host constants
|
|
|
|
####################################################################################################################################
|
|
|
|
use constant HOST_BASE => 'base';
|
|
|
|
push @EXPORT, qw(HOST_BASE);
|
2020-06-16 14:06:38 -04:00
|
|
|
use constant HOST_DB_PRIMARY => 'db-primary';
|
|
|
|
push @EXPORT, qw(HOST_DB_PRIMARY);
|
2016-08-24 12:39:27 -04:00
|
|
|
use constant HOST_DB_STANDBY => 'db-standby';
|
|
|
|
push @EXPORT, qw(HOST_DB_STANDBY);
|
|
|
|
use constant HOST_BACKUP => 'backup';
|
|
|
|
push @EXPORT, qw(HOST_BACKUP);
|
2021-03-05 12:13:51 -05:00
|
|
|
use constant HOST_GCS => 'gcs';
|
|
|
|
push @EXPORT, qw(HOST_GCS);
|
2020-07-02 16:24:34 -04:00
|
|
|
use constant HOST_AZURE => 'azure';
|
|
|
|
push @EXPORT, qw(HOST_AZURE);
|
2017-06-09 17:51:41 -04:00
|
|
|
use constant HOST_S3 => 's3-server';
|
|
|
|
push @EXPORT, qw(HOST_S3);
|
2016-06-24 08:12:58 -04:00
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# new
|
|
|
|
####################################################################################################################################
|
|
|
|
sub new
|
|
|
|
{
|
|
|
|
my $class = shift; # Class name
|
|
|
|
|
|
|
|
# Assign function parameters, defaults, and log debug info
|
|
|
|
my
|
|
|
|
(
|
|
|
|
$strOperation,
|
|
|
|
$strName,
|
|
|
|
$oParam,
|
|
|
|
) =
|
|
|
|
logDebugParam
|
|
|
|
(
|
|
|
|
__PACKAGE__ . '->new', \@_,
|
|
|
|
{name => 'strName', default => HOST_BASE, trace => true},
|
|
|
|
{name => 'oParam', required => false, trace => true},
|
|
|
|
);
|
|
|
|
|
2016-12-23 08:22:59 -05:00
|
|
|
my $strTestPath = testRunGet()->testPath() . ($strName eq HOST_BASE ? '' : "/${strName}");
|
2017-06-09 17:51:41 -04:00
|
|
|
storageTest()->pathCreate($strTestPath, {strMode => '0770'});
|
2016-06-24 08:12:58 -04:00
|
|
|
|
|
|
|
# Create the host
|
|
|
|
my $strProjectPath = dirname(dirname(abs_path($0)));
|
2020-03-15 10:09:27 -04:00
|
|
|
my $strBinPath = dirname(dirname($strTestPath)) . '/bin/' . testRunGet()->vm() . '/' . PROJECT_EXE;
|
2016-12-23 08:22:59 -05:00
|
|
|
my $strContainer = 'test-' . testRunGet()->vmId() . "-$strName";
|
2016-06-24 08:12:58 -04:00
|
|
|
|
|
|
|
my $self = $class->SUPER::new(
|
2016-12-23 08:22:59 -05:00
|
|
|
$strName, $strContainer, $$oParam{strImage}, $$oParam{strUser}, testRunGet()->vm(),
|
2020-03-15 10:09:27 -04:00
|
|
|
["${strProjectPath}:${strProjectPath}", "${strTestPath}:${strTestPath}", "${strBinPath}:${strBinPath}:ro"]);
|
2016-06-24 08:12:58 -04:00
|
|
|
bless $self, $class;
|
|
|
|
|
2016-12-23 08:22:59 -05:00
|
|
|
# Set test path
|
|
|
|
$self->{strTestPath} = $strTestPath;
|
2016-06-24 08:12:58 -04:00
|
|
|
|
|
|
|
# Set permissions on the test path
|
2017-02-21 08:59:23 -05:00
|
|
|
$self->executeSimple('chown -R ' . $self->userGet() . ':'. TEST_GROUP . ' ' . $self->testPath(), undef, 'root');
|
2016-06-24 08:12:58 -04:00
|
|
|
|
|
|
|
# Return from function and log return values if any
|
|
|
|
return logDebugReturn
|
|
|
|
(
|
|
|
|
$strOperation,
|
|
|
|
{name => 'self', value => $self, trace => true}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
####################################################################################################################################
|
|
|
|
# Getters
|
|
|
|
####################################################################################################################################
|
2016-12-23 08:22:59 -05:00
|
|
|
sub testPath {return shift->{strTestPath}}
|
2016-06-24 08:12:58 -04:00
|
|
|
|
|
|
|
1;
|