@@ -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