mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Yoloattempt to try to cleanup some ugly os.system
This commit is contained in:
parent
3daac24443
commit
6c03cf2b11
6 changed files with 46 additions and 56 deletions
|
@ -45,6 +45,10 @@ from moulinette.utils.filesystem import (
|
|||
read_yaml,
|
||||
write_to_file,
|
||||
write_to_json,
|
||||
cp,
|
||||
rm,
|
||||
chown,
|
||||
chmod,
|
||||
)
|
||||
|
||||
from yunohost.utils import packages
|
||||
|
@ -643,15 +647,15 @@ def app_upgrade(app=[], url=None, file=None, force=False, no_safety_backup=False
|
|||
# Replace scripts and manifest and conf (if exists)
|
||||
# Move scripts and manifest to the right place
|
||||
for file_to_copy in APP_FILES_TO_COPY:
|
||||
os.system(f"rm -rf '{app_setting_path}/{file_to_copy}'")
|
||||
rm(f'{app_setting_path}/{file_to_copy}', recursive=True, force=True)
|
||||
if os.path.exists(os.path.join(extracted_app_folder, file_to_copy)):
|
||||
os.system(f"cp -R '{extracted_app_folder}/{file_to_copy}' '{app_setting_path}'")
|
||||
cp(f'{extracted_app_folder}/{file_to_copy}', f'{app_setting_path}/{file_to_copy}', recursive=True)
|
||||
|
||||
# Clean and set permissions
|
||||
shutil.rmtree(extracted_app_folder)
|
||||
os.system("chmod 600 %s" % app_setting_path)
|
||||
os.system("chmod 400 %s/settings.yml" % app_setting_path)
|
||||
os.system("chown -R root: %s" % app_setting_path)
|
||||
chmod(app_setting_path, 0o600)
|
||||
chmod(f"{app_setting_path}/settings.yml", 0o400)
|
||||
chown(app_setting_path, "root", recursive=True)
|
||||
|
||||
# So much win
|
||||
logger.success(m18n.n("app_upgraded", app=app_instance_name))
|
||||
|
@ -816,7 +820,7 @@ def app_install(
|
|||
# Move scripts and manifest to the right place
|
||||
for file_to_copy in APP_FILES_TO_COPY:
|
||||
if os.path.exists(os.path.join(extracted_app_folder, file_to_copy)):
|
||||
os.system(f"cp -R '{extracted_app_folder}/{file_to_copy}' '{app_setting_path}'")
|
||||
cp(f'{extracted_app_folder}/{file_to_copy}', f'{app_setting_path}/{file_to_copy}', recursive=True)
|
||||
|
||||
# Initialize the main permission for the app
|
||||
# The permission is initialized with no url associated, and with tile disabled
|
||||
|
@ -955,9 +959,9 @@ def app_install(
|
|||
|
||||
# Clean and set permissions
|
||||
shutil.rmtree(extracted_app_folder)
|
||||
os.system("chmod 600 %s" % app_setting_path)
|
||||
os.system("chmod 400 %s/settings.yml" % app_setting_path)
|
||||
os.system("chown -R root: %s" % app_setting_path)
|
||||
chmod(app_setting_path, 0o600)
|
||||
chmod(f"{app_setting_path}/settings.yml", 0o400)
|
||||
chown(app_setting_path, "root", recursive=True)
|
||||
|
||||
logger.success(m18n.n("installation_complete"))
|
||||
|
||||
|
@ -1153,7 +1157,7 @@ def app_makedefault(operation_logger, app, domain=None):
|
|||
write_to_json(
|
||||
"/etc/ssowat/conf.json.persistent", ssowat_conf, sort_keys=True, indent=4
|
||||
)
|
||||
os.system("chmod 644 /etc/ssowat/conf.json.persistent")
|
||||
chmod("/etc/ssowat/conf.json.persistent", 0o644)
|
||||
|
||||
logger.success(m18n.n("ssowat_conf_updated"))
|
||||
|
||||
|
@ -2077,24 +2081,16 @@ def _extract_app_from_folder(path: str) -> Tuple[Dict, str]:
|
|||
|
||||
extracted_app_folder = _make_tmp_workdir_for_app()
|
||||
|
||||
if ".zip" in path:
|
||||
extract_result = os.system(
|
||||
f"unzip '{path}' -d {extracted_app_folder} > /dev/null 2>&1"
|
||||
)
|
||||
elif ".tar" in path:
|
||||
extract_result = os.system(
|
||||
f"tar -xf '{path}' -C {extracted_app_folder} > /dev/null 2>&1"
|
||||
)
|
||||
elif os.path.isdir(path):
|
||||
if os.path.isdir(path):
|
||||
shutil.rmtree(extracted_app_folder)
|
||||
if path[-1] != "/":
|
||||
path = path + "/"
|
||||
extract_result = os.system(f"cp -a '{path}' '{extracted_app_folder}'")
|
||||
cp(path, extracted_app_folder, recursive=True)
|
||||
else:
|
||||
extract_result = 1
|
||||
|
||||
if extract_result != 0:
|
||||
raise YunohostError("app_extraction_failed")
|
||||
try:
|
||||
shutil.unpack_archive(path, extracted_app_folder)
|
||||
except Exception:
|
||||
raise YunohostError("app_extraction_failed")
|
||||
|
||||
try:
|
||||
if len(os.listdir(extracted_app_folder)) == 1:
|
||||
|
|
|
@ -32,7 +32,7 @@ from collections import OrderedDict
|
|||
|
||||
from moulinette import m18n, Moulinette
|
||||
from moulinette.utils.log import getActionLogger
|
||||
from moulinette.utils.filesystem import read_file, write_to_file, read_toml
|
||||
from moulinette.utils.filesystem import read_file, write_to_file, read_toml, mkdir
|
||||
|
||||
from yunohost.domain import (
|
||||
domain_list,
|
||||
|
@ -471,7 +471,7 @@ def _get_dns_zone_for_domain(domain):
|
|||
# Check if there's a NS record for that domain
|
||||
answer = dig(parent, rdtype="NS", full_answers=True, resolvers="force_external")
|
||||
if answer[0] == "ok":
|
||||
os.system(f"mkdir -p {cache_folder}")
|
||||
mkdir(cache_folder, parents=True)
|
||||
write_to_file(cache_file, parent)
|
||||
return parent
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ from typing import Dict, Any
|
|||
from moulinette import m18n, Moulinette
|
||||
from moulinette.core import MoulinetteError
|
||||
from moulinette.utils.log import getActionLogger
|
||||
from moulinette.utils.filesystem import write_to_file, read_yaml, write_to_yaml
|
||||
from moulinette.utils.filesystem import write_to_file, read_yaml, write_to_yaml, rm
|
||||
|
||||
from yunohost.app import (
|
||||
app_ssowatconf,
|
||||
|
@ -328,7 +328,7 @@ def domain_remove(operation_logger, domain, remove_apps=False, force=False):
|
|||
]
|
||||
|
||||
for stuff in stuff_to_delete:
|
||||
os.system("rm -rf {stuff}")
|
||||
rm(stuff, force=True, recursive=True)
|
||||
|
||||
# Sometime we have weird issues with the regenconf where some files
|
||||
# appears as manually modified even though they weren't touched ...
|
||||
|
|
|
@ -33,7 +33,7 @@ import subprocess
|
|||
from moulinette import m18n
|
||||
from moulinette.core import MoulinetteError
|
||||
from moulinette.utils.log import getActionLogger
|
||||
from moulinette.utils.filesystem import write_to_file, read_file
|
||||
from moulinette.utils.filesystem import write_to_file, read_file, rm, chown, chmod
|
||||
from moulinette.utils.network import download_json
|
||||
|
||||
from yunohost.utils.error import YunohostError, YunohostValidationError
|
||||
|
@ -152,13 +152,12 @@ def dyndns_subscribe(
|
|||
|
||||
os.system(
|
||||
"cd /etc/yunohost/dyndns && "
|
||||
"dnssec-keygen -a hmac-sha512 -b 512 -r /dev/urandom -n USER %s"
|
||||
% domain
|
||||
)
|
||||
os.system(
|
||||
"chmod 600 /etc/yunohost/dyndns/*.key /etc/yunohost/dyndns/*.private"
|
||||
f"dnssec-keygen -a hmac-sha512 -b 512 -r /dev/urandom -n USER {domain}"
|
||||
)
|
||||
|
||||
chmod("/etc/yunohost/dyndns", 0o600, recursive=True)
|
||||
chown("/etc/yunohost/dyndns", "root", recursive=True)
|
||||
|
||||
private_file = glob.glob("/etc/yunohost/dyndns/*%s*.private" % domain)[0]
|
||||
key_file = glob.glob("/etc/yunohost/dyndns/*%s*.key" % domain)[0]
|
||||
with open(key_file) as f:
|
||||
|
@ -175,12 +174,12 @@ def dyndns_subscribe(
|
|||
timeout=30,
|
||||
)
|
||||
except Exception as e:
|
||||
os.system("rm -f %s" % private_file)
|
||||
os.system("rm -f %s" % key_file)
|
||||
rm(private_file, force=True)
|
||||
rm(key_file, force=True)
|
||||
raise YunohostError("dyndns_registration_failed", error=str(e))
|
||||
if r.status_code != 201:
|
||||
os.system("rm -f %s" % private_file)
|
||||
os.system("rm -f %s" % key_file)
|
||||
rm(private_file, force=True)
|
||||
rm(key_file, force=True)
|
||||
try:
|
||||
error = json.loads(r.text)["error"]
|
||||
except Exception:
|
||||
|
|
|
@ -34,7 +34,7 @@ from importlib import import_module
|
|||
from moulinette import m18n, Moulinette
|
||||
from yunohost.utils.error import YunohostError, YunohostValidationError
|
||||
from moulinette.utils import log
|
||||
from moulinette.utils.filesystem import read_yaml
|
||||
from moulinette.utils.filesystem import read_yaml, cp
|
||||
|
||||
HOOK_FOLDER = "/usr/share/yunohost/hooks/"
|
||||
CUSTOM_HOOK_FOLDER = "/etc/yunohost/hooks.d/"
|
||||
|
@ -60,8 +60,7 @@ def hook_add(app, file):
|
|||
os.makedirs(CUSTOM_HOOK_FOLDER + action)
|
||||
|
||||
finalpath = CUSTOM_HOOK_FOLDER + action + "/" + priority + "-" + app
|
||||
os.system("cp %s %s" % (file, finalpath))
|
||||
os.system("chown -hR admin: %s" % HOOK_FOLDER)
|
||||
cp(file, finalpath)
|
||||
|
||||
return {"hook": finalpath}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ from typing import List
|
|||
from moulinette import Moulinette, m18n
|
||||
from moulinette.utils.log import getActionLogger
|
||||
from moulinette.utils.process import check_output, call_async_output
|
||||
from moulinette.utils.filesystem import read_yaml, write_to_yaml
|
||||
from moulinette.utils.filesystem import read_yaml, write_to_yaml, cp, mkdir, rm
|
||||
|
||||
from yunohost.app import (
|
||||
app_info,
|
||||
|
@ -1147,13 +1147,11 @@ class Migration(object):
|
|||
backup_folder = "/home/yunohost.backup/premigration/" + time.strftime(
|
||||
"%Y%m%d-%H%M%S", time.gmtime()
|
||||
)
|
||||
os.makedirs(backup_folder, 0o750)
|
||||
mkdir(backup_folder, 0o750, parents=True)
|
||||
os.system("systemctl stop slapd")
|
||||
os.system(f"cp -r --preserve /etc/ldap {backup_folder}/ldap_config")
|
||||
os.system(f"cp -r --preserve /var/lib/ldap {backup_folder}/ldap_db")
|
||||
os.system(
|
||||
f"cp -r --preserve /etc/yunohost/apps {backup_folder}/apps_settings"
|
||||
)
|
||||
cp("/etc/ldap", f"{backup_folder}/ldap_config", recursive=True)
|
||||
cp("/var/lib/ldap", f"{backup_folder}/ldap_db", recursive=True)
|
||||
cp("/etc/yunohost/apps", f"{backup_folder}/apps_settings", recursive=True)
|
||||
except Exception as e:
|
||||
raise YunohostError(
|
||||
"migration_ldap_can_not_backup_before_migration", error=str(e)
|
||||
|
@ -1169,17 +1167,15 @@ class Migration(object):
|
|||
)
|
||||
os.system("systemctl stop slapd")
|
||||
# To be sure that we don't keep some part of the old config
|
||||
os.system("rm -r /etc/ldap/slapd.d")
|
||||
os.system(f"cp -r --preserve {backup_folder}/ldap_config/. /etc/ldap/")
|
||||
os.system(f"cp -r --preserve {backup_folder}/ldap_db/. /var/lib/ldap/")
|
||||
os.system(
|
||||
f"cp -r --preserve {backup_folder}/apps_settings/. /etc/yunohost/apps/"
|
||||
)
|
||||
rm("/etc/ldap/slapd.d", force=True, recursive=True)
|
||||
cp(f"{backup_folder}/ldap_config", "/etc/ldap", recursive=True)
|
||||
cp(f"{backup_folder}/ldap_db", "/var/lib/ldap", recursive=True)
|
||||
cp(f"{backup_folder}/apps_settings", "/etc/yunohost/apps", recursive=True)
|
||||
os.system("systemctl start slapd")
|
||||
os.system(f"rm -r {backup_folder}")
|
||||
rm(backup_folder, force=True, recursive=True)
|
||||
logger.info(m18n.n("migration_ldap_rollback_success"))
|
||||
raise
|
||||
else:
|
||||
os.system(f"rm -r {backup_folder}")
|
||||
rm(backup_folder, force=True, recursive=True)
|
||||
|
||||
return func
|
||||
|
|
Loading…
Add table
Reference in a new issue