|
2 | 2 | importunittest |
3 | 3 | fromdatetimeimportdatetime,timedelta |
4 | 4 | from .helpers.ptrack_helpersimportProbackupTest |
| 5 | +fromtimeimportsleep |
5 | 6 |
|
6 | 7 |
|
7 | 8 | module_name='retention' |
@@ -1233,4 +1234,46 @@ def test_window_error_backups(self): |
1233 | 1234 | backup_dir,'node',node,backup_type='page') |
1234 | 1235 |
|
1235 | 1236 | # Change FULLb backup status to ERROR |
1236 | | -# self.change_backup_status(backup_dir, 'node', backup_id_b, 'ERROR') |
| 1237 | +self.change_backup_status(backup_dir,'node',backup_id_b,'ERROR') |
| 1238 | + |
| 1239 | +deftest_retention_redundancy_overlapping_chains(self): |
| 1240 | +"""""" |
| 1241 | +fname=self.id().split('.')[3] |
| 1242 | +node=self.make_simple_node( |
| 1243 | +base_dir=os.path.join(module_name,fname,'node'), |
| 1244 | +initdb_params=['--data-checksums']) |
| 1245 | + |
| 1246 | +backup_dir=os.path.join(self.tmp_path,module_name,fname,'backup') |
| 1247 | +self.init_pb(backup_dir) |
| 1248 | +self.add_instance(backup_dir,'node',node) |
| 1249 | +self.set_archiving(backup_dir,'node',node) |
| 1250 | +node.slow_start() |
| 1251 | + |
| 1252 | +self.set_config( |
| 1253 | +backup_dir,'node',options=['--retention-redundancy=1']) |
| 1254 | + |
| 1255 | +# Make backups to be purged |
| 1256 | +self.backup_node(backup_dir,'node',node) |
| 1257 | +self.backup_node(backup_dir,'node',node,backup_type="page") |
| 1258 | + |
| 1259 | +# Make backups to be keeped |
| 1260 | +gdb=self.backup_node(backup_dir,'node',node,gdb=True) |
| 1261 | +gdb.set_breakpoint('backup_files') |
| 1262 | +gdb.run_until_break() |
| 1263 | + |
| 1264 | +sleep(1) |
| 1265 | + |
| 1266 | +self.backup_node(backup_dir,'node',node,backup_type="page") |
| 1267 | + |
| 1268 | +gdb.remove_all_breakpoints() |
| 1269 | +gdb.continue_execution_until_exit() |
| 1270 | + |
| 1271 | +self.backup_node(backup_dir,'node',node,backup_type="page") |
| 1272 | + |
| 1273 | +# Purge backups |
| 1274 | +log=self.delete_expired( |
| 1275 | +backup_dir,'node',options=['--expired','--wal']) |
| 1276 | +self.assertEqual(len(self.show_pb(backup_dir,'node')),2) |
| 1277 | + |
| 1278 | +# Clean after yourself |
| 1279 | +self.del_test_dir(module_name,fname) |