Fabian Deutsch has uploaded a new change for review.

Change subject: Be smarter about failed RHNSM/Satellite registrations
......................................................................

Be smarter about failed RHNSM/Satellite registrations

Check subscription-manager when the page is loaded so we can keep
the selection on the radio widgets correct (instead of clearing
rhntype from the model), but catch unusual exit codes to reflect
whether it's not registered at all or not subscribed.

Also, auto attaching works now, so try to auto-attach in the
model.

Since subscription-manager doesn't return meaningful exit codes
(just 1 for all possible errors I've seen), check the output from
the exception.

Change-Id: Ied4c2774ab4c36b1d612fbf765f87e315adf73ac
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1280215
Signed-off-by: Ryan Barry <[email protected]>
---
M src/ovirt/node/setup/rhn/rhn_page.py
1 file changed, 25 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/62/49262/1

diff --git a/src/ovirt/node/setup/rhn/rhn_page.py 
b/src/ovirt/node/setup/rhn/rhn_page.py
index 355cf81..155d0cd 100755
--- a/src/ovirt/node/setup/rhn/rhn_page.py
+++ b/src/ovirt/node/setup/rhn/rhn_page.py
@@ -20,6 +20,7 @@
 # also available at http://www.gnu.org/copyleft/gpl.html.
 from ovirt.node import plugins, valid, ui, utils
 from ovirt.node.plugins import Changeset
+from ovirt.node.utils import process
 from ovirt.node.utils.network import NodeNetwork
 import rhn_model
 
@@ -105,13 +106,7 @@
                            "to use Red Hat Enterprise Linux with virtual " +
                            "guests subscriptions for your guests.")
             else:
-                rhntype = cfg["rhntype"]
-                if "satellite" in rhntype:
-                    rhntype = rhntype.title()
-                else:
-                    rhntype = rhntype.upper()
-                rhn_msg = "RHN Registration\n\nRegistration Status: %s" \
-                          % rhntype
+                rhn_msg = self._get_status(cfg)
 
             ws = [ui.Header("header[0]", rhn_msg),
                   ui.Entry("rhn.username", "Login:"),
@@ -245,6 +240,29 @@
                 progress_dialog.run()
         return self.ui_content()
 
+    def _get_status(self, cfg):
+        if "satellite" in cfg["rhntype"]:
+            rhntype = cfg["rhntype"].title()
+        else:
+            rhntype = cfg["rhntype"].upper()
+
+        try:
+            cmd = ["subscription-manager", "status"]
+            process.check_call(cmd)
+            rhn_msg = "RHNSM Registration\n\nRegistration Status: %s" \
+                      % rhntype
+
+        except process.CalledProcessError as e:
+            if "Status: Unknown" in e.output:
+                # Not registered or registration failed
+                pass
+            else:
+                rhn_msg = ("Registered to %s, but there are no "
+                           "subscriptions attached or it is otherwise"
+                           " invalid" % rhntype)
+
+        return rhn_msg
+
 
 class ProxyDialog(ui.Dialog):
     """A dialog to input proxy information


-- 
To view, visit https://gerrit.ovirt.org/49262
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ied4c2774ab4c36b1d612fbf765f87e315adf73ac
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-node
Gerrit-Branch: ovirt-3.6
Gerrit-Owner: Fabian Deutsch <[email protected]>
Gerrit-Reviewer: Fabian Deutsch <[email protected]>
_______________________________________________
node-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/node-patches

Reply via email to