diff --git a/environment/1_sdk/sysom_utils/node_manager.py b/environment/1_sdk/sysom_utils/node_manager.py index 59db1361c9e269e27fe5e050cf9fe00479ae3a4c..133634750d7cdb4a540cdc12831ddd0caa78242d 100644 --- a/environment/1_sdk/sysom_utils/node_manager.py +++ b/environment/1_sdk/sysom_utils/node_manager.py @@ -160,7 +160,7 @@ class NodeManager: # 2. Check whether the specified tar package is exists. if self._is_tar_exists(arch): - return self + os.remove(self._get_tar_package_path(arch)) # 3. Copy files for file in files: @@ -181,6 +181,22 @@ class NodeManager: return self async def perform_init_async(self, arch: str, target_instance: str): + # 0. Ensure remote node dir exists + node_service_dir = self._get_node_service_dir() + result = await self._channel_job_executor.dispatch_job( + channel_opt="cmd", + params={ + "instance": target_instance, + "command": "mkdir -p {}".format(node_service_dir), + }, + timeout=self._config.get_node_config().get("timeout", 60000), + auto_retry=True + ).execute_async() + if result.code != 0: + # mkdir failed + raise NodeManagerException( + f"Remote dir cannot be created: {result.err_msg}" + ) # 1. Try to dispatcher tar file to remote node node_service_dir = self._get_node_service_dir() result = await self._channel_job_executor.dispatch_file_job(