Просмотр исходного кода

Throw error if an illegal sandbox type is used (#1087)

Jim Su 1 год назад
Родитель
Сommit
d4ce4ea541
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      opendevin/controller/command_manager.py

+ 6 - 3
opendevin/controller/command_manager.py

@@ -18,16 +18,19 @@ class CommandManager:
             container_image: str | None = None,
             container_image: str | None = None,
     ):
     ):
         self.directory = directory
         self.directory = directory
-        if config.get(ConfigType.SANDBOX_TYPE).lower() == 'exec':
+        sandbox_type = config.get(ConfigType.SANDBOX_TYPE).lower()
+        if sandbox_type == 'exec':
             self.shell = DockerExecBox(
             self.shell = DockerExecBox(
                 sid=(sid or 'default'), workspace_dir=directory, container_image=container_image
                 sid=(sid or 'default'), workspace_dir=directory, container_image=container_image
             )
             )
-        elif config.get('SANDBOX_TYPE').lower() == 'local':
+        elif sandbox_type == 'local':
             self.shell = LocalBox(workspace_dir=directory)
             self.shell = LocalBox(workspace_dir=directory)
-        else:
+        elif sandbox_type == 'ssh':
             self.shell = DockerSSHBox(
             self.shell = DockerSSHBox(
                 sid=(sid or 'default'), workspace_dir=directory, container_image=container_image
                 sid=(sid or 'default'), workspace_dir=directory, container_image=container_image
             )
             )
+        else:
+            raise ValueError(f'Invalid sandbox type: {sandbox_type}')
 
 
     def run_command(self, command: str, background=False) -> CmdOutputObservation:
     def run_command(self, command: str, background=False) -> CmdOutputObservation:
         if background:
         if background: