>From Douglas Schilling Landgraf <[email protected]>: Douglas Schilling Landgraf has uploaded a new change for review.
Change subject: Satellite 6: Fixed registration process for Red Hat Satellite 6.2 ...................................................................... Satellite 6: Fixed registration process for Red Hat Satellite 6.2 This fix handles the katello-server-ca.crt distributed by Red Hat Satellite 6.2 or higher at http://<FQDN>/pub directory. It also added some requirements enforced by subscription-manager to allow a system to be registered at Satellite 6 (environment and organization). Change-Id: Id133817a3d511c78dc5ed6b6975b6066b0f7b438 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1339883 Signed-off-by: Marcelo Moreira de Mello <[email protected]> (cherry picked from commit 0189cbb86b171440142711d78770f41c349db590) --- M src/ovirt/node/setup/rhn/rhn_model.py M src/ovirt/node/setup/rhn/rhn_page.py 2 files changed, 58 insertions(+), 18 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/67/69767/1 diff --git a/src/ovirt/node/setup/rhn/rhn_model.py b/src/ovirt/node/setup/rhn/rhn_model.py index 7b0a4f9..c12b8c0 100755 --- a/src/ovirt/node/setup/rhn/rhn_model.py +++ b/src/ovirt/node/setup/rhn/rhn_model.py @@ -29,6 +29,8 @@ import requests import urlparse +DEFAULT_CA_SAT6 = 'katello-server-ca' + class RHN(NodeConfigFileSection): """Configure RHN @@ -43,12 +45,13 @@ "OVIRT_RHN_PROFILE", "OVIRT_RHN_ACTIVATIONKEY", "OVIRT_RHN_ORG", + "OVIRT_RHN_ENVIRONMENT", "OVIRT_RHN_PROXY", "OVIRT_RHN_PROXYUSER") @NodeConfigFileSection.map_and_update_defaults_decorator def update(self, rhntype, url, ca_cert, username, profile, - activationkey, org, proxy, proxyuser): + activationkey, org, environment, proxy, proxyuser): pass def retrieve(self): @@ -335,7 +338,7 @@ host, port, prefix = RHN().parse_host_uri(cfg["url"]) # Default to /rhsm for Satellite 6 - if cfg["ca_cert"].endswith(".pem") and \ + if DEFAULT_CA_SAT6 in cfg["ca_cert"] and \ cfg["rhntype"] == "satellite": prefix = "/rhsm" @@ -353,7 +356,7 @@ # Figure out what other arguments need to be set # If there's a ca certificate or it's satellite, it's sat6 - if cfg["ca_cert"] and not cfg["ca_cert"].endswith(".pem") or \ + if cfg["ca_cert"] and DEFAULT_CA_SAT6 in cfg["ca_cert"] and \ cfg["rhntype"] == "satellite": mapping["--server.prefix"] = prefix else: @@ -426,6 +429,7 @@ mapping = {"--activationkey": cfg["activationkey"], "--org": cfg["org"], + "--environment": cfg["environment"], "--username": cfg["username"], "--password": password, "--name": cfg["profile"], @@ -446,9 +450,8 @@ "/password combination", "already been taken": "This hostname is " "already registered", - "Organization": "Organization must be " - "specified with " - "Satellite 6"} + "Organization": "Organization not found " + "on Satellite 6"} for k, v in mapping.items(): if k in smreg_output: raise RuntimeError(v) @@ -507,17 +510,51 @@ self.logger.debug(cfg) rhntype = cfg["rhntype"] - cacert = cfg["ca_cert"] or "" tx = utils.Transaction("Performing entitlement registration") tx.append(RemoveConfigs()) - if rhntype == "sam" or cacert.endswith(".pem") or \ + if rhntype == "sam" or \ + (rhntype == "satellite" and DEFAULT_CA_SAT6 in cfg["ca_cert"]) or \ (system.is_min_el(7) and rhntype == "rhn"): - if rhntype == "satellite" and not cfg["org"]: - del tx[0] - tx.extend([RaiseError("Registration to Satellite 6 requires " - "an organization to be set")]) - return tx + if rhntype == "satellite": + if cfg["activationkey"]: + if not cfg["org"]: + del tx[0] + tx.extend([RaiseError( + "Registration to Satellite " + "6 with activation key requires " + "an organization to be set")]) + return tx + if cfg["environment"]: + del tx[0] + tx.extend([RaiseError( + "Registration to Satellite 6 with " + "activation key do not allow " + "environments to be specified")]) + return tx + if cfg["username"] or password: + del tx[0] + tx.extend([RaiseError( + "Registration to Satellite 6 with an " + "activation key do not require " + "credentials")]) + return tx + else: + if not cfg["org"] or not cfg["environment"]: + del tx[0] + tx.extend([RaiseError( + "Registration to Satellite 6 requires " + "an organization and environment to " + "be set")]) + return tx + + if not cfg["username"] or not password: + del tx[0] + tx.extend([RaiseError( + "Registration to Satellite 6 without " + "an activation key requires user " + "credentials")]) + return tx if cfg["proxy"]: tx.append(ConfigureSAMProxy()) diff --git a/src/ovirt/node/setup/rhn/rhn_page.py b/src/ovirt/node/setup/rhn/rhn_page.py index 74862ad..78fc96d 100755 --- a/src/ovirt/node/setup/rhn/rhn_page.py +++ b/src/ovirt/node/setup/rhn/rhn_page.py @@ -55,6 +55,7 @@ "rhn.url": cfg["url"], "rhn.ca": cfg["ca_cert"], "rhn.org": cfg["org"], + "rhn.environment": cfg["environment"], "rhn.activation_key": cfg["activationkey"], "rhn.proxyuser": cfg["proxyuser"], "rhn.proxyhost": "", @@ -63,9 +64,8 @@ "rhn.proxypassword": "", } try: - model["rhn.proxyhost"], model["rhn.proxyport"] = cfg["proxy" - ].rsplit( - ":", 1) + model["rhn.proxyhost"], \ + model["rhn.proxyport"] = cfg["proxy"].rsplit(":", 1) except: # We're passing because it can't assign multiple values, reassign # instead of passing @@ -82,6 +82,7 @@ "rhn.proxyport": valid.Port() | valid.Empty(), "rhn.proxyuser": valid.Text() | valid.Empty(), "rhn.org": valid.Text() | valid.Empty(), + "rhn.environment": valid.Text() | valid.Empty(), "rhn.activation_key": valid.Text() | valid.Empty(), } @@ -117,6 +118,7 @@ ui.Entry("rhn.url", "URL:"), ui.Entry("rhn.ca", "CA URL:"), ui.Entry("rhn.org", "Organization:"), + ui.Entry("rhn.environment", "Environment:"), ui.Entry("rhn.activation_key", "Activation Key:"), ui.Button("button.proxy", "HTTP Proxy Configuration"), ] @@ -135,6 +137,7 @@ self.widgets["rhn.url"].enabled(True) self.widgets["rhn.ca"].enabled(True) self.widgets["rhn.org"].enabled(True) + self.widgets["rhn.environment"].enabled(True) self.widgets["rhn.activation_key"].enabled(True) self.stash_pop_change("rhn.url", reuse_old=True) self.stash_pop_change("rhn.ca", reuse_old=True) @@ -163,7 +166,7 @@ rhn_keys = ["rhn.username", "rhn.password", "rhn.profilename", "rhn.type", "rhn.url", "rhn.ca", "rhn.proxyhost", "rhn.proxyport", "rhn.proxyuser", "rhn.proxypassword", - "rhn.org", "rhn.activation_key"] + "rhn.org", "rhn.environment", "rhn.activation_key"] if "button.proxy" in changes: description = ("Please enter the proxy details to use " + @@ -206,7 +209,7 @@ rhn_keys = ["rhn.type", "rhn.url", "rhn.ca", "rhn.username", "rhn.profilename", "rhn.activation_key", "rhn.org", - "rhn.proxy", "rhn.proxyuser"] + "rhn.environment", "rhn.proxy", "rhn.proxyuser"] pw = effective_model["rhn.password"] proxypassword = effective_model["rhn.proxypassword"] -- To view, visit https://gerrit.ovirt.org/69767 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id133817a3d511c78dc5ed6b6975b6066b0f7b438 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-node Gerrit-Branch: ovirt-3.6 Gerrit-Owner: Douglas Schilling Landgraf <[email protected]> Gerrit-Reviewer: Marcelo Moreira de Mello <[email protected]> _______________________________________________ node-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/node-patches
