mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 09:51:22 -06:00
Fixes #2588: Catch all exceptions from failed NAPALM API Calls
This commit is contained in:
parent
83be0b5db4
commit
408f632636
@ -10,6 +10,7 @@ v2.4.8 (FUTURE)
|
|||||||
* [#2558](https://github.com/digitalocean/netbox/issues/2558) - Filter on all tags when multiple are passed
|
* [#2558](https://github.com/digitalocean/netbox/issues/2558) - Filter on all tags when multiple are passed
|
||||||
* [#2565](https://github.com/digitalocean/netbox/issues/2565) - Improved rendering of Markdown tables
|
* [#2565](https://github.com/digitalocean/netbox/issues/2565) - Improved rendering of Markdown tables
|
||||||
* [#2575](https://github.com/digitalocean/netbox/issues/2575) - Correct model specified for rack roles table
|
* [#2575](https://github.com/digitalocean/netbox/issues/2575) - Correct model specified for rack roles table
|
||||||
|
* [#2588](https://github.com/digitalocean/netbox/issues/2588) - Catch all exceptions from failed NAPALM API Calls
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -263,9 +263,9 @@ class DeviceViewSet(CustomFieldModelViewSet):
|
|||||||
# Check that NAPALM is installed
|
# Check that NAPALM is installed
|
||||||
try:
|
try:
|
||||||
import napalm
|
import napalm
|
||||||
|
from napalm.base.exceptions import ModuleImportError
|
||||||
except ImportError:
|
except ImportError:
|
||||||
raise ServiceUnavailable("NAPALM is not installed. Please see the documentation for instructions.")
|
raise ServiceUnavailable("NAPALM is not installed. Please see the documentation for instructions.")
|
||||||
from napalm.base.exceptions import ModuleImportError
|
|
||||||
|
|
||||||
# Validate the configured driver
|
# Validate the configured driver
|
||||||
try:
|
try:
|
||||||
@ -309,7 +309,9 @@ class DeviceViewSet(CustomFieldModelViewSet):
|
|||||||
try:
|
try:
|
||||||
response[method] = getattr(d, method)()
|
response[method] = getattr(d, method)()
|
||||||
except NotImplementedError:
|
except NotImplementedError:
|
||||||
response[method] = {'error': 'Method not implemented for NAPALM driver {}'.format(driver)}
|
response[method] = {'error': 'Method {} not implemented for NAPALM driver {}'.format(method, driver)}
|
||||||
|
except Exception as e:
|
||||||
|
response[method] = {'error': 'Method {} failed: {}'.format(method, e)}
|
||||||
d.close()
|
d.close()
|
||||||
|
|
||||||
return Response(response)
|
return Response(response)
|
||||||
|
Loading…
Reference in New Issue
Block a user