You've already forked pgbackrest
							
							
				mirror of
				https://github.com/pgbackrest/pgbackrest.git
				synced 2025-10-30 23:37:45 +02:00 
			
		
		
		
	Add unimplemented S3 driver method required for archive-get.
This was not being caught because the integration tests for S3 were running remotely and going through the Perl code rather than the new C code. Implement the exists method for the S3 driver and add tests to prevent a regression. Reported by mibiio.
This commit is contained in:
		| @@ -159,6 +159,9 @@ sub run | ||||
|         # Test that the WAL was pushed | ||||
|         $self->archiveCheck($strSourceFile, $strArchiveChecksum, true); | ||||
|  | ||||
|         # Remove from archive_status | ||||
|         storageTest()->remove("${strWalPath}/archive_status/${strSourceFile}.ready"); | ||||
|  | ||||
|         # Remove WAL | ||||
|         storageTest()->remove("${strWalPath}/${strSourceFile}", {bIgnoreMissing => false}); | ||||
|  | ||||
| @@ -247,9 +250,29 @@ sub run | ||||
|         # Test that the WAL was pushed | ||||
|         $self->archiveCheck($strSourceFile, $strArchiveChecksum, true, $oHostDbMaster->spoolPath()); | ||||
|  | ||||
|         # Remove from archive_status | ||||
|         storageTest()->remove("${strWalPath}/archive_status/${strSourceFile}.ready"); | ||||
|  | ||||
|         # Remove from spool | ||||
|         storageTest()->remove($oHostDbMaster->spoolPath() . '/archive/' . $self->stanza() . "/out/${strSourceFile}.ok"); | ||||
|  | ||||
|         #--------------------------------------------------------------------------------------------------------------------------- | ||||
|         &log(INFO, '    push history file'); | ||||
|  | ||||
|         storageTest()->put("${strWalPath}/00000002.history", 'HISTORYDATA'); | ||||
|         storageTest()->put("${strWalPath}/archive_status/00000002.history.ready", undef); | ||||
|  | ||||
|         $oHostDbMaster->executeSimple( | ||||
|             "${strCommandPush} --archive-async ${strWalPath}/00000002.history", | ||||
|             {oLogTest => $self->expect()}); | ||||
|  | ||||
|         if (!storageRepo()->exists(STORAGE_REPO_ARCHIVE . qw{/} . PG_VERSION_94 . '-1/00000002.history')) | ||||
|         { | ||||
|             confess 'unable to find history file in archive'; | ||||
|         } | ||||
|  | ||||
|         storageTest()->remove("${strWalPath}/archive_status/00000002.history.ready"); | ||||
|  | ||||
|         #--------------------------------------------------------------------------------------------------------------------------- | ||||
|         &log(INFO, '    db version mismatch in db section only - archive-push errors but archive-get succeeds'); | ||||
|  | ||||
| @@ -374,6 +397,22 @@ sub run | ||||
|             confess "archive file '${strWalPath}/RECOVERYXLOG' is not in destination"; | ||||
|         } | ||||
|  | ||||
|         #--------------------------------------------------------------------------------------------------------------------------- | ||||
|         &log(INFO, "    get history file"); | ||||
|  | ||||
|         $oHostDbMaster->executeSimple( | ||||
|             $strCommandGet . " --archive-async 00000001.history ${strWalPath}/00000001.history", | ||||
|             {iExpectedExitStatus => 1, oLogTest => $self->expect()}); | ||||
|  | ||||
|         $oHostDbMaster->executeSimple( | ||||
|             $strCommandGet . " --archive-async 00000002.history ${strWalPath}/00000002.history", | ||||
|             {oLogTest => $self->expect()}); | ||||
|  | ||||
|         if (${storageDb()->get("${strWalPath}/00000002.history")} ne 'HISTORYDATA') | ||||
|         { | ||||
|             confess 'history contents do not match original'; | ||||
|         } | ||||
|  | ||||
|         #--------------------------------------------------------------------------------------------------------------------------- | ||||
|         &log(INFO, '    .partial WAL'); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user