carlmontanari/scrapli

Problem with command 'clear cli logical-system' on JUNOS

jakovlev54 opened this issue · 4 comments

Hello, Carl!

Can you help me find out why in Scrapli, when using the "clear cli logical-system" command, a line break occurs after the word "cli"?

Fragment of scrapli.log:

32    | 2024-01-19 10:34:06,138 | INFO     | 10.12.1.10:22           | connection to '10.12.1.10' on port '22' opened successfully
33    | 2024-01-19 10:34:06,138 | INFO     | 10.12.1.10:22           | sending channel input: set cli logical-system TEST; strip_prompt: True; eager: False
34    | 2024-01-19 10:34:06,138 | DEBUG    | 10.12.1.10:22           | write: 'set cli logical-system TEST'
35    | 2024-01-19 10:34:06,141 | DEBUG    | 10.12.1.10:22           | read : b'set cli logical-system TEST'
36    | 2024-01-19 10:34:06,142 | DEBUG    | 10.12.1.10:22           | write: '\n'
37    | 2024-01-19 10:34:06,145 | DEBUG    | 10.12.1.10:22           | read : b' \nLogical system: TEST\n\nnetconf@router_1_re1:TEST> '
38    | 2024-01-19 10:34:06,147 | INFO     | 10.12.1.10:22           | sending channel input: show interfaces descriptions; strip_prompt: True; eager: False
39    | 2024-01-19 10:34:06,147 | DEBUG    | 10.12.1.10:22           | write: 'show interfaces descriptions'
40    | 2024-01-19 10:34:06,149 | DEBUG    | 10.12.1.10:22           | read : b'show interfaces descriptions'
41    | 2024-01-19 10:34:09,374 | DEBUG    | 10.12.1.10:22           | write: '\n'
42    | 2024-01-19 10:34:09,394 | DEBUG    | 10.12.1.10:22           | read : b' \nInterface       Admin Link Description\nxe-3/2/9.0      up    down Test_for_LS\n\nnetconf@router_1_re1:TEST> '
43    | 2024-01-19 10:34:09,409 | INFO     | 10.12.1.10:22           | sending channel input: clear cli logical-system; strip_prompt: True; eager: False
44    | 2024-01-19 10:34:09,409 | DEBUG    | 10.12.1.10:22           | write: 'clear cli logical-system'
45    | 2024-01-19 10:34:09,413 | DEBUG    | 10.12.1.10:22           | read : b'clear cli\n                                                      ^\nsyntax error, expecting <command>.\nnetconf@router_1_re1:TEST> clear cli   \x08\x08\x08logical-system'
46    | 2024-01-19 10:34:10,387 | DEBUG    | 10.12.1.10:22           | write: '\n'
47    | 2024-01-19 10:34:10,390 | DEBUG    | 10.12.1.10:22           | read : b'\n                                                      ^\nsyntax error, expecting <command>.\n\nnetconf@router_1_re1:TEST> '
48    | 2024-01-19 10:34:10,390 | INFO     | 10.12.1.10:22           | sending channel input: show route instance MSN; strip_prompt: True; eager: False

Fragment of code:

device = 
    {
        "host": "10.12.1.10",
        "port": 22,
        "auth_username": USER,
        "auth_password": PASSWORD,
        "platform": "juniper_junos",
        "auth_strict_key": False,
        "transport": "asyncssh",
        "ssh_config_file": "../.ssh/config",

    }
async with AsyncScrapli(**device, channel_log=True) as conn:
            result = await conn.send_command("set cli logical-system TEST")
            result = await conn.send_command("show interfaces descriptions")
            result = await conn.send_command("clear cli logical-system")
            result = await conn.send_command("show route instance MMM")

This command is required to exit the logical system to the main device.

When entering commands manually everything is ok:

netconf@router_1_re1> set cli logical-system TEST    
Logical system: TEST

netconf@router_1_re1:TEST> show interfaces descriptions                
Interface       Admin Link Description
xe-3/2/9.0      up    down Test_for_LS

netconf@router_1_re1:TEST> clear cli logical-system                    
Cleared default logical system

netconf@router_1_re1> show route instance MMM                     
Instance             Type
         Primary RIB                                     Active/holddown/hidden
MSN                  vrf            
         MMM.inet.0                                      968/0/0
netconf@router_1_re1> 

no idea! but we almost certainly aren't sending an extra newline just for fun!

45 | 2024-01-19 10:34:09,413 | DEBUG | 10.12.1.10:22 | read : b'clear cli\n ^\nsyntax error, expecting .\nnetconf@router_1_re1:TEST> clear cli \x08\x08\x08logical-system'

I don't Junos but seems like you're upsetting it somewhere/someway (maybe in some previous command??) based on the syntax error output. Logs look like we correctly write it and then the error is pointing to the "cli" or after the cli part. is complete on space not disabled maybe for some reason? is there "more" to that command -- like "clear clis logical-system" or something?

JUNOS responds ambiguously - reason is again in authorization. Thanks for the answer!