Hide Forgot
Description of problem: Exposed on the CLI by bug 996993, the new "Provides:" field displays the provided products that come with an attached subscription. I believe the products in this list should exclude all marketing (MKT) products and only include engineering (SVC) products. While this bug is new to the CLI, it is not new to the GUI. It can easily be demonstrated in the GUI too. Let's review the failing case from an offending subscription imported from candlepin TESTDATA... [root@jsefler-6 ~]# subscription-manager list --avail | grep awesomeos-server-2-socket-std -B8 -A8 Subscription Name: Awesome OS Server Bundled (2 Sockets, Standard Support) Provides: Management Bits Load Balancing Bits Shared Storage Bits Clustering Bits Awesome OS Server Bits Awesome OS Server Bundled <============== OBSERVE HERE Large File Support Bits SKU: awesomeos-server-2-socket-std Pool ID: 8a9087404175311a01417531ee531212 Available: 5 Suggested: 1 Service Level: Standard Service Type: L1-L3 Multi-Entitlement: No Ends: 09/30/2014 System Type: Physical [root@jsefler-6 ~]# subscription-manager attach --pool 8a9087404175311a01417531ee531212 Successfully attached a subscription for: Awesome OS Server Bundled (2 Sockets, Standard Support) [root@jsefler-6 ~]# subscription-manager list --consumed +-------------------------------------------+ Consumed Subscriptions +-------------------------------------------+ Subscription Name: Awesome OS Server Bundled (2 Sockets, Standard Support) Provides: Clustering Bits <============= BUT IS NOT HERE Awesome OS Server Bits Load Balancing Bits Large File Support Bits Shared Storage Bits Management Bits SKU: awesomeos-server-2-socket-std Contract: 0 Account: 12331131231 Serial: 515333914439115725 Pool ID: 8a9087404175311a01417531ee531212 Active: True Quantity Used: 1 Service Level: Standard Service Type: L1-L3 Status Details: Starts: 09/30/2013 Ends: 09/30/2014 System Type: Physical ^ Notice above that the "Awesome OS Server Bundled" product IS among the list of provided products in the pool, but is NOT among the provided products of a consumed subscription from the same pool. Looking more closely at the provided products in the subscription, you will find that "Awesome OS Server Bundled" is a type="MKT" product. Version-Release number of selected component (if applicable): [root@jsefler-6 ~]# subscription-manager version server type: Red Hat Subscription Management subscription management server: 0.8.28-1 subscription-manager: 1.9.8-1.el6 python-rhsm: 1.9.6-1.el6 Additional info: [root@jsefler-6 ~]# curl --stderr /dev/null --insecure --user testuser1:password --request GET https://jsefler-f14-candlepin.usersys.redhat.com:8443/candlepin/pools/8a9087404175311a01417531ee531212 | python -m simplejson/tool { "accountNumber": "12331131231", "activeSubscription": true, "attributes": [], "calculatedAttributes": {}, "consumed": 1, "contractNumber": "0", "created": "2013-10-01T18:05:08.563+0000", "derivedProductAttributes": [], "derivedProductId": null, "derivedProductName": null, "derivedProvidedProducts": [], "endDate": "2014-10-01T00:00:00.000+0000", "exported": 0, "href": "/pools/8a9087404175311a01417531ee531212", "id": "8a9087404175311a01417531ee531212", "orderNumber": "order-8675309", "owner": { "displayName": "Admin Owner", "href": "/owners/admin", "id": "8a9087404175311a0141753137ca0002", "key": "admin" }, "productAttributes": [ { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee541213", "name": "support_type", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "L1-L3" }, { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee541214", "name": "variant", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "ALL" }, { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee541215", "name": "arch", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "ALL" }, { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee541216", "name": "sockets", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "2" }, { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee541217", "name": "support_level", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "Standard" }, { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee541218", "name": "warning_period", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "30" }, { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee541219", "name": "version", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "6.1" }, { "created": "2013-10-01T18:05:08.564+0000", "id": "8a9087404175311a01417531ee55121a", "name": "management_enabled", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.564+0000", "value": "1" }, { "created": "2013-10-01T18:05:08.565+0000", "id": "8a9087404175311a01417531ee581227", "name": "type", "productId": "awesomeos-server-2-socket-std", "updated": "2013-10-01T18:05:08.565+0000", "value": "MKT" } ], "productId": "awesomeos-server-2-socket-std", "productName": "Awesome OS Server Bundled (2 Sockets, Standard Support)", "providedProducts": [ { "created": "2013-10-01T18:05:08.569+0000", "id": "8a9087404175311a01417531ee591228", "productId": "37069", "productName": "Management Bits", "updated": "2013-10-01T18:05:08.569+0000" }, { "created": "2013-10-01T18:05:08.569+0000", "id": "8a9087404175311a01417531ee591229", "productId": "37070", "productName": "Load Balancing Bits", "updated": "2013-10-01T18:05:08.569+0000" }, { "created": "2013-10-01T18:05:08.569+0000", "id": "8a9087404175311a01417531ee59122a", "productId": "37067", "productName": "Shared Storage Bits", "updated": "2013-10-01T18:05:08.569+0000" }, { "created": "2013-10-01T18:05:08.569+0000", "id": "8a9087404175311a01417531ee59122b", "productId": "37065", "productName": "Clustering Bits", "updated": "2013-10-01T18:05:08.569+0000" }, { "created": "2013-10-01T18:05:08.569+0000", "id": "8a9087404175311a01417531ee59122c", "productId": "37060", "productName": "Awesome OS Server Bits", "updated": "2013-10-01T18:05:08.569+0000" }, { "created": "2013-10-01T18:05:08.569+0000", "id": "8a9087404175311a01417531ee59122d", "productId": "awesomeos-server", "productName": "Awesome OS Server Bundled", <======= OBSERVE HERE "updated": "2013-10-01T18:05:08.569+0000" }, { "created": "2013-10-01T18:05:08.569+0000", "id": "8a9087404175311a01417531ee59122e", "productId": "37068", "productName": "Large File Support Bits", "updated": "2013-10-01T18:05:08.569+0000" } ], "quantity": 5, "restrictedToUsername": null, "sourceConsumer": null, "sourceEntitlement": null, "sourceStackId": null, "stackId": null, "stacked": false, "startDate": "2013-10-01T00:00:00.000+0000", "subscriptionId": "8a9087404175311a014175319f5f019c", "subscriptionSubKey": "master", "type": "NORMAL", "updated": "2013-10-07T19:01:37.130+0000" } [root@jsefler-6 ~]# curl --stderr /dev/null --insecure --user admin:admin --request GET https://jsefler-f14-candlepin.usersys.redhat.com:8443/candlepin/subscriptions/8a9087404175311a014175319f5f019c | python -m simplejson/tool { "accountNumber": "12331131231", "certificate": null, "contractNumber": "0", "created": "2013-10-01T18:04:48.351+0000", "derivedProduct": null, "derivedProvidedProducts": [], "endDate": "2014-10-01T00:00:00.000+0000", "id": "8a9087404175311a014175319f5f019c", "modified": null, "orderNumber": "order-8675309", "owner": { "displayName": "Admin Owner", "href": "/owners/admin", "id": "8a9087404175311a0141753137ca0002", "key": "admin" }, "product": { "attributes": [ { "created": "2013-10-01T18:04:48.144+0000", "name": "variant", "updated": "2013-10-01T18:04:48.144+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:48.144+0000", "name": "sockets", "updated": "2013-10-01T18:04:48.144+0000", "value": "2" }, { "created": "2013-10-01T18:04:48.144+0000", "name": "arch", "updated": "2013-10-01T18:04:48.144+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:48.144+0000", "name": "support_level", "updated": "2013-10-01T18:04:48.144+0000", "value": "Standard" }, { "created": "2013-10-01T18:04:48.144+0000", "name": "support_type", "updated": "2013-10-01T18:04:48.144+0000", "value": "L1-L3" }, { "created": "2013-10-01T18:04:48.144+0000", "name": "management_enabled", "updated": "2013-10-01T18:04:48.144+0000", "value": "1" }, { "created": "2013-10-01T18:04:48.144+0000", "name": "type", "updated": "2013-10-01T18:04:48.144+0000", "value": "MKT" }, { "created": "2013-10-01T18:04:48.144+0000", "name": "warning_period", "updated": "2013-10-01T18:04:48.144+0000", "value": "30" }, { "created": "2013-10-01T18:04:48.145+0000", "name": "version", "updated": "2013-10-01T18:04:48.145+0000", "value": "6.1" } ], "created": "2013-10-01T18:04:48.144+0000", "dependentProductIds": [], "href": "/products/awesomeos-server-2-socket-std", "id": "awesomeos-server-2-socket-std", "multiplier": 1, "name": "Awesome OS Server Bundled (2 Sockets, Standard Support)", "productContent": [], "reliesOn": [], "updated": "2013-10-01T18:04:48.144+0000" }, "providedProducts": [ { "attributes": [ { "created": "2013-10-01T18:04:25.527+0000", "name": "version", "updated": "2013-10-01T18:04:25.527+0000", "value": "1.0" }, { "created": "2013-10-01T18:04:25.528+0000", "name": "variant", "updated": "2013-10-01T18:04:25.528+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.528+0000", "name": "sockets", "updated": "2013-10-01T18:04:25.528+0000", "value": "2" }, { "created": "2013-10-01T18:04:25.528+0000", "name": "arch", "updated": "2013-10-01T18:04:25.528+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.528+0000", "name": "type", "updated": "2013-10-01T18:04:25.528+0000", "value": "SVC" } ], "created": "2013-10-01T18:04:25.527+0000", "dependentProductIds": [], "href": "/products/37065", "id": "37065", "multiplier": 1, "name": "Clustering Bits", "productContent": [], "reliesOn": [], "updated": "2013-10-01T18:04:25.527+0000" }, { "attributes": [ { "created": "2013-10-01T18:04:46.134+0000", "name": "version", "updated": "2013-10-01T18:04:46.134+0000", "value": "1.0" }, { "created": "2013-10-01T18:04:46.134+0000", "name": "variant", "updated": "2013-10-01T18:04:46.134+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:46.134+0000", "name": "support_level", "updated": "2013-10-01T18:04:46.134+0000", "value": "Premium" }, { "created": "2013-10-01T18:04:46.134+0000", "name": "sockets", "updated": "2013-10-01T18:04:46.134+0000", "value": "2" }, { "created": "2013-10-01T18:04:46.134+0000", "name": "arch", "updated": "2013-10-01T18:04:46.134+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:46.134+0000", "name": "management_enabled", "updated": "2013-10-01T18:04:46.134+0000", "value": "1" }, { "created": "2013-10-01T18:04:46.134+0000", "name": "type", "updated": "2013-10-01T18:04:46.134+0000", "value": "MKT" <========== OBSERVE MKT PRODUCT }, { "created": "2013-10-01T18:04:46.134+0000", "name": "warning_period", "updated": "2013-10-01T18:04:46.134+0000", "value": "30" }, { "created": "2013-10-01T18:04:46.135+0000", "name": "support_type", "updated": "2013-10-01T18:04:46.135+0000", "value": "Level 3" } ], "created": "2013-10-01T18:04:46.134+0000", "dependentProductIds": [], "href": "/products/awesomeos-server", "id": "awesomeos-server", "multiplier": 1, "name": "Awesome OS Server Bundled", "productContent": [], "reliesOn": [], "updated": "2013-10-01T18:04:46.134+0000" }, { "attributes": [ { "created": "2013-10-01T18:04:26.824+0000", "name": "variant", "updated": "2013-10-01T18:04:26.824+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:26.824+0000", "name": "sockets", "updated": "2013-10-01T18:04:26.824+0000", "value": "2" }, { "created": "2013-10-01T18:04:26.824+0000", "name": "arch", "updated": "2013-10-01T18:04:26.824+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:26.824+0000", "name": "type", "updated": "2013-10-01T18:04:26.824+0000", "value": "SVC" }, { "created": "2013-10-01T18:04:26.824+0000", "name": "brand_type", "updated": "2013-10-01T18:04:26.824+0000", "value": "OS" }, { "created": "2013-10-01T18:04:26.824+0000", "name": "warning_period", "updated": "2013-10-01T18:04:26.824+0000", "value": "30" }, { "created": "2013-10-01T18:04:26.824+0000", "name": "version", "updated": "2013-10-01T18:04:26.824+0000", "value": "6.1" } ], "created": "2013-10-01T18:04:26.824+0000", "dependentProductIds": [], "href": "/products/37060", "id": "37060", "multiplier": 1, "name": "Awesome OS Server Bits", "productContent": [ { "content": { "arches": null, "contentUrl": "/foo/path", "created": "2013-10-01T18:04:24.804+0000", "gpgUrl": "", "id": "235", "label": "content-label-empty-gpg", "metadataExpire": 0, "modifiedProductIds": [], "name": "content-emptygpg", "releaseVer": null, "requiredTags": null, "type": "yum", "updated": "2013-10-01T18:04:24.804+0000", "vendor": "test-vendor" }, "enabled": false }, { "content": { "arches": null, "contentUrl": "/foo/path/never", "created": "2013-10-01T18:04:24.685+0000", "gpgUrl": "/foo/path/never/gpg", "id": "0", "label": "never-enabled-content", "metadataExpire": 600, "modifiedProductIds": [], "name": "never-enabled-content", "releaseVer": null, "requiredTags": null, "type": "yum", "updated": "2013-10-01T18:04:24.685+0000", "vendor": "test-vendor" }, "enabled": false }, { "content": { "arches": null, "contentUrl": "/foo/path", "created": "2013-10-01T18:04:24.762+0000", "gpgUrl": "/foo/path/gpg/", "id": "1111", "label": "content-label", "metadataExpire": 0, "modifiedProductIds": [], "name": "content", "releaseVer": null, "requiredTags": null, "type": "yum", "updated": "2013-10-01T18:04:24.762+0000", "vendor": "test-vendor" }, "enabled": false }, { "content": { "arches": null, "contentUrl": "/foo/path", "created": "2013-10-01T18:04:24.748+0000", "gpgUrl": "", "id": "234", "label": "content-label-no-gpg", "metadataExpire": 0, "modifiedProductIds": [], "name": "content-nogpg", "releaseVer": null, "requiredTags": null, "type": "yum", "updated": "2013-10-01T18:04:24.748+0000", "vendor": "test-vendor" }, "enabled": false }, { "content": { "arches": null, "contentUrl": "/foo/path/always", "created": "2013-10-01T18:04:24.750+0000", "gpgUrl": "/foo/path/always/gpg", "id": "2", "label": "tagged-content", "metadataExpire": null, "modifiedProductIds": [], "name": "tagged-content", "releaseVer": null, "requiredTags": "TAG1,TAG2", "type": "yum", "updated": "2013-10-01T18:04:24.750+0000", "vendor": "test-vendor" }, "enabled": false } ], "reliesOn": [], "updated": "2013-10-01T18:04:26.824+0000" }, { "attributes": [ { "created": "2013-10-01T18:04:25.525+0000", "name": "version", "updated": "2013-10-01T18:04:25.525+0000", "value": "1.0" }, { "created": "2013-10-01T18:04:25.525+0000", "name": "variant", "updated": "2013-10-01T18:04:25.525+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.525+0000", "name": "sockets", "updated": "2013-10-01T18:04:25.525+0000", "value": "2" }, { "created": "2013-10-01T18:04:25.525+0000", "name": "arch", "updated": "2013-10-01T18:04:25.525+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.525+0000", "name": "type", "updated": "2013-10-01T18:04:25.525+0000", "value": "SVC" }, { "created": "2013-10-01T18:04:25.525+0000", "name": "warning_period", "updated": "2013-10-01T18:04:25.525+0000", "value": "30" } ], "created": "2013-10-01T18:04:25.524+0000", "dependentProductIds": [], "href": "/products/37070", "id": "37070", "multiplier": 1, "name": "Load Balancing Bits", "productContent": [], "reliesOn": [], "updated": "2013-10-01T18:04:25.524+0000" }, { "attributes": [ { "created": "2013-10-01T18:04:25.563+0000", "name": "version", "updated": "2013-10-01T18:04:25.563+0000", "value": "1.0" }, { "created": "2013-10-01T18:04:25.563+0000", "name": "variant", "updated": "2013-10-01T18:04:25.563+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.563+0000", "name": "sockets", "updated": "2013-10-01T18:04:25.563+0000", "value": "2" }, { "created": "2013-10-01T18:04:25.563+0000", "name": "arch", "updated": "2013-10-01T18:04:25.563+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.563+0000", "name": "type", "updated": "2013-10-01T18:04:25.563+0000", "value": "SVC" }, { "created": "2013-10-01T18:04:25.563+0000", "name": "warning_period", "updated": "2013-10-01T18:04:25.563+0000", "value": "30" } ], "created": "2013-10-01T18:04:25.562+0000", "dependentProductIds": [], "href": "/products/37068", "id": "37068", "multiplier": 1, "name": "Large File Support Bits", "productContent": [], "reliesOn": [], "updated": "2013-10-01T18:04:25.562+0000" }, { "attributes": [ { "created": "2013-10-01T18:04:25.535+0000", "name": "version", "updated": "2013-10-01T18:04:25.535+0000", "value": "1.0" }, { "created": "2013-10-01T18:04:25.535+0000", "name": "variant", "updated": "2013-10-01T18:04:25.535+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.535+0000", "name": "sockets", "updated": "2013-10-01T18:04:25.535+0000", "value": "2" }, { "created": "2013-10-01T18:04:25.535+0000", "name": "arch", "updated": "2013-10-01T18:04:25.535+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.536+0000", "name": "type", "updated": "2013-10-01T18:04:25.536+0000", "value": "SVC" }, { "created": "2013-10-01T18:04:25.536+0000", "name": "warning_period", "updated": "2013-10-01T18:04:25.536+0000", "value": "30" } ], "created": "2013-10-01T18:04:25.535+0000", "dependentProductIds": [], "href": "/products/37067", "id": "37067", "multiplier": 1, "name": "Shared Storage Bits", "productContent": [], "reliesOn": [], "updated": "2013-10-01T18:04:25.535+0000" }, { "attributes": [ { "created": "2013-10-01T18:04:25.566+0000", "name": "version", "updated": "2013-10-01T18:04:25.566+0000", "value": "1.0" }, { "created": "2013-10-01T18:04:25.566+0000", "name": "variant", "updated": "2013-10-01T18:04:25.566+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.566+0000", "name": "sockets", "updated": "2013-10-01T18:04:25.566+0000", "value": "2" }, { "created": "2013-10-01T18:04:25.566+0000", "name": "arch", "updated": "2013-10-01T18:04:25.566+0000", "value": "ALL" }, { "created": "2013-10-01T18:04:25.567+0000", "name": "type", "updated": "2013-10-01T18:04:25.567+0000", "value": "SVC" }, { "created": "2013-10-01T18:04:25.567+0000", "name": "warning_period", "updated": "2013-10-01T18:04:25.567+0000", "value": "30" } ], "created": "2013-10-01T18:04:25.566+0000", "dependentProductIds": [], "href": "/products/37069", "id": "37069", "multiplier": 1, "name": "Management Bits", "productContent": [], "reliesOn": [], "updated": "2013-10-01T18:04:25.566+0000" } ], "quantity": 5, "startDate": "2013-10-01T00:00:00.000+0000", "updated": "2013-10-01T18:04:48.351+0000", "upstreamConsumerId": null, "upstreamEntitlementId": null, "upstreamPoolId": null }
The issue in question is just caused by test data, no real data should ever appear like this. (at this point in time) We discussed explicitly filtering out these alphanumeric provided product. We can't do that on the client as that's just backing ourselves into a corner should this situation ever arise. Filtering it server side could be done, but IMO this can't happen with real data today, if it did, we'd need to support it, so a fix for this is a fix that would never be used until we needed to, in which case it would need to be undone. Will's just going to fix the test data so this doesn't appear. If we start seeing alphanumeric provided product IDs in real world data, we'll have to have a discussion about what they're doing there and what that means. In meantime the filter to keep them out of entitlement certs (due to numeric OID issues in v1 certs) is still there. Probably better to just leave the data freeform. Test data fix incoming, let us know if you have concerns.
master commit 8525da51bd751dd340adc8d3f0c990c6c6615c87
Because this was test data related and not something the customer would ever see. I'm going to close the bug as NOTABUG. The test data has been fixed, but it seems a waste of time to track this and spend QA resources testing something that isn't a product issue.