|
7 | 7 | fromtimeimportsleep
|
8 | 8 | fromdatetimeimportdatetime,timedelta
|
9 | 9 | importhashlib
|
| 10 | +importshutil |
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 | +deftest_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 | +ifself.get_version(node)<self.version_to_num('10.0'): |
| 2220 | +returnunittest.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) |