Do not insert local paths before standard library paths by marmarek · Pull Request #68756 · saltstack/salt
Inserting local paths like `salt/utils` before standard library makes
many modules in utils conflict with standard library. This is especially
relevant for salt-ssh. For example salt.utils.configparser - it tries to
import configparser from stdlib, but due to salt/utils path being
prepended to sys.path, it imports itself:
[ERROR ] Failed to import fileserver gitfs, this is due most likely to a syntax error:
Traceback (most recent call last):
File "/var/tmp/.root_dd8a91_salt/pyall/salt/loader/lazy.py", line 902, in _load_module
self.run(spec.loader.exec_module, mod)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/tmp/.root_dd8a91_salt/pyall/salt/loader/lazy.py", line 1365, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/tmp/.root_dd8a91_salt/pyall/salt/loader/lazy.py", line 1380, in _run_as
ret = _func_or_method(*args, **kwargs)
File "<frozen importlib._bootstrap_external>", line 1023, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/var/tmp/.root_dd8a91_salt/pyall/salt/fileserver/gitfs.py", line 52, in <module>
import salt.utils.gitfs
File "/var/tmp/.root_dd8a91_salt/pyall/salt/utils/gitfs.py", line 31, in <module>
import salt.utils.configparser
File "/var/tmp/.root_dd8a91_salt/pyall/salt/utils/configparser.py", line 7, in <module>
from configparser import * # pylint: disable=no-name-in-module,wildcard-import,unused-wildcard-import
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/tmp/.root_dd8a91_salt/running_data/var/cache/salt/minion/extmods/utils/configparser.py", line 12, in <module>
class GitConfigParser(RawConfigParser):
^^^^^^^^^^^^^^^
NameError: name 'RawConfigParser' is not defined
On the other hand, places that try to use such duplicated modules from
utils, import them via full name (as seen above: `import salt.utils.configparser`).
Change the insert_system_path() function to not insert paths before
standard library.
Fixes saltstack#68755