|
7 | 7 | from time import sleep
|
8 | 8 | from datetime import datetime, timedelta
|
9 | 9 | import hashlib
|
| 10 | +import shutil |
10 | 11 |
|
11 | 12 |
|
12 | 13 | module_name = 'restore'
|
@@ -2193,3 +2194,52 @@ def test_pg_11_group_access(self):
|
2193 | 2194 |
|
2194 | 2195 | # Clean after yourself
|
2195 | 2196 | self.del_test_dir(module_name, fname)
|
| 2197 | + |
| 2198 | + # @unittest.skip("skip") |
| 2199 | + def test_pg_10_waldir(self): |
| 2200 | + """ |
| 2201 | + test group access for PG >= 11 |
| 2202 | + """ |
| 2203 | + fname = self.id().split('.')[3] |
| 2204 | + wal_dir = os.path.join( |
| 2205 | + os.path.join(self.tmp_path, module_name, fname), 'wal_dir') |
| 2206 | + shutil.rmtree(wal_dir, ignore_errors=True) |
| 2207 | + node = self.make_simple_node( |
| 2208 | + base_dir=os.path.join(module_name, fname, 'node'), |
| 2209 | + set_replication=True, |
| 2210 | + initdb_params=[ |
| 2211 | + '--data-checksums', |
| 2212 | + '--waldir={0}'.format(wal_dir)]) |
| 2213 | + |
| 2214 | + backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup') |
| 2215 | + self.init_pb(backup_dir) |
| 2216 | + self.add_instance(backup_dir, 'node', node) |
| 2217 | + node.slow_start() |
| 2218 | + |
| 2219 | + if self.get_version(node) < self.version_to_num('10.0'): |
| 2220 | + return unittest.skip('You need PostgreSQL >= 10 for this test') |
| 2221 | + |
| 2222 | + # take FULL backup |
| 2223 | + self.backup_node( |
| 2224 | + backup_dir, 'node', node, options=['--stream']) |
| 2225 | + |
| 2226 | + pgdata = self.pgdata_content(node.data_dir) |
| 2227 | + |
| 2228 | + # restore backup |
| 2229 | + node_restored = self.make_simple_node( |
| 2230 | + base_dir=os.path.join(module_name, fname, 'node_restored')) |
| 2231 | + node_restored.cleanup() |
| 2232 | + |
| 2233 | + self.restore_node( |
| 2234 | + backup_dir, 'node', node_restored) |
| 2235 | + |
| 2236 | + # compare pgdata permissions |
| 2237 | + pgdata_restored = self.pgdata_content(node_restored.data_dir) |
| 2238 | + self.compare_pgdata(pgdata, pgdata_restored) |
| 2239 | + |
| 2240 | + self.assertTrue( |
| 2241 | + os.path.islink(os.path.join(node_restored.data_dir, 'pg_wal')), |
| 2242 | + 'pg_wal should be symlink') |
| 2243 | + |
| 2244 | + # Clean after yourself |
| 2245 | + self.del_test_dir(module_name, fname) |
0 commit comments