Bug 1097875

Summary: /katello/api/status neglects to report all of the fields that /candlepin/status reports
Product: Red Hat Satellite Reporter: John Sefler <jsefler>
Component: Subscription ManagementAssignee: Christine Fouant <cfouant>
Status: CLOSED CURRENTRELEASE QA Contact: Og Maciel <omaciel>
Severity: low Docs Contact:
Priority: unspecified    
Version: NightlyCC: bbuckingham, bkearney, dgoodwin, jmontleo, omaciel
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/6129
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-11 12:27:57 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:

Description John Sefler 2014-05-14 18:46:56 UTC
Description of problem:
When calling the API /status against a katello server versus a plain candlepin server, I noticed that katello hides some data.  I'm not 100% sure if the missing fields are needed by subscription-manager clients anymore.  Nonetheless, the katello API for /status could probably open this up a little.



Status response from a Katello Server.....
[root@jsefler-5 ~]# curl --stderr /dev/null --insecure  --request GET https://katellosach.usersys.redhat.com:443/katello/api/status | python -msimplejson/tool
{
    "release": "Katello", 
    "result": true, 
    "standalone": true, 
    "timeUTC": "2014-05-14T04:17:44Z", 
    "version": "1.4.15-1.el6"
}


Status call from a Candlepin Server....
[root@jsefler-5 ~]# curl --stderr /dev/null --insecure  --request GET  https://jsefler-f14-candlepin.usersys.redhat.com:8443/candlepin/status | python -msimplejson/tool
{
    "managerCapabilities": [
        "cores", 
        "ram", 
        "instance_multiplier", 
        "derived_product", 
        "cert_v3", 
        "guest_limit", 
        "vcpu"
    ], 
    "release": "1", 
    "result": true, 
    "rulesSource": "DATABASE", 
    "rulesVersion": "5.8", 
    "standalone": false, 
    "timeUTC": "2014-05-14T16:22:41.543+0000", 
    "version": "0.9.10"
}

 

Notice that the following fields are missing from Katello:
  managerCapabilities
  rulesSource
  rulesVersion

Comment 1 RHEL Program Management 2014-05-14 18:54:48 UTC
Since this issue was entered in Red Hat Bugzilla, the release flag has been
set to ? to ensure that it is properly evaluated for this release.

Comment 3 Bryan Kearney 2014-05-15 15:20:01 UTC
Devan, is this going to be an issue?

Comment 4 Devan Goodwin 2014-05-15 18:59:51 UTC
I don't think the differences will break anything, but it'd be an extremely good idea to sync up and expose all the information.

Comment 5 Bryan Kearney 2014-07-22 16:02:11 UTC
Moving to POST since upstream bug http://projects.theforeman.org/issues/6129 has been closed
-------------
Christine Fouant
Applied in changeset commit:katello|f0cee486bfa663f3a093a95608c8c49e8cde4c7f.

Comment 7 Og Maciel 2014-08-12 18:16:07 UTC
FailedQE (tested with Thom Mckay)

Build:
------
* Satellite-6.0.4-RHEL-6-20140806.0

Packages:
---------

* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.9.19-1.el6_5.noarch
* candlepin-scl-1-5.el6_4.noarch
* candlepin-scl-quartz-2.1.5-5.el6_4.noarch
* candlepin-scl-rhino-1.7R3-1.el6_4.noarch
* candlepin-scl-runtime-1-5.el6_4.noarch
* candlepin-selinux-0.9.19-1.el6_5.noarch
* candlepin-tomcat6-0.9.19-1.el6_5.noarch
* elasticsearch-0.90.10-4.el6sat.noarch
* foreman-1.6.0.38-1.el6sat.noarch
* foreman-compute-1.6.0.38-1.el6sat.noarch
* foreman-gce-1.6.0.38-1.el6sat.noarch
* foreman-libvirt-1.6.0.38-1.el6sat.noarch
* foreman-ovirt-1.6.0.38-1.el6sat.noarch
* foreman-postgresql-1.6.0.38-1.el6sat.noarch
* foreman-proxy-1.6.0.23-1.el6sat.noarch
* foreman-selinux-1.6.0.4-1.el6sat.noarch
* foreman-vmware-1.6.0.38-1.el6sat.noarch
* katello-1.5.0-28.el6sat.noarch
* katello-ca-1.0-1.noarch
* katello-certs-tools-1.5.6-1.el6sat.noarch
* katello-installer-0.0.57-1.el6sat.noarch
* openldap-2.4.23-32.el6_4.1.x86_64
* pulp-katello-0.3-3.el6sat.noarch
* pulp-nodes-common-2.4.0-0.30.beta.el6sat.noarch
* pulp-nodes-parent-2.4.0-0.30.beta.el6sat.noarch
* pulp-puppet-plugins-2.4.0-0.30.beta.el6sat.noarch
* pulp-puppet-tools-2.4.0-0.30.beta.el6sat.noarch
* pulp-rpm-plugins-2.4.0-0.30.beta.el6sat.noarch
* pulp-selinux-2.4.0-0.30.beta.el6sat.noarch
* pulp-server-2.4.0-0.30.beta.el6sat.noarch
* python-ldap-2.3.10-1.el6.x86_64
* ruby193-rubygem-net-ldap-0.3.1-3.el6sat.noarch
* ruby193-rubygem-runcible-1.1.0-2.el6sat.noarch
* rubygem-hammer_cli-0.1.1-11.el6sat.noarch
* rubygem-hammer_cli_foreman-0.1.1-15.el6sat.noarch
* rubygem-hammer_cli_foreman_tasks-0.0.3-3.el6sat.noarch
* rubygem-hammer_cli_katello-0.0.4-10.el6sat.noarch

Comment 8 Og Maciel 2014-08-12 18:19:08 UTC
Ok, disregard my previous comment. This needs to be tested.

Comment 9 Og Maciel 2014-08-12 18:24:16 UTC
# curl --stderr /dev/null --insecure  --request GET https://cloud-qe-8.idm.lab.bos.redhat.com:443/katello/api/status | python -m simplejson/tool
{
    "release": "Katello",
    "timeUTC": "2014-08-12T18:21:56Z",
    "version": "1.5.0-28.el6sat"
}

Comment 10 Og Maciel 2014-08-12 18:57:25 UTC
ok, so it turns out that the way this BZ was resolved was to include the requested information as part of /rhsm/status and not /katello/api/status:

# curl --stderr /dev/null --insecure  --request GET https://cloud-qe-8.idm.lab.bos.redhat.com:443/rhsm/status | python -m simplejson/tool
{
    "managerCapabilities": [
        "cores",
        "ram",
        "instance_multiplier",
        "derived_product",
        "cert_v3",
        "guest_limit",
        "vcpu"
    ],
    "release": "Katello",
    "result": true,
    "rulesSource": "DATABASE",
    "rulesVersion": "5.11",
    "standalone": true,
    "timeUTC": "2014-08-12T18:43:06Z",
    "version": "1.5.0-28.el6sat"
}

Comment 11 John Sefler 2014-08-14 16:04:34 UTC
(In reply to Og Maciel from comment #10)
> ok, so it turns out that the way this BZ was resolved was to include the
> requested information as part of /rhsm/status and not /katello/api/status:


I learned from thomasmckay that to solve the problem of the subscription-manager client trying to access the candlepin API via the katello api (when rhsm.conf prefix is set to /katello/api), the katello dev team has opened a new prefix /rhsm that can be used by subscription-manager clients to communicate directly with the katello's candlepin.  This is a good idea and will avoid the problems reported in comment 0 where the /katello/api was being dual purposed and was in danger of causing an issue like the one in comment 0. Therefore...

This bug can be moved to VERIFIED after asserting that when the setup rpm http://FQDN/pub/candlepin-cert-consumer-FQDN-1.0-1.noarch.rpm is installed on a subscription-manager system, the /etc/rhsm/rhsm.conf file includes a setting for [server] prefix=/rhsm

Caution...
I think it would be a good idea to re-test the ability to register to a specific katello environment because a raw candlepin server does not support environments and I fear the new /rhsm prefix design may have compromised the ability to register to a specific katello environment.

Comment 12 Og Maciel 2014-08-14 18:19:53 UTC
This is VERIFIED with the help of @jsefler:

Build:
------
* Satellite-6.0.4-RHEL-6-20140813.2

Packages:
---------
* candlepin-0.9.23-1.el7.noarch
* candlepin-common-1.0.1-1.el7.noarch
* candlepin-guice-3.0-2_redhat_1.el7.noarch
* candlepin-scl-1-5.el7.noarch
* candlepin-scl-quartz-2.1.5-6.el7.noarch
* candlepin-scl-rhino-1.7R3-3.el7.noarch
* candlepin-scl-runtime-1-5.el7.noarch
* candlepin-selinux-0.9.23-1.el7.noarch
* candlepin-tomcat-0.9.23-1.el7.noarch
* elasticsearch-0.90.10-4.el7sat.noarch
* foreman-1.6.0.40-1.el7sat.noarch
* foreman-compute-1.6.0.40-1.el7sat.noarch
* foreman-gce-1.6.0.40-1.el7sat.noarch
* foreman-libvirt-1.6.0.40-1.el7sat.noarch
* foreman-ovirt-1.6.0.40-1.el7sat.noarch
* foreman-postgresql-1.6.0.40-1.el7sat.noarch
* foreman-proxy-1.6.0.27-1.el7sat.noarch
* foreman-selinux-1.6.0.6-1.el7sat.noarch
* foreman-vmware-1.6.0.40-1.el7sat.noarch
* katello-1.5.0-28.el7sat.noarch
* katello-ca-1.0-1.noarch
* katello-certs-tools-1.5.6-1.el7sat.noarch
* katello-installer-0.0.59-1.el7sat.noarch
* openldap-2.4.39-3.el7.x86_64
* pulp-katello-0.3-3.el7sat.noarch
* pulp-nodes-common-2.4.0-0.30.beta.el7sat.noarch
* pulp-nodes-parent-2.4.0-0.30.beta.el7sat.noarch
* pulp-puppet-plugins-2.4.0-0.30.beta.el7sat.noarch
* pulp-puppet-tools-2.4.0-0.30.beta.el7sat.noarch
* pulp-rpm-plugins-2.4.0-0.30.beta.el7sat.noarch
* pulp-selinux-2.4.0-0.30.beta.el7sat.noarch
* pulp-server-2.4.0-0.30.beta.el7sat.noarch
* python-ldap-2.4.6-6.el7.x86_64
* ruby193-rubygem-net-ldap-0.3.1-3.el7sat.noarch
* ruby193-rubygem-runcible-1.1.0-2.el7sat.noarch
* rubygem-hammer_cli-0.1.1-11.el7sat.noarch
* rubygem-hammer_cli_foreman-0.1.1-15.el7sat.noarch
* rubygem-hammer_cli_foreman_tasks-0.0.3-3.el7sat.noarch
* rubygem-hammer_cli_katello-0.0.4-12.el7sat.noarch

Comment 13 John Sefler 2014-08-14 18:29:04 UTC
Collaborative verification between jsefler and omaciel revealed...

1. the setup rpm does indeed lay down a rhsm.conf with prefix now set to /rhsm...

[root@jsefler-6 ~]# head -15 /etc/rhsm/rhsm.conf
# Red Hat Subscription Manager Configuration File:

# Unified Entitlement Platform Configuration
[server]
# Server hostname:
hostname=qeblade35.rhq.lab.eng.bos.redhat.com

# Server prefix:
prefix=/rhsm

# Server port:
port=443

# Set to 1 to disable certificate validation:
insecure=0
[root@jsefler-6 ~]# 

VERIFIED


2. Orgs containing multiple environments are visible and registerable by a subscription-manager client...
[root@jsefler-6 ~]# rpm -q subscription-manager
subscription-manager-1.12.10-1.el6.x86_64
[root@jsefler-6 ~]# subscription-manager environments --username=admin --org=Oregon
Password: 
+-------------------------------------------+
          Environments
+-------------------------------------------+
Name:        DEV/Foo
Description: 

Name:        Library/Foo
Description: 

Name:        Library
Description: 

[root@jsefler-6 ~]# subscription-manager register --username=admin --org=Oregon
Password: 
Environment: Library/Foo
The system has been registered with ID: 5ac8ee6d-8240-428f-b853-bc52d37de3b8 
[root@jsefler-6 ~]# subscription-manager identity
system identity: 5ac8ee6d-8240-428f-b853-bc52d37de3b8
name: jsefler-6.usersys.redhat.com
org name: Oregon
org ID: Oregon
environment name: Library/Foo
[root@jsefler-6 ~]# 

VERIFIED


Additional Note:
The environments *must* contain a content view in order for the subscription-manager client to see and register to the environment.  Without a content view added to the environment, the environment is invisible to the subscription-manager client.

Comment 14 Bryan Kearney 2014-09-11 12:27:57 UTC
This was delivered with Satellite 6.0 which was released on 10 September 2014.