From cf1ba92b1142be25ffe51b86166f8511a8b2c5bd Mon Sep 17 00:00:00 2001 From: rpm-build Date: Jan 27 2021 00:19:18 +0000 Subject: 0010-subman-Add-new-no-installed-products-state.patch patch_name: 0010-subman-Add-new-no-installed-products-state.patch present_in_specfile: true location_in_specfile: 18 --- diff --git a/plugins/subman/gsd-subman-common.c b/plugins/subman/gsd-subman-common.c index e515131..eef5175 100644 --- a/plugins/subman/gsd-subman-common.c +++ b/plugins/subman/gsd-subman-common.c @@ -32,5 +32,7 @@ gsd_subman_subscription_status_to_string (GsdSubmanSubscriptionStatus status) return "disabled"; if (status == GSD_SUBMAN_SUBSCRIPTION_STATUS_PARTIALLY_VALID) return "partially-valid"; + if (status == GSD_SUBMAN_SUBSCRIPTION_STATUS_NO_INSTALLED_PRODUCTS) + return "no-installed-products"; return "unknown"; } diff --git a/plugins/subman/gsd-subman-common.h b/plugins/subman/gsd-subman-common.h index fccf9f6..f8a3d9f 100644 --- a/plugins/subman/gsd-subman-common.h +++ b/plugins/subman/gsd-subman-common.h @@ -30,6 +30,7 @@ typedef enum { GSD_SUBMAN_SUBSCRIPTION_STATUS_INVALID, GSD_SUBMAN_SUBSCRIPTION_STATUS_DISABLED, GSD_SUBMAN_SUBSCRIPTION_STATUS_PARTIALLY_VALID, + GSD_SUBMAN_SUBSCRIPTION_STATUS_NO_INSTALLED_PRODUCTS, GSD_SUBMAN_SUBSCRIPTION_STATUS_LAST } GsdSubmanSubscriptionStatus; diff --git a/plugins/subman/gsd-subscription-manager.c b/plugins/subman/gsd-subscription-manager.c index 0838d49..46f8d35 100644 --- a/plugins/subman/gsd-subscription-manager.c +++ b/plugins/subman/gsd-subscription-manager.c @@ -269,6 +269,13 @@ _client_subscription_status_update (GsdSubscriptionManager *manager, GError **er /* save old value */ priv->subscription_status_last = priv->subscription_status; + if (!_client_installed_products_update (manager, error)) + goto out; + + if (priv->installed_products->len == 0) { + priv->subscription_status = GSD_SUBMAN_SUBSCRIPTION_STATUS_NO_INSTALLED_PRODUCTS; + goto out; + } uuid = g_dbus_proxy_call_sync (priv->proxies[_RHSM_INTERFACE_CONSUMER], "GetUuid", @@ -590,8 +597,6 @@ _client_register_with_keys (GsdSubscriptionManager *manager, return FALSE; if (!_client_subscription_status_update (manager, error)) return FALSE; - if (!_client_installed_products_update (manager, error)) - return FALSE; _client_maybe__show_notification (manager); /* success */ @@ -659,8 +664,6 @@ _client_register (GsdSubscriptionManager *manager, return FALSE; if (!_client_subscription_status_update (manager, error)) return FALSE; - if (!_client_installed_products_update (manager, error)) - return FALSE; _client_maybe__show_notification (manager); return TRUE; } @@ -741,10 +744,6 @@ _subman_proxy_signal_cb (GDBusProxy *proxy, g_warning ("failed to update subscription status: %s", error->message); g_clear_error (&error); } - if (!_client_installed_products_update (manager, &error)) { - g_warning ("failed to update installed products: %s", error->message); - g_clear_error (&error); - } _client_maybe__show_notification (manager); } @@ -809,8 +808,6 @@ _client_load (GsdSubscriptionManager *manager, GError **error) return FALSE; if (!_client_subscription_status_update (manager, error)) return FALSE; - if (!_client_installed_products_update (manager, error)) - return FALSE; if (!_client_syspurpose_update (manager, error)) return FALSE;