def do_check_software(cls, system_packages=None): requirements = None if linux.os.debian_family: requirements = [ ['mariadb-server>=5.5,<5.6', 'mariadb-client>=5.5,<5.6'], ['mariadb-server>=5.5,<5.6', 'mariadb-client-5.5'], ] elif linux.os.redhat_family or linux.os.oracle_family: requirements = [ ['mariadb-server>=5.5,<5.6'], ['MariaDB-server>=5.5,<5.6', 'MariaDB-client>=5.5,<5.6'], ] if requirements is None: raise exceptions.UnsupportedBehavior( cls.behavior, "Not supported on {0} os family".format(linux.os['family'])) errors = list() for requirement in requirements: try: installed = pkgmgr.check_software(requirement[0], system_packages)[0] try: pkgmgr.check_software(requirement[1:], system_packages) return installed except pkgmgr.NotInstalledError: e = sys.exc_info()[1] raise SoftwareDependencyError(e.args[0]) except: e = sys.exc_info()[1] errors.append(e) for cls in [pkgmgr.VersionMismatchError, SoftwareDependencyError, pkgmgr.NotInstalledError]: for error in errors: if isinstance(error, cls): raise error
def do_check_software(cls, system_packages=None): os_name = linux.os['name'].lower() os_vers = linux.os['version'] requirements = None if os_name == 'ubuntu' and os_vers >= '14': requirements = [ ['percona-server-server-5.1', 'percona-server-client-5.1'], ['percona-server-server-5.5', 'percona-server-client-5.5'], ['percona-server-server-5.6', 'percona-server-client-5.6'], ] elif linux.os.debian_family: requirements = [ ['percona-server-server-5.1', 'percona-server-client-5.1'], ['percona-server-server-5.5', 'percona-server-client-5.5'], ] elif linux.os.redhat_family or linux.os.oracle_family: if os_vers >= '7' and not linux.os.amazon: requirements = [[ 'Percona-Server-server-56', 'Percona-Server-client-56' ]] else: requirements = [[ 'Percona-Server-server-51', 'Percona-Server-client-51' ], ['Percona-Server-server-55', 'Percona-Server-client-55']] if requirements is None: raise exceptions.UnsupportedBehavior( cls.behavior, "Not supported on {0} os family".format(linux.os['family'])) errors = list() for requirement in requirements: try: installed = pkgmgr.check_software(requirement[0], system_packages)[0] try: pkgmgr.check_software(requirement[1:], system_packages) return installed except pkgmgr.NotInstalledError: e = sys.exc_info()[1] raise SoftwareDependencyError(e.args[0]) except: e = sys.exc_info()[1] errors.append(e) for cls in [ pkgmgr.VersionMismatchError, SoftwareDependencyError, pkgmgr.NotInstalledError ]: for error in errors: if isinstance(error, cls): raise error
def do_check_software(cls, system_packages=None): """ Asserts MongoDB version. """ os_name = linux.os['name'].lower() os_vers = linux.os['version'] requirements = None if os_name == 'ubuntu': if os_vers >= '14': requirements = [ ['mongodb-org>=2.4,<2.7'], [ 'mongodb-org-server>=2.4,<2.7', 'mongodb-org-mongos>=2.4,<2.7', 'mongodb-org-shell>=2.4,<2.7', 'mongodb-org-tools>=2.4,<2.7', ], ['mongodb-10gen>=2.4,<2.7'], ['mongodb>=2.4,<2.7'] ] elif os_vers >= '12': requirements = [ ['mongodb-org>=2.0,<2.7'], [ 'mongodb-org-server>=2.0,<2.7', 'mongodb-org-mongos>=2.0,<2.7', 'mongodb-org-shell>=2.0,<2.7', 'mongodb-org-tools>=2.0,<2.7', ], ['mongodb-10gen>=2.0,<2.7'], ['mongodb20-10gen'], ['mongodb>=2.0,<2.7'] ] elif os_vers >= '10': requirements = [ ['mongodb-10gen>=2.0,<2.1'], ['mongodb20-10gen'], ['mongodb>=2.0,<2.1'] ] elif os_name == 'debian': if os_vers >= '7': requirements = [ ['mongodb-org>=2.4,<2.7'], [ 'mongodb-org-server>=2.4,<2.7', 'mongodb-org-mongos>=2.4,<2.7', 'mongodb-org-shell>=2.4,<2.7', 'mongodb-org-tools>=2.4,<2.7', ], ['mongodb-10gen>=2.4,<2.7'], ['mongodb>=2.4,<2.7'] ] elif os_vers >= '6': requirements = [ ['mongodb-10gen>=2.4,<2.5'], ['mongodb>=2.4,<2.5'] ] elif os_name == 'centos': if os_vers >= '6': requirements = [ ['mongodb-org>=2.0,<2.7'], [ 'mongodb-org-server>=2.4,<2.7', 'mongodb-org-mongos>=2.4,<2.7', 'mongodb-org-shell>=2.4,<2.7', 'mongodb-org-tools>=2.4,<2.7', ], ['mongo-10gen-server>=2.0,<2.7'], ['mongo20-10gen-server>=2.0,<3'], ['mongodb-server>=2.0,<2.7'] ] elif os_vers >= '5': requirements = [ ['mongo-10gen-server>=2.0,<2.1'], ['mongo20-10gen-server>=2.0,<3'], ['mongodb-server>=2.0,<2.1'] ] elif linux.os.redhat_family: requirements = [ ['mongodb-org>=2.4,<2.7'], [ 'mongodb-org-server>=2.4,<2.7', 'mongodb-org-mongos>=2.4,<2.7', 'mongodb-org-shell>=2.4,<2.7', 'mongodb-org-tools>=2.4,<2.7', ], ['mongo-10gen-server>=2.4,<2.7'], ['mongodb-server>=2.4,<2.7'] ] elif linux.os.oracle_family: requirements = [ ['mongodb-org>=2.0,<2.1'], ['mongo-10gen-server>=2.0,<2.1'], ['mongo20-10gen-server>=2.0,<3'], ['mongodb-server>=2.0,<2.1'] ] if requirements is None: raise exceptions.UnsupportedBehavior( cls.behavior, "Not supported on {0} os family".format(linux.os['family'])) errors = list() for requirement in requirements: try: installed = pkgmgr.check_software(requirement[0], system_packages)[0] try: pkgmgr.check_software(requirement[1:], system_packages) return installed except pkgmgr.NotInstalledError: e = sys.exc_info()[1] raise SoftwareDependencyError(e.args[0]) except: e = sys.exc_info()[1] errors.append(e) for cls in [pkgmgr.VersionMismatchError, SoftwareDependencyError, pkgmgr.NotInstalledError]: for error in errors: if isinstance(error, cls): raise error
def do_check_software(cls, system_packages=None): os_name = linux.os['name'].lower() os_vers = linux.os['version'] requirements = None if os_name == 'ubuntu': if os_vers >= '12': requirements = [ ['postgresql-9.1', 'postgresql-client-9.1'], ['postgresql-9.2', 'postgresql-client-9.2'], ['postgresql-9.3', 'postgresql-client-9.3'], ['postgresql>=9.1,<9.4', 'postgresql-client>=9.1,<9.4'], ] elif os_vers >= '10': requirements = [ ['postgresql-9.0', 'postgresql-client-9.0'], ['postgresql-9.1', 'postgresql-client-9.1'], ['postgresql-9.2', 'postgresql-client-9.2'], ['postgresql-9.3', 'postgresql-client-9.3'], ['postgresql>=9.0,<9.4', 'postgresql-client>=9.0,<9.4'], ] elif os_name == 'debian': requirements = [ ['postgresql-9.2', 'postgresql-client-9.2'], ['postgresql-9.3', 'postgresql-client-9.3'], ['postgresql>=9.2,<9.4', 'postgresql-client>=9.2,<9.4'], ] elif linux.os.redhat_family: if os_vers >= '6': requirements = [ ['postgresql91-server', 'postgresql91', 'postgresql91-devel'], ['postgresql92-server', 'postgresql92', 'postgresql92-devel'], ['postgresql93-server', 'postgresql93', 'postgresql93-devel'], ['postgresql-server>=9.1,<9.4', 'postgresql>=9.1,<9.4', 'postgresql-devel>=9.1,<9.4'], ] elif os_vers >= '5': requirements = [ ['postgresql90-server', 'postgresql90', 'postgresql90-devel'], ['postgresql91-server', 'postgresql91', 'postgresql91-devel'], ['postgresql92-server', 'postgresql92', 'postgresql92-devel'], ['postgresql93-server', 'postgresql93', 'postgresql93-devel'], ['postgresql-server>=9.0,<9.4', 'postgresql>=9.0,<9.4', 'postgresql-devel>=9.0,<9.4'], ] elif linux.os.oracle_family: requirements = [ ['postgresql92-server', 'postgresql92', 'postgresql92-devel'], ['postgresql-server>=9.2,<9.3', 'postgresql>=9.2,<9.3', 'postgresql-devel>=9.2,<9.3'], ] if requirements is None: raise exceptions.UnsupportedBehavior( cls.behavior, "Not supported on {0} os family".format(linux.os['family'])) errors = list() for requirement in requirements: try: installed = pkgmgr.check_software(requirement[0], system_packages)[0] try: pkgmgr.check_software(requirement[1:], system_packages) return installed except pkgmgr.NotInstalledError: e = sys.exc_info()[1] raise SoftwareDependencyError(e.args[0]) except: e = sys.exc_info()[1] errors.append(e) for cls in [pkgmgr.VersionMismatchError, SoftwareDependencyError, pkgmgr.NotInstalledError]: for error in errors: if isinstance(error, cls): raise error