Skip to content

Commit 09c24b2

Browse files
authored
[core][fix] Backup: correct endpoint when using https (#2123)
1 parent 1b557e6 commit 09c24b2

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

fixcore/fixcore/cli/command.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3724,7 +3724,12 @@ async def create_backup(self, arg: Optional[str]) -> AsyncIterator[JsonElement]:
37243724
try:
37253725
db_config = self.dependencies.config.db
37263726
if not shutil.which("arangodump"):
3727-
raise CLIParseError("db_backup expects the executable `arangodump` to be in path!")
3727+
raise CLIParseError("backup expects the executable `arangodump` to be in path!")
3728+
if db_config.server.startswith("https"):
3729+
endpoint = db_config.server.replace("https", "http+ssl")
3730+
else:
3731+
endpoint = db_config.server.replace("http", "http+tcp")
3732+
37283733
# fmt: off
37293734
process = await asyncio.create_subprocess_exec(
37303735
"arangodump",
@@ -3734,8 +3739,8 @@ async def create_backup(self, arg: Optional[str]) -> AsyncIterator[JsonElement]:
37343739
"--log.level", "error", # only print error messages
37353740
"--output-directory", temp_dir, # directory to write to
37363741
"--overwrite", "true", # required for existing directories
3737-
"--server.endpoint", db_config.server.replace("http", "http+tcp"),
3738-
"--server.authentication", "false" if db_config.no_ssl_verify else "true",
3742+
"--server.endpoint", endpoint,
3743+
"--server.authentication", "false",
37393744
"--server.database", db_config.database,
37403745
"--server.username", db_config.username,
37413746
"--server.password", db_config.password,
@@ -3785,7 +3790,14 @@ async def restore_backup(self, backup_file: Optional[str], ctx: CLIContext) -> A
37853790
tar.extractall(temp_dir, members=safe_members_in_tarfile(tar))
37863791

37873792
# fmt: off
3788-
db_conf = self.dependencies.config.db
3793+
db_config = self.dependencies.config.db
3794+
if not shutil.which("arangorestore"):
3795+
raise CLIParseError("restore expects the executable `arangorestore` to be in path!")
3796+
if db_config.server.startswith("https"):
3797+
endpoint = db_config.server.replace("https", "http+ssl")
3798+
else:
3799+
endpoint = db_config.server.replace("http", "http+tcp")
3800+
37893801
process = await asyncio.create_subprocess_exec(
37903802
"arangorestore",
37913803
"--progress", "false", # do not show progress
@@ -3794,11 +3806,11 @@ async def restore_backup(self, backup_file: Optional[str], ctx: CLIContext) -> A
37943806
"--log.level", "error", # only print error messages
37953807
"--input-directory", temp_dir, # directory to write to
37963808
"--overwrite", "true", # required for existing db collections
3797-
"--server.endpoint", db_conf.server.replace("http", "http+tcp"),
3798-
"--server.authentication", "false" if db_conf.no_ssl_verify else "true",
3799-
"--server.database", db_conf.database,
3800-
"--server.username", db_conf.username,
3801-
"--server.password", db_conf.password,
3809+
"--server.endpoint", endpoint,
3810+
"--server.authentication", "false",
3811+
"--server.database", db_config.database,
3812+
"--server.username", db_config.username,
3813+
"--server.password", db_config.password,
38023814
"--configuration", "none",
38033815
stdout=asyncio.subprocess.PIPE,
38043816
stderr=asyncio.subprocess.PIPE,

0 commit comments

Comments
 (0)