diff options
30 files changed, 158 insertions, 162 deletions
diff --git a/roles/lib_openshift/library/oc_adm_ca_server_cert.py b/roles/lib_openshift/library/oc_adm_ca_server_cert.py index 1b73bfd0e..45d7444a4 100644 --- a/roles/lib_openshift/library/oc_adm_ca_server_cert.py +++ b/roles/lib_openshift/library/oc_adm_ca_server_cert.py @@ -1288,13 +1288,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_adm_manage_node.py b/roles/lib_openshift/library/oc_adm_manage_node.py index b09321a5b..44f3f57d8 100644 --- a/roles/lib_openshift/library/oc_adm_manage_node.py +++ b/roles/lib_openshift/library/oc_adm_manage_node.py @@ -1274,13 +1274,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_adm_policy_group.py b/roles/lib_openshift/library/oc_adm_policy_group.py index 7154fd839..687cff579 100644 --- a/roles/lib_openshift/library/oc_adm_policy_group.py +++ b/roles/lib_openshift/library/oc_adm_policy_group.py @@ -1260,13 +1260,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_adm_policy_user.py b/roles/lib_openshift/library/oc_adm_policy_user.py index 3fcf49799..ddf5d90b7 100644 --- a/roles/lib_openshift/library/oc_adm_policy_user.py +++ b/roles/lib_openshift/library/oc_adm_policy_user.py @@ -1260,13 +1260,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_adm_registry.py b/roles/lib_openshift/library/oc_adm_registry.py index bf2650460..c00eee381 100644 --- a/roles/lib_openshift/library/oc_adm_registry.py +++ b/roles/lib_openshift/library/oc_adm_registry.py @@ -1378,13 +1378,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_adm_router.py b/roles/lib_openshift/library/oc_adm_router.py index a2b7d12c0..0c925ab0b 100644 --- a/roles/lib_openshift/library/oc_adm_router.py +++ b/roles/lib_openshift/library/oc_adm_router.py @@ -1403,13 +1403,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_clusterrole.py b/roles/lib_openshift/library/oc_clusterrole.py index d101eac1c..567ecfd4e 100644 --- a/roles/lib_openshift/library/oc_clusterrole.py +++ b/roles/lib_openshift/library/oc_clusterrole.py @@ -1252,13 +1252,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_configmap.py b/roles/lib_openshift/library/oc_configmap.py index 7cd29215f..9515de569 100644 --- a/roles/lib_openshift/library/oc_configmap.py +++ b/roles/lib_openshift/library/oc_configmap.py @@ -1258,13 +1258,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_edit.py b/roles/lib_openshift/library/oc_edit.py index 5b11f45ba..d461e5ae9 100644 --- a/roles/lib_openshift/library/oc_edit.py +++ b/roles/lib_openshift/library/oc_edit.py @@ -1302,13 +1302,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_env.py b/roles/lib_openshift/library/oc_env.py index d3834ce0c..22ad58725 100644 --- a/roles/lib_openshift/library/oc_env.py +++ b/roles/lib_openshift/library/oc_env.py @@ -1269,13 +1269,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_group.py b/roles/lib_openshift/library/oc_group.py index 0d751fe28..b6c6e47d9 100644 --- a/roles/lib_openshift/library/oc_group.py +++ b/roles/lib_openshift/library/oc_group.py @@ -1242,13 +1242,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_image.py b/roles/lib_openshift/library/oc_image.py index 3a6ba3e56..f7fc286e0 100644 --- a/roles/lib_openshift/library/oc_image.py +++ b/roles/lib_openshift/library/oc_image.py @@ -1261,13 +1261,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_label.py b/roles/lib_openshift/library/oc_label.py index 5db036b23..2206878a4 100644 --- a/roles/lib_openshift/library/oc_label.py +++ b/roles/lib_openshift/library/oc_label.py @@ -1278,13 +1278,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_obj.py b/roles/lib_openshift/library/oc_obj.py index 7d9392af9..126d7a617 100644 --- a/roles/lib_openshift/library/oc_obj.py +++ b/roles/lib_openshift/library/oc_obj.py @@ -1281,13 +1281,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_objectvalidator.py b/roles/lib_openshift/library/oc_objectvalidator.py index 130521761..d20904d0d 100644 --- a/roles/lib_openshift/library/oc_objectvalidator.py +++ b/roles/lib_openshift/library/oc_objectvalidator.py @@ -1213,13 +1213,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_process.py b/roles/lib_openshift/library/oc_process.py index c6568d520..91199d093 100644 --- a/roles/lib_openshift/library/oc_process.py +++ b/roles/lib_openshift/library/oc_process.py @@ -1270,13 +1270,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_project.py b/roles/lib_openshift/library/oc_project.py index bf65ef603..f9b2d81fa 100644 --- a/roles/lib_openshift/library/oc_project.py +++ b/roles/lib_openshift/library/oc_project.py @@ -1267,13 +1267,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_pvc.py b/roles/lib_openshift/library/oc_pvc.py index a21540962..895322ba5 100644 --- a/roles/lib_openshift/library/oc_pvc.py +++ b/roles/lib_openshift/library/oc_pvc.py @@ -1274,13 +1274,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_route.py b/roles/lib_openshift/library/oc_route.py index 0c0bc9386..d6db75e1e 100644 --- a/roles/lib_openshift/library/oc_route.py +++ b/roles/lib_openshift/library/oc_route.py @@ -1312,13 +1312,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_scale.py b/roles/lib_openshift/library/oc_scale.py index f112b6dd0..7130cc5fc 100644 --- a/roles/lib_openshift/library/oc_scale.py +++ b/roles/lib_openshift/library/oc_scale.py @@ -1256,13 +1256,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_secret.py b/roles/lib_openshift/library/oc_secret.py index d762e0c38..0c4b99e30 100644 --- a/roles/lib_openshift/library/oc_secret.py +++ b/roles/lib_openshift/library/oc_secret.py @@ -1308,13 +1308,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_service.py b/roles/lib_openshift/library/oc_service.py index 769b75e15..7ab139e85 100644 --- a/roles/lib_openshift/library/oc_service.py +++ b/roles/lib_openshift/library/oc_service.py @@ -1315,13 +1315,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_serviceaccount.py b/roles/lib_openshift/library/oc_serviceaccount.py index 446987eff..5d539ced4 100644 --- a/roles/lib_openshift/library/oc_serviceaccount.py +++ b/roles/lib_openshift/library/oc_serviceaccount.py @@ -1254,13 +1254,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_serviceaccount_secret.py b/roles/lib_openshift/library/oc_serviceaccount_secret.py index c7eb1986a..97e213f46 100644 --- a/roles/lib_openshift/library/oc_serviceaccount_secret.py +++ b/roles/lib_openshift/library/oc_serviceaccount_secret.py @@ -1254,13 +1254,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_storageclass.py b/roles/lib_openshift/library/oc_storageclass.py index 686119c65..9339a85e5 100644 --- a/roles/lib_openshift/library/oc_storageclass.py +++ b/roles/lib_openshift/library/oc_storageclass.py @@ -1272,13 +1272,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_user.py b/roles/lib_openshift/library/oc_user.py index 3a98693b7..2fa349547 100644 --- a/roles/lib_openshift/library/oc_user.py +++ b/roles/lib_openshift/library/oc_user.py @@ -1314,13 +1314,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_version.py b/roles/lib_openshift/library/oc_version.py index 939261526..55e1054e7 100644 --- a/roles/lib_openshift/library/oc_version.py +++ b/roles/lib_openshift/library/oc_version.py @@ -1226,13 +1226,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/library/oc_volume.py b/roles/lib_openshift/library/oc_volume.py index 41e7d0ab8..63bad57b4 100644 --- a/roles/lib_openshift/library/oc_volume.py +++ b/roles/lib_openshift/library/oc_volume.py @@ -1303,13 +1303,12 @@ class Utils(object):  # pragma: no cover      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/lib_openshift/src/lib/base.py b/roles/lib_openshift/src/lib/base.py index 16770b22d..5a307cdb3 100644 --- a/roles/lib_openshift/src/lib/base.py +++ b/roles/lib_openshift/src/lib/base.py @@ -464,13 +464,12 @@ class Utils(object):      @staticmethod      def openshift_installed():          ''' check if openshift is installed ''' -        import yum +        import rpm -        yum_base = yum.YumBase() -        if yum_base.rpmdb.searchNevra(name='atomic-openshift'): -            return True +        transaction_set = rpm.TransactionSet() +        rpmquery = transaction_set.dbMatch("name", "atomic-openshift") -        return False +        return rpmquery.count() > 0      # Disabling too-many-branches.  This is a yaml dictionary comparison function      # pylint: disable=too-many-branches,too-many-return-statements,too-many-statements diff --git a/roles/openshift_health_checker/library/aos_version.py b/roles/openshift_health_checker/library/aos_version.py index f9babebb9..61ae749fa 100644 --- a/roles/openshift_health_checker/library/aos_version.py +++ b/roles/openshift_health_checker/library/aos_version.py @@ -24,11 +24,19 @@ from ansible.module_utils.basic import AnsibleModule  # Python 3, we use six for cross compatibility in this module alone:  from ansible.module_utils.six import string_types -IMPORT_EXCEPTION = None +YUM_IMPORT_EXCEPTION = None +DNF_IMPORT_EXCEPTION = None +PKG_MGR = None  try:      import yum  # pylint: disable=import-error +    PKG_MGR = "yum"  except ImportError as err: -    IMPORT_EXCEPTION = err +    YUM_IMPORT_EXCEPTION = err +try: +    import dnf  # pylint: disable=import-error +    PKG_MGR = "dnf" +except ImportError as err: +    DNF_IMPORT_EXCEPTION = err  class AosVersionException(Exception): @@ -47,8 +55,11 @@ def main():          supports_check_mode=True      ) -    if IMPORT_EXCEPTION: -        module.fail_json(msg="aos_version module could not import yum: %s" % IMPORT_EXCEPTION) +    if YUM_IMPORT_EXCEPTION and DNF_IMPORT_EXCEPTION: +        module.fail_json( +            msg="aos_version module could not import yum or dnf: %s %s" % +            (YUM_IMPORT_EXCEPTION, DNF_IMPORT_EXCEPTION) +        )      # determine the packages we will look for      package_list = module.params['package_list'] @@ -83,9 +94,6 @@ def _to_dict(pkg_list):  def _retrieve_available_packages(expected_pkgs): -    # search for package versions available for openshift pkgs -    yb = yum.YumBase()  # pylint: disable=invalid-name -      # The openshift excluder prevents unintended updates to openshift      # packages by setting yum excludes on those packages. See:      # https://wiki.centos.org/SpecialInterestGroup/PaaS/OpenShift-Origin-Control-Updates @@ -94,17 +102,34 @@ def _retrieve_available_packages(expected_pkgs):      # attempt to determine what packages are available via yum they may      # be excluded. So, for our purposes here, disable excludes to see      # what will really be available during an install or upgrade. -    yb.conf.disable_excludes = ['all'] -    try: -        pkgs = yb.pkgSack.returnPackages(patterns=expected_pkgs) -    except yum.Errors.PackageSackError as excinfo: -        # you only hit this if *none* of the packages are available -        raise AosVersionException('\n'.join([ -            'Unable to find any OpenShift packages.', -            'Check your subscription and repo settings.', -            str(excinfo), -        ])) +    if PKG_MGR == "yum": +        # search for package versions available for openshift pkgs +        yb = yum.YumBase()  # pylint: disable=invalid-name + +        yb.conf.disable_excludes = ['all'] + +        try: +            pkgs = yb.pkgSack.returnPackages(patterns=expected_pkgs) +        except yum.Errors.PackageSackError as excinfo: +            # you only hit this if *none* of the packages are available +            raise AosVersionException('\n'.join([ +                'Unable to find any OpenShift packages.', +                'Check your subscription and repo settings.', +                str(excinfo), +            ])) +    elif PKG_MGR == "dnf": +        dbase = dnf.Base()  # pyling: disable=invalid-name + +        dbase.conf.disable_excludes = ['all'] +        dbase.read_all_repos() +        dbase.fill_sack(load_system_repo=False, load_available_repos=True) + +        dquery = dbase.sack.query() +        aquery = dquery.available() + +        pkgs = list(aquery.filter(name=expected_pkgs)) +      return pkgs  | 
