Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] virt_query outputter returns traceback #65841

Open
1 of 9 tasks
tacerus opened this issue Jan 10, 2024 · 0 comments · May be fixed by #65843 or openSUSE/salt#655
Open
1 of 9 tasks

[BUG] virt_query outputter returns traceback #65841

tacerus opened this issue Jan 10, 2024 · 0 comments · May be fixed by #65843 or openSUSE/salt#655
Labels
Bug broken, incorrect, or confusing behavior needs-triage

Comments

@tacerus
Copy link

tacerus commented Jan 10, 2024

Description

root@witch1 ~# salt-run --out=virt_query virt.query host=squanchy.infra.opensuse.org
[ERROR   ] Nested output failed: 
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 36, in try_printout
    printout = get_printout(out, opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
KeyError: 'data'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 42, in try_printout
    printout = get_printout("nested", opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
KeyError: 'data'
[ERROR   ] Nested output failed: 
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 36, in try_printout
    printout = get_printout(out, opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 42, in try_printout
    printout = get_printout("nested", opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers
[ERROR   ] An un-handled exception was caught by Salt's global exception handler:
TypeError: string indices must be integers
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 36, in try_printout
    printout = get_printout(out, opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 42, in try_printout
    printout = get_printout("nested", opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/salt-run", line 9, in <module>
    salt_run()
  File "/usr/lib/python3.6/site-packages/salt/scripts.py", line 457, in salt_run
    client.run()
  File "/usr/lib/python3.6/site-packages/salt/cli/run.py", line 34, in run
    ret = runner.run()
  File "/usr/lib/python3.6/site-packages/salt/runner.py", line 308, in run
    daemonize=False,
  File "/usr/lib/python3.6/site-packages/salt/client/mixins.py", line 540, in _proc_function
    return instance.low(fun, low)
  File "/usr/lib/python3.6/site-packages/salt/client/mixins.py", line 436, in low
    namespaced_event.fire_event(data, "ret")
  File "/usr/lib/python3.6/site-packages/salt/utils/event.py", line 1033, in fire_event
    self.print_func(tag, data)
  File "/usr/lib/python3.6/site-packages/salt/client/mixins.py", line 640, in print_async_event
    salt.output.display_output(event_data, outputter, self.opts)
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 88, in display_output
    display_data = try_printout(data, out, opts, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 47, in try_printout
    printout = get_printout("raw", opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 36, in try_printout
    printout = get_printout(out, opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 42, in try_printout
    printout = get_printout("nested", opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/salt-run", line 9, in <module>
    salt_run()
  File "/usr/lib/python3.6/site-packages/salt/scripts.py", line 457, in salt_run
    client.run()
  File "/usr/lib/python3.6/site-packages/salt/cli/run.py", line 34, in run
    ret = runner.run()
  File "/usr/lib/python3.6/site-packages/salt/runner.py", line 308, in run
    daemonize=False,
  File "/usr/lib/python3.6/site-packages/salt/client/mixins.py", line 540, in _proc_function
    return instance.low(fun, low)
  File "/usr/lib/python3.6/site-packages/salt/client/mixins.py", line 436, in low
    namespaced_event.fire_event(data, "ret")
  File "/usr/lib/python3.6/site-packages/salt/utils/event.py", line 1033, in fire_event
    self.print_func(tag, data)
  File "/usr/lib/python3.6/site-packages/salt/client/mixins.py", line 640, in print_async_event
    salt.output.display_output(event_data, outputter, self.opts)
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 88, in display_output
    display_data = try_printout(data, out, opts, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/__init__.py", line 47, in try_printout
    printout = get_printout("raw", opts)(data, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 149, in __call__
    return self.loader.run(run_func, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1234, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
    return callable(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/loader/lazy.py", line 1249, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/salt/output/virt_query.py", line 15, in output
    for id_ in data["data"]:
TypeError: string indices must be integers

Setup

Not applicable / nothing was configured in Salt for this.

Please be as specific as possible and give set-up details.

  • on-prem machine
  • VM (Virtualbox, KVM, etc. please specify)
  • VM running on a cloud service, please be explicit and add details
  • container (Kubernetes, Docker, containerd, etc. please specify)
  • or a combination, please be explicit
  • jails if it is FreeBSD
  • classic packaging
  • onedir packaging
  • used bootstrap to install

Steps to Reproduce the behavior

  1. Connect a minion
  2. Run some VMs with Libvirt on the minion
  3. Try virt.query using --out=virt_query from the master

Expected behavior

No errors. :(

Screenshots

Text output above should suffice.

Versions Report

salt --versions-report (Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
# salt --versions-report
Salt Version:
          Salt: 3006.0
 
Python Version:
        Python: 3.6.15 (default, Sep 23 2021, 15:41:43) [GCC]
 
Dependency Versions:
          cffi: 1.13.2
      cherrypy: unknown
      dateutil: 2.8.1
     docker-py: Not Installed
         gitdb: Not Installed
     gitpython: Not Installed
        Jinja2: 2.10.1
       libgit2: 1.3.0
  looseversion: 1.0.2
      M2Crypto: 0.38.0
          Mako: Not Installed
       msgpack: 0.5.6
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     packaging: 21.3
     pycparser: 2.17
      pycrypto: Not Installed
  pycryptodome: Not Installed
        pygit2: 1.7.0
  python-gnupg: Not Installed
        PyYAML: 5.4.1
         PyZMQ: 17.1.2
        relenv: Not Installed
         smmap: Not Installed
       timelib: Not Installed
       Tornado: 4.5.3
           ZMQ: 4.2.3
 
System Versions:
          dist: opensuse-leap 15.5 
        locale: UTF-8
       machine: x86_64
       release: 5.14.21-150500.55.39-default
        system: Linux
       version: openSUSE Leap 15.5 

Note I also tried the virt_query.py from the master branch as of commit d9b5065.

Additional context

I will propose a patch for this.

@tacerus tacerus added Bug broken, incorrect, or confusing behavior needs-triage labels Jan 10, 2024
@tacerus tacerus linked a pull request Jan 10, 2024 that will close this issue
3 tasks
@tacerus tacerus linked a pull request May 30, 2024 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug broken, incorrect, or confusing behavior needs-triage
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant