Salt targeting is done using the zmq pub/sub mechanism. No filtering is done so all requests go to all minions. This is an attempt to make the requests more target-able. ZeroMQ supports filters on these sockets which are processed publisher side. So the thought is to set it to the minion id and a shared "broadcast" one. Only requests of tgt_type == list will use this. The thought is if we like this we can use other data (mine etc) to determine a more specific target on the master (such as a list) from a glob match etc.
This is more or less backwards compatible, during my testing it still works but the old minion will throw an exception like:
[CRITICAL] An exception occurred while polling the minion
Traceback (most recent call last):
File "/home/thjackso/src/salt/salt/minion.py", line 1324, in tune_in
payload = self.serial.loads(self.socket.recv(zmq.NOBLOCK))
File "/home/thjackso/src/salt/salt/payload.py", line 95, in loads
return msgpack.loads(msg, use_list=True)
File "_unpacker.pyx", line 114, in msgpack._unpacker.unpackb (msgpack/_unpacker.cpp:114)
ExtraData: unpack(b) recieved extra data.
So if we decide this is a good idea we'll probably want to wrap the new master side logic in a config option, and just merge in the minion side changes for the first release.
This is another attempt of #10374.
We are expecting a list, not a None.
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/state.py", line 1517, in call
**cdata['kwargs'])
File "/usr/lib/python2.7/dist-packages/salt/states/glusterfs.py", line 178, in started
if name not in volumes:
TypeError: argument of type 'NoneType' is not iterable
This changes how the setUp function initializes and commits the repo
used as a gitfs remote by these tests. Instead of using the git.Git
class, it simply uses the index object to add and then commit. See here
for more info:
https://pythonhosted.org/GitPython/0.3.1/tutorial.html#the-index-object
Additionally, file_hash() and serve_file() are designed to check copies
of files that have been retrieved from the blobs, in
$cachedir/gitfs/refs/$saltenv/path/to/file. The paths have been fixed in
these two tests, and the sha1 test has been renamed to ensure that it is
executed after test_find_file, so that the file exists in the cache.