salt-nornir icon indicating copy to clipboard operation
salt-nornir copied to clipboard

Salt 3007.0 Compatability

Open gcasella opened this issue 11 months ago • 0 comments

With the release of Salt 3007, thought i'd open this up to show what is happening with SaltNornir when using the cfg_gen functions.

This is just an open placeholder to keep you in the loop.

For the interim i have hard-coded my version of Saltstack back to 3006.x

salt_cfg_gen:
          Traceback (most recent call last):
            File "/opt/saltstack/salt/extras-3.10/salt_nornir/proxy/nornir_proxy_module.py", line 1221, in _download_and_render_files
              rendered = __render(value)
            File "/opt/saltstack/salt/extras-3.10/salt_nornir/proxy/nornir_proxy_module.py", line 1199, in __render
              content = _file_download(ret, saltenv)
            File "/opt/saltstack/salt/extras-3.10/salt_nornir/proxy/nornir_proxy_module.py", line 767, in _file_download
              file_path = __salt__["cp.get_url"](url, dest="", saltenv=saltenv)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 160, in __call__
              ret = self.loader.run(run_func, *args, **kwargs)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1233, in run
              return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1248, in _run_as
              return _func_or_method(*args, **kwargs)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/cp.py", line 416, in get_url
              with _client() as client:
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/cp.py", line 171, in _client
              return salt.fileclient.get_file_client(__opts__)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/fileclient.py", line 54, in get_file_client
              return {"remote": RemoteClient, "local": FSClient, "pillar": PillarClient}.get(
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/fileclient.py", line 1128, in __init__
              self.channel = salt.channel.client.ReqChannel.factory(self.opts)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/channel/client.py", line 55, in factory
              return SyncWrapper(
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/asynchronous.py", line 77, in __init__
              self.obj = cls(*args, **kwargs)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/channel/client.py", line 133, in factory
              auth = salt.crypt.AsyncAuth(opts, io_loop=io_loop)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/crypt.py", line 695, in __new__
              auth.__singleton_init__(opts, io_loop=io_loop)
            File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/crypt.py", line 742, in __singleton_init__
              self._authenticate_future = tornado.concurrent.Future()
            File "/opt/saltstack/salt/lib/python3.10/asyncio/events.py", line 656, in get_event_loop
              raise RuntimeError('There is no current event loop in thread %r.'
          RuntimeError: There is no current event loop in thread 'Thread-29 (_worker)'.

from the minion itself:

[INFO    ] User root Executing command nr.nc with jid 20240307202811956871
[ERROR   ] Exception while running callback
Traceback (most recent call last):
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/transport/zeromq.py", line 394, in consume
    await callback(msg)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/channel/client.py", line 484, in wrap_callback
    await callback(decoded)
TypeError: object NoneType can't be used in 'await' expression
[INFO    ] Starting a new job with PID 9130
[INFO    ] Nornir-proxy MAIN PID 41 starting task 'nornir_salt.plugins.tasks.ncclient_call'
[INFO    ] Running task 'nornir_salt.plugins.tasks.ncclient_call' with args {'source': 'running', 'call': 'get_config', 'connection_name': 'ncclient'} on 1 hosts
[INFO    ] nornir_salt:RetryRunner Rtr1 - running task 'nornir_salt.plugins.tasks.ncclient_call'
[INFO    ] [host 10.48.235.183 session-id 75804] Requesting 'GetConfig'
[INFO    ] [host 10.48.235.183 session-id 75804] Sending:
<?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:048c9650-31df-48bd-bc94-190251a31437"><nc:get-config><nc:source><nc:running/></nc:source></nc:get-config></nc:rpc>]]>]]>
[INFO    ] [host 10.48.235.183 session-id 75804] Received message from host
[INFO    ] nornir_salt:RetryRunner Rtr1 - task 'get_config' completed
[INFO    ] Returning information for job: 20240307202811956871
[INFO    ] User root Executing command nr.cfg_gen with jid 20240307203139652979
[ERROR   ] Exception while running callback
Traceback (most recent call last):
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/transport/zeromq.py", line 394, in consume
    await callback(msg)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/channel/client.py", line 484, in wrap_callback
    await callback(decoded)
TypeError: object NoneType can't be used in 'await' expression
[INFO    ] Starting a new job with PID 9536

gcasella avatar Mar 12 '24 16:03 gcasella