Skip to content

Commit c63bc79

Browse files
author
Zhao Wang
committed
quit if downgrading or same verison.
provide a flag to force downgrade
1 parent 5c1c794 commit c63bc79

4 files changed

Lines changed: 61 additions & 1 deletion

File tree

brainframe/cli/commands/update.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from argparse import ArgumentParser
2+
from packaging import version
23

34
import i18n
45

@@ -16,6 +17,12 @@ def update():
1617

1718
_, _, upgrade_version = docker_compose.check_download_version()
1819
existing_version = docker_compose.check_existing_version(install_path)
20+
if version.parse(existing_version) >= version.parse(upgrade_version):
21+
if not args.downgrade:
22+
print_utils.fail_translate("update.version-failing",
23+
existing_version=existing_version,
24+
upgrade_version=upgrade_version)
25+
1926
print_utils.translate("update.upgrade-version",
2027
existing_version=existing_version,
2128
upgrade_version=upgrade_version)
@@ -60,4 +67,10 @@ def _parse_args():
6067
"--restart", action="store_true", help=i18n.t("update.restart-help")
6168
)
6269

70+
parser.add_argument(
71+
"--downgrade",
72+
action="store_true",
73+
help=i18n.t("update.downgrade-help"),
74+
)
75+
6376
return subcommand_parse_args(parser)

brainframe/cli/translations/update.en.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,14 @@ en:
66
supported, and may result in instability or data loss."
77
restart-help: "If provided, the server will restart after the update is
88
complete"
9+
downgrade-help: "If provided, BrainFrame server will be forced to downgrade."
910
ask-restart: "Would you like to restart the BrainFrame server to apply the
1011
update?"
1112
complete: "BrainFrame has been updated!"
1213
upgrade-version: "BrainFrame:%{existing_version} detected under your installation
1314
location, we will replace it with BrainFrame:%{upgrade_version}"
15+
version-failing: "You have BrainFrame:%{existing_version} installed already.
16+
The latest version we found on updating server is
17+
BrainFrame:%{upgrade_version}. We don't recommend downgrading BrainFrame
18+
for stability reasons. This request will be ignored. But you can force to
19+
downgrade by appending --downgrade flag."

poetry.lock

Lines changed: 41 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ python = ">=3.6"
2020
python-i18n = "^0.3"
2121
pyyaml = "^5.3"
2222
distro = "^1.5"
23+
packaging = "^20.4"
2324

2425
[tool.poetry.dev-dependencies]
2526
black = "^19.10b0"

0 commit comments

Comments
 (0)