This could be related to the new process manager, but I haven't
investigated fully. At any rate, this allows Upstart to function
correctly when starting and stopping the salt master.
Since this isn't a default (in config.py), if you didn't set it you get backtraces from _clear_old_jobs:
```
Process Process-1:
Traceback (most recent call last):
File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
self.run()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
self._target(*self._args, **self._kwargs)
File "/home/thjackso/src/salt-github/salt/master.py", line 162, in _clear_old_jobs
if self.opts['ping_on_rotate']:
KeyError: 'ping_on_rotate'
```
This commit suppresses a log warning when the minion is AIX, and none of
lspci, dmidecode, or dmesg are available.
This log message is just noise, especially in salt-call.
This allows for the full list of available packages in each repo to be
returned. This was my original intention when I wrote this function, but
I didn't realize that I was missing versions in the output until I
researched github issue #16467.
The structure of the return dict had to be changed slightly to
accommodate the new behavior.
Additionally, rather than just sorting each list in place, this sorts
all versions for a given package in a given repo using
distuils.version.LooseVersion, to give an accurate sorting of versions,
and put the newest versions at the top of the list.
salt-cloud receives an error when trying to create an EC2 instance when
any number of argument values contain a space. This happens because
salt-cloud is incorrectly building the url string when calculating the
signature. AWS signature algorithm #2 requires that spaces be encoded
using %20, however python's urlencode method replaces them with a +.
The easy fix is to just search and replace in the encoded string.
I encountered this myself with a security group with a space in it.
This was reported in issue #10181https://github.com/saltstack/salt/issues/10181
The error looks like this:
someinstancename:
----------
Errors:
----------
Error:
----------
Code:
SignatureDoesNotMatch
Message:
The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
RequestID:
12345678-9abc-def0-1234-56789abcdef0