Description of problem: After registering (with service-level and auto-attach) using a valid SLA of "Self-Support", the subscription-manager status reports an "invalid" system purpose status despite the facts that the auto-attached pool (HTB Self-Support SKU RH00076) correctly provide the requested SLA. See reproducer using a rhel8 HTB system registering against stage candlepin 2.3.10-1 which supports "syspurpose" capabilities. Version-Release number of selected component (if applicable): [root@hp-dl380pgen8-02-vm-2 ~]# subscription-manager version server type: Red Hat Subscription Management subscription management server: 2.3.10-1 subscription management rules: 5.29 subscription-manager: 1.23.8-1.el8 [root@hp-dl380pgen8-02-vm-2 ~]# curl -k --stderr /dev/null https://subscription.rhsm.stage.redhat.com:443/subscription/status | python3 -m json.tool { "mode": "NORMAL", "modeReason": "STARTUP", "modeChangeTime": "2018-11-19T13:58:34+0000", "result": true, "version": "2.3.10", <============ VERSION "rulesVersion": "5.29", "release": "1", "standalone": false, "timeUTC": "2018-11-21T19:45:03+0000", "rulesSource": "DEFAULT", "managerCapabilities": [ "instance_multiplier", "derived_product", "vcpu", "cert_v3", "remove_by_pool_id", "syspurpose", <============== SYSPURPOSE CAPABILITY "storage_band", "cores", "hypervisors_async", "org_level_content_access", "guest_limit", "ram", "batch_bind" ] } How reproducible: Steps to Reproduce: [root@hp-dl380pgen8-02-vm-2 ~]# subscription-manager config --server.hostname=subscription.rhsm.stage.redhat.com [root@hp-dl380pgen8-02-vm-2 ~]# [root@hp-dl380pgen8-02-vm-2 ~]# syspurpose show {} [root@hp-dl380pgen8-02-vm-2 ~]# [root@hp-dl380pgen8-02-vm-2 ~]# subscription-manager service-level --list --username=stage_auto_testuser --org=11424630 --password=REDACTED +-------------------------------------------+ Available Service Levels +-------------------------------------------+ Premium Self-Support Standard [root@hp-dl380pgen8-02-vm-2 ~]# [root@hp-dl380pgen8-02-vm-2 ~]# subscription-manager register --servicelevel=Self-Support --auto-attach Registering to: subscription.rhsm.stage.redhat.com:443/subscription Username: stage_auto_testuser Password: The system has been registered with ID: eb96064a-087b-4754-8a9c-41499bcc785b The registered system name is: hp-dl380pgen8-02-vm-2.lab.bos.redhat.com Service level set to: Self-Support Installed Product Current Status: Product Name: Red Hat Enterprise Linux for x86_64 High Touch Beta Status: Subscribed [root@hp-dl380pgen8-02-vm-2 ~]# subscription-manager list --consumed +-------------------------------------------+ Consumed Subscriptions +-------------------------------------------+ Subscription Name: Red Hat Enterprise Linux High Touch Beta Provides: Red Hat Enterprise Linux for x86_64 High Touch Beta Red Hat Enterprise Linux 7 Workstation High Touch Beta Red Hat Container Images HTB Red Hat Enterprise Linux for IBM z Systems High Touch Beta Red Hat Enterprise Linux for Power, little endian High Touch Beta Red Hat CodeReady Linux Builder for x86_64 High Touch Beta Red Hat Enterprise Linux 7 for HPC Compute Node High Touch Beta Red Hat CodeReady Linux Builder for Power, little endian High Touch Beta Red Hat Enterprise Linux for ARM 64 High Touch Beta Red Hat Enterprise Linux for Real Time High Touch Beta Red Hat Enterprise Linux Atomic Host HTB Red Hat CodeReady Linux Builder for ARM 64 High Touch Beta Red Hat Enterprise Linux High Availability High Touch Beta Red Hat CodeReady Linux Builder for IBM z Systems High Touch Beta Red Hat Enterprise Linux 7 Load Balancer High Touch Beta Red Hat Enterprise Linux Resilient Storage High Touch Beta Red Hat Enterprise Linux for Real Time for NFV High Touch Beta Red Hat Enterprise Linux 7 Desktop High Touch Beta SKU: RH00076 Contract: 11526930 Account: 6128413 Serial: 1614355470276573379 Pool ID: 8a99f98160ffba370160fff18dc0124e Provides Management: No Active: True Quantity Used: 1 Service Level: Self-Support Service Type: L1-L3 Status Details: Subscription is current Subscription Type: Standard Starts: 01/16/2018 Ends: 01/15/2019 System Type: Physical [root@hp-dl380pgen8-02-vm-2 ~]# subscription-manager status +-------------------------------------------+ System Status Details +-------------------------------------------+ Overall Status: Current System Purpose Status: invalid [root@hp-dl380pgen8-02-vm-2 ~]# [root@hp-dl380pgen8-02-vm-2 ~]# syspurpose show { "service_level_agreement": "Self-Support" } [root@hp-dl380pgen8-02-vm-2 ~]# Actual results: System Purpose Status: invalid Expected results: System Purpose Status: Matches Additional info: There is nothing odd logged to rhsm.log... 2018-11-21 15:03:42,755 [DEBUG] subscription-manager:6798:MainThread @connection.py:591 - Making request: GET /subscription/consumers/eb96064a-087b-4754-8a9c-41499bcc785b/compliance 2018-11-21 15:03:43,160 [INFO] subscription-manager:6798:MainThread @connection.py:634 - Response: status=200, requestUuid=ac3a30c1-d626-4225-b1ef-6879e53f8592, request="GET /subscription/consumers/eb96064a-087b-4754-8a9c-41499bcc785b/compliance" 2018-11-21 15:03:43,162 [DEBUG] subscription-manager:6798:MainThread @cache.py:302 - Started thread to write cache: /var/lib/rhsm/cache/entitlement_status.json There is also nothing about syspurpose compliance written to entitlement_status.json... [root@hp-dl380pgen8-02-vm-2 ~]# cat /var/lib/rhsm/cache/entitlement_status.json | python3 -m json.tool { "date": "2018-11-21T20:03:43+0000", "compliantUntil": "2019-01-16T00:00:00+0000", "nonCompliantProducts": [], "compliantProducts": { "230": [ { "id": "94d3fc046c9948e68931c69b3bee35c1", "consumer": null, "pool": { "id": "8a99f98160ffba370160fff18dc0124e", "type": "NORMAL", "owner": null, "activeSubscription": true, "createdByShare": false, "hasSharedAncestor": false, "sourceEntitlement": null, "quantity": -1, "startDate": "2018-01-16T05:00:00+0000", "endDate": "2019-01-15T23:59:59+0000", "attributes": [], "restrictedToUsername": null, "contractNumber": null, "accountNumber": null, "orderNumber": null, "consumed": 2, "exported": 0, "shared": 0, "branding": [], "calculatedAttributes": null, "upstreamPoolId": null, "upstreamEntitlementId": null, "upstreamConsumerId": null, "productName": null, "ownerId": null, "productId": "RH00076", "derivedProductId": null, "productAttributes": [ { "name": "product_family", "value": "Red Hat Enterprise Linux" }, { "name": "enabled_consumer_types", "value": "SAM" }, { "name": "unlimited_product", "value": "yes" }, { "name": "ph_product_line", "value": "RHEL" }, { "name": "description", "value": "Red Hat Enterprise Linux" }, { "name": "ph_category", "value": "Subscriptions" }, { "name": "support_level", "value": "Self-Support" }, { "name": "type", "value": "MKT" }, { "name": "cloud_access_enabled", "value": "true" }, { "name": "ph_product_name", "value": "RHEL Server" }, { "name": "expires_after", "value": "365" }, { "name": "subtype", "value": "Self-Support" }, { "name": "name", "value": "Red Hat Enterprise Linux High Touch Beta" }, { "name": "variant", "value": "Physical Server" }, { "name": "arch", "value": "aarch64,ppc64le,s390x,x86_64" }, { "name": "support_type", "value": "L1-L3" } ], "stacked": false, "stackId": null, "developmentPool": false, "derivedProductAttributes": [], "derivedProductName": null, "providedProducts": [ { "productId": "232", "productName": "Red Hat Enterprise Linux for IBM z Systems High Touch Beta" }, { "productId": "237", "productName": "Red Hat Enterprise Linux 7 Load Balancer High Touch Beta" }, { "productId": "231", "productName": "Red Hat Enterprise Linux 7 Workstation High Touch Beta" }, { "productId": "542", "productName": "Red Hat CodeReady Linux Builder for x86_64 High Touch Beta" }, { "productId": "275", "productName": "Red Hat Container Images HTB" }, { "productId": "502", "productName": "Red Hat Enterprise Linux for Real Time for NFV High Touch Beta" }, { "productId": "545", "productName": "Red Hat CodeReady Linux Builder for IBM z Systems High Touch Beta" }, { "productId": "238", "productName": "Red Hat Enterprise Linux Resilient Storage High Touch Beta" }, { "productId": "230", "productName": "Red Hat Enterprise Linux for x86_64 High Touch Beta" }, { "productId": "229", "productName": "Red Hat Enterprise Linux 7 Desktop High Touch Beta" }, { "productId": "500", "productName": "Red Hat Enterprise Linux for Real Time High Touch Beta" }, { "productId": "489", "productName": "Red Hat Enterprise Linux for ARM 64 High Touch Beta" }, { "productId": "233", "productName": "Red Hat Enterprise Linux for Power, little endian High Touch Beta" }, { "productId": "236", "productName": "Red Hat Enterprise Linux High Availability High Touch Beta" }, { "productId": "247", "productName": "Red Hat Enterprise Linux Atomic Host HTB" }, { "productId": "234", "productName": "Red Hat Enterprise Linux 7 for HPC Compute Node High Touch Beta" }, { "productId": "544", "productName": "Red Hat CodeReady Linux Builder for ARM 64 High Touch Beta" }, { "productId": "543", "productName": "Red Hat CodeReady Linux Builder for Power, little endian High Touch Beta" } ], "derivedProvidedProducts": [], "sourceStackId": null, "subscriptionSubKey": null, "subscriptionId": null }, "certificates": [], "quantity": 1, "startDate": "2018-01-16T05:00:00+0000", "endDate": "2019-01-15T23:59:59+0000", "href": "/entitlements/94d3fc046c9948e68931c69b3bee35c1" } ] }, "partiallyCompliantProducts": {}, "partialStacks": {}, "productComplianceDateRanges": null, "reasons": [], "compliant": true, "status": "valid" } 2018-11-21 15:03:43,164 [DEBUG] subscription-manager:6798:WriteCacheEntitlementStatusCacheThread @cache.py:114 - Wrote cache: /var/lib/rhsm/cache/entitlement_status.json
Is this still an issue with 2.3.11 ?
Yes - still an issue against 2.3.11-1.... [root@dell-r730-002-guest30 ~]# subscription-manager version server type: Red Hat Subscription Management subscription management server: 2.3.11-1 subscription management rules: 5.30 subscription-manager: 1.23.8-4.el8 [root@dell-r730-002-guest30 ~]# [root@dell-r730-002-guest30 ~]# syspurpose show { "service_level_agreement": "Self-Support" } [root@dell-r730-002-guest30 ~]# [root@dell-r730-002-guest30 ~]# subscription-manager list --consumed | grep "Service Level" Service Level: Self-Support [root@dell-r730-002-guest30 ~]# [root@dell-r730-002-guest30 ~]# subscription-manager status +-------------------------------------------+ System Status Details +-------------------------------------------+ Overall Status: Current System Purpose Status: Invalid ^^^^^^^ ^^^^^^^ EXPECTED: "Matches" because all of the attached subscriptions (only 1 attached) provides all of the requested system purpose attributes (only 1 requested "service_level_agreement": "Self-Support").
(In reply to John Sefler from comment #2) > Yes - still an issue against 2.3.11-1.... > System Purpose Status: Invalid > ^^^^^^^ > ^^^^^^^ > EXPECTED: "Matches" because all of the attached subscriptions > (only 1 attached) provides all of the requested system purpose attributes > (only 1 requested "service_level_agreement": "Self-Support"). I can reproduce this issue, but I'm pretty sure this is a subman issue, not candlepin. The syspurpose status is cached in a different cache file (/var/lib/rhsm/cache/syspurpose_compliance_status.json) than entitlement status, and the reason for non-compliance looks to me the addons (the fact that subman sends an empty string as a syspurpose addon value during registration, even though no addon is actually set in the client): [vagrant@rhel8 vagrant]$ sudo cat /var/lib/rhsm/cache/syspurpose_compliance_status.json | python3 -m json.tool | tail } ] }, "compliantUsage": {}, "nonPreferredSLA": {}, "nonPreferredUsage": {}, "reasons": [ "unsatisfied add on: " ] }
Can we please retest with latest subman and Candlepin in stage currently?
(In reply to Kevin Howell from comment #4) > Can we please retest with latest subman and Candlepin in stage currently? [root@kvm-01-guest29 ~]# subscription-manager version server type: Red Hat Subscription Management subscription management server: 2.3.12-1 subscription management rules: 5.30 subscription-manager: 1.23.8-12.el8 [root@kvm-01-guest29 ~]# subscription-manager list --consumed +-------------------------------------------+ Consumed Subscriptions +-------------------------------------------+ Subscription Name: Red Hat Enterprise Linux High Touch Beta Provides: Red Hat Enterprise Linux for x86_64 High Touch Beta Red Hat Enterprise Linux 7 Workstation High Touch Beta Red Hat Container Images HTB Red Hat Enterprise Linux for IBM z Systems High Touch Beta Red Hat Enterprise Linux for Power, little endian High Touch Beta Red Hat CodeReady Linux Builder for x86_64 High Touch Beta Red Hat Enterprise Linux 7 for HPC Compute Node High Touch Beta Red Hat CodeReady Linux Builder for Power, little endian High Touch Beta Red Hat Enterprise Linux for ARM 64 High Touch Beta Red Hat Enterprise Linux for Real Time High Touch Beta Red Hat Enterprise Linux Atomic Host HTB Red Hat CodeReady Linux Builder for ARM 64 High Touch Beta Red Hat Enterprise Linux High Availability High Touch Beta Red Hat CodeReady Linux Builder for IBM z Systems High Touch Beta Red Hat Enterprise Linux 7 Load Balancer High Touch Beta Red Hat Enterprise Linux Resilient Storage High Touch Beta Red Hat Enterprise Linux for Real Time for NFV High Touch Beta Red Hat Enterprise Linux 7 Desktop High Touch Beta SKU: RH00076 Contract: 11668021 Account: 6151598 Serial: 2158578201453911717 Pool ID: 8a99f9ad66baea7d0166f318bd2308f3 Provides Management: No Active: True Quantity Used: 1 Service Level: Self-Support Service Type: L1-L3 Status Details: Subscription is current Subscription Type: Standard Starts: Thursday 08 November 2018 Ends: Thursday 07 November 2019 System Type: Physical [root@kvm-01-guest29 ~]# syspurpose show { "service_level_agreement": "Self-Support" } System purpose successfully sent to subscription management server. [root@kvm-01-guest29 ~]# subscription-manager status +-------------------------------------------+ System Status Details +-------------------------------------------+ Overall Status: Current System Purpose Status: Current With a match in sla it now says "current" which is still wrong , but not displaying as invalid any more.
*** This bug has been marked as a duplicate of bug 1660878 ***