Skip to content

Commit 351ce4a

Browse files
committed
set default recovery target to pause, minor fixes for help, tests coverage
1 parent c8147f7 commit 351ce4a

File tree

7 files changed

+596
-217
lines changed

7 files changed

+596
-217
lines changed

src/help.c

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,12 @@ help_pg_probackup(void)
119119
printf(_(" [--timeline=timeline] [-T OLDDIR=NEWDIR]\n"));
120120
printf(_(" [--immediate] [--recovery-target-name=target-name]\n"));
121121
printf(_(" [--recovery-target-action=pause|promote|shutdown]\n"));
122-
printf(_(" [--write-recovery-conf]\n"));
122+
printf(_(" [--restore-as-replica]\n"));
123123

124124
printf(_("\n %s validate -B backup-dir [--instance=instance_name]\n"), PROGRAM_NAME);
125125
printf(_(" [-i backup-id] [--progress]\n"));
126126
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
127127
printf(_(" [--timeline=timeline]\n"));
128-
printf(_(" [--immediate] [--recovery-target-name=target-name]\n"));
129-
printf(_(" [--recovery-target-action=pause|promote|shutdown]\n"));
130128

131129
printf(_("\n %s show -B backup-dir\n"), PROGRAM_NAME);
132130
printf(_(" [--instance=instance_name [-i backup-id]]\n"));
@@ -266,8 +264,8 @@ help_restore(void)
266264
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
267265
printf(_(" [--timeline=timeline] [-T OLDDIR=NEWDIR]\n"));
268266
printf(_(" [--immediate] [--recovery-target-name=target-name]\n"));
269-
printf(_(" [--recovery-target-action=pause|promote|shutdown]\n\n"));
270-
printf(_(" [--write-recovery-conf]\n"));
267+
printf(_(" [--recovery-target-action=pause|promote|shutdown]\n"));
268+
printf(_(" [--restore-as-replica]\n\n"));
271269

272270
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
273271
printf(_(" --instance=instance_name name of the instance\n"));
@@ -288,8 +286,9 @@ help_restore(void)
288286
printf(_(" the named restore point to which recovery will proceed\n"));
289287
printf(_(" --recovery-target-action=pause|promote|shutdown\n"));
290288
printf(_(" action the server should take once the recovery target is reached\n"));
289+
printf(_(" (default: pause)\n"));
291290

292-
printf(_(" -R, --write-recovery-conf write a minimal recovery.conf in the output directory\n"));
291+
printf(_(" -R, --restore-as-replica write a minimal recovery.conf in the output directory\n"));
293292
printf(_(" to ease setting up a standby server\n"));
294293

295294
printf(_("\n Logging options:\n"));
@@ -320,9 +319,7 @@ help_validate(void)
320319
printf(_("%s validate -B backup-dir [--instance=instance_name]\n"), PROGRAM_NAME);
321320
printf(_(" [-i backup-id] [--progress]\n"));
322321
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
323-
printf(_(" [--timeline=timeline]\n"));
324-
printf(_(" [--immediate] [--recovery-target-name=target-name]\n"));
325-
printf(_(" [--recovery-target-action=pause|promote|shutdown]\n\n"));
322+
printf(_(" [--timeline=timeline]\n\n"));
326323

327324
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
328325
printf(_(" --instance=instance_name name of the instance\n"));
@@ -334,12 +331,6 @@ help_validate(void)
334331
printf(_(" --inclusive=boolean whether we stop just after the recovery target\n"));
335332
printf(_(" --timeline=timeline recovering into a particular timeline\n"));
336333

337-
printf(_(" --immediate end recovery as soon as a consistent state is reached\n"));
338-
printf(_(" --recovery-target-name=target-name\n"));
339-
printf(_(" the named restore point to which recovery will proceed\n"));
340-
printf(_(" --recovery-target-action=pause|promote|shutdown\n"));
341-
printf(_(" action the server should take once the recovery target is reached\n"));
342-
343334
printf(_("\n Logging options:\n"));
344335
printf(_(" --log-level-console=log-level-console\n"));
345336
printf(_(" level for console logging (default: info)\n"));

src/pg_probackup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ static pgut_option options[] =
142142
{ 'b', 24, "immediate", &target_immediate, SOURCE_CMDLINE },
143143
{ 's', 25, "recovery-target-name", &target_name, SOURCE_CMDLINE },
144144
{ 's', 26, "recovery-target-action", &target_action, SOURCE_CMDLINE },
145-
{ 'b', 'R', "write-recovery-conf", &restore_as_replica, SOURCE_CMDLINE },
145+
{ 'b', 'R', "restore-as-replica", &restore_as_replica, SOURCE_CMDLINE },
146146
/* delete options */
147147
{ 'b', 130, "wal", &delete_wal, SOURCE_CMDLINE },
148148
{ 'b', 131, "expired", &delete_expired, SOURCE_CMDLINE },

src/restore.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,6 +1079,11 @@ parseRecoveryTargetOptions(const char *target_time,
10791079
&& (strcmp(target_action, "shutdown") != 0))
10801080
elog(ERROR, "Invalid value of --recovery-target-action option %s", target_action);
10811081
}
1082+
else
1083+
{
1084+
/* Default recovery target action is pause */
1085+
rt->recovery_target_action = "pause";
1086+
}
10821087

10831088
/* More than one mutually exclusive option was defined. */
10841089
if (recovery_target_specified > 1)

tests/archive.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,12 @@ def test_pgpro434_1(self):
7676
self.del_test_dir(module_name, fname)
7777

7878
# @unittest.skip("skip")
79-
@unittest.expectedFailure
79+
# @unittest.expectedFailure
8080
def test_pgpro434_2(self):
81-
"""Check that timelines are correct. WAITING PGPRO-1053 for --immediate. replace time"""
81+
"""
82+
Check that timelines are correct.
83+
WAITING PGPRO-1053 for --immediate
84+
"""
8285
fname = self.id().split('.')[3]
8386
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
8487
node = self.make_simple_node(
@@ -110,7 +113,9 @@ def test_pgpro434_2(self):
110113

111114
# SECOND TIMELIN
112115
node.cleanup()
113-
self.restore_node(backup_dir, 'node', node)
116+
self.restore_node(
117+
backup_dir, 'node', node,
118+
options=['--immediate', '--recovery-target-action=promote'])
114119
node.start()
115120
while node.safe_psql(
116121
"postgres",
@@ -134,8 +139,7 @@ def test_pgpro434_2(self):
134139
"from generate_series(100,200) i")
135140

136141
backup_id = self.backup_node(backup_dir, 'node', node)
137-
recovery_time = self.show_pb(
138-
backup_dir, 'node', backup_id)["recovery-time"]
142+
139143
node.safe_psql(
140144
"postgres",
141145
"insert into t_heap select 100502 as id, md5(i::text) as text, "
@@ -144,7 +148,9 @@ def test_pgpro434_2(self):
144148

145149
# THIRD TIMELINE
146150
node.cleanup()
147-
self.restore_node(backup_dir, 'node', node)
151+
self.restore_node(
152+
backup_dir, 'node', node,
153+
options=['--immediate', '--recovery-target-action=promote'])
148154
node.start()
149155
while node.safe_psql(
150156
"postgres",
@@ -164,8 +170,7 @@ def test_pgpro434_2(self):
164170
"from generate_series(200,300) i")
165171

166172
backup_id = self.backup_node(backup_dir, 'node', node)
167-
recovery_time = self.show_pb(
168-
backup_dir, 'node', backup_id)["recovery-time"]
173+
169174
result = node.safe_psql("postgres", "SELECT * FROM t_heap")
170175
node.safe_psql(
171176
"postgres",
@@ -175,7 +180,9 @@ def test_pgpro434_2(self):
175180

176181
# FOURTH TIMELINE
177182
node.cleanup()
178-
self.restore_node(backup_dir, 'node', node)
183+
self.restore_node(
184+
backup_dir, 'node', node,
185+
options=['--immediate', '--recovery-target-action=promote'])
179186
node.start()
180187
while node.safe_psql(
181188
"postgres",
@@ -189,7 +196,9 @@ def test_pgpro434_2(self):
189196

190197
# FIFTH TIMELINE
191198
node.cleanup()
192-
self.restore_node(backup_dir, 'node', node)
199+
self.restore_node(
200+
backup_dir, 'node', node,
201+
options=['--immediate', '--recovery-target-action=promote'])
193202
node.start()
194203
while node.safe_psql(
195204
"postgres", "select pg_is_in_recovery()") == 't\n':
@@ -202,7 +211,9 @@ def test_pgpro434_2(self):
202211

203212
# SIXTH TIMELINE
204213
node.cleanup()
205-
self.restore_node(backup_dir, 'node', node)
214+
self.restore_node(
215+
backup_dir, 'node', node,
216+
options=['--immediate', '--recovery-target-action=promote'])
206217
node.start()
207218
while node.safe_psql(
208219
"postgres", "select pg_is_in_recovery()") == 't\n':

tests/ptrack.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from .helpers.ptrack_helpers import ProbackupTest, ProbackupException
44
from datetime import datetime, timedelta
55
import subprocess
6-
from testgres import ClusterTestgresException as ClusterException
76
from testgres import QueryException
87
import shutil
98
import sys

0 commit comments

Comments
 (0)