64 lines
2.7 KiB
Diff
64 lines
2.7 KiB
Diff
|
From 15e97fd2916176fe850850fe90983ac95a1f8e7b Mon Sep 17 00:00:00 2001
|
||
|
From: Erik Johnson <palehose@gmail.com>
|
||
|
Date: Mon, 11 Jun 2018 14:46:58 -0500
|
||
|
Subject: [PATCH] Show recommendations for salt-ssh cross-version python
|
||
|
errors
|
||
|
|
||
|
This shows more accurate information on how to resolve version issues
|
||
|
(e.g. master only has Salt deps installed for Python 3 but remote host
|
||
|
has no Python 3 installed).
|
||
|
|
||
|
Use parenthesis for line continuation
|
||
|
---
|
||
|
salt/client/ssh/__init__.py | 26 +++++++++++++++++++++++++-
|
||
|
1 file changed, 25 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/salt/client/ssh/__init__.py b/salt/client/ssh/__init__.py
|
||
|
index f1300b5698..8a85cc2480 100644
|
||
|
--- a/salt/client/ssh/__init__.py
|
||
|
+++ b/salt/client/ssh/__init__.py
|
||
|
@@ -1387,6 +1387,30 @@ ARGS = {arguments}\n'''.format(config=self.minion_config,
|
||
|
perm_error_fmt = 'Permissions problem, target user may need '\
|
||
|
'to be root or use sudo:\n {0}'
|
||
|
|
||
|
+ def _version_mismatch_error():
|
||
|
+ messages = {
|
||
|
+ 2: {
|
||
|
+ 6: 'Install Python 2.7 / Python 3 Salt dependencies on the Salt SSH master \n'
|
||
|
+ 'to interact with Python 2.7 / Python 3 targets',
|
||
|
+ 7: 'Install Python 2.6 / Python 3 Salt dependencies on the Salt SSH master \n'
|
||
|
+ 'to interact with Python 2.6 / Python 3 targets',
|
||
|
+ },
|
||
|
+ 3: {
|
||
|
+ 'default': '- Install Python 2.6/2.7 Salt dependencies on the Salt SSH \n'
|
||
|
+ ' master to interact with Python 2.6/2.7 targets\n'
|
||
|
+ '- Install Python 3 on the target machine(s)',
|
||
|
+ },
|
||
|
+ 'default': 'Matching major/minor Python release (>=2.6) needed both on the Salt SSH \n'
|
||
|
+ 'master and target machine',
|
||
|
+ }
|
||
|
+ major, minor = sys.version_info[:2]
|
||
|
+ help_msg = (
|
||
|
+ messages.get(major, {}).get(minor)
|
||
|
+ or messages.get(major, {}).get('default')
|
||
|
+ or messages['default']
|
||
|
+ )
|
||
|
+ return 'Python version error. Recommendation(s) follow:\n' + help_msg
|
||
|
+
|
||
|
errors = [
|
||
|
(
|
||
|
(),
|
||
|
@@ -1396,7 +1420,7 @@ ARGS = {arguments}\n'''.format(config=self.minion_config,
|
||
|
(
|
||
|
(salt.defaults.exitcodes.EX_THIN_PYTHON_INVALID,),
|
||
|
'Python interpreter is too old',
|
||
|
- 'salt requires python 2.6 or newer on target hosts, must have same major version as origin host'
|
||
|
+ _version_mismatch_error()
|
||
|
),
|
||
|
(
|
||
|
(salt.defaults.exitcodes.EX_THIN_CHECKSUM,),
|
||
|
--
|
||
|
2.13.7
|
||
|
|
||
|
|