Bug 1096068

Summary: registering a client without passing env and org raises undefined method error
Product: Red Hat Satellite Reporter: Sachin Ghai <sghai>
Component: RegistrationAssignee: Eric Helms <ehelms>
Status: CLOSED CURRENTRELEASE QA Contact: Sachin Ghai <sghai>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.0.3CC: bbuckingham, cwelton, jmontleo, mmccune, sghai, tkolhar
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/6082
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-02 14:06:54 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:
Attachments:
Description Flags
logs from server (var/log/foreman/production.log) none

Description Sachin Ghai 2014-05-09 07:58:44 UTC
Created attachment 893875 [details]
logs from server (var/log/foreman/production.log)

Description of problem:
was trying to register a client via subscription-manager and got following error:


[root@scroponok yum.repos.d]# subscription-manager register --username admin --password changeme
undefined method `default_environment' for nil:NilClass

Version-Release number of selected component (if applicable):
Satellite 6 Beta Snap 4

Satellite-6.0.3-RHEL-6-20140508.1

on client:
==========
subscription-manager-1.9.11-1.el6.x86_64
katello-agent-1.5.3-1.el6sat.noarch

onserver:
* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.9.7-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.7-1.el6_5.noarch
* candlepin-tomcat6-0.9.7-1.el6_5.noarch
* elasticsearch-0.90.10-4.el6sat.noarch
* foreman-1.6.0.7-1.el6sat.noarch
* foreman-compute-1.6.0.7-1.el6sat.noarch
* foreman-gce-1.6.0.7-1.el6sat.noarch
* foreman-libvirt-1.6.0.7-1.el6sat.noarch
* foreman-ovirt-1.6.0.7-1.el6sat.noarch
* foreman-postgresql-1.6.0.7-1.el6sat.noarch
* foreman-proxy-1.6.0.4-1.el6sat.noarch
* foreman-release-1.6.0-0.develop.201405061106gitfdc476d.el6.noarch
* foreman-selinux-1.5.0-0.develop.el6sat.noarch
* foreman-vmware-1.6.0.7-1.el6sat.noarch
* katello-1.5.0-22.el6sat.noarch
* katello-ca-1.0-1.noarch
* katello-certs-tools-1.5.5-1.el6sat.noarch
* katello-installer-0.0.37-1.el6sat.noarch
* openldap-2.4.23-32.el6_4.1.x86_64
* pulp-katello-plugins-0.2-1.el6sat.noarch
* pulp-nodes-common-2.3.1-0.4.beta.el6sat.noarch
* pulp-nodes-parent-2.3.1-0.4.beta.el6sat.noarch
* pulp-puppet-plugins-2.3.1-0.4.beta.el6sat.noarch
* pulp-rpm-plugins-2.3.1-0.4.beta.el6sat.noarch
* pulp-selinux-2.3.1-0.4.beta.el6sat.noarch
* pulp-server-2.3.1-0.4.beta.el6sat.noarch
* python-ldap-2.3.10-1.el6.x86_64
* ruby193-rubygem-ldap_fluff-0.2.2-2.el6sat.noarch
* ruby193-rubygem-net-ldap-0.3.1-3.el6sat.noarch
* ruby193-rubygem-runcible-1.0.8-1.el6sat.noarch
* rubygem-hammer_cli-0.1.0-12.el6sat.noarch
* rubygem-hammer_cli_foreman-0.1.0-12.el6sat.noarch
* rubygem-hammer_cli_foreman_tasks-0.0.2-5.el6sat.noarch
* rubygem-hammer_cli_katello-0.0.3-22.el6sat.noarch

How reproducible:
always 

Steps to Reproduce:
1. install following package on client.. pull it from server
katello-ca-consumer-dhcp201-122.englab.pnq.redhat.com-1.0-1.noarch
2. install katello agent
3. register client with subscription-manager


Actual results:
undefined method `default_environment' for nil:NilClass

Expected results:
user should get proper error message if org and env is required for registeration

Additional info:

please see the production.log in attachment

rhsm.log:
====
2014-05-09 13:18:53,466 [ERROR]  @managercli.py:1059 - undefined method `default_environment' for nil:NilClass
Traceback (most recent call last):
  File "/usr/share/rhsm/subscription_manager/managercli.py", line 1054, in _do_command
    installed_products=self.installed_mgr.format_for_server())
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 722, in registerConsumer
    return self.conn.request_post(url, params)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 544, in request_post
    return self._request("POST", method, params)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 469, in _request
    self.validateResponse(result, request_type, handler)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 511, in validateResponse
    raise RestlibException(response['status'], error_msg)
RestlibException: undefined method `default_environment' for nil:NilClass

Comment 1 RHEL Program Management 2014-05-09 08:25:26 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 Brad Buckingham 2014-05-27 15:41:07 UTC
Are you still seeing this issue? 
If so, can you provide details on the exact subscription-manager command-line being used?  (I am able to register clients; however, perhaps there is a difference in scenario).

E.g. 
[root@testhost1 ~]# subscription-manager register --username admin --password mypassword --org ACME_Corporation --environment Library
The system has been registered with ID: 08a81b20-9871-4fec-af8d-8d32f17c69bd 
[root@testhost1 ~]# subscription-manager unregister
System has been unregistered.
[root@testhost1 ~]# subscription-manager register --username admin --password mypassword --org ACME_Corporation --environment Library/os_view
The system has been registered with ID: 3f64692e-c964-4269-8d3c-c7b9a6891759

Comment 4 Sachin Ghai 2014-05-28 05:50:49 UTC
Yes, it is still reproducible. 

- Client is of rhel6.5 server
- Installed package version: subscription-manager-1.9.11-1.el6.x86_64

And scenario is: execute subscription-manager cmd without --org and --env options.

[root@scroponok ~]# subscription-manager register --username admin --password changeme --force
undefined method `organizations' for nil:NilClass


when I pass --org and --env options, then cmd executes successfully:

[root@scroponok ~]# subscription-manager register --username admin --password changeme --org ACME_Corporation --env Library --force
The system has been registered with ID: f552c4d4-53d7-4f63-ab01-4f3c7c453b7

Comment 5 Eric Helms 2014-06-05 18:49:52 UTC
Created redmine issue http://projects.theforeman.org/issues/6082 from this bug

Comment 6 Mike McCune 2014-06-06 03:41:28 UTC
*** Bug 1099992 has been marked as a duplicate of this bug. ***

Comment 7 Mike McCune 2014-06-06 21:18:19 UTC
*** Bug 1101417 has been marked as a duplicate of this bug. ***

Comment 8 Bryan Kearney 2014-06-10 10:59:12 UTC
Moving to POST since upstream bug http://projects.theforeman.org/issues/6082 has been closed

Comment 11 Sachin Ghai 2014-06-17 07:07:26 UTC
Verified with sat6 beta snap9 compose2

without passing --org and --env, I can register the client with rhsm. It takes ACME_Corporation as default org and Library as default env.

[root@scroponok ~]# subscription-manager register --username admin --password changeme
The system has been registered with ID: b87c3004-91b5-41ee-9956-4a0c070b9364 
[root@scroponok ~]# 


[root@vodka ~]# subscription-manager register --username admin --password changeme
The system has been registered with ID: 16a52918-ce51-4729-a2dc-acf412458868 
[root@vodka ~]#

Comment 12 Bryan Kearney 2014-07-02 14:06:54 UTC
This was delivered with 6.0.3, which is the Satellite 6 Beta.