amyasnikov / validity

NetBox plugin to validate network devices
MIT License
121 stars 7 forks source link

Device polling fails when there are devices with no poller bound #71

Closed amyasnikov closed 6 months ago

amyasnikov commented 6 months ago

Steps to reproduce:

  1. Create a new device.
  2. Bind it to Validity Polling.
  3. Press sync button

TB:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/rq/worker.py", line 1428, in perform_job
    rv = job.perform()
  File "/usr/local/lib/python3.10/site-packages/rq/job.py", line 1278, in perform
    self._result = self._execute()
  File "/usr/local/lib/python3.10/site-packages/rq/job.py", line 1315, in _execute
    result = self.func(*self.args, **self.kwargs)
  File "/opt/netbox/netbox/core/jobs.py", line 33, in sync_datasource
    raise e
  File "/opt/netbox/netbox/core/jobs.py", line 20, in sync_datasource
    datasource.sync()
  File "/opt/netbox/netbox/core/models/data.py", line 172, in sync
    with backend.fetch() as local_path:
  File "/usr/local/lib/python3.10/contextlib.py", line 135, in __enter__
    return next(self.gen)
  File "/plugin/validity/validity/data_backends.py", line 56, in fetch
    result_generators = [
  File "/plugin/validity/validity/data_backends.py", line 57, in <listcomp>
    poller.get_backend().poll(device_group)
AttributeError: 'NoneType' object has no attribute 'get_backend'