diff --git a/src/gnetcli_adapter/gnetcli_adapter.py b/src/gnetcli_adapter/gnetcli_adapter.py index 836734a..02891d9 100644 --- a/src/gnetcli_adapter/gnetcli_adapter.py +++ b/src/gnetcli_adapter/gnetcli_adapter.py @@ -71,8 +71,16 @@ class AppSettings(BaseSettings): password: Optional[str] = None dev_login: Optional[str] = None dev_password: Optional[str] = None + dev_port: Optional[int] = None + streamer_type: Optional[str] = None # "ssh" or "telnet" ssh_agent_enabled: bool = True + def get_streamer_type(self): + """Convert string streamer_type to proto enum value""" + if self.streamer_type == "telnet": + return pb.StreamerType.StreamerType_telnet + return pb.StreamerType.StreamerType_ssh + def make_dev_credentials(self) -> Optional[Credentials]: if not self.dev_login and not self.dev_password: return None @@ -170,6 +178,8 @@ def __init__( password: Optional[str] = None, dev_login: Optional[str] = None, dev_password: Optional[str] = None, + dev_port: Optional[int] = None, + streamer_type: Optional[str] = None, ssh_agent_enabled: bool = True, server_path: Optional[str] = None, server_conf: Config = DEFAULT_GNETCLI_SERVER_CONF, @@ -179,6 +189,8 @@ def __init__( "password": password, "dev_login": dev_login, "dev_password": dev_password, + "dev_port": dev_port, + "streamer_type": streamer_type, "server_path": server_path, "url": url, "server_conf": server_conf, @@ -266,6 +278,8 @@ async def afetch_dev(self, api: Gnetcli, device: Device) -> str: credentials=self.conf.make_dev_credentials(), device=gnetcli_device, ip=ip, + port=self.conf.dev_port, + streamer_type=self.conf.get_streamer_type(), ), ) if res.status != 0: @@ -283,6 +297,8 @@ async def adownload_dev(self, api: Gnetcli, device: Device, files: List[str]) -> credentials=self.conf.make_dev_credentials(), device=gnetcli_device, ip=ip, + port=self.conf.dev_port, + streamer_type=self.conf.get_streamer_type(), ), ) res: Dict[str, str] = {} @@ -309,6 +325,8 @@ def __init__( password: Optional[str] = None, dev_login: Optional[str] = None, dev_password: Optional[str] = None, + dev_port: Optional[int] = None, + streamer_type: Optional[str] = None, ssh_agent_enabled: bool = True, server_path: Optional[str] = None, server_conf: Optional[Config] = DEFAULT_GNETCLI_SERVER_CONF, @@ -319,6 +337,8 @@ def __init__( "password": password, "dev_login": dev_login, "dev_password": dev_password, + "dev_port": dev_port, + "streamer_type": streamer_type, "server_path": server_path, "url": url, "server_conf": server_conf, @@ -455,6 +475,8 @@ async def deploy( credentials=self.conf.make_dev_credentials(), device=gnetcli_device, ip=ip, + port=self.conf.dev_port, + streamer_type=self.conf.get_streamer_type(), ) command_groups: list[tuple[str, CommandList]]= [] if isinstance(cmds, dict): # PC