Salt: Exception raised when processing __virtual__ function for salt.loaded.int.module.ansiblegate.

Created on 23 Nov 2017  路  7Comments  路  Source: saltstack/salt

Description of Issue/Question

Getting this noise on successful execution of kerberos salt-formula.

[WARNING ] Ansible is not installed on this system
[ERROR   ] Exception raised when processing __virtual__ function for salt.loaded.int.module.ansiblegate. Module will not be loaded: 'NoneType' object has no attribute 'get_modules_list'
[WARNING ] salt.loaded.int.module.ansiblegate.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'ansiblegate', please fix this.
[WARNING ] Ansible is not installed on this system
[ERROR   ] Exception raised when processing __virtual__ function for salt.loaded.int.module.ansiblegate. Module will not be loaded: 'NoneType' object has no attribute 'get_modules_list'
[WARNING ] salt.loaded.int.module.ansiblegate.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'ansiblegate', please fix this.
local:

Setup

Centos 7.3 Server vallina install + Saltstack + Kerberos formula
$ sudo salt-call state.highstate --local -l all

Branch: https://github.com/noelmcloughlin/kerberos-formula/tree/extend-solution

Steps to Reproduce Issue

Clone this branch: https://github.com/noelmcloughlin/kerberos-formula/tree/extend-solution

LOG: kerberos-cent7.log
PR: https://github.com/saltstack-formulas/kerberos-formula/pull/3

Versions Report

alt Version:
           Salt: 2017.7.1-5501-g601b946

Dependency Versions:
           cffi: Not Installed
       cherrypy: Not Installed
       dateutil: Not Installed
      docker-py: Not Installed
          gitdb: Not Installed
      gitpython: Not Installed
          ioflo: Not Installed
         Jinja2: 2.7.2
        libgit2: Not Installed
        libnacl: Not Installed
       M2Crypto: Not Installed
           Mako: Not Installed
   msgpack-pure: Not Installed
 msgpack-python: 0.4.8
   mysql-python: Not Installed
      pycparser: Not Installed
       pycrypto: 2.6.1
   pycryptodome: Not Installed
         pygit2: Not Installed
         Python: 2.7.5 (default, Nov  6 2016, 00:28:07)
   python-gnupg: Not Installed
         PyYAML: 3.11
          PyZMQ: 15.3.0
           RAET: Not Installed
          smmap: Not Installed
        timelib: Not Installed
        Tornado: 4.2.1
            ZMQ: 4.1.4

System Versions:
           dist: centos 7.3.1611 Core
         locale: UTF-8
        machine: x86_64
        release: 3.10.0-514.el7.x86_64
         system: Linux
        version: CentOS Linux 7.3.1611 Core
Bug Core P1 ZRELEASED - 2018.3.0 severity-critical severity-low

Most helpful comment

@gtmanfred Here. You have it. I love Python, but sometimes I hate it for this. Additionally, I moved error output from log.warning to log.debug and I wrote two unit tests for this. Now it should work more or less reliably. :wink:

All 7 comments

Here is debug log (no pillars) kerberos-cent7-nopillars.log

@isbm can you take a look at this?

There should not be any warning log in the __virtual__ function, that is what the message in the return is for.

Thanks,
Daniel

@gtmanfred Hmm... Could be. I am on it right now. Anyway, Blocker/P1/Apocalypse tags doesn't looks good. :laughing:

@gtmanfred Here. You have it. I love Python, but sometimes I hate it for this. Additionally, I moved error output from log.warning to log.debug and I wrote two unit tests for this. Now it should work more or less reliably. :wink:

@gtmanfred but the logic of loader at that place is also quite broken in being consequent. It should not saying something like:

module.foo.__virtual__() is wrongly returning 'None'

Because it doesn't _returning_ None, but just _crashes_. Instead, the logic here should guide what just had happened: __virtual__ crashed, and nothing else, then just quit and that's it. But on except clause, it nulls the virtual to None and then checks for None right away, and therefore misleads everyone in the report...

I would consider to fix that.

Well, we can't send out a release of salt with a bunch of error messages every time everything loads :)

Thanks for the fix!

Well, we can't send out a release of salt with a bunch of error messages every time everything loads :)

Hehe :wink: You welcome!

Was this page helpful?
0 / 5 - 0 ratings