You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2026-05-22 10:15:16 +02:00
Move Perl modules out of lib directory.
This directory was once the home of the production Perl code but since f0ef73db this is no longer true.
Move the modules to test in most cases, except where the module is expected to be useful for the doc engine beyond the expected lifetime of the Perl test code (about a year if all goes well).
The exception is pgBackRest::Version which requires more work to migrate since it is used to track pgBackRest versions.
This commit is contained in:
@@ -13,27 +13,173 @@ use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(basename dirname);
|
||||
|
||||
use pgBackRest::Archive::Info;
|
||||
use pgBackRest::Backup::Common;
|
||||
use pgBackRest::Backup::Info;
|
||||
use pgBackRest::DbVersion;
|
||||
use pgBackRest::Common::Exception;
|
||||
use pgBackRest::Common::Ini;
|
||||
use pgBackRest::Common::Log;
|
||||
use pgBackRest::Common::Wait;
|
||||
use pgBackRest::InfoCommon;
|
||||
use pgBackRest::Manifest;
|
||||
use pgBackRest::Storage::Helper;
|
||||
use pgBackRest::Version;
|
||||
|
||||
use BackRestDoc::Common::Exception;
|
||||
use BackRestDoc::Common::Ini;
|
||||
use BackRestDoc::Common::Log;
|
||||
use BackRestDoc::Common::String;
|
||||
|
||||
use pgBackRestTest::Common::ContainerTest;
|
||||
use pgBackRestTest::Common::DbVersion;
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::FileTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
use pgBackRestTest::Common::StorageRepo;
|
||||
use pgBackRestTest::Common::VmTest;
|
||||
use pgBackRestTest::Common::Wait;
|
||||
use pgBackRestTest::Env::ArchiveInfo;
|
||||
use pgBackRestTest::Env::BackupInfo;
|
||||
use pgBackRestTest::Env::Host::HostBackupTest;
|
||||
use pgBackRestTest::Env::Host::HostS3Test;
|
||||
use pgBackRestTest::Env::HostEnvTest;
|
||||
use pgBackRestTest::Env::InfoCommon;
|
||||
use pgBackRestTest::Env::Manifest;
|
||||
|
||||
####################################################################################################################################
|
||||
# backupRegExpGet
|
||||
#
|
||||
# Generate a regexp depending on the backups that need to be found.
|
||||
####################################################################################################################################
|
||||
sub backupRegExpGet
|
||||
{
|
||||
# Assign function parameters, defaults, and log debug info
|
||||
my
|
||||
(
|
||||
$strOperation,
|
||||
$bFull,
|
||||
$bDifferential,
|
||||
$bIncremental,
|
||||
$bAnchor
|
||||
) =
|
||||
logDebugParam
|
||||
(
|
||||
__PACKAGE__ . '::backupRegExpGet', \@_,
|
||||
{name => 'bFull', default => false},
|
||||
{name => 'bDifferential', default => false},
|
||||
{name => 'bIncremental', default => false},
|
||||
{name => 'bAnchor', default => true}
|
||||
);
|
||||
|
||||
# One of the types must be selected
|
||||
if (!($bFull || $bDifferential || $bIncremental))
|
||||
{
|
||||
confess &log(ASSERT, 'at least one backup type must be selected');
|
||||
}
|
||||
|
||||
# Standard regexp to match date and time formatting
|
||||
my $strDateTimeRegExp = "[0-9]{8}\\-[0-9]{6}";
|
||||
# Start the expression with the anchor if requested, date/time regexp and full backup indicator
|
||||
my $strRegExp = ($bAnchor ? '^' : '') . $strDateTimeRegExp . 'F';
|
||||
|
||||
# Add the diff and/or incr expressions if requested
|
||||
if ($bDifferential || $bIncremental)
|
||||
{
|
||||
# If full requested then diff/incr is optional
|
||||
if ($bFull)
|
||||
{
|
||||
$strRegExp .= "(\\_";
|
||||
}
|
||||
# Else diff/incr is required
|
||||
else
|
||||
{
|
||||
$strRegExp .= "\\_";
|
||||
}
|
||||
|
||||
# Append date/time regexp for diff/incr
|
||||
$strRegExp .= $strDateTimeRegExp;
|
||||
|
||||
# Filter on both diff/incr
|
||||
if ($bDifferential && $bIncremental)
|
||||
{
|
||||
$strRegExp .= '(D|I)';
|
||||
}
|
||||
# Else just diff
|
||||
elsif ($bDifferential)
|
||||
{
|
||||
$strRegExp .= 'D';
|
||||
}
|
||||
# Else just incr
|
||||
else
|
||||
{
|
||||
$strRegExp .= 'I';
|
||||
}
|
||||
|
||||
# If full requested then diff/incr is optional
|
||||
if ($bFull)
|
||||
{
|
||||
$strRegExp .= '){0,1}';
|
||||
}
|
||||
}
|
||||
|
||||
# Append the end anchor if requested
|
||||
$strRegExp .= $bAnchor ? "\$" : '';
|
||||
|
||||
# Return from function and log return values if any
|
||||
return logDebugReturn
|
||||
(
|
||||
$strOperation,
|
||||
{name => 'strRegExp', value => $strRegExp}
|
||||
);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# backupLabel
|
||||
#
|
||||
# Get unique backup label.
|
||||
####################################################################################################################################
|
||||
sub backupLabel
|
||||
{
|
||||
# Assign function parameters, defaults, and log debug info
|
||||
my
|
||||
(
|
||||
$strOperation,
|
||||
$oStorageRepo,
|
||||
$strRepoBackupPath,
|
||||
$strType,
|
||||
$strBackupLabelLast,
|
||||
$lTimestampStart
|
||||
) =
|
||||
logDebugParam
|
||||
(
|
||||
__PACKAGE__ . '::backupLabelFormat', \@_,
|
||||
{name => 'oStorageRepo', trace => true},
|
||||
{name => 'strRepoBackupPath', trace => true},
|
||||
{name => 'strType', trace => true},
|
||||
{name => 'strBackupLabelLast', required => false, trace => true},
|
||||
{name => 'lTimestampStart', trace => true}
|
||||
);
|
||||
|
||||
# Create backup label
|
||||
my $strBackupLabel = backupLabelFormat($strType, $strBackupLabelLast, $lTimestampStart);
|
||||
|
||||
# Make sure that the timestamp has not already been used by a prior backup. This is unlikely for online backups since there is
|
||||
# already a wait after the manifest is built but it's still possible if the remote and local systems don't have synchronized
|
||||
# clocks. In practice this is most useful for making offline testing faster since it allows the wait after manifest build to
|
||||
# be skipped by dealing with any backup label collisions here.
|
||||
if ($oStorageRepo->list(
|
||||
$strRepoBackupPath,
|
||||
{strExpression =>
|
||||
($strType eq CFGOPTVAL_BACKUP_TYPE_FULL ? '^' : '_') . timestampFileFormat(undef, $lTimestampStart) .
|
||||
($strType eq CFGOPTVAL_BACKUP_TYPE_FULL ? 'F' : '(D|I)$')}) ||
|
||||
$oStorageRepo->list(
|
||||
"${strRepoBackupPath}/" . PATH_BACKUP_HISTORY . '/' . timestampFormat('%4d', $lTimestampStart),
|
||||
{strExpression =>
|
||||
($strType eq CFGOPTVAL_BACKUP_TYPE_FULL ? '^' : '_') . timestampFileFormat(undef, $lTimestampStart) .
|
||||
($strType eq CFGOPTVAL_BACKUP_TYPE_FULL ? 'F' : '(D|I)\.manifest\.gz$'),
|
||||
bIgnoreMissing => true}))
|
||||
{
|
||||
waitRemainder();
|
||||
$strBackupLabel = backupLabelFormat($strType, $strBackupLabelLast, time());
|
||||
}
|
||||
|
||||
# Return from function and log return values if any
|
||||
return logDebugReturn
|
||||
(
|
||||
$strOperation,
|
||||
{name => 'strBackupLabel', value => $strBackupLabel, trace => true}
|
||||
);
|
||||
}
|
||||
|
||||
####################################################################################################################################
|
||||
# Build PostgreSQL pages for testing
|
||||
|
||||
@@ -13,21 +13,21 @@ use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use pgBackRest::Archive::Info;
|
||||
use pgBackRest::Backup::Info;
|
||||
use pgBackRest::DbVersion;
|
||||
use pgBackRest::Common::Exception;
|
||||
use pgBackRest::Common::Ini;
|
||||
use pgBackRest::Common::Log;
|
||||
use pgBackRest::Common::Wait;
|
||||
use pgBackRest::Manifest;
|
||||
use pgBackRest::Storage::Helper;
|
||||
use BackRestDoc::Common::Exception;
|
||||
use BackRestDoc::Common::Ini;
|
||||
use BackRestDoc::Common::Log;
|
||||
|
||||
use pgBackRestTest::Env::ArchiveInfo;
|
||||
use pgBackRestTest::Env::BackupInfo;
|
||||
use pgBackRestTest::Env::HostEnvTest;
|
||||
use pgBackRestTest::Env::Host::HostBackupTest;
|
||||
use pgBackRestTest::Env::Manifest;
|
||||
use pgBackRestTest::Common::DbVersion;
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
use pgBackRestTest::Common::StorageRepo;
|
||||
use pgBackRestTest::Common::VmTest;
|
||||
use pgBackRestTest::Common::Wait;
|
||||
|
||||
####################################################################################################################################
|
||||
# run
|
||||
|
||||
@@ -13,21 +13,21 @@ use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use pgBackRest::Archive::Info;
|
||||
use pgBackRest::Backup::Info;
|
||||
use pgBackRest::DbVersion;
|
||||
use pgBackRest::Common::Exception;
|
||||
use pgBackRest::Common::Ini;
|
||||
use pgBackRest::Common::Log;
|
||||
use pgBackRest::Common::Wait;
|
||||
use pgBackRest::Manifest;
|
||||
use pgBackRest::Storage::Helper;
|
||||
use BackRestDoc::Common::Exception;
|
||||
use BackRestDoc::Common::Ini;
|
||||
use BackRestDoc::Common::Log;
|
||||
|
||||
use pgBackRestTest::Env::ArchiveInfo;
|
||||
use pgBackRestTest::Env::BackupInfo;
|
||||
use pgBackRestTest::Env::Host::HostBackupTest;
|
||||
use pgBackRestTest::Env::HostEnvTest;
|
||||
use pgBackRestTest::Env::Manifest;
|
||||
use pgBackRestTest::Common::DbVersion;
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
use pgBackRestTest::Common::StorageRepo;
|
||||
use pgBackRestTest::Common::VmTest;
|
||||
use pgBackRestTest::Common::Wait;
|
||||
|
||||
####################################################################################################################################
|
||||
# archiveCheck
|
||||
|
||||
@@ -14,23 +14,23 @@ use Carp qw(confess);
|
||||
use File::Basename qw(dirname);
|
||||
use Storable qw(dclone);
|
||||
|
||||
use pgBackRest::Archive::Info;
|
||||
use pgBackRest::Backup::Info;
|
||||
use pgBackRest::DbVersion;
|
||||
use pgBackRest::Common::Exception;
|
||||
use pgBackRest::Common::Ini;
|
||||
use pgBackRest::Common::Log;
|
||||
use pgBackRest::Common::Wait;
|
||||
use pgBackRest::Manifest;
|
||||
use pgBackRest::Storage::Helper;
|
||||
use BackRestDoc::Common::Exception;
|
||||
use BackRestDoc::Common::Ini;
|
||||
use BackRestDoc::Common::Log;
|
||||
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
use pgBackRestTest::Common::VmTest;
|
||||
use pgBackRestTest::Env::ArchiveInfo;
|
||||
use pgBackRestTest::Env::BackupInfo;
|
||||
use pgBackRestTest::Env::ExpireEnvTest;
|
||||
use pgBackRestTest::Env::Host::HostBackupTest;
|
||||
use pgBackRestTest::Env::Host::HostS3Test;
|
||||
use pgBackRestTest::Env::HostEnvTest;
|
||||
use pgBackRestTest::Env::Manifest;
|
||||
use pgBackRestTest::Common::DbVersion;
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
use pgBackRestTest::Common::StorageRepo;
|
||||
use pgBackRestTest::Common::VmTest;
|
||||
use pgBackRestTest::Common::Wait;
|
||||
|
||||
####################################################################################################################################
|
||||
# run
|
||||
|
||||
@@ -13,24 +13,24 @@ use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use pgBackRest::Archive::Info;
|
||||
use pgBackRest::Backup::Info;
|
||||
use pgBackRest::Common::Exception;
|
||||
use pgBackRest::Common::Ini;
|
||||
use pgBackRest::Common::Log;
|
||||
use pgBackRest::Common::Wait;
|
||||
use pgBackRest::DbVersion;
|
||||
use pgBackRest::InfoCommon;
|
||||
use pgBackRest::Manifest;
|
||||
use pgBackRest::Storage::Base;
|
||||
use pgBackRest::Storage::Helper;
|
||||
use BackRestDoc::Common::Exception;
|
||||
use BackRestDoc::Common::Ini;
|
||||
use BackRestDoc::Common::Log;
|
||||
|
||||
use pgBackRestTest::Env::ArchiveInfo;
|
||||
use pgBackRestTest::Env::BackupInfo;
|
||||
use pgBackRestTest::Env::Host::HostBackupTest;
|
||||
use pgBackRestTest::Env::HostEnvTest;
|
||||
use pgBackRestTest::Env::InfoCommon;
|
||||
use pgBackRestTest::Env::Manifest;
|
||||
use pgBackRestTest::Common::DbVersion;
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::FileTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
use pgBackRestTest::Common::StorageBase;
|
||||
use pgBackRestTest::Common::StorageRepo;
|
||||
use pgBackRestTest::Common::VmTest;
|
||||
use pgBackRestTest::Common::Wait;
|
||||
|
||||
####################################################################################################################################
|
||||
# run
|
||||
@@ -214,8 +214,8 @@ sub run
|
||||
forceStorageMove(storageRepo(), $strArchiveInfoCopyOldFile, $strArchiveInfoFile, {bRecurse => false});
|
||||
|
||||
# Confirm versions
|
||||
my $oArchiveInfo = new pgBackRest::Archive::Info($oHostBackup->repoArchivePath());
|
||||
my $oBackupInfo = new pgBackRest::Backup::Info($oHostBackup->repoBackupPath());
|
||||
my $oArchiveInfo = new pgBackRestTest::Env::ArchiveInfo($oHostBackup->repoArchivePath());
|
||||
my $oBackupInfo = new pgBackRestTest::Env::BackupInfo($oHostBackup->repoBackupPath());
|
||||
$self->testResult(sub {$oArchiveInfo->test(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION, undef,
|
||||
PG_VERSION_93)}, true, 'archive at old pg version');
|
||||
$self->testResult(sub {$oBackupInfo->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_DB_VERSION, undef,
|
||||
|
||||
@@ -15,7 +15,7 @@ use English '-no_match_vars';
|
||||
use Storable qw(dclone);
|
||||
use Time::HiRes qw(gettimeofday);
|
||||
|
||||
use pgBackRest::Common::Log;
|
||||
use BackRestDoc::Common::Log;
|
||||
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
|
||||
@@ -13,29 +13,31 @@ use Carp qw(confess);
|
||||
|
||||
use File::Basename qw(dirname);
|
||||
|
||||
use pgBackRest::Archive::Info;
|
||||
use pgBackRest::Backup::Info;
|
||||
use pgBackRest::DbVersion;
|
||||
use pgBackRest::Common::Exception;
|
||||
use pgBackRest::Common::Ini;
|
||||
use pgBackRest::Common::Log;
|
||||
use pgBackRest::Common::Wait;
|
||||
use pgBackRest::InfoCommon;
|
||||
use pgBackRest::Manifest;
|
||||
use pgBackRest::Storage::Helper;
|
||||
use pgBackRest::Version;
|
||||
|
||||
use BackRestDoc::Common::Exception;
|
||||
use BackRestDoc::Common::Ini;
|
||||
use BackRestDoc::Common::Log;
|
||||
|
||||
use pgBackRestTest::Common::ContainerTest;
|
||||
use pgBackRestTest::Common::DbVersion;
|
||||
use pgBackRestTest::Common::ExecuteTest;
|
||||
use pgBackRestTest::Common::FileTest;
|
||||
use pgBackRestTest::Common::RunTest;
|
||||
use pgBackRestTest::Common::VmTest;
|
||||
use pgBackRestTest::Common::Storage;
|
||||
use pgBackRestTest::Common::StoragePosix;
|
||||
use pgBackRestTest::Common::StorageRepo;
|
||||
use pgBackRestTest::Common::Wait;
|
||||
use pgBackRestTest::Env::ArchiveInfo;
|
||||
use pgBackRestTest::Env::BackupInfo;
|
||||
use pgBackRestTest::Env::InfoCommon;
|
||||
use pgBackRestTest::Env::Host::HostBaseTest;
|
||||
use pgBackRestTest::Env::Host::HostBackupTest;
|
||||
use pgBackRestTest::Env::Host::HostDbTest;
|
||||
use pgBackRestTest::Env::Host::HostDbTest;
|
||||
use pgBackRestTest::Env::HostEnvTest;
|
||||
use pgBackRestTest::Common::Storage;
|
||||
use pgBackRestTest::Common::StoragePosix;
|
||||
use pgBackRestTest::Env::Manifest;
|
||||
|
||||
####################################################################################################################################
|
||||
# Backup advisory lock
|
||||
@@ -129,10 +131,10 @@ sub run
|
||||
|
||||
# Get passphrase to access the Manifest file from backup.info - returns undefined if repo not encrypted
|
||||
my $strCipherPass =
|
||||
(new pgBackRest::Backup::Info($oHostBackup->repoBackupPath()))->cipherPassSub();
|
||||
(new pgBackRestTest::Env::BackupInfo($oHostBackup->repoBackupPath()))->cipherPassSub();
|
||||
|
||||
# Create a manifest with the pg version to get version-specific paths
|
||||
my $oManifest = new pgBackRest::Manifest(BOGUS, {bLoad => false, strDbVersion => $self->pgVersion(),
|
||||
my $oManifest = new pgBackRestTest::Env::Manifest(BOGUS, {bLoad => false, strDbVersion => $self->pgVersion(),
|
||||
iDbCatalogVersion => $self->dbCatalogVersion($self->pgVersion()),
|
||||
strCipherPass => $strCipherPass, strCipherPassSub => $bRepoEncrypt ? ENCRYPTION_KEY_BACKUPSET : undef});
|
||||
|
||||
@@ -351,8 +353,8 @@ sub run
|
||||
# Run stanza-create offline to create files needing to be upgraded (using new pg-path)
|
||||
$oHostBackup->stanzaCreate('successfully create stanza files to be upgraded',
|
||||
{strOptionalParam => ' --pg1-path=' . $oHostDbMaster->dbPath() . '/testbase/ --no-online --force'});
|
||||
my $oArchiveInfo = new pgBackRest::Archive::Info($oHostBackup->repoArchivePath());
|
||||
my $oBackupInfo = new pgBackRest::Backup::Info($oHostBackup->repoBackupPath());
|
||||
my $oArchiveInfo = new pgBackRestTest::Env::ArchiveInfo($oHostBackup->repoArchivePath());
|
||||
my $oBackupInfo = new pgBackRestTest::Env::BackupInfo($oHostBackup->repoBackupPath());
|
||||
|
||||
# Read info files to confirm the files were created with a different database version
|
||||
if ($self->pgVersion() eq PG_VERSION_94)
|
||||
@@ -374,8 +376,8 @@ sub run
|
||||
$oHostBackup->stanzaUpgrade('upgrade stanza files online');
|
||||
|
||||
# Reread the info files and confirm the result
|
||||
$oArchiveInfo = new pgBackRest::Archive::Info($oHostBackup->repoArchivePath());
|
||||
$oBackupInfo = new pgBackRest::Backup::Info($oHostBackup->repoBackupPath());
|
||||
$oArchiveInfo = new pgBackRestTest::Env::ArchiveInfo($oHostBackup->repoArchivePath());
|
||||
$oBackupInfo = new pgBackRestTest::Env::BackupInfo($oHostBackup->repoBackupPath());
|
||||
$self->testResult(sub {$oArchiveInfo->test(INFO_ARCHIVE_SECTION_DB, INFO_ARCHIVE_KEY_DB_VERSION, undef,
|
||||
$self->pgVersion())}, true, 'archive upgrade online corrects db');
|
||||
$self->testResult(sub {$oBackupInfo->test(INFO_BACKUP_SECTION_DB, INFO_BACKUP_KEY_DB_VERSION, undef,
|
||||
@@ -777,7 +779,7 @@ sub run
|
||||
else
|
||||
{
|
||||
# Backup info will have the catalog number
|
||||
my $oBackupInfo = new pgBackRest::Common::Ini(
|
||||
my $oBackupInfo = new BackRestDoc::Common::Ini(
|
||||
storageRepo(), $oHostBackup->repoBackupPath(FILE_BACKUP_INFO),
|
||||
{bLoad => false, strContent => ${storageRepo()->get($oHostBackup->repoBackupPath(FILE_BACKUP_INFO))}});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user