Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 751033 - adding subscriptions to activation key - exception thrown
Summary: adding subscriptions to activation key - exception thrown
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: katello-agent
Version: 6.0.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: Unspecified
Assignee: Lukas Zapletal
QA Contact: Katello QA List
URL:
Whiteboard:
Depends On:
Blocks: katello-blockers
TreeView+ depends on / blocked
 
Reported: 2011-11-03 10:04 UTC by Garik Khachikyan
Modified: 2019-09-26 13:23 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-08-22 18:04:20 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Katello production.log (21.93 KB, text/x-log)
2011-11-04 10:26 UTC, Garik Khachikyan
no flags Details

Description Garik Khachikyan 2011-11-03 10:04:46 UTC
Description of problem:
On recent version of Katello it is not possible to add subscription to the activation key.
There is thrown an error:
---
undefined method `cp_oauth_header' for nil:NilClass


Version-Release number of selected component (if applicable):
katello-cli-0.1.10-1.git.1062.80beb3d.el6.noarch
katello-0.1.97-1.git.126.6dec5c9.el6.x86_64

How reproducible:
always

Steps to Reproduce:
Under katello shell apply following:
org create --name org1
provider create --type custom --name provider1 --org org1
product create --org org1 --name product1 --provider provider1
repo create --org org1 --product product1 --url http://repos.fedorapeople.org/repos/pulp/pulp/6Server/x86_64/ --name repo1
provider synchronize --name provider1 --org org1
environment create --name dev --prior Locker --org org1
product promote --name product1 --environment dev --org org1
org subscriptions --name org1 (pick the poolid)
activation_key create --org org1 --environment dev --name ak1
activation_key update --add_subscription <that_poolid> --org org1 --name ak1
  
Actual results:
error-244: undefined method `cp_oauth_header' for nil:NilClass

Expected results:
No error, activation key adds the subscription specified

Additional info:

Comment 1 Lukas Zapletal 2011-11-03 10:36:03 UTC
Taking

Comment 2 Lukas Zapletal 2011-11-03 11:04:32 UTC
I am not able to reproduce with current master. Subscription is added there:

katello> activation_key info --name ak1 --org org1
--------------------------------------------------------------------------------
                              Activation Key Info
--------------------------------------------------------------------------------

Id:                 1
Name:               ak1
Description:
    None
Environment Id:     3
System Template Id: None
Pools:
    [ ff80808133690ec201336913a9e30006 ]

Here is a log of the call which failed for you.

Started POST "/api/activation_keys/1/pools" for 127.0.0.1 at Thu Nov 03 11:59:33 +0100 2011
  Processing by Api::ActivationKeysController#add_pool as JSON
  Parameters: {"poolid"=>"ff80808133690ec201336913a9e30006", "id"=>"1"}
Setting locale: en
Warden is authenticating admin against database
Setting current user thread-local variable to admin
Resource GET request: /candlepin/pools/ff80808133690ec201336913a9e30006
Headers: {"accept":"application/json","content-type":"application/json","cp-user":"admin"}
Body: {}
Processing response: 200
{"id":"ff80808133690ec201336913a9e30006","attributes":[],"owner":{"href":"/owners/org1","id":"ff80808133690ec20133691385ba0003","key":"org1","displayName":"org1"},"providedProducts":[],"startDate":"2011-11-03T00:00:00.000+0000","endDate":"2041-10-26T00:00:00.000+0000","productName":"product1","quantity":-1,"contractNumber":"","accountNumber":"","productId":"1320317855903","subscriptionId":"ff80808133690ec201336913a8fb0005","consumed":0,"sourceEntitlement":null,"href":"/pools/ff80808133690ec201336913a9e30006","activeSubscription":true,"restrictedToUsername":null,"productAttributes":[],"updated":"2011-11-03T10:57:36.227+0000","created":"2011-11-03T10:57:36.227+0000"}
Authorizing admin for api/activation_keys/add_pool
Setting current user thread-local variable to nil
Completed 200 OK in 929ms (Views: 6.7ms | ActiveRecord: 68.1ms)

WFM, please provide full log or reproducer box and reopen then.

Comment 3 Lukas Zapletal 2011-11-03 12:59:26 UTC
Working gh -- 8c20cbb6d679d1eb93b2800609f03cfe4440d944

Comment 4 Garik Khachikyan 2011-11-04 10:25:40 UTC
# REOPEN

I have to reopen the issue (as it still fails for me):

logs would be attached below.

Packages the checks were performed:
candlepin-0.4.25-1.el6.noarch
pulp-0.0.237-5.el6.noarch
katello-0.1.98-1.git.13.5a8e341.el6.x86_64
katello-cli-0.1.10-1.git.1114.377e093.el6.noarch

Comment 5 Garik Khachikyan 2011-11-04 10:26:35 UTC
Created attachment 531742 [details]
Katello production.log

Katello is built right from git master.

Comment 6 Garik Khachikyan 2011-11-09 11:12:13 UTC
checked the scenario in comment#0 - the same still exists on recent/latest katello.
Version: katello-0.1.99-1.git.89.bc81fa8.el6.x86_64

Comment 7 Lukas Zapletal 2012-01-02 11:38:34 UTC
After three hours of debugging I found ApiController.require_user method is not getting called. After more debugging it is working again without any change. Very strange.

Comment 8 Lukas Zapletal 2012-01-02 12:09:24 UTC
So my next finding is - it works without any problem when in development mode, in the production mode I see the same error. Cool...

Comment 9 Lukas Zapletal 2012-01-02 12:27:09 UTC
More details:

katello> activation_key update --org org1 --name ak1 --add_subscription ff808081349e3e6501349e4d9f15000b
unauthenticated to call a backend engine

I have added

    logger.info "REQUIRE USER"

to the ApiController.require_user method. As we can see it is NOT called for the last POST:

Started GET "/katello///api/organizations/org1" for 127.0.0.1 at Mon Jan 02 13:25:50 +0100 2012
  Processing by Api::OrganizationsController#show as JSON
  Parameters: {"id"=>"org1"}
REQUIRE USER
Completed 200 OK in 230ms (Views: 4.7ms | ActiveRecord: 11.0ms)


Started GET "/katello///api/organizations/org1/activation_keys/?name=ak1" for 127.0.0.1 at Mon Jan 02 13:25:50 +0100 2012
  Processing by Api::ActivationKeysController#index as JSON
  Parameters: {"name"=>"ak1", "organization_id"=>"org1"}
REQUIRE USER
Completed 200 OK in 44ms (Views: 21.6ms | ActiveRecord: 8.8ms)


Started PUT "/katello///api/activation_keys/1/" for 127.0.0.1 at Mon Jan 02 13:25:50 +0100 2012
  Processing by Api::ActivationKeysController#update as JSON
  Parameters: {"activation_key"=>{}, "id"=>"1"}
REQUIRE USER
Completed 200 OK in 47ms (Views: 3.5ms | ActiveRecord: 8.6ms)


Started POST "/katello///api/activation_keys/1/pools" for 127.0.0.1 at Mon Jan 02 13:25:51 +0100 2012
  Processing by Api::ActivationKeysController#add_pool as JSON
  Parameters: {"poolid"=>"ff808081349e3e6501349e4d9f15000b", "id"=>"1"}
Errors::UserNotSet: unauthenticated to call a backend engine
/usr/share/katello/app/models/user.rb:332:in `cp_oauth_header'
/usr/share/katello/lib/resources/candlepin.rb:62:in `default_headers'
/usr/share/katello/lib/resources/candlepin.rb:295:in `get'
/usr/share/katello/app/models/glue/candlepin/pool.rb:25:in `included'
/usr/share/katello/app/models/lazy_accessor.rb:134:in `instance_eval'
/usr/share/katello/app/models/lazy_accessor.rb:134:in `run_initializer'
/usr/share/katello/app/models/lazy_accessor.rb:75:in `owner'
/usr/share/katello/app/models/glue/candlepin/pool.rb:74:in `organization'
/usr/share/katello/app/models/glue/candlepin/pool.rb:40:in `find_by_organization_and_id'
/usr/share/katello/app/controllers/api/activation_keys_controller.rb:103:in `find_pool'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/callbacks.rb:437:in `_run__1939669248__process_action__508642999__callbacks'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/callbacks.rb:410:in `send'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/callbacks.rb:410:in `_run_process_action_callbacks'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/callbacks.rb:94:in `send'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/callbacks.rb:94:in `run_callbacks'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/abstract_controller/callbacks.rb:17:in `process_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_controller/metal/rescue.rb:17:in `process_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/notifications.rb:52:in `instrument'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/notifications.rb:52:in `instrument'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/abstract_controller/base.rb:119:in `process'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/abstract_controller/rendering.rb:41:in `process'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_controller/metal.rb:138:in `dispatch'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_controller/metal.rb:178:in `action'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/routing/route_set.rb:62:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/routing/route_set.rb:62:in `dispatch'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/routing/route_set.rb:27:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-mount-0.7.1/lib/rack/mount/route_set.rb:150:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-mount-0.7.1/lib/rack/mount/code_generation.rb:93:in `recognize'
/usr/lib/ruby/gems/1.8/gems/rack-mount-0.7.1/lib/rack/mount/code_generation.rb:82:in `optimized_each'
/usr/lib/ruby/gems/1.8/gems/rack-mount-0.7.1/lib/rack/mount/code_generation.rb:92:in `recognize'
/usr/lib/ruby/gems/1.8/gems/rack-mount-0.7.1/lib/rack/mount/route_set.rb:141:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/routing/route_set.rb:493:in `call'
/usr/lib/ruby/gems/1.8/gems/warden-1.0.3/lib/warden/manager.rb:35:in `call'
/usr/lib/ruby/gems/1.8/gems/warden-1.0.3/lib/warden/manager.rb:34:in `catch'
/usr/lib/ruby/gems/1.8/gems/warden-1.0.3/lib/warden/manager.rb:34:in `call'
/usr/lib/ruby/gems/1.8/gems/sass-3.1.7/lib/sass/../sass/plugin/rack.rb:54:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/head.rb:14:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/methodoverride.rb:24:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/flash.rb:182:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/session/abstract_store.rb:149:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/cookies.rb:302:in `call'
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.10/lib/active_record/query_cache.rb:32:in `call'
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/query_cache.rb:28:in `cache'
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.10/lib/active_record/query_cache.rb:12:in `cache'
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.10/lib/active_record/query_cache.rb:31:in `call'
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/connection_pool.rb:354:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/callbacks.rb:46:in `call'
/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/callbacks.rb:416:in `_run_call_callbacks'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/callbacks.rb:44:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/sendfile.rb:102:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
/usr/lib/ruby/gems/1.8/gems/railties-3.0.10/lib/rails/rack/logger.rb:13:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/runtime.rb:17:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/lock.rb:34:in `call'
/usr/lib/ruby/gems/1.8/gems/railties-3.0.10/lib/rails/application.rb:168:in `call'
/usr/lib/ruby/gems/1.8/gems/railties-3.0.10/lib/rails/application.rb:77:in `send'
/usr/lib/ruby/gems/1.8/gems/railties-3.0.10/lib/rails/application.rb:77:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/urlmap.rb:52:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/urlmap.rb:46:in `each'
/usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/urlmap.rb:46:in `call'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:84:in `pre_process'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:82:in `catch'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:82:in `pre_process'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:57:in `process'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:42:in `receive_data'
/usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'
/usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/backends/base.rb:61:in `start'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/server.rb:159:in `start'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/controllers/controller.rb:86:in `start'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/runner.rb:185:in `send'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/runner.rb:185:in `run_command'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/runner.rb:151:in `run!'
/usr/lib/ruby/gems/1.8/gems/thin-1.2.11/bin/thin:6
/usr/bin/thin:19:in `load'
/usr/bin/thin:19
Completed 403 Forbidden in 9ms (Views: 0.6ms | ActiveRecord: 2.3ms)

Comment 10 Lukas Zapletal 2012-01-02 13:38:00 UTC
commit f42b46315ace7b96551ec20fd640824dfedb78d6
Refs: <origin/HEAD>, <origin/master>, katello-0.1.156-1-2-gf42b463
Author:     Lukas Zapletal <lzap+git>
AuthorDate: Mon Jan 2 14:08:23 2012 +0100
Commit:     Lukas Zapletal <lzap+git>
CommitDate: Mon Jan 2 14:08:23 2012 +0100

Comment 11 Kedar Bidarkar 2012-01-06 10:54:44 UTC
[root@szasxd pulp]# katello --username admin --password admin activation_key update --add_subscription 8ac149d334a786380134abbfa6a70096 --org ACME_Corporation --name 12345007
Successfully updated activation key [ 12345007 ]


[root@sxazsd pulp]# katello --username admin --password admin activation_key list --org ACME_Corporation
--------------------------------------------------------------------------------
                              Activation Key List

 Id   Name       Description   Environment Id   System Template Id  
--------------------------------------------------------------------------------
 1    12345007   None          4                None                

 
[root@xsdxs pulp]# katello --username admin --password admin activation_key info --name 12345007 --org ACME_Corporation
--------------------------------------------------------------------------------
                              Activation Key Info
--------------------------------------------------------------------------------

Id:                 1
Name:               12345007
Description:
    None
Environment Id:     4
System Template Id: None
Pools:
    [ 8ac149d334a786380134abbfa6a70096 ]


Note You need to log in before you can comment on or make changes to this bug.