Bug 1248833
| Summary: | subscription-manager redeem is not reporting the response to stdout | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | John Sefler <jsefler> | |
| Component: | subscription-manager | Assignee: | Chris Snyder <csnyder> | |
| Status: | CLOSED ERRATA | QA Contact: | J.C. Molet <jmolet> | |
| Severity: | low | Docs Contact: | ||
| Priority: | medium | |||
| Version: | 7.2 | CC: | alikins, bcourt, crog, csnyder, jmolet, lmiksik | |
| Target Milestone: | rc | Keywords: | Regression | |
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1263474 (view as bug list) | Environment: | ||
| Last Closed: | 2015-11-19 11:50:15 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: | 1263474 | |||
Looks like changes in python-rhsm that made 202 not raise an exception broke this. Previously it expected to get a RestlibException in that case. Wonder if a 202 is really the right response in that case. The following failure occurs against an on-premise candlepin server... [root@jsefler-7 ~]# subscription-manager register --username=testuser1 --password=password --org=admin --force --serverurl=jsefler-f22-candlepin.usersys.redhat.com:8443/candlepin The system with UUID 6ae25316-8dd9-4ccf-8630-d4f94faf2cfb has been unregistered Registering to: jsefler-f22-candlepin.usersys.redhat.com:8443/candlepin The system has been registered with ID: 21cf0fbc-a3e2-4321-916d-4018df358755 [root@jsefler-7 ~]# [root@jsefler-7 ~]# subscription-manager redeem --email=tester [root@jsefler-7 ~]# BANG! no stdout feedback has been given. Expected Stderr: "Standalone candlepin does not support redeeming a subscription for dmi.system.manufacturer:" [root@jsefler-7 ~]# tail -f /var/log/rhsm/rhsm.log 2015-08-25 15:53:44,840 [DEBUG] subscription-manager:23637 @connection.py:500 - Making request: POST /candlepin/subscriptions?consumer_uuid=21cf0fbc-a3e2-4321-916d-4018df358755&email=tester&email_locale=en-us 2015-08-25 15:53:44,955 [DEBUG] subscription-manager:23637 @connection.py:528 - Response: status=204, requestUuid=d0a4b80e-75a9-4dfa-a469-fdfdb5b71ef8 Should be in master as of commit: 3987d4341cf42623e57a92fdc20eed8b44f6526f The issue was caused by a change to python-rhsm. In python-rhsm http response codes 202, and 204 were raising RestlibExceptions. They no longer do. As such subscription-manager was not checking the response for a displayMessage from candlepin. commit 0aff26c11d76cec1efaec7668ac11f939ed1e37b
Author: Christopher Snyder <csnyder>
Date: Thu Sep 10 16:31:52 2015 -0400
1248833: Ensure the displayMessage is displayed regardless of success or failure
failure case in stage ( comment 1 )>> # echo '{"dmi.system.serial_number":"0000000"}' > /etc/rhsm/facts/automation_override.facts # subscription-manager register --serverurl=subscription.rhn.stage.redhat.com --username=qa Registering to: subscription.rhn.stage.redhat.com:443/subscription Password: The system has been registered with ID: 1505d4d2-b9b4-4b9b-ae95-3db43ba6527a # subscription-manager redeem --email=qa The system is unable to redeem the requested subscription: 0000000 This appears to work. ------------------ The case in comment 5 does not seem to be any different. # subscription-manager register --username=testuser1 --password=password --org=admin --force --serverurl=jsefler-f22-candlepin.usersys.redhat.com:8443/candlepin --insecure Registering to: jsefler-f22-candlepin.usersys.redhat.com:8443/candlepin The system has been registered with ID: f35a619b-bee5-4a9f-b41b-8606d858fc0b [root@jmolet-vm1 ~]# subscription-manager redeem --email=tester [root@jmolet-vm1 ~]# comment 9 is in reference to build: # rpm -qa | egrep "python-rhsm|subscription-manager" subscription-manager-1.15.9-10.el7.x86_64 python-rhsm-1.15.4-5.el7.x86_64 Let's handle the failure case from comment 5 and comment 9 against a standalone candlepin server separately under candlepin bug 1263474. Marking VERIFIED for use case in comment 1, other issues will be handled in separate bug. 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-2122.html |
Description of problem: After registering a system and making a call to redeem, I expect the server response to be fed back to the user. It's not happening. Version-Release number of selected component (if applicable): [root@jsefler-os7 ~]# subscription-manager version server type: Red Hat Subscription Management subscription management server: 0.9.51.1-1 subscription management rules: 5.15 subscription-manager: 1.15.9-2.el7 python-rhsm: 1.15.4-2.el7 How reproducible: Steps to Reproduce: [root@jsefler-os7 ~]# echo '{"dmi.system.serial_number":"0000000"}' > /etc/rhsm/facts/automation_override.facts [root@jsefler-os7 ~]# subscription-manager register --serverurl=subscription.rhn.stage.redhat.com --username=qa Registering to: subscription.rhn.stage.redhat.com/subscription:443 Password: The system has been registered with ID: 42199c9d-c93a-417f-883a-9b21c6db23aa [root@jsefler-os7 ~]# subscription-manager redeem --email=qa [root@jsefler-os7 ~]# Actual results: no feedback Expected results: The system is unable to redeem the requested subscription: 0000000 Additional info: [root@jsefler-os7 ~]# tail -f /var/log/rhsm/rhsm.log 2015-07-30 18:42:29,354 [DEBUG] subscription-manager:15948 @connection.py:500 - Making request: POST /subscription/subscriptions?consumer_uuid=42199c9d-c93a-417f-883a-9b21c6db23aa&email=qa&email_locale=en-us 2015-07-30 18:42:29,888 [DEBUG] subscription-manager:15948 @connection.py:528 - Response: status=202 ^^ Notice that the POST appears successful. Now let's use curl to see what was actually returned... [root@jsefler-os7 ~]# curl -k -u qa:redhatqa --stderr /dev/null --request POST "https://subscription.rhn.stage.redhat.com:443/subscription/subscriptions?consumer_uuid=42199c9d-c93a-417f-883a-9b21c6db23aa&email=qa@redhat.com&email_locale=en-us" | python -m json/tool { "displayMessage": "The system is unable to redeem the requested subscription: 0000000", "requestUuid": "d4aeb62e-af06-4073-ad4d-e97fa4b46380" } ^^ Looks like the server is returning the correct displayMessage, but it is not being reported to the user.