CiscoTestAutomation / pyats

Cisco DevNet pyATS Test Framework Bug Tracker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

testbed.connect exception behavior

renato-alves-barros opened this issue · comments

When trying to connect to all testbed "tb" devices in parallel, one can use below code:

tb.connect()

If within that testbed there are some devices which are unreachable, a ConnectionError exception is thrown for the first device that fails.
As a consequence, tb.connect() returns and does not attempt to connect to any other devices.

Example: My testbed "tb" has 10 devices and 5 of them are unreachable

>>> try:
...   tb.connect()
... except Exception as e:
...   x = e.args
...   print(x[0]) 

!failed to connect to ROUTER_CORE_1
Failed while bringing device to "any" state
>>> 

Should we not expect 5x exceptions thrown by 5x devices instead of only 1x exception and tb.connect immediately returning.

Hello @renato-alves-barros,

Currently I am looking into this issue. Kindly give me some time to analyze and debug this.

Thank you.

Hello @renato-alves-barros,

Can you please let me know the pyATS version as well as complete log to debug this issue further?

Thank you.

Hello @renato-alves-barros,

Well, in python if we get an exception then the code execution stops and hence in this case, we are not seeing the 5x exceptions thrown by 5x device but only 1 exception. This small python program may help to understand this:

exceptions = [
    ValueError("This is a ValueError"),
    TypeError("This is a TypeError"),
    ZeroDivisionError("This is a ZeroDivisionError")
]

for exception in exceptions:
    raise exception

which prints/raises only first exception on console:

Traceback (most recent call last):
  File "C:\Users\stirpude\PycharmProjects\utils.py", line 8, in <module>
    raise exception
ValueError: This is a ValueError

I am not sure what exactly you are trying to achieve here by having all exception printed on console because anyway job execution is not going to continue in this case.

Kindly let me know otherwise I will have to close this ticket.

Thank you.

Hello @renato-alves-barros,

Currently the PR has been raised to address this issue. Once it is merged, I will update you here.

Thank you.

Hello @renato-alves-barros,

The PR got merged and the fix will be available in pyATS 24.2 version. So, kindly wait for the release and test the solution. Meanwhile, I am closing this ticket. If this issue still persists, kindly re-open the ticket and let me know.

Thank you.