containerlab icon indicating copy to clipboard operation
containerlab copied to clipboard

[vr-sros] Node fails to boot after switching from classic CLI to MD-CLI and saving config

Open mkorneyc opened this issue 5 months ago • 3 comments

Environment: Platform: Containerlab / QEMU last version Image: nokia_sros-22.x.x Host OS: 24.04.3 LTS

Preconditions: Run a fresh Nokia SR OS VM/container with classic CLI enabled.

Steps to Reproduce:

  1. run nokia_sros node with classic cli and configure random part of the config
  2. enable md-cli: /configure system management-interface configuration-mode model-driven
  3. re-login and save the config: /admin save
  4. reboot the node

Expected Result: Node should reboot successfully and load the saved configuration with MD-CLI enabled.

Actual Result: Node is in unhealthy state, last logs are:

2025-09-22 17:19:57,747: vrnetlab       INFO Writing to console: 'admin'
2025-09-22 17:19:57,748: vrnetlab       INFO Waiting on console for: 'Password:'
admin
Password:
2025-09-22 17:19:57,955: vrnetlab       INFO Writing to console: 'admin'
2025-09-22 17:19:57,955: launch         INFO Scrapli timeout is 900s (default 900s)
2025-09-22 17:19:57,955: launch         DEBUG Configuration file exists
2025-09-22 17:19:57,965: factory        INFO Driver '<class 'scrapli.driver.network.sync_driver.NetworkDriver'>' selected from scrapli community platforms, with the following platform arguments: '{'privilege_levels': {'exec': <scrapli.driver.network.base_driver.PrivilegeLevel object at 0x7c832e0d51e0>, 'configuration': <scrapli.driver.network.base_driver.PrivilegeLevel object at 0x7c832e0d5240>}, 'default_desired_privilege_level': 'exec', 'failed_when_contains': ['MINOR:', 'MAJOR:', 'Error:', 'Bad Command:'], 'textfsm_platform': '', 'genie_platform': '', 'on_open': <function classic_default_sync_on_open at 0x7c832e0d3100>, 'on_close': <function default_sync_on_close at 0x7c832e0d3240>}'
2025-09-22 17:34:57,975: decorators     CRITICAL operation timed out, closing connection
Traceback (most recent call last):
  File "/launch.py", line 1984, in <module>
    ia.start()
  File "/vrnetlab.py", line 1050, in start
    vm.work()
  File "/vrnetlab.py", line 927, in work
    self.bootstrap_spin()
  File "/launch.py", line 1026, in bootstrap_spin
    self.bootstrap_config()
  File "/launch.py", line 1296, in bootstrap_config
    self.sros_con.commandeer(conn=self.scrapli_tn)
  File "/.venv/lib/python3.12/site-packages/scrapli/driver/base/sync_driver.py", line 192, in commandeer
    self.on_open(self)
  File "/.venv/lib/python3.12/site-packages/scrapli_community/nokia/sros/sync_driver.py", line 39, in classic_default_sync_on_open
    conn.acquire_priv(desired_priv=conn.default_desired_privilege_level)
  File "/.venv/lib/python3.12/site-packages/scrapli/driver/network/sync_driver.py", line 165, in acquire_priv
    current_prompt = self.channel.get_prompt()
                     ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.venv/lib/python3.12/site-packages/scrapli/decorators.py", line 224, in decorate
    return _multiprocessing_timeout(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.venv/lib/python3.12/site-packages/scrapli/decorators.py", line 110, in _multiprocessing_timeout
    return _handle_timeout(
           ^^^^^^^^^^^^^^^^
  File "/.venv/lib/python3.12/site-packages/scrapli/decorators.py", line 142, in _handle_timeout
    raise ScrapliTimeout(message)
scrapli.exceptions.ScrapliTimeout: timed out getting prompt

mkorneyc avatar Sep 22 '25 17:09 mkorneyc

Hello Team, sorry for the interruption. Could you please confirm whether the bug has been acknowledged and if there is any available workaround? At the moment, there seems to be no way to reboot the node or redeploy the lab without losing all configurations with MD-CLI activated.

mkorneyc avatar Sep 24 '25 14:09 mkorneyc

Hi This use case was not tried, so we will rely on the community to figure it out

hellt avatar Sep 24 '25 14:09 hellt

Thank you for reply, hellt This is not actually use case... this is the basic nokia_sros functionalyty described in the official doc (https://containerlab.dev/manual/kinds/vr-sros/) To reproduce the issue only one thing is needed: save the config and reboot the node/redeploy the lab

this topo is enough and no need to change config on the box, just save it

name: topo

topology:
  nodes:
    sros1:
      kind: nokia_sros
      image: vrnetlab/nokia_sros:22.10.R8
      type: sr-1
      license: license.txt

  links:
    # inter-switch link
    []

Partial/Full configs from files or from topo.yaml are broken if they are MD-CLI

mkorneyc avatar Sep 24 '25 15:09 mkorneyc