1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-09 00:45:49 +02:00

JSON output from the info command is no longer pretty-printed.

Monitoring systems can more easily ingest the JSON without linefeeds.

External tools such as jq can be used to pretty-print if desired.
This commit is contained in:
Cynthia Shang
2019-10-11 12:56:03 -04:00
committed by David Steele
parent 2972580566
commit d90b2724f8
5 changed files with 336 additions and 335 deletions

View File

@ -36,7 +36,7 @@ testRun(void)
// No stanzas have been created
//--------------------------------------------------------------------------------------------------------------------------
TEST_RESULT_STR(strPtr(infoRender()), "[]\n", "json - repo but no stanzas");
TEST_RESULT_STR(strPtr(infoRender()), "[]", "json - repo but no stanzas");
harnessCfgLoad(cfgCmdInfo, argListText);
TEST_RESULT_STR(strPtr(infoRender()), "No stanzas exist in the repository.\n", "text - no stanzas");
@ -55,19 +55,19 @@ testRun(void)
harnessCfgLoad(cfgCmdInfo, argList);
TEST_RESULT_STR(strPtr(infoRender()),
"[\n"
" {\n"
" \"archive\" : [],\n"
" \"backup\" : [],\n"
" \"cipher\" : \"none\",\n"
" \"db\" : [],\n"
" \"name\" : \"stanza1\",\n"
" \"status\" : {\n"
" \"code\" : 3,\n"
" \"message\" : \"missing stanza data\"\n"
" }\n"
" }\n"
"]\n", "json - missing stanza data");
"["
"{"
"\"archive\":[],"
"\"backup\":[],"
"\"cipher\":\"none\","
"\"db\":[],"
"\"name\":\"stanza1\","
"\"status\":{"
"\"code\":3,"
"\"message\":\"missing stanza data\""
"}"
"}"
"]", "json - missing stanza data");
// backup.info file exists, but archive.info does not
//--------------------------------------------------------------------------------------------------------------------------
@ -129,39 +129,39 @@ testRun(void)
// archive section will cross reference backup db-id 2 to archive db-id 3 but db section will only use the db-ids from
// backup.info
TEST_RESULT_STR(strPtr(infoRender()),
"[\n"
" {\n"
" \"archive\" : [\n"
" {\n"
" \"database\" : {\n"
" \"id\" : 2\n"
" },\n"
" \"id\" : \"9.4-3\",\n"
" \"max\" : null,\n"
" \"min\" : null\n"
" }\n"
" ],\n"
" \"backup\" : [],\n"
" \"cipher\" : \"aes-256-cbc\",\n"
" \"db\" : [\n"
" {\n"
" \"id\" : 1,\n"
" \"system-id\" : 6569239123849665666,\n"
" \"version\" : \"9.3\"\n"
" },\n"
" {\n"
" \"id\" : 2,\n"
" \"system-id\" : 6569239123849665679,\n"
" \"version\" : \"9.4\"\n"
" }\n"
" ],\n"
" \"name\" : \"stanza1\",\n"
" \"status\" : {\n"
" \"code\" : 2,\n"
" \"message\" : \"no valid backups\"\n"
" }\n"
" }\n"
"]\n", "json - single stanza, no valid backups");
"["
"{"
"\"archive\":["
"{"
"\"database\":{"
"\"id\":2"
"},"
"\"id\":\"9.4-3\","
"\"max\":null,"
"\"min\":null"
"}"
"],"
"\"backup\":[],"
"\"cipher\":\"aes-256-cbc\","
"\"db\":["
"{"
"\"id\":1,"
"\"system-id\":6569239123849665666,"
"\"version\":\"9.3\""
"},"
"{"
"\"id\":2,"
"\"system-id\":6569239123849665679,"
"\"version\":\"9.4\""
"}"
"],"
"\"name\":\"stanza1\","
"\"status\":{"
"\"code\":2,"
"\"message\":\"no valid backups\""
"}"
"}"
"]", "json - single stanza, no valid backups");
harnessCfgLoad(cfgCmdInfo, argListText);
TEST_RESULT_STR(strPtr(infoRender()),
@ -250,82 +250,82 @@ testRun(void)
harnessInfoChecksum(content)), "put backup info to file");
TEST_RESULT_STR(strPtr(infoRender()),
"[\n"
" {\n"
" \"archive\" : [\n"
" {\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"id\" : \"9.4-1\",\n"
" \"max\" : \"000000020000000000000003\",\n"
" \"min\" : \"000000010000000000000002\"\n"
" },\n"
" {\n"
" \"database\" : {\n"
" \"id\" : 3\n"
" },\n"
" \"id\" : \"9.4-3\",\n"
" \"max\" : null,\n"
" \"min\" : null\n"
" }\n"
" ],\n"
" \"backup\" : [\n"
" {\n"
" \"archive\" : {\n"
" \"start\" : null,\n"
" \"stop\" : null\n"
" },\n"
" \"backrest\" : {\n"
" \"format\" : 5,\n"
" \"version\" : \"2.04\"\n"
" },\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"info\" : {\n"
" \"delta\" : 26897030,\n"
" \"repository\" : {\n"
" \"delta\" : 3159,\n"
" \"size\" : 3159776\n"
" },\n"
" \"size\" : 26897030\n"
" },\n"
" \"label\" : \"20181116-154756F\",\n"
" \"prior\" : null,\n"
" \"reference\" : null,\n"
" \"timestamp\" : {\n"
" \"start\" : 1542383276,\n"
" \"stop\" : 1542383289\n"
" },\n"
" \"type\" : \"full\"\n"
" }\n"
" ],\n"
" \"cipher\" : \"none\",\n"
" \"db\" : [\n"
" {\n"
" \"id\" : 1,\n"
" \"system-id\" : 6569239123849665679,\n"
" \"version\" : \"9.4\"\n"
" },\n"
" {\n"
" \"id\" : 2,\n"
" \"system-id\" : 6569239123849665666,\n"
" \"version\" : \"9.3\"\n"
" },\n"
" {\n"
" \"id\" : 3,\n"
" \"system-id\" : 6569239123849665679,\n"
" \"version\" : \"9.4\"\n"
" }\n"
" ],\n"
" \"name\" : \"stanza1\",\n"
" \"status\" : {\n"
" \"code\" : 0,\n"
" \"message\" : \"ok\"\n"
" }\n"
" }\n"
"]\n", "json - single stanza, valid backup, no priors, no archives in latest DB");
"["
"{"
"\"archive\":["
"{"
"\"database\":{"
"\"id\":1"
"},"
"\"id\":\"9.4-1\","
"\"max\":\"000000020000000000000003\","
"\"min\":\"000000010000000000000002\""
"},"
"{"
"\"database\":{"
"\"id\":3"
"},"
"\"id\":\"9.4-3\","
"\"max\":null,"
"\"min\":null"
"}"
"],"
"\"backup\":["
"{"
"\"archive\":{"
"\"start\":null,"
"\"stop\":null"
"},"
"\"backrest\":{"
"\"format\":5,"
"\"version\":\"2.04\""
"},"
"\"database\":{"
"\"id\":1"
"},"
"\"info\":{"
"\"delta\":26897030,"
"\"repository\":{"
"\"delta\":3159,"
"\"size\":3159776"
"},"
"\"size\":26897030"
"},"
"\"label\":\"20181116-154756F\","
"\"prior\":null,"
"\"reference\":null,"
"\"timestamp\":{"
"\"start\":1542383276,"
"\"stop\":1542383289"
"},"
"\"type\":\"full\""
"}"
"],"
"\"cipher\":\"none\","
"\"db\":["
"{"
"\"id\":1,"
"\"system-id\":6569239123849665679,"
"\"version\":\"9.4\""
"},"
"{"
"\"id\":2,"
"\"system-id\":6569239123849665666,"
"\"version\":\"9.3\""
"},"
"{"
"\"id\":3,"
"\"system-id\":6569239123849665679,"
"\"version\":\"9.4\""
"}"
"],"
"\"name\":\"stanza1\","
"\"status\":{"
"\"code\":0,"
"\"message\":\"ok\""
"}"
"}"
"]", "json - single stanza, valid backup, no priors, no archives in latest DB");
harnessCfgLoad(cfgCmdInfo, argListText);
TEST_RESULT_STR(strPtr(infoRender()),
@ -575,166 +575,166 @@ testRun(void)
harnessCfgLoad(cfgCmdInfo, argList);
TEST_RESULT_STR(strPtr(infoRender()),
"[\n"
" {\n"
" \"archive\" : [\n"
" {\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"id\" : \"9.4-1\",\n"
" \"max\" : \"000000020000000000000003\",\n"
" \"min\" : \"000000010000000000000002\"\n"
" },\n"
" {\n"
" \"database\" : {\n"
" \"id\" : 2\n"
" },\n"
" \"id\" : \"9.5-2\",\n"
" \"max\" : null,\n"
" \"min\" : null\n"
" }\n"
" ],\n"
" \"backup\" : [\n"
" {\n"
" \"archive\" : {\n"
" \"start\" : \"000000010000000000000002\",\n"
" \"stop\" : \"000000010000000000000002\"\n"
" },\n"
" \"backrest\" : {\n"
" \"format\" : 5,\n"
" \"version\" : \"2.08dev\"\n"
" },\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"info\" : {\n"
" \"delta\" : 20162900,\n"
" \"repository\" : {\n"
" \"delta\" : 2369186,\n"
" \"size\" : 2369186\n"
" },\n"
" \"size\" : 20162900\n"
" },\n"
" \"label\" : \"20181119-152138F\",\n"
" \"prior\" : null,\n"
" \"reference\" : null,\n"
" \"timestamp\" : {\n"
" \"start\" : 1542640898,\n"
" \"stop\" : 1542640911\n"
" },\n"
" \"type\" : \"full\"\n"
" },\n"
" {\n"
" \"archive\" : {\n"
" \"start\" : \"000000010000000000000003\",\n"
" \"stop\" : \"000000010000000000000003\"\n"
" },\n"
" \"backrest\" : {\n"
" \"format\" : 5,\n"
" \"version\" : \"2.08dev\"\n"
" },\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"info\" : {\n"
" \"delta\" : 8428,\n"
" \"repository\" : {\n"
" \"delta\" : 346,\n"
" \"size\" : 2369186\n"
" },\n"
" \"size\" : 20162900\n"
" },\n"
" \"label\" : \"20181119-152138F_20181119-152152D\",\n"
" \"prior\" : \"20181119-152138F\",\n"
" \"reference\" : [\n"
" \"20181119-152138F\"\n"
" ],\n"
" \"timestamp\" : {\n"
" \"start\" : 1542640912,\n"
" \"stop\" : 1542640915\n"
" },\n"
" \"type\" : \"diff\"\n"
" },\n"
" {\n"
" \"archive\" : {\n"
" \"start\" : \"000000010000000000000003\",\n"
" \"stop\" : null\n"
" },\n"
" \"backrest\" : {\n"
" \"format\" : 5,\n"
" \"version\" : \"2.08dev\"\n"
" },\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"info\" : {\n"
" \"delta\" : 8428,\n"
" \"repository\" : {\n"
" \"delta\" : 346,\n"
" \"size\" : 2369186\n"
" },\n"
" \"size\" : 20162900\n"
" },\n"
" \"label\" : \"20181119-152138F_20181119-152152I\",\n"
" \"prior\" : \"20181119-152138F_20181119-152152D\",\n"
" \"reference\" : [\n"
" \"20181119-152138F\",\n"
" \"20181119-152138F_20181119-152152D\"\n"
" ],\n"
" \"timestamp\" : {\n"
" \"start\" : 1542640912,\n"
" \"stop\" : 1542640915\n"
" },\n"
" \"type\" : \"incr\"\n"
" }\n"
" ],\n"
" \"cipher\" : \"none\",\n"
" \"db\" : [\n"
" {\n"
" \"id\" : 1,\n"
" \"system-id\" : 6625592122879095702,\n"
" \"version\" : \"9.4\"\n"
" },\n"
" {\n"
" \"id\" : 2,\n"
" \"system-id\" : 6626363367545678089,\n"
" \"version\" : \"9.5\"\n"
" }\n"
" ],\n"
" \"name\" : \"stanza1\",\n"
" \"status\" : {\n"
" \"code\" : 0,\n"
" \"message\" : \"ok\"\n"
" }\n"
" },\n"
" {\n"
" \"archive\" : [\n"
" {\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"id\" : \"9.4-1\",\n"
" \"max\" : null,\n"
" \"min\" : null\n"
" }\n"
" ],\n"
" \"backup\" : [],\n"
" \"cipher\" : \"none\",\n"
" \"db\" : [\n"
" {\n"
" \"id\" : 1,\n"
" \"system-id\" : 6625633699176220261,\n"
" \"version\" : \"9.4\"\n"
" }\n"
" ],\n"
" \"name\" : \"stanza2\",\n"
" \"status\" : {\n"
" \"code\" : 2,\n"
" \"message\" : \"no valid backups\"\n"
" }\n"
" }\n"
"]\n", "json - multiple stanzas, one with valid backups, archives in latest DB");
"["
"{"
"\"archive\":["
"{"
"\"database\":{"
"\"id\":1"
"},"
"\"id\":\"9.4-1\","
"\"max\":\"000000020000000000000003\","
"\"min\":\"000000010000000000000002\""
"},"
"{"
"\"database\":{"
"\"id\":2"
"},"
"\"id\":\"9.5-2\","
"\"max\":null,"
"\"min\":null"
"}"
"],"
"\"backup\":["
"{"
"\"archive\":{"
"\"start\":\"000000010000000000000002\","
"\"stop\":\"000000010000000000000002\""
"},"
"\"backrest\":{"
"\"format\":5,"
"\"version\":\"2.08dev\""
"},"
"\"database\":{"
"\"id\":1"
"},"
"\"info\":{"
"\"delta\":20162900,"
"\"repository\":{"
"\"delta\":2369186,"
"\"size\":2369186"
"},"
"\"size\":20162900"
"},"
"\"label\":\"20181119-152138F\","
"\"prior\":null,"
"\"reference\":null,"
"\"timestamp\":{"
"\"start\":1542640898,"
"\"stop\":1542640911"
"},"
"\"type\":\"full\""
"},"
"{"
"\"archive\":{"
"\"start\":\"000000010000000000000003\","
"\"stop\":\"000000010000000000000003\""
"},"
"\"backrest\":{"
"\"format\":5,"
"\"version\":\"2.08dev\""
"},"
"\"database\":{"
"\"id\":1"
"},"
"\"info\":{"
"\"delta\":8428,"
"\"repository\":{"
"\"delta\":346,"
"\"size\":2369186"
"},"
"\"size\":20162900"
"},"
"\"label\":\"20181119-152138F_20181119-152152D\","
"\"prior\":\"20181119-152138F\","
"\"reference\":["
"\"20181119-152138F\""
"],"
"\"timestamp\":{"
"\"start\":1542640912,"
"\"stop\":1542640915"
"},"
"\"type\":\"diff\""
"},"
"{"
"\"archive\":{"
"\"start\":\"000000010000000000000003\","
"\"stop\":null"
"},"
"\"backrest\":{"
"\"format\":5,"
"\"version\":\"2.08dev\""
"},"
"\"database\":{"
"\"id\":1"
"},"
"\"info\":{"
"\"delta\":8428,"
"\"repository\":{"
"\"delta\":346,"
"\"size\":2369186"
"},"
"\"size\":20162900"
"},"
"\"label\":\"20181119-152138F_20181119-152152I\","
"\"prior\":\"20181119-152138F_20181119-152152D\","
"\"reference\":["
"\"20181119-152138F\","
"\"20181119-152138F_20181119-152152D\""
"],"
"\"timestamp\":{"
"\"start\":1542640912,"
"\"stop\":1542640915"
"},"
"\"type\":\"incr\""
"}"
"],"
"\"cipher\":\"none\","
"\"db\":["
"{"
"\"id\":1,"
"\"system-id\":6625592122879095702,"
"\"version\":\"9.4\""
"},"
"{"
"\"id\":2,"
"\"system-id\":6626363367545678089,"
"\"version\":\"9.5\""
"}"
"],"
"\"name\":\"stanza1\","
"\"status\":{"
"\"code\":0,"
"\"message\":\"ok\""
"}"
"},"
"{"
"\"archive\":["
"{"
"\"database\":{"
"\"id\":1"
"},"
"\"id\":\"9.4-1\","
"\"max\":null,"
"\"min\":null"
"}"
"],"
"\"backup\":[],"
"\"cipher\":\"none\","
"\"db\":["
"{"
"\"id\":1,"
"\"system-id\":6625633699176220261,"
"\"version\":\"9.4\""
"}"
"],"
"\"name\":\"stanza2\","
"\"status\":{"
"\"code\":2,"
"\"message\":\"no valid backups\""
"}"
"}"
"]", "json - multiple stanzas, one with valid backups, archives in latest DB");
harnessCfgLoad(cfgCmdInfo, argListText);
TEST_RESULT_STR(strPtr(infoRender()),
@ -918,17 +918,17 @@ testRun(void)
strLstAddZ(argList2, "--stanza=silly");
harnessCfgLoad(cfgCmdInfo, argList2);
TEST_RESULT_STR(strPtr(infoRender()),
"[\n"
" {\n"
" \"backup\" : [],\n"
" \"db\" : [],\n"
" \"name\" : \"silly\",\n"
" \"status\" : {\n"
" \"code\" : 1,\n"
" \"message\" : \"missing stanza path\"\n"
" }\n"
" }\n"
"]\n", "json - missing stanza path");
"["
"{"
"\"backup\":[],"
"\"db\":[],"
"\"name\":\"silly\","
"\"status\":{"
"\"code\":1,"
"\"message\":\"missing stanza path\""
"}"
"}"
"]", "json - missing stanza path");
StringList *argListText2 = strLstDup(argListText);
strLstAddZ(argListText2, "--stanza=silly");
@ -943,35 +943,34 @@ testRun(void)
strLstAddZ(argList, "--stanza=stanza2");
harnessCfgLoad(cfgCmdInfo, argList);
TEST_RESULT_STR(strPtr(infoRender()),
"[\n"
" {\n"
" \"archive\" : [\n"
" {\n"
" \"database\" : {\n"
" \"id\" : 1\n"
" },\n"
" \"id\" : \"9.4-1\",\n"
" \"max\" : null,\n"
" \"min\" : null\n"
" }\n"
" ],\n"
" \"backup\" : [],\n"
" \"cipher\" : \"none\",\n"
" \"db\" : [\n"
" {\n"
" \"id\" : 1,\n"
" \"system-id\" : 6625633699176220261,\n"
" \"version\" : \"9.4\"\n"
" }\n"
" ],\n"
" \"name\" : \"stanza2\",\n"
" \"status\" : {\n"
" \"code\" : 2,\n"
" \"message\" : \"no valid backups\"\n"
" }\n"
" }\n"
"]\n"
, "json - multiple stanzas - selected found");
"["
"{"
"\"archive\":["
"{"
"\"database\":{"
"\"id\":1"
"},"
"\"id\":\"9.4-1\","
"\"max\":null,"
"\"min\":null"
"}"
"],"
"\"backup\":[],"
"\"cipher\":\"none\","
"\"db\":["
"{"
"\"id\":1,"
"\"system-id\":6625633699176220261,"
"\"version\":\"9.4\""
"}"
"],"
"\"name\":\"stanza2\","
"\"status\":{"
"\"code\":2,"
"\"message\":\"no valid backups\""
"}"
"}"
"]", "json - multiple stanzas - selected found");
strLstAddZ(argListText, "--stanza=stanza2");
harnessCfgLoad(cfgCmdInfo, argListText);