Reformat files with black

This commit is contained in:
Orsiris de Jong 2023-02-01 19:06:52 +01:00
parent 7f32359161
commit e23797f97d
7 changed files with 99 additions and 38 deletions

View file

@ -217,9 +217,13 @@ This is free software, and you are welcome to redistribute it under certain cond
parser.add_argument("--license", action="store_true", help="Show license")
parser.add_argument(
"--auto-upgrade", action="store_true", help="Auto upgrade NPBackup")
"--auto-upgrade", action="store_true", help="Auto upgrade NPBackup"
)
parser.add_argument(
"--upgrade-conf", action="store_true", help="Add new configuration elements after upgrade")
"--upgrade-conf",
action="store_true",
help="Add new configuration elements after upgrade",
)
args = parser.parse_args()
if args.version:

View file

@ -41,15 +41,19 @@ ENCRYPTED_OPTIONS = [
{"section": "options", "name": "server_password", "type": str},
]
empty_config_dict = {"backup": {
"compression": "auto",
"use_fs_snapshot": True,
"ignore_cloud_files": True,
"exclude_caches": True,
"priority": "low",
}, "repo": {
"minimum_backup_age": 86400
}, "prometheus": {}, "env": {}, "options": {}}
empty_config_dict = {
"backup": {
"compression": "auto",
"use_fs_snapshot": True,
"ignore_cloud_files": True,
"exclude_caches": True,
"priority": "low",
},
"repo": {"minimum_backup_age": 86400},
"prometheus": {},
"env": {},
"options": {},
}
def decrypt_data(config_dict):

View file

@ -255,7 +255,9 @@ class NPBackupRunner:
logger.warning("Bogus backup priority in config file.")
try:
if self.config_dict["backup"]["ignore_cloud_files"]:
self.restic_runner.ignore_cloud_files = self.config_dict["backup"]["ignore_cloud_files"]
self.restic_runner.ignore_cloud_files = self.config_dict["backup"][
"ignore_cloud_files"
]
except KeyError:
pass
except ValueError:

View file

@ -20,12 +20,8 @@ logger = getLogger(__intname__)
def run_upgrade(config_dict):
try:
auto_upgrade_upgrade_url = config_dict["options"]["server_url"]
auto_upgrade_username = config_dict["options"][
"server_username"
]
auto_upgrade_password = config_dict["options"][
"server_password"
]
auto_upgrade_username = config_dict["options"]["server_username"]
auto_upgrade_password = config_dict["options"]["server_password"]
except KeyError as exc:
logger.error("Missing auto upgrade info: %s, cannot launch auto upgrade", exc)
return False
@ -35,4 +31,4 @@ def run_upgrade(config_dict):
username=auto_upgrade_username,
password=auto_upgrade_password,
)
return result
return result

View file

@ -324,11 +324,51 @@ def config_gui(config_dict: dict, config_file: str):
]
tab_group_layout = [
[sg.Tab(_t("config_gui.backup"), backup_col, font="helvetica 16", key="--tab-backup--", element_justification='C')],
[sg.Tab(_t("config_gui.backup_destination"),repo_col, font="helvetica 16", key="--tab-repo--", element_justification='C')],
[sg.Tab(_t("config_gui.prometheus_config"), prometheus_col, font="helvetica 16", key="--tab-prometheus--", element_justification='C')],
[sg.Tab(_t("config_gui.environment_variables"), env_col, font="helvetica 16", key="--tab-env--", element_justification='C')],
[sg.Tab(_t("generic.options"), options_col, font="helvetica 16", key="--tab-options--", element_justification='C')],
[
sg.Tab(
_t("config_gui.backup"),
backup_col,
font="helvetica 16",
key="--tab-backup--",
element_justification="C",
)
],
[
sg.Tab(
_t("config_gui.backup_destination"),
repo_col,
font="helvetica 16",
key="--tab-repo--",
element_justification="C",
)
],
[
sg.Tab(
_t("config_gui.prometheus_config"),
prometheus_col,
font="helvetica 16",
key="--tab-prometheus--",
element_justification="C",
)
],
[
sg.Tab(
_t("config_gui.environment_variables"),
env_col,
font="helvetica 16",
key="--tab-env--",
element_justification="C",
)
],
[
sg.Tab(
_t("generic.options"),
options_col,
font="helvetica 16",
key="--tab-options--",
element_justification="C",
)
],
]
layout = [
@ -336,7 +376,6 @@ def config_gui(config_dict: dict, config_file: str):
[sg.Column(buttons, element_justification="C")],
]
window = sg.Window(
"Configuration",
layout,

View file

@ -55,21 +55,27 @@ def _about_gui(version_string: str, config_dict: dict) -> None:
layout = [
[sg.Text(version_string)],
[
sg.Button(_t("config_gui.auto_upgrade_launch"), key="autoupgrade", size=(12, 2))
sg.Button(
_t("config_gui.auto_upgrade_launch"), key="autoupgrade", size=(12, 2)
)
],
[sg.Text("License: GNU GPLv3")],
[sg.Multiline(license_content, size=(65, 20))],
[sg.Button(_t("generic.accept"), key="exit")],
]
window = sg.Window(_t("generic.about"), layout, keep_on_top=True, element_justification='C')
window = sg.Window(
_t("generic.about"), layout, keep_on_top=True, element_justification="C"
)
while True:
event, _ = window.read()
if event in [sg.WIN_CLOSED, "exit"]:
break
elif event == "autoupgrade":
result = sg.PopupOKCancel(_t("config_gui.auto_ugprade_will_quit"), keep_on_top=True)
if result == 'OK':
result = sg.PopupOKCancel(
_t("config_gui.auto_ugprade_will_quit"), keep_on_top=True
)
if result == "OK":
logger.info("Running GUI initiated upgrade")
sub_result = run_upgrade(config_dict)
if sub_result:

View file

@ -40,7 +40,7 @@ def sha256sum_data(data):
def need_upgrade(upgrade_interval: int) -> bool:
"""
Basic counter which allows an upgrade only every X times this is called so failed operations won't end in an endless upgrade loop
We need to make to select a write counter file that is writable
So we actually test a local file and a temp file (less secure for obvious reasons)
We just have to make sure that once we can write to one file, we stick to it unless proven otherwise
@ -48,11 +48,11 @@ def need_upgrade(upgrade_interval: int) -> bool:
The for loop logic isn't straight simple, but allows file fallback
"""
# file counter, local, home, or temp if not available
counter_file = 'npbackup.autoupgrade.log'
counter_file = "npbackup.autoupgrade.log"
def _write_count(file: str, counter: int) -> bool:
try:
with open(file, 'w') as fpw:
with open(file, "w") as fpw:
fpw.write(str(counter))
return True
except OSError:
@ -61,7 +61,7 @@ def need_upgrade(upgrade_interval: int) -> bool:
def _get_count(file: str) -> Optional[int]:
try:
with open(file, 'r') as fpr:
with open(file, "r") as fpr:
count = int(fpr.read())
return count
except OSError:
@ -71,12 +71,13 @@ def need_upgrade(upgrade_interval: int) -> bool:
logger.error("Bogus upgrade counter in %s", file)
return None
for file in [os.path.join(CURRENT_DIR, counter_file), os.path.join(tempfile.gettempdir(), counter_file)]:
for file in [
os.path.join(CURRENT_DIR, counter_file),
os.path.join(tempfile.gettempdir(), counter_file),
]:
if not os.path.isfile(file):
if _write_count(file, 1):
logger.debug('Initial upgrade counter written to %s', file)
logger.debug("Initial upgrade counter written to %s", file)
else:
logger.debug("Cannot write to upgrade counter file %s", file)
continue
@ -175,7 +176,16 @@ def auto_upgrader(upgrade_url: str, username: str, password: str) -> bool:
# Actual upgrade process
new_executable = os.path.join(CURRENT_DIR, os.path.basename(CURRENT_EXECUTABLE))
cmd = 'del "{}" > "{}" && move "{}" "{}" >> "{}" && del "{}" >> "{}" && "{}" --upgrade-conf >> "{}"'.format(
CURRENT_EXECUTABLE, log_file, executable, log_file, new_executable, log_file, executable, log_file, new_executable, log_file
CURRENT_EXECUTABLE,
log_file,
executable,
log_file,
new_executable,
log_file,
executable,
log_file,
new_executable,
log_file,
)
logger.info(
"Launching upgrade. Current process will quit. Upgrade starts in %s seconds. Upgrade is done by OS logged in %s",