implement container prompt for backup and upgrade
This commit is contained in:
parent
51d25e0b3f
commit
404f620cc7
11
backup.py
11
backup.py
|
|
@ -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()
|
||||||
|
|
|
||||||
16
upgrade.py
16
upgrade.py
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue