implement container prompt for backup and upgrade

This commit is contained in:
Marc Koch 2021-02-14 20:58:04 +01:00
parent 51d25e0b3f
commit 404f620cc7
Signed by: marc
GPG Key ID: AC2D4E00990A6767
2 changed files with 55 additions and 48 deletions

View File

@ -1,7 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import datetime import datetime
import os
import sys import sys
from pathlib import Path from pathlib import Path
import yaml import yaml
@ -10,6 +9,7 @@ import utils
from utils import _print from utils import _print
from models import Container from models import Container
from models import Log from models import Log
from simple_term_menu import TerminalMenu
def backup(): def backup():
@ -31,6 +31,13 @@ def backup():
if containers_wanted: if containers_wanted:
containers = containers_wanted containers = containers_wanted
# If no container was chosen ask for it
elif not utils.all_containers:
containers_to_choose_from = [container.name for container in containers.values()]
terminal_menu = TerminalMenu(containers_to_choose_from, title="Which Nextcloud instance do you want to back up?")
choice_index = terminal_menu.show()
containers = {containers_to_choose_from[choice_index]: containers.get(containers_to_choose_from[choice_index])}
# Loop through Nextcloud container instances # Loop through Nextcloud container instances
container: Container container: Container
for container in containers.values(): for container in containers.values():
@ -67,8 +74,6 @@ def backup():
# Clean up backup folder # Clean up backup folder
container.cleanup() container.cleanup()
return backup_status
if __name__ == '__main__': if __name__ == '__main__':
backup() backup()

View File

@ -11,10 +11,10 @@ from utils import _print
from models import Container from models import Container
from models import Log from models import Log
import backup import backup
from simple_term_menu import TerminalMenu
def upgrade(): def upgrade():
upgrade_status = True
# Set flags # Set flags
utils.set_flags(sys.argv) utils.set_flags(sys.argv)
@ -32,16 +32,22 @@ def upgrade():
if containers_wanted: if containers_wanted:
containers = containers_wanted containers = containers_wanted
# If no container was chosen ask for it
elif not utils.all_containers:
containers_to_choose_from = [container.name for container in containers.values()]
terminal_menu = TerminalMenu(containers_to_choose_from, title="Which Nextcloud instance do you want to "
"upgrade?")
choice_index = terminal_menu.show()
containers = {containers_to_choose_from[choice_index]: containers.get(containers_to_choose_from[choice_index])}
# Loop through Nextcloud container instances # Loop through Nextcloud container instances
container: Container container: Container
for container in containers.values(): for container in containers.values():
go_on = True go_on = True
# Make a backup # Make a backup
if not utils.no_backup: if not utils.no_backup:
utils.keep_maintenance_mode = True utils.keep_maintenance_mode = True
go_on = backup.backup() go_on = backup.backup()
if go_on: if go_on:
# Make the upgrade # Make the upgrade
utils.keep_maintenance_mode = True if "--maintenance" in sys.argv else False utils.keep_maintenance_mode = True if "--maintenance" in sys.argv else False
@ -61,8 +67,6 @@ def upgrade():
_print(F"{Fore.YELLOW}Exception occurred in method: Container.{func}(){Style.RESET_ALL}") _print(F"{Fore.YELLOW}Exception occurred in method: Container.{func}(){Style.RESET_ALL}")
_print(traceback) _print(traceback)
_print() _print()
upgrade_status = False
# Log upgrade # Log upgrade
if not utils.no_log and settings_list['log']['logging']: if not utils.no_log and settings_list['log']['logging']:
if upgrade_status: if upgrade_status:
@ -76,8 +80,6 @@ def upgrade():
_print(traceback) _print(traceback)
_print() _print()
return upgrade_status
if __name__ == '__main__': if __name__ == '__main__':
upgrade() upgrade()