1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- """
- Ansible action plugin to set version facts
- """
- # pylint: disable=no-name-in-module, import-error, wrong-import-order
- from distutils.version import LooseVersion
- from ansible.plugins.action import ActionBase
- # pylint: disable=too-many-statements
- def set_version_facts_if_unset(version):
- """ Set version facts. This currently includes common.version and
- common.version_gte_3_x
- Args:
- version (string): version of openshift installed/to install
- Returns:
- dict: the facts dict updated with version facts.
- """
- facts = {}
- if version and version != "latest":
- version = LooseVersion(version)
- version_gte_3_10 = version >= LooseVersion('3.10')
- version_gte_3_11 = version >= LooseVersion('3.11')
- else:
- # 'Latest' version is set to True, 'Next' versions set to False
- version_gte_3_10 = True
- version_gte_3_11 = False
- facts['openshift_version_gte_3_10'] = version_gte_3_10
- facts['openshift_version_gte_3_11'] = version_gte_3_11
- if version_gte_3_11:
- examples_content_version = 'v3.11'
- else:
- examples_content_version = 'v3.10'
- facts['openshift_examples_content_version'] = examples_content_version
- return facts
- # pylint: disable=too-few-public-methods
- class ActionModule(ActionBase):
- """Action plugin to set version facts"""
- def run(self, tmp=None, task_vars=None):
- """Run set_version_facts"""
- result = super(ActionModule, self).run(tmp, task_vars)
- # Ignore settting self.task_vars outside of init.
- # pylint: disable=W0201
- self.task_vars = task_vars or {}
- result["changed"] = False
- result["failed"] = False
- result["msg"] = "Version facts set"
- version = self._task.args.get('version')
- result["ansible_facts"] = set_version_facts_if_unset(version)
- return result
|