mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
Revert a2dcdc07
.
It is simpler to implement the required logic in stanza-delete rather than add complexity to this function. Contributed by Cynthia Shang.
This commit is contained in:
parent
04646599a7
commit
6a89c1526e
@ -33,14 +33,6 @@
|
||||
|
||||
<p>Add Perl interface to C storage layer.</p>
|
||||
</release-item>
|
||||
|
||||
<release-item>
|
||||
<release-item-contributor-list>
|
||||
<release-item-contributor id="cynthia.shang"/>
|
||||
</release-item-contributor-list>
|
||||
|
||||
<p>Update <code>lockStopTest()</code> to optionally return a result rather than error.</p>
|
||||
</release-item>
|
||||
</release-development-list>
|
||||
</release-core-list>
|
||||
</release>
|
||||
|
@ -136,7 +136,7 @@ archiveGetFile(
|
||||
bool compressible = true;
|
||||
|
||||
// Test for stop file
|
||||
lockStopTest(false);
|
||||
lockStopTest();
|
||||
|
||||
MEM_CONTEXT_TEMP_BEGIN()
|
||||
{
|
||||
|
@ -266,7 +266,7 @@ cmdArchivePush(void)
|
||||
THROW(ParamRequiredError, "WAL segment to push required");
|
||||
|
||||
// Test for stop file
|
||||
lockStopTest(false);
|
||||
lockStopTest();
|
||||
|
||||
// Get the segment name
|
||||
String *walFile = walPath(strLstGet(commandParam, 0), cfgOptionStr(cfgOptPgPath), STR(cfgCommandName(cfgCommand())));
|
||||
@ -404,7 +404,7 @@ cmdArchivePushAsync(void)
|
||||
TRY_BEGIN()
|
||||
{
|
||||
// Test for stop file
|
||||
lockStopTest(false);
|
||||
lockStopTest();
|
||||
|
||||
// Get a list of WAL files that are ready for processing
|
||||
StringList *walFileList = archivePushProcessList(walPath);
|
||||
|
@ -26,32 +26,25 @@ lockStopFileName(const String *stanza)
|
||||
/***********************************************************************************************************************************
|
||||
Test for the existence of a stop file
|
||||
***********************************************************************************************************************************/
|
||||
bool
|
||||
lockStopTest(bool expectStanzaStop)
|
||||
void
|
||||
lockStopTest(void)
|
||||
{
|
||||
FUNCTION_LOG_BEGIN(logLevelDebug);
|
||||
FUNCTION_LOG_PARAM(BOOL, expectStanzaStop);
|
||||
FUNCTION_LOG_END();
|
||||
|
||||
bool result = false;
|
||||
FUNCTION_LOG_VOID(logLevelDebug);
|
||||
|
||||
MEM_CONTEXT_TEMP_BEGIN()
|
||||
{
|
||||
// Check the current stanza (if any)
|
||||
if (cfgOptionTest(cfgOptStanza))
|
||||
{
|
||||
result = storageExistsNP(storageLocal(), lockStopFileName(cfgOptionStr(cfgOptStanza)));
|
||||
|
||||
// If the stop file exists and is not expected then error
|
||||
if (result && !expectStanzaStop)
|
||||
if (storageExistsNP(storageLocal(), lockStopFileName(cfgOptionStr(cfgOptStanza))))
|
||||
THROW_FMT(StopError, "stop file exists for stanza %s", strPtr(cfgOptionStr(cfgOptStanza)));
|
||||
}
|
||||
|
||||
// If not looking for a specific stanza stop file, then check all stanzas
|
||||
if (!expectStanzaStop && storageExistsNP(storageLocal(), lockStopFileName(NULL)))
|
||||
// Check all stanzas
|
||||
if (storageExistsNP(storageLocal(), lockStopFileName(NULL)))
|
||||
THROW(StopError, "stop file exists for all stanzas");
|
||||
}
|
||||
MEM_CONTEXT_TEMP_END();
|
||||
|
||||
FUNCTION_LOG_RETURN(BOOL, result);
|
||||
FUNCTION_LOG_RETURN_VOID();
|
||||
}
|
||||
|
@ -10,6 +10,6 @@ Command Control
|
||||
Functions
|
||||
***********************************************************************************************************************************/
|
||||
String *lockStopFileName(const String *stanza);
|
||||
bool lockStopTest(bool expectStanzaStop);
|
||||
void lockStopTest(void);
|
||||
|
||||
#endif
|
||||
|
@ -40,7 +40,7 @@ testRun(void)
|
||||
strLstAddZ(argList, "start");
|
||||
harnessCfgLoad(strLstSize(argList), strLstPtr(argList));
|
||||
|
||||
TEST_RESULT_VOID(lockStopTest(false), "no stop files without stanza");
|
||||
TEST_RESULT_VOID(lockStopTest(), "no stop files without stanza");
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
argList = strLstNew();
|
||||
@ -50,16 +50,13 @@ testRun(void)
|
||||
strLstAddZ(argList, "start");
|
||||
harnessCfgLoad(strLstSize(argList), strLstPtr(argList));
|
||||
|
||||
TEST_RESULT_VOID(lockStopTest(false), "no stop files with stanza");
|
||||
TEST_RESULT_BOOL(lockStopTest(true), false, "no stop file and is expected for the stanza");
|
||||
TEST_RESULT_VOID(lockStopTest(), "no stop files with stanza");
|
||||
|
||||
storagePutNP(storageNewWriteNP(storageTest, strNew("all.stop")), NULL);
|
||||
TEST_ERROR(lockStopTest(false), StopError, "stop file exists for all stanzas");
|
||||
TEST_RESULT_BOOL(lockStopTest(true), false, "stop file exists for all stanzas but not the stanza");
|
||||
TEST_ERROR(lockStopTest(), StopError, "stop file exists for all stanzas");
|
||||
|
||||
storagePutNP(storageNewWriteNP(storageTest, strNew("db.stop")), NULL);
|
||||
TEST_ERROR(lockStopTest(false), StopError, "stop file exists for stanza db");
|
||||
TEST_RESULT_BOOL(lockStopTest(true), true, "stop file exists and is expected for the stanza");
|
||||
TEST_ERROR(lockStopTest(), StopError, "stop file exists for stanza db");
|
||||
}
|
||||
|
||||
FUNCTION_HARNESS_RESULT_VOID();
|
||||
|
Loading…
Reference in New Issue
Block a user