Bug 1022622

Summary: subscription-manager list --no-overlap needs a second look (both GUI and CLI)
Product: Red Hat Enterprise Linux 7 Reporter: John Sefler <jsefler>
Component: subscription-managerAssignee: Bryan Kearney <bkearney>
Status: CLOSED ERRATA QA Contact: John Sefler <jsefler>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: bkearney, jesusr, skallesh
Target Milestone: pre-dev-freeze   
Target Release: 7.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1114717 (view as bug list) Environment:
Last Closed: 2015-03-05 13:14:39 UTC Type: Bug
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: 1005618, 1114717    
Attachments:
Description Flags
List avail and tool tip none

Description John Sefler 2013-10-23 15:52:03 UTC
Description of problem:
Both the GUI and the CLI now have a list option/filter to list available subscriptions that have no overlap, but what does it mean to overlap?

The GUI says:
  Only show subscriptions that: have no overlap with existing subscriptions
  Tool Tip: Hide subscriptions which are active for dates currently covered

The CLI shows:
  --no-overlap          shows pools which provide products that are not
                        already covered; only used with --available


These descriptions are hard to understand and actually mean different things to me.  Technically the CLI description seems to me to be the most desirable.  I believe we want the functionality of this no-overlap function filter to exclude subscriptions that provide installed products that are not already "Subscribed".

For example, if an available subscription provides 2 products that are already installed and one of them has a fully compliant "Subscribed" status and the other does not.  Then the no-overlap filter should continue showing this subscription (Unfortunately this is broken today as demonstrated below).  If both of the subscription's provided products are installed and have a fully "Subscribed" status, then the no-overlap filter should exclude this subscription. 

I believe that the ultimate goal for applying all of the subscription list filters is to generate a list of subscription pools that will contribute to making the currently installed products fully "Subscribed".   


Version-Release number of selected component (if applicable):
[root@jsefler-7 ~]# subscription-manager version
server type: This system is currently not registered.
subscription management server: 0.8.28-1
subscription-manager: 1.10.4-1.el7
python-rhsm: 1.10.3-1.el7


How reproducible:


Steps to Reproduce:
Using candlepin deployed with TESTDATA and the following products installed...
[root@jsefler-7 ~]# ls /etc/pki/product/
37060.pem  37067.pem  37068.pem  37069.pem  37070.pem

[root@jsefler-7 ~]# subscription-manager list --installed
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
Product Name:   Shared Storage Bits
Product ID:     37067
Version:        1.0
Arch:           ALL
Status:         Unknown
Status Details: 
Starts:         
Ends:           

Product Name:   Management Bits
Product ID:     37069
Version:        1.0
Arch:           ALL
Status:         Unknown
Status Details: 
Starts:         
Ends:           

Product Name:   Awesome OS Server Bits
Product ID:     37060
Version:        6.1
Arch:           ALL
Status:         Unknown
Status Details: 
Starts:         
Ends:           

Product Name:   Load Balancing Bits
Product ID:     37070
Version:        1.0
Arch:           ALL
Status:         Unknown
Status Details: 
Starts:         
Ends:           

Product Name:   Large File Support Bits
Product ID:     37068
Version:        1.0
Arch:           ALL
Status:         Unknown
Status Details: 
Starts:         
Ends:           

[root@jsefler-7 ~]# subscription-manager register
Username: testuser1
Password: 
Organization: admin
The system has been registered with ID: 152a475c-e141-45f2-b48d-6a05772c8c27 

[root@jsefler-7 ~]# subscription-manager auto-attach --disable
Auto-attach preference: disabled


[root@jsefler-7 ~]# subscription-manager list --avail --match-installed | grep "awesomeos-virt-4" -B2 -A10
Subscription Name: Awesome OS with up to 4 virtual guests
Provides:          Awesome OS Server Bits
SKU:               awesomeos-virt-4
Contract:          0
Pool ID:           8a9087404175311a01417531e2f40bb6
Available:         5
Suggested:         1
Service Level:     
Service Type:      
Multi-Entitlement: Yes
Ends:              09/30/2014
System Type:       Physical

[root@jsefler-7 ~]# subscription-manager attach --pool 8a9087404175311a01417531e2f40bb6
Successfully attached a subscription for: Awesome OS with up to 4 virtual guests

[root@jsefler-7 ~]# subscription-manager list --installed | egrep '(Status:|Product Name:)'
Product Name:   Shared Storage Bits
Status:         Not Subscribed
Product Name:   Management Bits
Status:         Not Subscribed
Product Name:   Awesome OS Server Bits
Status:         Subscribed
Product Name:   Load Balancing Bits
Status:         Not Subscribed
Product Name:   Large File Support Bits
Status:         Not Subscribed
 

^^ Notice that we are now "Subscribed" for one installed product but not all (as expected).

[root@jsefler-7 ~]# subscription-manager list --available --match-installed --no-overlap 
No available subscription pools to list

^^ BANG!  The --no-overlap was too agressive to be useful.  It filtered out the subscription for "Awesome OS Server Bundled" which happens to provide all of the installed products.

[root@jsefler-7 ~]# subscription-manager list --available --match-installed | egrep "Subscription Name: Awesome OS Server Bundled$" -A17
Subscription Name: Awesome OS Server Bundled
Provides:          Management Bits
                   Load Balancing Bits
                   Shared Storage Bits
                   Clustering Bits
                   Awesome OS Server Bits
                   Large File Support Bits
SKU:               awesomeos-server
Contract:          0
Pool ID:           8a9087404175311a01417531f1c414d3
Available:         5
Suggested:         1
Service Level:     Premium
Service Type:      Level 3
Multi-Entitlement: No
Ends:              09/30/2014
System Type:       Physical

[root@jsefler-7 ~]# subscription-manager attach --pool 8a9087404175311a01417531f1c414d3
Successfully attached a subscription for: Awesome OS Server Bundled

[root@jsefler-7 ~]# subscription-manager list --installed | egrep '(Status:|Product Name:)'
Product Name:   Shared Storage Bits
Status:         Subscribed
Product Name:   Management Bits
Status:         Subscribed
Product Name:   Awesome OS Server Bits
Status:         Subscribed
Product Name:   Load Balancing Bits
Status:         Subscribed
Product Name:   Large File Support Bits
Status:         Subscribed
[root@jsefler-7 ~]# subscription-manager status
+-------------------------------------------+
   System Status Details
+-------------------------------------------+
Overall Status: Current


^^ NOTICE: That after attaching this subscription (which --no-overlap too agressively filtered out), we are now fully compliant.

Because the "--no-overlap" filter is selected by default in the GUI, this filter should NOT hide subscriptions that can contribute to making the system compliant.  It should only filter out subscriptions whose provided product are not already fully "Subscribed". 


Now that the system is fully compliant, subscription-manager list --available --no-overlap --match-installed should show  "No available subscription pools to list"




Additional info:

If this bug is fixed, then these GUI strings should also be changed to say:
  Only show subscriptions that: provide products that are not already covered
  Tool Tip: Hide subscriptions whose provided products have a Subscribed status

Comment 1 Bryan Kearney 2014-03-19 20:50:25 UTC
Moving bugs from 7.0 to 7.1

Comment 3 Chris Snyder 2014-07-03 17:59:04 UTC
Should be in as of commit: 731d308f097129454e3d066807d41fb6aa6bab95

Comment 4 John Sefler 2014-07-14 21:56:05 UTC
(In reply to Chris Snyder from comment #3)
> Should be in as of commit: 731d308f097129454e3d066807d41fb6aa6bab95

This fix is available for test in subscription-manager-1.12.6-1 and newer.

Comment 5 Bryan Kearney 2014-07-30 19:23:50 UTC
Acking 7.1

Comment 8 John Sefler 2014-08-29 20:27:21 UTC
Moving back to RHEL7
Cloned bug 1114717 has already been verified for RHEL66

Comment 12 Shwetha Kallesh 2014-10-08 05:17:37 UTC
Marking verified!!

[root@localhost product]# subscription-manager version
server type: Red Hat Subscription Management
subscription management server: 0.9.32-1
subscription management rules: 5.11
subscription-manager: 1.13.3-1.el7
python-rhsm: 1.13.2.1-2.el7



[root@localhost product]# subscription-manager register --org admin
Username: testuser1
Password: 
The system has been registered with ID: b0da4c1b-b450-4355-bd4a-5080d34d79ef 
[root@localhost product]# subscription-manager auto-attach --disable
Auto-attach preference: disabled
[root@localhost product]# subscription-manager list --avail --match-installed | grep "awesomeos-virt-4" -B2 -A10
Subscription Name: Awesome OS with up to 4 virtual guests
Provides:          Awesome OS Server Bits
SKU:               awesomeos-virt-4
Contract:          4
Pool ID:           ff80808148e5ab950148e5ac34f81383
Available:         5
Suggested:         1
Service Level:     
Service Type:      
Subscription Type: Multi-Entitleable
Ends:              10/06/2015
System Type:       Physical

[root@localhost product]# subscription-manager attach --pool ff80808148e5ab950148e5ac34f81383
Successfully attached a subscription for: Awesome OS with up to 4 virtual guests
[root@localhost product]# subscription-manager list --installed | egrep '(Status:|Product Name:)'
Product Name:   Shared Storage Bits
Status:         Not Subscribed
Product Name:   Management Bits
Status:         Not Subscribed
Product Name:   Awesome OS Server Bits
Status:         Subscribed
Product Name:   Load Balancing Bits
Status:         Not Subscribed
Product Name:   Large File Support Bits
Status:         Not Subscribed
[root@localhost product]# subscription-manager list --available --match-installed --no-overlap 
+-------------------------------------------+
    Available Subscriptions
+-------------------------------------------+
Subscription Name: Awesome OS Server Bundled
Provides:          Management Bits
                   Load Balancing Bits
                   Shared Storage Bits
                   Clustering Bits
                   Awesome OS Server Bits
                   Large File Support Bits
SKU:               awesomeos-server
Contract:          4
Pool ID:           ff80808148e5ab950148e5ac19ae06fe
Available:         5
Suggested:         1
Service Level:     Premium
Service Type:      Level 3
Subscription Type: Standard
Ends:              10/06/2015
System Type:       Physical

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
                   Large File Support Bits
SKU:               awesomeos-server-2-socket-std
Contract:          4
Pool ID:           ff80808148e5ab950148e5ac242e0c5e
Available:         5
Suggested:         1
Service Level:     Standard
Service Type:      L1-L3
Subscription Type: Standard
Ends:              10/06/2015
System Type:       Physical

[root@localhost product]# subscription-manager attach --pool ff80808148e5ab950148e5ac242e0c5e
Successfully attached a subscription for: Awesome OS Server Bundled (2 Sockets, Standard Support)
[root@localhost product]# subscription-manager list --available --match-installed --no-overlap 
No available subscription pools to list

Comment 13 Shwetha Kallesh 2014-10-08 05:18:27 UTC
Created attachment 944855 [details]
List avail and tool tip

Comment 15 errata-xmlrpc 2015-03-05 13:14:39 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.

https://rhn.redhat.com/errata/RHBA-2015-0502.html