123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- # TODO: Temporarily disabled due to importing old code into openshift-ansible
- # repo. We will work on these over time.
- # pylint: disable=bad-continuation,missing-docstring,no-self-use,invalid-name,too-few-public-methods
- """
- Defines the supported variants and versions the installer supports, and metadata
- required to run Ansible correctly.
- This module needs to be updated for each major release to allow the new version
- to be specified by the user, and to point the generic variants to the latest
- version.
- """
- class Version(object):
- def __init__(self, name, ansible_key):
- self.name = name # i.e. 3.0, 3.1
- self.ansible_key = ansible_key
- class Variant(object):
- def __init__(self, name, description, versions):
- # Supported variant name:
- self.name = name
- # Friendly name for the variant:
- self.description = description
- self.versions = versions
- def latest_version(self):
- return self.versions[0]
- # WARNING: Keep the versions ordered, most recent first:
- OSE = Variant('openshift-enterprise', 'OpenShift Enterprise',
- [
- Version('3.2', 'openshift-enterprise'),
- Version('3.1', 'openshift-enterprise'),
- Version('3.0', 'enterprise')
- ]
- )
- AEP = Variant('atomic-enterprise', 'Atomic Enterprise Platform',
- [
- Version('3.2', 'atomic-enterprise'),
- Version('3.1', 'atomic-enterprise')
- ]
- )
- origin = Variant('origin', 'OpenShift Origin',
- [
- Version('1.2', 'origin'),
- ]
- )
- # Ordered list of variants we can install, first is the default.
- SUPPORTED_VARIANTS = (OSE, AEP, origin)
- DISPLAY_VARIANTS = (OSE, AEP)
- def find_variant(name, version=None):
- """
- Locate the variant object for the variant given in config file, and
- the correct version to use for it.
- Return (None, None) if we can't find a match.
- """
- prod = None
- for prod in SUPPORTED_VARIANTS:
- if prod.name == name:
- if version is None:
- return (prod, prod.latest_version())
- for v in prod.versions:
- if v.name == version:
- return (prod, v)
- return (None, None)
- def get_variant_version_combos():
- combos = []
- for variant in DISPLAY_VARIANTS:
- for ver in variant.versions:
- combos.append((variant, ver))
- return combos
|