Error early if executing python version doesn't meet documented minimums (#34655)
* Error early if executing python version doesn't meet documented minimums. Fixes #34597 * Make recommended enhancements
This commit is contained in:
parent
2f66755849
commit
55352bdda4
2 changed files with 21 additions and 0 deletions
|
@ -41,6 +41,15 @@ from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError
|
||||||
from ansible.module_utils._text import to_text
|
from ansible.module_utils._text import to_text
|
||||||
|
|
||||||
|
|
||||||
|
# Used for determining if the system is running a new enough python version
|
||||||
|
# and should only restrict on our documented minimum versions
|
||||||
|
_PY3_MIN = sys.version_info[:2] >= (3, 5)
|
||||||
|
_PY2_MIN = (2, 6) <= sys.version_info[:2] < (3,)
|
||||||
|
_PY_MIN = _PY3_MIN or _PY2_MIN
|
||||||
|
if not _PY_MIN:
|
||||||
|
raise SystemExit('ERROR: Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: %s' % ''.join(sys.version.splitlines()))
|
||||||
|
|
||||||
|
|
||||||
class LastResort(object):
|
class LastResort(object):
|
||||||
# OUTPUT OF LAST RESORT
|
# OUTPUT OF LAST RESORT
|
||||||
def display(self, msg, log_only=None):
|
def display(self, msg, log_only=None):
|
||||||
|
|
|
@ -232,6 +232,18 @@ PERM_BITS = 0o7777 # file mode permission bits
|
||||||
EXEC_PERM_BITS = 0o0111 # execute permission bits
|
EXEC_PERM_BITS = 0o0111 # execute permission bits
|
||||||
DEFAULT_PERM = 0o0666 # default file permission bits
|
DEFAULT_PERM = 0o0666 # default file permission bits
|
||||||
|
|
||||||
|
# Used for determining if the system is running a new enough python version
|
||||||
|
# and should only restrict on our documented minimum versions
|
||||||
|
_PY3_MIN = sys.version_info[:2] >= (3, 5)
|
||||||
|
_PY2_MIN = (2, 6) <= sys.version_info[:2] < (3,)
|
||||||
|
_PY_MIN = _PY3_MIN or _PY2_MIN
|
||||||
|
if not _PY_MIN:
|
||||||
|
print(
|
||||||
|
'\n{"failed": true, '
|
||||||
|
'"msg": "Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: %s"}' % ''.join(sys.version.splitlines())
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
def get_platform():
|
def get_platform():
|
||||||
''' what's the platform? example: Linux is a platform. '''
|
''' what's the platform? example: Linux is a platform. '''
|
||||||
|
|
Loading…
Reference in a new issue