salt: salt-call --local sys.doc none gives errors/warning in amazon linux
Description of Issue/Question
On 2017.7.0 when running salt-call --local sys.doc none
or salt-call --local sys.doc aliases.list_aliases
on amazon linux I get errors/warnings. Commands seems to run fine. Other salt-call --local commands runs fine without the warning/error.
I see this:
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_elbv2. Module will not be loaded: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_elbv2.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_elbv2', please fix this.
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_kinesis. Module will not be loaded: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_kinesis.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_kinesis', please fix this.
Setup
Amazon linux machine with salt 2017.7.0
Steps to Reproduce Issue
[root@ip-10-150-125-98 ec2-user]# salt-call --local sys.doc none
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_elbv2. Module will not be loaded: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_elbv2.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_elbv2', please fix this.
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_kinesis. Module will not be loaded: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_kinesis.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_kinesis', please fix this.
local:
----------
[root@ip-10-150-125-98 ec2-user]# salt-call --local sys.doc aliases.list_aliases
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_elbv2. Module will not be loaded: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_elbv2.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_elbv2', please fix this.
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_kinesis. Module will not be loaded: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_kinesis.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_kinesis', please fix this.
local:
----------
aliases.list_aliases:
Return the aliases found in the aliases file in this format::
{'alias': 'target'}
CLI Example:
salt '*' aliases.list_aliases
[root@ip-10-150-125-98 ec2-user]#
Other salt-call commands don’t give it:
[root@ip-10-150-125-98 ec2-user]# salt-call --local test.version
local:
2017.7.0
[root@ip-10-150-125-98 ec2-user]# salt-call --local grains.item os
local:
----------
os:
Amazon
[root@ip-10-150-125-98 ec2-user]# salt-call --local state.highstate
local:
----------
ID: echo
Function: cmd.run
Name: echo 'This is a test!'
Result: True
Comment: Command "echo 'This is a test!'" run
Started: 16:26:00.450788
Duration: 35.793 ms
Changes:
----------
pid:
22140
retcode:
0
stderr:
stdout:
This is a test!
Summary for local
------------
Succeeded: 1 (changed=1)
Failed: 0
------------
Total states run: 1
Total run time: 35.793 ms
[root@ip-10-150-125-98 ec2-user]#
Running in debug mode I see a lot of tracebacks:
[root@ip-10-150-125-98 ec2-user]# salt-call --local sys.doc none -ldebug
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Using cached minion ID from /etc/salt/minion_id: ip-10-150-125-98.ec2.internal
[DEBUG ] Configuration file path: /etc/salt/minion
[WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Please install 'virt-what' to improve results of the 'virtual' grain.
[DEBUG ] Determining pillar cache
[DEBUG ] LazyLoaded jinja.render
[DEBUG ] LazyLoaded yaml.render
[DEBUG ] LazyLoaded jinja.render
[DEBUG ] LazyLoaded yaml.render
[DEBUG ] LazyLoaded sys.doc
[DEBUG ] LazyLoaded boto.assign_funcs
[DEBUG ] Failed to import utils mako:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1411, in _load_module
mod = imp.load_module(mod_namespace, fn_, fpath, desc)
File "/usr/lib/python2.7/dist-packages/salt/utils/mako.py", line 12, in <module>
from mako.lookup import TemplateCollection, TemplateLookup # pylint: disable=import-error,3rd-party-module-not-gated
File "/usr/lib/python2.7/dist-packages/salt/utils/mako.py", line 12, in <module>
from mako.lookup import TemplateCollection, TemplateLookup # pylint: disable=import-error,3rd-party-module-not-gated
ImportError: No module named lookup
[DEBUG ] Failed to import utils raetevent:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1411, in _load_module
mod = imp.load_module(mod_namespace, fn_, fpath, desc)
File "/usr/lib/python2.7/dist-packages/salt/utils/raetevent.py", line 24, in <module>
from raet import raeting, nacling
ImportError: No module named raet
[DEBUG ] Failed to import utils raetlane:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1411, in _load_module
mod = imp.load_module(mod_namespace, fn_, fpath, desc)
File "/usr/lib/python2.7/dist-packages/salt/utils/raetlane.py", line 63, in <module>
from raet import raeting, nacling
ImportError: No module named raet
[DEBUG ] Could not LazyLoad boto3.assign_funcs: 'boto3' __virtual__ returned False
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_elbv2. Module will not be loaded: 'boto3.assign_funcs'
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1672, in process_virtual
virtual = getattr(mod, virtual_func)()
File "/usr/lib/python2.7/dist-packages/salt/modules/boto_elbv2.py", line 71, in __virtual__
__utils__['boto3.assign_funcs'](__name__, 'elbv2')
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1113, in __getitem__
func = super(LazyLoader, self).__getitem__(item)
File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 101, in __getitem__
raise KeyError(key)
KeyError: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_elbv2.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_elbv2', please fix this.
[DEBUG ] LazyLoaded boto3.assign_funcs
[DEBUG ] Error loading module.boto_iot: __init__ failed
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1464, in _load_module
module_init(self.opts)
File "/usr/lib/python2.7/dist-packages/salt/modules/boto_iot.py", line 109, in __init__
__utils__['boto3.assign_funcs'](__name__, 'iot')
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1113, in __getitem__
func = super(LazyLoader, self).__getitem__(item)
File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 98, in __getitem__
return self._dict[key]
KeyError: 'boto3.assign_funcs'
[DEBUG ] LazyLoaded boto3.assign_funcs
[ERROR ] Exception raised when processing __virtual__ function for salt.loaded.int.module.boto_kinesis. Module will not be loaded: 'boto3.assign_funcs'
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1672, in process_virtual
virtual = getattr(mod, virtual_func)()
File "/usr/lib/python2.7/dist-packages/salt/modules/boto_kinesis.py", line 76, in __virtual__
__utils__['boto3.assign_funcs'](__name__, 'kinesis')
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1113, in __getitem__
func = super(LazyLoader, self).__getitem__(item)
File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 98, in __getitem__
return self._dict[key]
KeyError: 'boto3.assign_funcs'
[WARNING ] salt.loaded.int.module.boto_kinesis.__virtual__() is wrongly returning `None`. It should either return `True`, `False` or a new name. If you're the developer of the module 'boto_kinesis', please fix this.
[DEBUG ] boto_kms requires boto 2.38.0.
[DEBUG ] LazyLoaded boto3.assign_funcs
[DEBUG ] Error loading module.boto_lambda: __init__ failed
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1464, in _load_module
module_init(self.opts)
File "/usr/lib/python2.7/dist-packages/salt/modules/boto_lambda.py", line 149, in __init__
__utils__['boto3.assign_funcs'](__name__, 'lambda')
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1113, in __getitem__
func = super(LazyLoader, self).__getitem__(item)
File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 98, in __getitem__
return self._dict[key]
KeyError: 'boto3.assign_funcs'
[DEBUG ] LazyLoaded boto3.assign_funcs
[DEBUG ] Error loading module.boto_rds: __init__ failed
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1464, in _load_module
module_init(self.opts)
File "/usr/lib/python2.7/dist-packages/salt/modules/boto_rds.py", line 144, in __init__
__utils__['boto3.assign_funcs'](__name__, 'rds')
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1113, in __getitem__
func = super(LazyLoader, self).__getitem__(item)
File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 98, in __getitem__
return self._dict[key]
KeyError: 'boto3.assign_funcs'
[DEBUG ] LazyLoaded boto3.assign_funcs
[DEBUG ] Error loading module.boto_s3_bucket: __init__ failed
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1464, in _load_module
module_init(self.opts)
File "/usr/lib/python2.7/dist-packages/salt/modules/boto_s3_bucket.py", line 107, in __init__
__utils__['boto3.assign_funcs'](__name__, 's3')
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1113, in __getitem__
func = super(LazyLoader, self).__getitem__(item)
File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 98, in __getitem__
return self._dict[key]
KeyError: 'boto3.assign_funcs'
[DEBUG ] LazyLoaded boto3.assign_funcs
[DEBUG ] Error loading module.boto_vpc: __init__ failed
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1464, in _load_module
module_init(self.opts)
File "/usr/lib/python2.7/dist-packages/salt/modules/boto_vpc.py", line 206, in __init__
__utils__['boto3.assign_funcs'](__name__, 'ec2',
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1113, in __getitem__
func = super(LazyLoader, self).__getitem__(item)
File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 98, in __getitem__
return self._dict[key]
KeyError: 'boto3.assign_funcs'
[DEBUG ] SMBIOS: neither dmidecode nor smbios found!
[DEBUG ] Module DSC: Only available on Windows systems
[DEBUG ] Module PSGet: Only available on Windows systems
[DEBUG ] LazyLoaded nested.output
local:
----------
[root@ip-10-150-125-98 ec2-user]#
Versions Report
Salt Version:
Salt: 2017.7.0
Dependency Versions:
cffi: Not Installed
cherrypy: 3.2.2
dateutil: 2.1
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.6
mysql-python: Not Installed
pycparser: Not Installed
pycrypto: 2.6.1
pycryptodome: Not Installed
pygit2: Not Installed
Python: 2.7.9 (default, Mar 4 2015, 20:43:00)
python-gnupg: Not Installed
PyYAML: 3.10
PyZMQ: 14.5.0
RAET: Not Installed
smmap: Not Installed
timelib: Not Installed
Tornado: 4.2.1
ZMQ: 4.0.5
System Versions:
dist:
locale: UTF-8
machine: x86_64
release: 3.14.35-28.38.amzn1.x86_64
system: Linux
version: Not Installed
About this issue
- Original URL
- State: open
- Created 7 years ago
- Reactions: 2
- Comments: 18 (3 by maintainers)
@VirtualAirwaves This is already fixed in SaltStack 2018.2 (but is not is 2017.7.7): https://github.com/saltstack/salt/pull/44063/commits/1789ca93f905a56b0ab93a54afb1bcb4b3e9f58c
Well at least, the issue is solved for me.
I don’t know if this was epel 7-10 or boto3 1.4.7 which solved the issue, but after installing both, and before installing salt, there is no more issue at all (even those in the initial ticket message are cleared!)
Here is what I did to solve the issue in this order: Install a fresh Centos 7.3 (because there is no AWS AMI for 7.4 yet) Install epel 7-10 directly (without passing via 7-9, but it should not be an issue), with the following: yum -y localinstall http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
then: yum -y update yum -y install python2-pip pip install --upgrade pip # This one may not be needed to solve the issue, anyway I keep it there pip install awscli pip install --upgrade boto3
then install salt 2017.7.1
Hope this helps some of you