Skip to content

Commit 3d7b9f0

Browse files
authored
[PBCKP-258] fix multiple permission tests (revert a3ac7d5… (#527)
1 parent a58c183 commit 3d7b9f0

File tree

4 files changed

+41
-64
lines changed

4 files changed

+41
-64
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ env:
3737
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=archive
3838
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=REL_13_STABLE MODE=backup
3939
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=REL_13_STABLE MODE=catchup
40+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=REL_13_STABLE MODE=checkdb
4041
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=compression
4142
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=delta
4243
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_BRANCH=OFF MODE=locking
@@ -52,6 +53,7 @@ env:
5253
jobs:
5354
allow_failures:
5455
- if: env(PG_BRANCH) = master
56+
- if: env(PG_BRANCH) = REL_15_STABLE
5557
- if: env(PG_BRANCH) = REL9_5_STABLE
5658
# - if: env(MODE) IN (archive, backup, delta, locking, merge, replica, retention, restore)
5759

tests/backup.py

Lines changed: 18 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,8 +1889,7 @@ def test_backup_with_least_privileges_role(self):
18891889
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_start_backup(text, boolean) TO backup; "
18901890
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_stop_backup() TO backup; "
18911891
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
1892-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
1893-
)
1892+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
18941893
# PG 9.6
18951894
elif self.get_version(node) > 90600 and self.get_version(node) < 100000:
18961895
node.safe_psql(
@@ -1928,9 +1927,7 @@ def test_backup_with_least_privileges_role(self):
19281927
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_xlog() TO backup; "
19291928
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_xlog_replay_location() TO backup; "
19301929
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
1931-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
1932-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
1933-
)
1930+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
19341931
# >= 10
19351932
else:
19361933
node.safe_psql(
@@ -1967,9 +1964,7 @@ def test_backup_with_least_privileges_role(self):
19671964
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup; "
19681965
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; "
19691966
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
1970-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
1971-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
1972-
)
1967+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
19731968

19741969
if self.ptrack:
19751970
node.safe_psql(
@@ -1982,10 +1977,10 @@ def test_backup_with_least_privileges_role(self):
19821977
"GRANT EXECUTE ON FUNCTION ptrack.ptrack_init_lsn() TO backup;")
19831978

19841979
if ProbackupTest.enterprise:
1985-
19861980
node.safe_psql(
19871981
"backupdb",
1988-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup")
1982+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup; "
1983+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;")
19891984

19901985
# FULL backup
19911986
self.backup_node(
@@ -2245,7 +2240,6 @@ def test_backup_with_less_privileges_role(self):
22452240
if self.get_version(node) < 90600:
22462241
node.safe_psql(
22472242
'backupdb',
2248-
"BEGIN; "
22492243
"CREATE ROLE backup WITH LOGIN; "
22502244
"GRANT USAGE ON SCHEMA pg_catalog TO backup; "
22512245
"GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup; "
@@ -2256,14 +2250,11 @@ def test_backup_with_less_privileges_role(self):
22562250
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_xlog() TO backup; "
22572251
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup; "
22582252
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
2259-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup; "
2260-
"COMMIT;"
2261-
)
2253+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
22622254
# PG 9.6
22632255
elif self.get_version(node) > 90600 and self.get_version(node) < 100000:
22642256
node.safe_psql(
22652257
'backupdb',
2266-
"BEGIN; "
22672258
"CREATE ROLE backup WITH LOGIN; "
22682259
"GRANT USAGE ON SCHEMA pg_catalog TO backup; "
22692260
"GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup; "
@@ -2275,14 +2266,11 @@ def test_backup_with_less_privileges_role(self):
22752266
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_xlog_replay_location() TO backup; "
22762267
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup; "
22772268
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
2278-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup; "
2279-
"COMMIT;"
2280-
)
2269+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
22812270
# >= 10
22822271
else:
22832272
node.safe_psql(
22842273
'backupdb',
2285-
"BEGIN; "
22862274
"CREATE ROLE backup WITH LOGIN; "
22872275
"GRANT USAGE ON SCHEMA pg_catalog TO backup; "
22882276
"GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup; "
@@ -2294,9 +2282,7 @@ def test_backup_with_less_privileges_role(self):
22942282
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; "
22952283
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current() TO backup; "
22962284
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
2297-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup; "
2298-
"COMMIT;"
2299-
)
2285+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
23002286

23012287
# enable STREAM backup
23022288
node.safe_psql(
@@ -3067,9 +3053,7 @@ def test_missing_replication_permission(self):
30673053
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_xlog() TO backup; "
30683054
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_xlog_replay_location() TO backup; "
30693055
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3070-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3071-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
3072-
)
3056+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
30733057
# >= 10
30743058
else:
30753059
node.safe_psql(
@@ -3091,15 +3075,14 @@ def test_missing_replication_permission(self):
30913075
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup; "
30923076
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; "
30933077
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3094-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3095-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
3096-
)
3078+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
30973079

30983080
if ProbackupTest.enterprise:
30993081
node.safe_psql(
31003082
"backupdb",
3101-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup")
3102-
3083+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup; "
3084+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;")
3085+
31033086
sleep(2)
31043087
replica.promote()
31053088

@@ -3177,8 +3160,7 @@ def test_missing_replication_permission_1(self):
31773160
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_start_backup(text, boolean) TO backup; "
31783161
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_stop_backup() TO backup; "
31793162
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3180-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3181-
)
3163+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
31823164
# PG 9.6
31833165
elif self.get_version(node) > 90600 and self.get_version(node) < 100000:
31843166
node.safe_psql(
@@ -3201,9 +3183,7 @@ def test_missing_replication_permission_1(self):
32013183
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_xlog() TO backup; "
32023184
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_xlog_replay_location() TO backup; "
32033185
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3204-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3205-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
3206-
)
3186+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
32073187
# >= 10
32083188
else:
32093189
node.safe_psql(
@@ -3225,15 +3205,13 @@ def test_missing_replication_permission_1(self):
32253205
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup; "
32263206
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; "
32273207
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3228-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3229-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
3230-
3231-
)
3208+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
32323209

32333210
if ProbackupTest.enterprise:
32343211
node.safe_psql(
32353212
"backupdb",
3236-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup")
3213+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup; "
3214+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;")
32373215

32383216
replica.promote()
32393217

tests/checkdb.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -666,8 +666,8 @@ def test_checkdb_with_least_privileges(self):
666666
'GRANT EXECUTE ON FUNCTION pg_catalog.pg_is_in_recovery() TO backup; '
667667
'GRANT EXECUTE ON FUNCTION pg_catalog.string_to_array(text, text) TO backup; '
668668
'GRANT EXECUTE ON FUNCTION pg_catalog.array_position(anyarray, anyelement) TO backup; '
669-
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;' # amcheck-next function
670-
)
669+
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;') # amcheck-next function
670+
671671
# PG 9.6
672672
elif self.get_version(node) > 90600 and self.get_version(node) < 100000:
673673
node.safe_psql(
@@ -696,9 +696,8 @@ def test_checkdb_with_least_privileges(self):
696696
'GRANT EXECUTE ON FUNCTION pg_catalog.string_to_array(text, text) TO backup; '
697697
'GRANT EXECUTE ON FUNCTION pg_catalog.array_position(anyarray, anyelement) TO backup; '
698698
# 'GRANT EXECUTE ON FUNCTION bt_index_check(regclass) TO backup; '
699-
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;'
700-
'GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup; '
701-
)
699+
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;')
700+
702701
# PG 10
703702
elif self.get_version(node) > 100000 and self.get_version(node) < 110000:
704703
node.safe_psql(
@@ -726,10 +725,8 @@ def test_checkdb_with_least_privileges(self):
726725
'GRANT EXECUTE ON FUNCTION pg_catalog.pg_control_system() TO backup; '
727726
'GRANT EXECUTE ON FUNCTION pg_catalog.string_to_array(text, text) TO backup; '
728727
'GRANT EXECUTE ON FUNCTION pg_catalog.array_position(anyarray, anyelement) TO backup;'
729-
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass) TO backup; '
730-
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;'
731-
'GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup; '
732-
)
728+
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass) TO backup;')
729+
733730
if ProbackupTest.enterprise:
734731
# amcheck-1.1
735732
node.safe_psql(
@@ -768,9 +765,8 @@ def test_checkdb_with_least_privileges(self):
768765
'GRANT EXECUTE ON FUNCTION pg_catalog.string_to_array(text, text) TO backup; '
769766
'GRANT EXECUTE ON FUNCTION pg_catalog.array_position(anyarray, anyelement) TO backup; '
770767
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass) TO backup; '
771-
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;'
772-
'GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup; '
773-
)
768+
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;')
769+
774770
# checkunique parameter
775771
if ProbackupTest.enterprise:
776772
if (self.get_version(node) >= 111300 and self.get_version(node) < 120000
@@ -807,15 +803,20 @@ def test_checkdb_with_least_privileges(self):
807803
'GRANT EXECUTE ON FUNCTION pg_catalog.string_to_array(text, text) TO backup; '
808804
'GRANT EXECUTE ON FUNCTION pg_catalog.array_position(anycompatiblearray, anycompatible) TO backup; '
809805
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass) TO backup; '
810-
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;'
811-
'GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup; '
812-
)
806+
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup;')
807+
813808
# checkunique parameter
814809
if ProbackupTest.enterprise:
815810
node.safe_psql(
816811
"backupdb",
817812
"GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool, bool) TO backup")
818813

814+
if ProbackupTest.enterprise:
815+
node.safe_psql(
816+
'backupdb',
817+
'GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup; '
818+
'GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;')
819+
819820
# checkdb
820821
try:
821822
self.checkdb_node(

tests/restore.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3230,8 +3230,7 @@ def test_missing_database_map(self):
32303230
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_start_backup(text, boolean) TO backup; "
32313231
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_stop_backup() TO backup; "
32323232
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3233-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3234-
)
3233+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
32353234
# PG 9.6
32363235
elif self.get_version(node) > 90600 and self.get_version(node) < 100000:
32373236
node.safe_psql(
@@ -3269,9 +3268,7 @@ def test_missing_database_map(self):
32693268
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_xlog() TO backup; "
32703269
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_xlog_replay_location() TO backup; "
32713270
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3272-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3273-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
3274-
)
3271+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
32753272
# >= 10
32763273
else:
32773274
node.safe_psql(
@@ -3307,9 +3304,7 @@ def test_missing_database_map(self):
33073304
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_switch_wal() TO backup; "
33083305
"GRANT EXECUTE ON FUNCTION pg_catalog.pg_last_wal_replay_lsn() TO backup; "
33093306
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_current_snapshot() TO backup; "
3310-
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;"
3311-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;"
3312-
)
3307+
"GRANT EXECUTE ON FUNCTION pg_catalog.txid_snapshot_xmax(txid_snapshot) TO backup;")
33133308

33143309
if self.ptrack:
33153310
# TODO why backup works without these grants ?
@@ -3326,7 +3321,8 @@ def test_missing_database_map(self):
33263321

33273322
node.safe_psql(
33283323
"backupdb",
3329-
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup")
3324+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_version() TO backup; "
3325+
"GRANT EXECUTE ON FUNCTION pg_catalog.pgpro_edition() TO backup;")
33303326

33313327
# FULL backup without database_map
33323328
backup_id = self.backup_node(

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy