Skip to content

Commit 75a9878

Browse files
Update fix_container_permissions.py (#2)
* Update fix_container_permissions.py * Update setup.cfg * Update fix_container_permissions.py * Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update fix_container_permissions.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update fix_container_permissions.py --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent e6f95d3 commit 75a9878

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed
Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
1-
import os
21
import re
32
import subprocess
4-
import sys
3+
import argparse
54

6-
if len(sys.argv) != 2:
7-
print("Please use in form of 'python fix_containers.py foowiki'")
8-
sys.exit(1)
95

10-
wiki = sys.argv[1]
6+
def fix_container_perms(wiki: str) -> None:
7+
out = subprocess.run(['sudo', '-u', 'www-data', 'php', '/srv/mediawiki/1.41/maintenance/run.php', '/srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php', '--wiki', wiki], capture_output=True, text=True)
8+
matches = re.findall(r"Making sure 'mwstore:\/\/miraheze-swift\/([^']+)' [^\n]+\.failed\.", out.stdout)
9+
for match in matches:
10+
subprocess.run(['swift', 'post', '--read-acl', 'mw:media', '--write-acl', 'mw:media', f'miraheze-{wiki}-{match}'], check=True)
1111

12-
out = subprocess.run(['sudo', '-u', 'www-data', 'php', '/srv/mediawiki/1.41/maintenance/run.php', '/srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php', '--wiki', wiki], capture_output=True, text=True)
12+
subprocess.run(['sudo', '-u', 'www-data', 'php', '/srv/mediawiki/1.41/maintenance/run.php', '/srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php', '--wiki', wiki])
1313

14-
matches = re.findall(r"Making sure 'mwstore:\/\/miraheze-swift\/([^']+)' [^\n]+\.failed\.", out.stdout)
15-
for match in matches:
16-
os.system(f"swift post --read-acl 'mw:media' --write-acl 'mw:media' miraheze-{wiki}-{match}")
1714

18-
os.system(f'sudo -u www-data php /srv/mediawiki/1.41/maintenance/run.php /srv/mediawiki/1.41/extensions/CreateWiki/maintenance/setContainersAccess.php --wiki {wiki}')
15+
def main() -> None:
16+
parser = argparse.ArgumentParser(description='Fix container permissions for a specified wiki')
17+
parser.add_argument('--wiki', required=True, help='wiki database name')
18+
19+
args = parser.parse_args()
20+
fix_container_perms(args.wiki)
21+
22+
23+
if __name__ == '__main__':
24+
main()

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ python_requires = >=3.11
1313
console_scripts =
1414
partial-reset-wiki = miraheze.salt.mwcli.partial_reset_wiki:main
1515
rename-wiki = miraheze.salt.mwcli.rename_wiki:main
16+
fix-container-perms = miraheze.swift.fix_container_permissions:main

0 commit comments

Comments
 (0)