Bug 733658

Summary: Unsubscribe is broken in Subscription Manager
Product: Red Hat Enterprise Linux 6 Reporter: Michael Stead <mstead>
Component: subscription-managerAssignee: Michael Stead <mstead>
Status: CLOSED DUPLICATE QA Contact: John Sefler <jsefler>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.2   
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-29 13:21:06 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: 682238    

Description Michael Stead 2011-08-26 11:52:53 UTC
Description of problem:
Unsubscribe broken in Subscription manager.

Version-Release number of selected component (if applicable):
subscription-manager-0.96.7-1

How reproducible:
always

Steps to Reproduce:
1.Register as any user in GUI
2.Unregister that user.

  
Actual results:
Unsubscribe button remains visible, however subscriptions are removed.

An exception is thrown, due to the entitlements directory not being found:

Traceback (most recent call last):
  File "/usr/share/rhsm/subscription_manager/gui/managergui.py", line 247, in on_identity_change
    self.refresh()
  File "/usr/share/rhsm/subscription_manager/gui/managergui.py", line 270, in refresh
    self._set_validity_status()
  File "/usr/share/rhsm/subscription_manager/gui/managergui.py", line 384, in _set_validity_status
    sorter = CertSorter(self.product_dir, self.entitlement_dir, facts_dict=self.facts.get_facts())
  File "/usr/share/rhsm/subscription_manager/cert_sorter.py", line 77, in __init__
    self._scan_entitlement_certs()
  File "/usr/share/rhsm/subscription_manager/cert_sorter.py", line 100, in _scan_entitlement_certs
    ent_certs = self.entitlement_dir.list()
  File "/usr/share/rhsm/subscription_manager/certdirectory.py", line 105, in list
    for p, fn in Directory.list(self):
  File "/usr/share/rhsm/subscription_manager/certdirectory.py", line 49, in list
    for p, fn in self.listAll():
  File "/usr/share/rhsm/subscription_manager/certdirectory.py", line 42, in listAll
    for fn in os.listdir(self.path):
OSError: [Errno 2] No such file or directory: '/etc/pki/entitlement'

Expected results:
Unregister should succeed without issue.

Additional info:

Comment 1 Michael Stead 2011-08-26 12:02:01 UTC
Fixed in master branch: ce5c072361a558f9706742de4a91f282ba3c0e34

Added checks to make sure that the directory exists before listing files.

Comment 4 John Sefler 2011-08-26 12:17:16 UTC
This looks like a dup of bug 733525

Comment 5 Michael Stead 2011-08-29 13:21:06 UTC

*** This bug has been marked as a duplicate of bug 733525 ***