mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[enh] no cli option to avoid removing an application on installation failure
This commit is contained in:
parent
2c0c53d06f
commit
81c19cd1d6
2 changed files with 18 additions and 13 deletions
|
@ -436,6 +436,9 @@ app:
|
||||||
-a:
|
-a:
|
||||||
full: --args
|
full: --args
|
||||||
help: Serialized arguments for app script (i.e. "domain=domain.tld&path=/path")
|
help: Serialized arguments for app script (i.e. "domain=domain.tld&path=/path")
|
||||||
|
-n:
|
||||||
|
full: --no-remove-on-fail
|
||||||
|
help: Debug option to avoid removing the app on a filed installation
|
||||||
|
|
||||||
### app_remove() TODO: Write help
|
### app_remove() TODO: Write help
|
||||||
remove:
|
remove:
|
||||||
|
|
|
@ -440,7 +440,7 @@ def app_upgrade(auth, app=[], url=None, file=None):
|
||||||
logger.success(m18n.n('upgrade_complete'))
|
logger.success(m18n.n('upgrade_complete'))
|
||||||
|
|
||||||
|
|
||||||
def app_install(auth, app, label=None, args=None):
|
def app_install(auth, app, label=None, args=None, no_remove_on_fail=False):
|
||||||
"""
|
"""
|
||||||
Install apps
|
Install apps
|
||||||
|
|
||||||
|
@ -448,6 +448,7 @@ def app_install(auth, app, label=None, args=None):
|
||||||
app -- Name, local path or git URL of the app to install
|
app -- Name, local path or git URL of the app to install
|
||||||
label -- Custom name for the app
|
label -- Custom name for the app
|
||||||
args -- Serialize arguments for app installation
|
args -- Serialize arguments for app installation
|
||||||
|
no_remove_on_fail -- Debug option to avoid removing the app on a filed installation
|
||||||
|
|
||||||
"""
|
"""
|
||||||
from yunohost.hook import hook_add, hook_remove, hook_exec
|
from yunohost.hook import hook_add, hook_remove, hook_exec
|
||||||
|
@ -541,19 +542,20 @@ def app_install(auth, app, label=None, args=None):
|
||||||
logger.exception(m18n.n('unexpected_error'))
|
logger.exception(m18n.n('unexpected_error'))
|
||||||
finally:
|
finally:
|
||||||
if install_retcode != 0:
|
if install_retcode != 0:
|
||||||
# Setup environment for remove script
|
if not no_remove_on_fail:
|
||||||
env_dict_remove = {}
|
# Setup environment for remove script
|
||||||
env_dict_remove["YNH_APP_ID"] = app_id
|
env_dict_remove = {}
|
||||||
env_dict_remove["YNH_APP_INSTANCE_NAME"] = app_instance_name
|
env_dict_remove["YNH_APP_ID"] = app_id
|
||||||
env_dict_remove["YNH_APP_INSTANCE_NUMBER"] = str(instance_number)
|
env_dict_remove["YNH_APP_INSTANCE_NAME"] = app_instance_name
|
||||||
|
env_dict_remove["YNH_APP_INSTANCE_NUMBER"] = str(instance_number)
|
||||||
|
|
||||||
# Execute remove script
|
# Execute remove script
|
||||||
remove_retcode = hook_exec(
|
remove_retcode = hook_exec(
|
||||||
os.path.join(extracted_app_folder, 'scripts/remove'),
|
os.path.join(extracted_app_folder, 'scripts/remove'),
|
||||||
args=[app_instance_name], env=env_dict_remove)
|
args=[app_instance_name], env=env_dict_remove)
|
||||||
if remove_retcode != 0:
|
if remove_retcode != 0:
|
||||||
logger.warning(m18n.n('app_not_properly_removed',
|
logger.warning(m18n.n('app_not_properly_removed',
|
||||||
app=app_instance_name))
|
app=app_instance_name))
|
||||||
|
|
||||||
# Clean tmp folders
|
# Clean tmp folders
|
||||||
shutil.rmtree(app_setting_path)
|
shutil.rmtree(app_setting_path)
|
||||||
|
|
Loading…
Add table
Reference in a new issue