1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-16 10:20:02 +02:00
pgbackrest/test/lib/BackRestTest/CommonTest.pm

210 lines
6.7 KiB
Perl
Raw Normal View History

#!/usr/bin/perl
####################################################################################################################################
# CommonTest.pm - Common globals used for testing
####################################################################################################################################
package BackRestTest::CommonTest;
####################################################################################################################################
# Perl includes
####################################################################################################################################
use strict;
use warnings;
use english;
use Carp;
use File::Basename;
use Cwd 'abs_path';
2014-06-22 21:51:28 +03:00
use Config::IniFiles;
use lib dirname($0) . "/../lib";
use BackRest::Utility;
2014-06-22 21:51:28 +03:00
use BackRest::File;
use Exporter qw(import);
our @EXPORT = qw(BackRestTestCommon_Setup BackRestTestCommon_Execute BackRestTestCommon_ExecuteBackRest
2014-06-22 21:51:28 +03:00
BackRestTestCommon_ConfigCreate
BackRestTestCommon_StanzaGet BackRestTestCommon_CommandMainGet BackRestTestCommon_CommandRemoteGet
2014-06-22 17:54:31 +03:00
BackRestTestCommon_HostGet BackRestTestCommon_UserGet BackRestTestCommon_GroupGet
2014-06-22 21:51:28 +03:00
BackRestTestCommon_UserBackRestGet BackRestTestCommon_TestPathGet BackRestTestCommon_BackupPathGet
BackRestTestCommon_DbPathGet BackRestTestCommon_DbCommonPathGet BackRestTestCommon_DbPortGet);
my $strCommonStanza;
2014-06-22 21:51:28 +03:00
my $strCommonCommandMain;
my $strCommonCommandRemote;
2014-06-22 21:51:28 +03:00
my $strCommonCommandPsql;
my $strCommonHost;
my $strCommonUser;
my $strCommonGroup;
my $strCommonUserBackRest;
my $strCommonTestPath;
2014-06-22 21:51:28 +03:00
my $strCommonBackupPath;
my $strCommonDbPath;
my $strCommonDbCommonPath;
my $iCommonDbPort;
####################################################################################################################################
# BackRestTestBackup_Execute
####################################################################################################################################
sub BackRestTestCommon_Execute
{
my $strCommand = shift;
my $bSuppressError = shift;
2014-06-24 01:54:00 +03:00
if (system($strCommand) != 0)
{
if (!defined($bSuppressError) || !$bSuppressError)
{
confess &log(ERROR, "unable to execute command: ${strCommand}");
}
}
}
####################################################################################################################################
# BackRestTestBackup_ExecuteBackRest
####################################################################################################################################
sub BackRestTestCommon_ExecuteBackRest
{
my $strCommand = shift;
my $bSuppressError = shift;
2014-06-24 01:54:00 +03:00
$strCommand = "ssh ${strCommonUserBackRest}\@${strCommonHost} '${strCommand}'";
2014-06-24 01:54:00 +03:00
BackRestTestCommon_Execute($strCommand, $bSuppressError);
}
####################################################################################################################################
2014-06-22 17:54:31 +03:00
# BackRestTestCommon_Setup
####################################################################################################################################
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_Setup
{
$strCommonStanza = "db";
2014-06-22 21:51:28 +03:00
$strCommonCommandMain = '/Users/dsteele/pg_backrest/bin/pg_backrest.pl';
$strCommonCommandRemote = '/Users/dsteele/pg_backrest/bin/pg_backrest_remote.pl';
$strCommonCommandPsql = '/Library/PostgreSQL/9.3/bin/psql -X %option%';
$strCommonHost = '127.0.0.1';
$strCommonUser = getpwuid($<);
$strCommonGroup = getgrgid($();
$strCommonUserBackRest = 'backrest';
2014-06-22 21:51:28 +03:00
$strCommonTestPath = dirname(abs_path($0)) . '/test';
$strCommonBackupPath = "${strCommonTestPath}/backrest";
$strCommonDbPath = "${strCommonTestPath}/db";
$strCommonDbCommonPath = "${strCommonTestPath}/db/common";
$iCommonDbPort = 6543;
}
2014-06-22 21:51:28 +03:00
####################################################################################################################################
# BackRestTestCommon_ConfigCreate
####################################################################################################################################
sub BackRestTestCommon_ConfigCreate
{
my $strFile = shift;
my $strLocal = shift;
2014-06-22 21:51:28 +03:00
my $strRemote = shift;
my $oParamHashRef = shift;
2014-06-24 01:54:00 +03:00
2014-06-22 21:51:28 +03:00
my %oParamHash;
tie %oParamHash, 'Config::IniFiles';
$oParamHash{'global:command'}{'remote'} = $strCommonCommandRemote;
$oParamHash{'global:command'}{'psql'} = $strCommonCommandPsql;
if (defined($strRemote) && $strRemote eq REMOTE_BACKUP)
{
$oParamHash{'global:backup'}{'host'} = $strCommonHost;
$oParamHash{'global:backup'}{'user'} = $strCommonUserBackRest;
}
elsif (defined($strRemote) && $strRemote eq REMOTE_DB)
{
$oParamHash{$strCommonStanza}{'host'} = $strCommonHost;
$oParamHash{$strCommonStanza}{'user'} = $strCommonUser;
}
2014-06-24 01:54:00 +03:00
if ($strLocal eq REMOTE_BACKUP)
{
2014-06-22 21:51:28 +03:00
$oParamHash{'db:command:option'}{'psql'} = "--port=${iCommonDbPort}";
}
elsif ($strLocal eq REMOTE_DB)
{
}
else
{
confess "invalid local type ${strLocal}";
}
2014-06-22 21:51:28 +03:00
2014-06-24 01:54:00 +03:00
$oParamHash{$strCommonStanza}{'path'} = $strCommonDbCommonPath;
2014-06-22 21:51:28 +03:00
$oParamHash{'global:backup'}{'path'} = $strCommonBackupPath;
$oParamHash{'global:backup'}{'thread-max'} = '8';
2014-06-24 01:54:00 +03:00
$oParamHash{'global:log'}{'level-console'} = 'debug';
$oParamHash{'global:log'}{'level-file'} = 'trace';
2014-06-22 21:51:28 +03:00
tied(%oParamHash)->WriteConfig($strFile) or die "could not write config file ${strFile}";
2014-06-24 01:54:00 +03:00
2014-06-22 21:51:28 +03:00
chmod(0770, $strFile) or die "unable to set permissions for ${strFile}";
}
####################################################################################################################################
# Get Methods
####################################################################################################################################
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_StanzaGet
{
return $strCommonStanza;
}
2014-06-22 21:51:28 +03:00
sub BackRestTestCommon_CommandMainGet
{
return $strCommonCommandMain;
}
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_CommandRemoteGet
{
return $strCommonCommandRemote;
}
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_HostGet
{
return $strCommonHost;
}
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_UserGet
{
return $strCommonUser;
}
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_GroupGet
{
return $strCommonGroup;
}
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_UserBackRestGet
{
return $strCommonUserBackRest;
}
2014-06-22 17:54:31 +03:00
sub BackRestTestCommon_TestPathGet
{
return $strCommonTestPath;
}
2014-06-22 21:51:28 +03:00
sub BackRestTestCommon_BackupPathGet
{
return $strCommonBackupPath;
}
sub BackRestTestCommon_DbPathGet
{
return $strCommonDbPath;
}
sub BackRestTestCommon_DbCommonPathGet
{
return $strCommonDbCommonPath;
}
sub BackRestTestCommon_DbPortGet
{
return $iCommonDbPort;
}
1;