If in port config of py-salt select only tcp transport than ZeroMQ transport wouldn't be installed and it is normal. But then when saltstack is started it shows the next error message:
Traceback (most recent call last):
File "/usr/local/bin/salt-master", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3098, in <module>
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3082, in _call_aside
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3111, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 573, in _build_master
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 891, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 777, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pyzmq>=2.2.0' distribution was not found and is required by salt
This error is caused by line in /usr/local/lib/python2.7/site-packages/salt-2018.3.1-py2.7.egg-info/requires.txt:
Removing of it solves the problem.
In the meantime we have 2019.2.0. Does the problem still exist?
(In reply to Walter Schwarzenfeld from comment #1)
Unfortunately version py27-salt-2019.2.0_2 still has this problem
^Triage: Correct assignee and maintainer-feedback flags (python is not maintainer, but remains CC'd)
If pyzmq isn't declared as an extras_require (but instead as an install_requires), then it is an unconditional dependency by way of its (potentially incorrect) declaration, and *_DEPENDS must match to suit, or the requirements in sources patched appropriately
@Alexander, can you please confirm the exact set/values of port OPTIONS that produces this error. My interpretation is that this is reproducible *only* if TCP=ON (non default) and ZMQ=OFF (also non default)
(In reply to Kubilay Kocak from comment #3)
> My interpretation is that this is reproducible *only* if TCP=ON (non default) and ZMQ=OFF (also non default)
Yes, as I've written in my first post problem appears under these conditions. I suppose that it is enough to just deselect ZEROMQ to reproduce bug.
With salt-ssh from py36-salt-2019.2.0_2 the error is also
reproducible with TCP=off and ZEROMQ=off.
Created attachment 212238 [details]
Patch to fix python dependencies when ZEROMQ option disabled
There is a build time option --salt-transport that should be set to change python dependencies specified in the requires.txt. For those not familiar, the structure of the requires.txt file is outlined in the following link:
According to the salt setup.py code, the supported values for --salt-transport include:
- zeromq - adds python dependencies for zeromq to the core requirements section of requires.txt
- raet - adds python dependencies for raet to the core requirements section of requires.txt
- both - no impact
- ssh - no impact
- none - no impact
Note that the raet dependencies are already included extra requirements section of requires.txt under the [RAET] optional feature.
It is also worth noting that raet support is removed in the next release of salt (v3000).
Given this, the attached patch only toggles the zeromq option on or off inline with the selection of the port option.
Thoughts on this patch?