Package: salt-api Version: 2018.3.4+dfsg1-6+deb10u1 Debian ships 3 patches from Benjamin Drung to make salt use the python3-tornado4 package: 0001-Import-tornado.gen-as-tornado_gen.patch 0002-Explicitly-import-attributes-from-tornado.patch 0003-Use-renamed-python3-tornado4.patch
The 3rd patch is incomplete, and as a result the rest_tornado netapi module is totally broken. If one configures rest_tornado[1] and tries to start salt-api, the result is: Process salt.loaded.int.netapi.rest_tornado.start: Traceback (most recent call last): File "/usr/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap self.run() File "/usr/lib/python3.7/multiprocessing/process.py", line 99, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3/dist-packages/salt/netapi/rest_tornado/__init__.py", line 127, in start from tornado.httpserver import HTTPServer ModuleNotFoundError: No module named 'tornado' If you make the unfortunate detour of installing python3-tornado, or already have it installed for other reasons, salt-api will start, but it won't work at all, connections to the configured port simply hang. The fix is straightforward; here it is in the form of a direct patch against the offending source file: --- /usr/lib/python3/dist-packages/salt/netapi/rest_tornado/__init__.py.orig 2020-08-18 07:06:32.922033000 +0000 +++ /usr/lib/python3/dist-packages/salt/netapi/rest_tornado/__init__.py 2020-08-18 06:45:28.007820241 +0000 @@ -124,7 +124,10 @@ ssl_opts.update({'keyfile': mod_opts['ssl_key']}) kwargs['ssl_options'] = ssl_opts - from tornado.httpserver import HTTPServer + try: + from tornado4.httpserver import HTTPServer + except ImportError: + from tornado.httpserver import HTTPServer http_server = HTTPServer(get_application(__opts__), **kwargs) try: http_server.bind(mod_opts['port'], or you could just append the same hunk to the salt/netapi/rest_tornado/__init__.py section of debian/patches/0003-Use-renamed-python3-tornado4.patch -- Jamie Heilman http://audible.transient.net/~jamie/ [1] https://docs.saltstack.com/en/latest/ref/netapi/all/salt.netapi.rest_tornado.html#module-salt.netapi.rest_tornado