when using
```salt \* pkg -d```
some minions will not return and you get an ugly error:
```
[root@salt salt]# salt oat-app\* pkg -d
[ERROR ] An un-handled exception was caught by salt's global exception handler:
TypeError: string indices must be integers, not str
Traceback (most recent call last):
File "/usr/bin/salt", line 10, in <module>
salt_main()
File "/usr/lib/python2.6/site-packages/salt/scripts.py", line 343, in salt_main
client.run()
File "/usr/lib/python2.6/site-packages/salt/cli/salt.py", line 175, in run
self._output_ret(ret, out)
File "/usr/lib/python2.6/site-packages/salt/cli/salt.py", line 262, in _output_ret
self._print_docs(ret)
File "/usr/lib/python2.6/site-packages/salt/cli/salt.py", line 303, in _print_docs
if ret[host][fun]:
TypeError: string indices must be integers, not str
Traceback (most recent call last):
File "/usr/bin/salt", line 10, in <module>
salt_main()
File "/usr/lib/python2.6/site-packages/salt/scripts.py", line 343, in salt_main
client.run()
File "/usr/lib/python2.6/site-packages/salt/cli/salt.py", line 175, in run
self._output_ret(ret, out)
File "/usr/lib/python2.6/site-packages/salt/cli/salt.py", line 262, in _output_ret
self._print_docs(ret)
File "/usr/lib/python2.6/site-packages/salt/cli/salt.py", line 303, in _print_docs
if ret[host][fun]:
TypeError: string indices must be integers, not str
```
the patch is is ugly!!! so please fix correctly.
```
if ret[host] == 'Minion did not return. [Not connected]':
continue
```
thanks
Locale on Arch does not use /usr/share/i18n/SUPPORTED and so the
/usr/share/i18n/locales directory must be inspected for filenames with
the codeset and charmap parts removed from the locale specification.
This partially reverts, but also fixes#20097 for @s0undt3ch.
If Django is installed but DJANGO_SETTINGS_MODULE not set the loader
throws a traceback:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 925, in load_modules
), fn_, path, desc
File "/usr/lib/python2.7/dist-packages/salt/auth/django.py", line 54, in <module>
import django.contrib.auth
File "/usr/lib/python2.7/dist-packages/django/contrib/auth/__init__.py", line 6, in <module>
from django.middleware.csrf import rotate_token
File "/usr/lib/python2.7/dist-packages/django/middleware/csrf.py", line 14, in <module>
from django.utils.cache import patch_vary_headers
File "/usr/lib/python2.7/dist-packages/django/utils/cache.py", line 26, in <module>
from django.core.cache import get_cache
File "/usr/lib/python2.7/dist-packages/django/core/cache/__init__.py", line 69, in <module>
if DEFAULT_CACHE_ALIAS not in settings.CACHES:
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 54, in __getattr__
self._setup(name)
File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 47, in _setup
% (desc, ENVIRONMENT_VARIABLE))
ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
With the change to forcing all runner calls through low() we forgot about the scheduler which calls functions directly. This adds an API to get that same interface.
Also means we are missing test coverage on the scheduler, since it was non-stop backtracing on the master.