Bug 740377

Summary: Stacking Partially Compliant / Yellow State is Broken
Product: Red Hat Enterprise Linux 5 Reporter: Devan Goodwin <dgoodwin>
Component: subscription-managerAssignee: Chris Duryee <cduryee>
Status: CLOSED ERRATA QA Contact: IDM QE LIST <seceng-idm-qe-list>
Severity: high Docs Contact:
Priority: medium    
Version: 5.8CC: bkearney, jmolet, jsefler, mkhusid, wpoteat
Target Milestone: beta   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
No description necessary
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-02-21 06:31:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 715031    

Description Devan Goodwin 2011-09-21 19:47:03 UTC
Description of problem:

The client code which checks for partially compliant (yellow) status is broken currently. 

How reproducible:

It is difficult to reproduce due to discrepancies between the test data we use, and the way data will eventually look. Effectively you need the following scenario:

Installed product ID: 100

Stacked Entitlement Cert:
- entitlement cert provides multiple products
- consumer must have more sockets than their entitlement provides
- product 100 is not the first one to appear in the certificate. (if you view it using openssl x509 -text -in. I think this is numerical so essentially the entitlement must provide other products with a lower ID than 100)


Actual results:

Product 100 shows up as fully compliant, even though the GUI tells us we have one product which needs more entitlements in the top left corner. (there's no way to see which one is out of compliance)


Expected results:

Product 100 should show up as partially compliant. (yellow)

Additional info:

The problem lies in the cert_sorter module due to several bad assumptions.

When we store a product ID in the partially_valid_products dict, we're using the *first* product in the *last* entitlement cert we looked at when checking the stack. 

Firstly using the first product in the cert means we skip all other products in the cert, and we could have one or more of those installed. If the first product isn't installed, it gets added to the partially_valid_products dict, but when we check our installed products for their status we see that they're *not* in this dict and display that they are fully compliant.

Secondly the use of the *last* entitlement cert we encountered when checking the stack is also not correct. 

Instead we should:

- Focus on checking installed product IDs, not anything coming out of an ent cert. If that product is only provided by a partial stack, then that product should be added to partially_valid_products. All products in the ent certs should be examined, but only in the context of looking for an installed product ID.

- Also track a dict of partial stacks, regardless of installed product status. (as these are also considered non-compliance)

If by chance your installed product is the first one in the entitlement cert (often the case with out test data), yellow detection will work ok. This however is extremely unlikely in real world scenarios.

Comment 1 Devan Goodwin 2011-11-07 16:32:46 UTC
*** Bug 743710 has been marked as a duplicate of this bug. ***

Comment 2 Devan Goodwin 2011-11-07 16:33:43 UTC
*** Bug 739671 has been marked as a duplicate of this bug. ***

Comment 3 Devan Goodwin 2011-11-07 16:35:00 UTC
Should be fixed as of subscription-manager.git: f70e59b81c7bf29a2408cd6ca4df2461770f43b1

Will appear in subscription-manager-0.98.3.

Comment 5 John Sefler 2011-12-12 20:44:42 UTC
Verification for duplicate bug 739671 is here...
https://bugzilla.redhat.com/show_bug.cgi?id=739671#c4

Comment 6 Devan Goodwin 2011-12-13 16:59:56 UTC
This is very difficult to replicate exactly, in essence this was a big rewrite of portions of the stacking code fixing all kinds of yellow bugs. However the specific issue to test here could be reproduced by:

- modify the test_data.json, setup the stacking mkt product to provide *2* eng products, redeploy candlepin.

- on your client system, drop the product cert for one of those eng products, and subscribe to the subscription you modified above. (but make sure you do not get all the entitlements you need, you must leave it in yellow state)

- that product should display as yellow.

- now remove it's product cert, drop the other one, and reload subman, the new product should show also as yellow. 

Alternatively, this scenario is almost guaranteed to happen with real Red Hat data, so if you have any scenarios to test stacking right now, you could partially subscribe, and make sure the product cert you have installed does not match the first provided product in your entitlement cert. If not, and you are seeing yellow, the bug is fixed.

Comment 7 John Sefler 2011-12-13 22:19:41 UTC
Verifying Version....
[root@jsefler-onprem-5server ~]# rpm -q subscription-managersubscription-manager-0.98.8-1.git.0.c756d75.el5_7

STARTING POINT - A 14 SOCKET SYSTEM WITH ONE TESTDATA PRODUCT (37068) INSTALLED...
[root@jsefler-onprem-5server ~]# subscription-manager facts --list | grep cpu_socket
cpu.cpu_socket(s): 14
lscpu.cpu_socket(s): 14
[root@jsefler-onprem-5server ~]# ls /etc/pki/product
37068.pem


CREATE A MARKETING PRODUCT THAT IS MULTI-ENTITABLE AND STACKABLE THAT COVERS 2 SOCKETS...

[root@jsefler-onprem-5server ~]# curl --insecure --user admin:admin --request POST --data '{"id":"multi-stackable","name":"Multi-Stackable with many provided products","attributes":[{"name":"sockets","value":"2"},{"name":"arch","value":"ALL"},{"name":"type","value":"MKT"},{"name":"multi-entitlement","value":"yes"},{"name":"stacking_id","value":"123"}],"multiplier":1}' --header 'accept: application/json' --header 'content-type: application/json' https://jsefler-f14-5candlepin.usersys.redhat.com:8443/candlepin/products | python -m simplejson/tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   850    0   850    0     0   5772      0 --:--:-- --:--:-- --:--:--     0
{
    "attributes": [
        {
            "created": "2011-12-13T21:35:52.494+0000", 
            "name": "stacking_id", 
            "updated": "2011-12-13T21:35:52.494+0000", 
            "value": "123"
        }, 
        {
            "created": "2011-12-13T21:35:52.494+0000", 
            "name": "arch", 
            "updated": "2011-12-13T21:35:52.494+0000", 
            "value": "ALL"
        }, 
        {
            "created": "2011-12-13T21:35:52.494+0000", 
            "name": "sockets", 
            "updated": "2011-12-13T21:35:52.494+0000", 
            "value": "2"
        }, 
        {
            "created": "2011-12-13T21:35:52.494+0000", 
            "name": "type", 
            "updated": "2011-12-13T21:35:52.494+0000", 
            "value": "MKT"
        }, 
        {
            "created": "2011-12-13T21:35:52.494+0000", 
            "name": "multi-entitlement", 
            "updated": "2011-12-13T21:35:52.494+0000", 
            "value": "yes"
        }
    ], 
    "created": "2011-12-13T21:35:52.494+0000", 
    "dependentProductIds": [], 
    "href": "/products/multi-stackable", 
    "id": "multi-stackable", 
    "multiplier": 1, 
    "name": "Multi-Stackable with many provided products", 
    "productContent": [], 
    "updated": "2011-12-13T21:35:52.494+0000"
}


CREATE A SUBSCRIPTION FOR THE MARKETING PRODUCT THAT PROVIDES MANY PRODUCTS...

[root@jsefler-onprem-5server ~]# curl --insecure --user admin:admin --request POST --data '{"product":{"id":"multi-stackable"},"startDate":"Mon, 5 Dec 2011 22:41:49 -0500","accountNumber":345,"quantity":20,"endDate":"Wed, 21 Dec 2011 22:41:49 -0500","contractNumber":123,"providedProducts":[{"id":"37065"},{"id":"37067"},{"id":"37068"},{"id":"37069"},{"id":"37070"}]}' --header 'accept: application/json' --header 'content-type: application/json' https://jsefler-f14-5candlepin.usersys.redhat.com:8443/candlepin/owners/admin/subscriptions | python -m simplejson/tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5765    0  5765    0     0  58871      0 --:--:-- --:--:-- --:--:-- 5629k
{
    "accountNumber": "345", 
    "certificate": null, 
    "contractNumber": "123", 
    "created": "2011-12-13T21:36:19.690+0000", 
    "endDate": "2011-12-22T03:41:49.000+0000", 
    "id": "8a90f8573434f3970134395aceea02e4", 
    "modified": null, 
    "owner": {
        "displayName": "Admin Owner", 
        "href": "/owners/admin", 
        "id": "8a90f8573434f397013434f3d4040007", 
        "key": "admin"
    }, 
    "product": {
        "attributes": [
            {
                "created": "2011-12-13T21:35:52.494+0000", 
                "name": "stacking_id", 
                "updated": "2011-12-13T21:35:52.494+0000", 
                "value": "123"
            }, 
            {
                "created": "2011-12-13T21:35:52.494+0000", 
                "name": "arch", 
                "updated": "2011-12-13T21:35:52.494+0000", 
                "value": "ALL"
            }, 
            {
                "created": "2011-12-13T21:35:52.494+0000", 
                "name": "sockets", 
                "updated": "2011-12-13T21:35:52.494+0000", 
                "value": "2"
            }, 
            {
                "created": "2011-12-13T21:35:52.494+0000", 
                "name": "type", 
                "updated": "2011-12-13T21:35:52.494+0000", 
                "value": "MKT"
            }, 
            {
                "created": "2011-12-13T21:35:52.494+0000", 
                "name": "multi-entitlement", 
                "updated": "2011-12-13T21:35:52.494+0000", 
                "value": "yes"
            }
        ], 
        "created": "2011-12-13T21:35:52.494+0000", 
        "dependentProductIds": [], 
        "href": "/products/multi-stackable", 
        "id": "multi-stackable", 
        "multiplier": 1, 
        "name": "Multi-Stackable with many provided products", 
        "productContent": [], 
        "updated": "2011-12-13T21:35:52.494+0000"
    }, 
    "providedProducts": [
        {
            "attributes": [
                {
                    "created": "2011-12-13T03:45:18.925+0000", 
                    "name": "version", 
                    "updated": "2011-12-13T03:45:18.925+0000", 
                    "value": "1.0"
                }, 
                {
                    "created": "2011-12-13T03:45:18.925+0000", 
                    "name": "variant", 
                    "updated": "2011-12-13T03:45:18.925+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.925+0000", 
                    "name": "sockets", 
                    "updated": "2011-12-13T03:45:18.925+0000", 
                    "value": "2"
                }, 
                {
                    "created": "2011-12-13T03:45:18.925+0000", 
                    "name": "arch", 
                    "updated": "2011-12-13T03:45:18.925+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.925+0000", 
                    "name": "type", 
                    "updated": "2011-12-13T03:45:18.925+0000", 
                    "value": "SVC"
                }
            ], 
            "created": "2011-12-13T01:05:27.933+0000", 
            "dependentProductIds": [], 
            "href": "/products/37065", 
            "id": "37065", 
            "multiplier": 1, 
            "name": "Clustering Bits", 
            "productContent": [], 
            "updated": "2011-12-13T01:05:27.933+0000"
        }, 
        {
            "attributes": [
                {
                    "created": "2011-12-13T03:45:18.973+0000", 
                    "name": "version", 
                    "updated": "2011-12-13T03:45:18.973+0000", 
                    "value": "1.0"
                }, 
                {
                    "created": "2011-12-13T03:45:18.973+0000", 
                    "name": "variant", 
                    "updated": "2011-12-13T03:45:18.973+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.973+0000", 
                    "name": "sockets", 
                    "updated": "2011-12-13T03:45:18.973+0000", 
                    "value": "2"
                }, 
                {
                    "created": "2011-12-13T03:45:18.973+0000", 
                    "name": "arch", 
                    "updated": "2011-12-13T03:45:18.973+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.973+0000", 
                    "name": "type", 
                    "updated": "2011-12-13T03:45:18.973+0000", 
                    "value": "SVC"
                }, 
                {
                    "created": "2011-12-13T03:45:18.973+0000", 
                    "name": "warning_period", 
                    "updated": "2011-12-13T03:45:18.973+0000", 
                    "value": "30"
                }
            ], 
            "created": "2011-12-13T01:05:30.724+0000", 
            "dependentProductIds": [], 
            "href": "/products/37070", 
            "id": "37070", 
            "multiplier": 1, 
            "name": "Load Balancing Bits", 
            "productContent": [], 
            "updated": "2011-12-13T01:05:30.724+0000"
        }, 
        {
            "attributes": [
                {
                    "created": "2011-12-13T03:45:18.978+0000", 
                    "name": "version", 
                    "updated": "2011-12-13T03:45:18.978+0000", 
                    "value": "1.0"
                }, 
                {
                    "created": "2011-12-13T03:45:18.979+0000", 
                    "name": "variant", 
                    "updated": "2011-12-13T03:45:18.979+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.979+0000", 
                    "name": "sockets", 
                    "updated": "2011-12-13T03:45:18.979+0000", 
                    "value": "2"
                }, 
                {
                    "created": "2011-12-13T03:45:18.979+0000", 
                    "name": "arch", 
                    "updated": "2011-12-13T03:45:18.979+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.979+0000", 
                    "name": "type", 
                    "updated": "2011-12-13T03:45:18.979+0000", 
                    "value": "SVC"
                }, 
                {
                    "created": "2011-12-13T03:45:18.979+0000", 
                    "name": "warning_period", 
                    "updated": "2011-12-13T03:45:18.979+0000", 
                    "value": "30"
                }
            ], 
            "created": "2011-12-13T01:05:33.568+0000", 
            "dependentProductIds": [], 
            "href": "/products/37068", 
            "id": "37068", 
            "multiplier": 1, 
            "name": "Large File Support Bits", 
            "productContent": [], 
            "updated": "2011-12-13T01:05:33.568+0000"
        }, 
        {
            "attributes": [
                {
                    "created": "2011-12-13T03:45:18.984+0000", 
                    "name": "version", 
                    "updated": "2011-12-13T03:45:18.984+0000", 
                    "value": "1.0"
                }, 
                {
                    "created": "2011-12-13T03:45:18.984+0000", 
                    "name": "variant", 
                    "updated": "2011-12-13T03:45:18.984+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.984+0000", 
                    "name": "sockets", 
                    "updated": "2011-12-13T03:45:18.984+0000", 
                    "value": "2"
                }, 
                {
                    "created": "2011-12-13T03:45:18.984+0000", 
                    "name": "arch", 
                    "updated": "2011-12-13T03:45:18.984+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.984+0000", 
                    "name": "type", 
                    "updated": "2011-12-13T03:45:18.984+0000", 
                    "value": "SVC"
                }, 
                {
                    "created": "2011-12-13T03:45:18.984+0000", 
                    "name": "warning_period", 
                    "updated": "2011-12-13T03:45:18.984+0000", 
                    "value": "30"
                }
            ], 
            "created": "2011-12-13T01:05:32.974+0000", 
            "dependentProductIds": [], 
            "href": "/products/37067", 
            "id": "37067", 
            "multiplier": 1, 
            "name": "Shared Storage Bits", 
            "productContent": [], 
            "updated": "2011-12-13T01:05:32.974+0000"
        }, 
        {
            "attributes": [
                {
                    "created": "2011-12-13T03:45:18.989+0000", 
                    "name": "version", 
                    "updated": "2011-12-13T03:45:18.989+0000", 
                    "value": "1.0"
                }, 
                {
                    "created": "2011-12-13T03:45:18.989+0000", 
                    "name": "variant", 
                    "updated": "2011-12-13T03:45:18.989+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.989+0000", 
                    "name": "sockets", 
                    "updated": "2011-12-13T03:45:18.989+0000", 
                    "value": "2"
                }, 
                {
                    "created": "2011-12-13T03:45:18.989+0000", 
                    "name": "arch", 
                    "updated": "2011-12-13T03:45:18.989+0000", 
                    "value": "ALL"
                }, 
                {
                    "created": "2011-12-13T03:45:18.990+0000", 
                    "name": "type", 
                    "updated": "2011-12-13T03:45:18.990+0000", 
                    "value": "SVC"
                }, 
                {
                    "created": "2011-12-13T03:45:18.990+0000", 
                    "name": "warning_period", 
                    "updated": "2011-12-13T03:45:18.990+0000", 
                    "value": "30"
                }
            ], 
            "created": "2011-12-13T01:05:33.968+0000", 
            "dependentProductIds": [], 
            "href": "/products/37069", 
            "id": "37069", 
            "multiplier": 1, 
            "name": "Management Bits", 
            "productContent": [], 
            "updated": "2011-12-13T01:05:33.968+0000"
        }
    ], 
    "quantity": 20, 
    "startDate": "2011-12-06T03:41:49.000+0000", 
    "updated": "2011-12-13T21:36:19.690+0000", 
    "upstreamPoolId": null
}


REFRESH POOLS SO THAT THE SUBSCRIPTION WILL BE AVAILABLE...

[root@jsefler-onprem-5server ~]# curl --insecure --user admin:admin --request PUT https://jsefler-f14-5candlepin.usersys.redhat.com:8443/candlepin/owners/admin/subscriptions
{"id":"refresh_pools_5f85dae8-cb86-439d-99bd-4291e4a26496","state":"CREATED","result":null,"targetType":"owner","startTime":null,"group":"async group","principalName":"admin","targetId":"admin","finishTime":null,"statusPath":"/jobs/refresh_pools_5f85dae8-cb86-439d-99bd-4291e4a26496","updated":"2011-12-13T21:36:33.373+0000","created":"2011-12-13T21:36:33.373+0000"}[root@jsefler-onprem-5server ~]# 
[root@jsefler-onprem-5server ~]# curl --insecure --user admin:admin --request PUT https://jsefler-f14-5candlepin.usersys.redhat.com:8443/candlepin/owners/admin/subscriptions | python -m simplejson/tool
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   366    0   366    0     0   2149      0 --:--:-- --:--:-- --:--:--     0
{
    "created": "2011-12-13T21:36:55.935+0000", 
    "finishTime": null, 
    "group": "async group", 
    "id": "refresh_pools_7aaa1f2d-9995-4e9d-b972-c1c4e80479aa", 
    "principalName": "admin", 
    "result": null, 
    "startTime": null, 
    "state": "CREATED", 
    "statusPath": "/jobs/refresh_pools_7aaa1f2d-9995-4e9d-b972-c1c4e80479aa", 
    "targetId": "admin", 
    "targetType": "owner", 
    "updated": "2011-12-13T21:36:55.935+0000"
}


DEMONSTRATING THAT THE SYSTEM IS NOT COMPLIANT BEFORE SUBSCRIBES ARE ATTEMPTED...

[root@jsefler-onprem-5server ~]# subscription-manager list --installed
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
ProductName:          	Large File Support Bits  
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Not Subscribed           
Starts:               	None                     
Expires:              	None                     

[root@jsefler-onprem-5server ~]# subscription-manager facts --list | grep entitlements
system.entitlements_valid: invalid


REGISTER AND LIST THE MULTI-STACKABLE SUBSCRIPTION TO GET THE POOL-ID...
 
[root@jsefler-onprem-5server ~]# subscription-manager register --username testuser1 --password password --org admin
The system has been registered with id: 96d3318c-b591-4639-8ae0-c24a6949045e 
[root@jsefler-onprem-5server ~]# subscription-manager list --avail | grep multi-stackable -A4 -B1
ProductName:          	Multi-Stackable with many provided products
ProductId:            	multi-stackable          
PoolId:               	8a90f8573434f3970134395b05ff02e5
Quantity:             	20                       
Multi-Entitlement:    	Yes                      
Expires:              	12/21/2011               


SUBSCRIBE WITH AN INSUFFICIENT QUANTITY...

[root@jsefler-onprem-5server ~]# subscription-manager subscribe --pool 8a90f8573434f3970134395b05ff02e5 --quantity 2
Successfully consumed a subscription from the pool with id 8a90f8573434f3970134395b05ff02e5


DEMONSTRATE THAT WE ARE NOW PARTIALLY COMPLIANT...

[root@jsefler-onprem-5server ~]# subscription-manager list --installed
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
ProductName:          	Large File Support Bits  
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

[root@jsefler-onprem-5server ~]# subscription-manager facts --list | grep entitlements
system.entitlements_valid: partial


SHOW THAT OUR INSTALLED PRODUCT (37068) IS NOT THE *FIRST* NOR *LAST* PRODUCT IN THE GRANTED ENTITLEMENT CERT AS DICTATED IN COMMENT 0....

[root@jsefler-onprem-5server ~]# openssl x509 -text -in /etc/pki/entitlement/1820421991079413230.pem 
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            19:43:70:27:e7:99:05:ee
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: CN=jsefler-f14-5candlepin.usersys.redhat.com, C=US, L=Raleigh
        Validity
            Not Before: Dec  6 03:41:49 2011 GMT
            Not After : Dec 22 03:41:49 2011 GMT
        Subject: CN=8a90f8573434f3970134395e861602f6
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:cb:f2:41:81:d3:2b:9c:84:d3:80:d6:54:fb:bc:
                    eb:49:88:64:6b:f2:4c:77:dc:51:87:33:a7:d5:1e:
                    03:ea:74:5f:3e:eb:aa:45:49:a9:f3:97:a3:65:68:
                    a7:6f:46:4f:cc:56:78:70:d1:6d:e5:37:e8:11:33:
                    94:bf:e6:52:ed:78:de:c5:3d:7b:4f:2e:a7:6d:e0:
                    53:85
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            Netscape Cert Type: 
                SSL Client, S/MIME
            X509v3 Key Usage: 
                Digital Signature, Key Encipherment, Data Encipherment
            X509v3 Authority Key Identifier: 
                keyid:0A:88:48:7B:CD:F4:0E:D2:D4:19:72:C1:12:DD:3F:09:2B:AE:7C:9E
                DirName:/CN=jsefler-f14-5candlepin.usersys.redhat.com/C=US/L=Raleigh
                serial:C9:6E:22:5C:F5:E1:CD:64

            X509v3 Subject Key Identifier: 
                11:03:52:D9:04:FA:78:59:1F:52:AE:0E:4A:D8:00:49:29:E5:33:F7
            X509v3 Extended Key Usage: 
                TLS Web Client Authentication
            1.3.6.1.4.1.2312.9.1.37065.1: 
                ..Clustering Bits
            1.3.6.1.4.1.2312.9.1.37065.3: 
                ..ALL
            1.3.6.1.4.1.2312.9.1.37065.2: 
                ..1.0
            1.3.6.1.4.1.2312.9.1.37070.1: 
                ..Load Balancing Bits
            1.3.6.1.4.1.2312.9.1.37070.3: 
                ..ALL
            1.3.6.1.4.1.2312.9.1.37070.2: 
                ..1.0
            1.3.6.1.4.1.2312.9.1.37068.1:            <==== RIGHT IN THE MIDDLE
                ..Large File Support Bits
            1.3.6.1.4.1.2312.9.1.37068.3: 
                ..ALL
            1.3.6.1.4.1.2312.9.1.37068.2: 
                ..1.0
            1.3.6.1.4.1.2312.9.1.37067.1: 
                ..Shared Storage Bits
            1.3.6.1.4.1.2312.9.1.37067.3: 
                ..ALL
            1.3.6.1.4.1.2312.9.1.37067.2: 
                ..1.0
            1.3.6.1.4.1.2312.9.1.37069.1: 
                ..Management Bits
            1.3.6.1.4.1.2312.9.1.37069.3: 
                ..ALL
            1.3.6.1.4.1.2312.9.1.37069.2: 
                ..1.0
            1.3.6.1.4.1.2312.9.4.1: 
                .+Multi-Stackable with many provided products
            1.3.6.1.4.1.2312.9.4.2: 
                . 8a90f8573434f3970134395aceea02e4
            1.3.6.1.4.1.2312.9.4.3: 
                ..multi-stackable
            1.3.6.1.4.1.2312.9.4.5: 
                ..20
            1.3.6.1.4.1.2312.9.4.9: 
                ..2
            1.3.6.1.4.1.2312.9.4.6: 
                ..2011-12-06T03:41:49Z
            1.3.6.1.4.1.2312.9.4.7: 
                ..2011-12-22T03:41:49Z
            1.3.6.1.4.1.2312.9.4.12: 
                ..0
            1.3.6.1.4.1.2312.9.4.10: 
                ..123
            1.3.6.1.4.1.2312.9.4.13: 
                ..345
            1.3.6.1.4.1.2312.9.4.14: 
                ..0
            1.3.6.1.4.1.2312.9.4.17: 
                ..123
            1.3.6.1.4.1.2312.9.4.11: 
                ..2
            1.3.6.1.4.1.2312.9.5.1: 
                .$96d3318c-b591-4639-8ae0-c24a6949045e
    Signature Algorithm: sha1WithRSAEncryption
        48:a3:11:bc:e6:74:da:c9:fd:7e:5a:0b:ff:47:49:37:1e:6a:
        84:c3:dd:3c:7e:8b:c0:08:83:9b:14:85:9a:22:d1:5c:5c:51:
        a0:c8:20:86:b4:28:7b:01:ed:38:ca:e6:ea:87:1a:08:0a:dd:
        c4:8e:62:c8:24:4f:3d:45:79:40:65:a9:bc:a9:f4:97:ac:5c:
        f8:86:8c:f2:71:38:5b:97:8d:65:31:a5:b3:64:65:53:39:28:
        2f:05:22:43:83:2a:e9:05:47:0e:55:47:41:74:76:d2:1a:c7:
        d8:b1:b1:82:c5:a0:8b:1d:7e:43:7f:27:fd:dd:f3:fe:fe:21:
        95:94
-----BEGIN CERTIFICATE-----
MIIGxDCCBi2gAwIBAgIIGUNwJ+eZBe4wDQYJKoZIhvcNAQEFBQAwUzEyMDAGA1UE
AwwpanNlZmxlci1mMTQtNWNhbmRsZXBpbi51c2Vyc3lzLnJlZGhhdC5jb20xCzAJ
BgNVBAYTAlVTMRAwDgYDVQQHDAdSYWxlaWdoMB4XDTExMTIwNjAzNDE0OVoXDTEx
+IaM8nE4W5eNZTGls2RlUzkoLwUiQ4Mq6QVHDlVHQXR20hrH2LGxgsWgix1+Q38n
/d3z/v4hlZQ=
-----END CERTIFICATE-----


LET'S MULTI SUBSCRIBE TO GET 2 MORE SOCKETS OF COVERAGE AND ASSERT WE ARE STILL PARTIALLY COMPLIANT...

[root@jsefler-onprem-5server ~]# subscription-manager subscribe --pool 8a90f8573434f3970134395b05ff02e5 --quantity 3
Successfully consumed a subscription from the pool with id 8a90f8573434f3970134395b05ff02e5
[root@jsefler-onprem-5server ~]# subscription-manager list --installed
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
ProductName:          	Large File Support Bits  
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

[root@jsefler-onprem-5server ~]# subscription-manager facts --list | grep entitlements
system.entitlements_valid: partial


LET'S DROP IN SOME MORE PRODUCTS AND VERIFY THAT THE COMPLIANCE REMAINS PARTIAL

[root@jsefler-onprem-5server ~]# cp /tmp/product/37070.pem /etc/pki/product/
[root@jsefler-onprem-5server ~]# subscription-manager list --installed
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
ProductName:          	Large File Support Bits  
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

ProductName:          	Load Balancing Bits      
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

[root@jsefler-onprem-5server ~]# subscription-manager facts --list | grep entitlements
system.entitlements_valid: partial
[root@jsefler-onprem-5server ~]# 

^^^ STILL PARTIALLY SUBSCRIBED THAT'S GOOD, LET'S DROP IN  SOME MORE PROVIDED PRODUCTS...

[root@jsefler-onprem-5server ~]# cp /tmp/product/37067.pem /etc/pki/product/
[root@jsefler-onprem-5server ~]# cp /tmp/product/37069.pem /etc/pki/product/
[root@jsefler-onprem-5server ~]# subscription-manager list --installed
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
ProductName:          	Shared Storage Bits      
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

ProductName:          	Management Bits          
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

ProductName:          	Large File Support Bits  
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

ProductName:          	Load Balancing Bits      
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Partially Subscribed     
Starts:               	12/05/2011               
Expires:              	12/21/2011               

[root@jsefler-onprem-5server ~]# subscription-manager facts --list | grep entitlements
system.entitlements_valid: partial
[root@jsefler-onprem-5server ~]# 

^^^ STILL PARTIALLY COMPLIANT ON ALL PRODUCTS.  THIS IS GOOD.

LET'S COMPLETE SUBSCRIBING SO AS TO SATISFY ALL THE SOCKETS...

[root@jsefler-onprem-5server ~]# subscription-manager subscribe --pool 8a90f8573434f3970134395b05ff02e5 --quantity 2
Successfully consumed a subscription from the pool with id 8a90f8573434f3970134395b05ff02e5
[root@jsefler-onprem-5server ~]# subscription-manager list --installed
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
ProductName:          	Shared Storage Bits      
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Subscribed               
Starts:               	12/05/2011               
Expires:              	12/21/2011               

ProductName:          	Management Bits          
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Subscribed               
Starts:               	12/05/2011               
Expires:              	12/21/2011               

ProductName:          	Large File Support Bits  
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Subscribed               
Starts:               	12/05/2011               
Expires:              	12/21/2011               

ProductName:          	Load Balancing Bits      
Version:              	1.0                      
Arch:                 	ALL                      
Status:               	Subscribed               
Starts:               	12/05/2011               
Expires:              	12/21/2011               

[root@jsefler-onprem-5server ~]# subscription-manager facts --list | grep entitlements
system.entitlements_valid: valid
[root@jsefler-onprem-5server ~]# 


WE ARE NOW FULLY COMPLIANT AFTER INCREMENTALLY ADDING ENTITLEMENTS FROM A MULTI_ENTITABLE STACKABLE SUBSCRIPTION THAT PROVIDED MANY PRODUCTS THAT WERE AND WERE NOT INSTALLED ALONG THE WAY....

Note: WHILE STEPPING THROUGH THE VERIFICATION ABOVE, I WAS ALSO MONITORING THE red/yellow/green ICONS IN THE GUI.  ALL WAS PERFECT.

Moving to VERIFIED

Comment 8 William Poteat 2012-01-20 19:59:25 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
No description necessary

Comment 9 errata-xmlrpc 2012-02-21 06:31:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2012-0154.html