Inactive oauth extension creates dependency on httplib2

Bug #1223524 reported by Adam Young
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Identity (keystone)
Fix Released
Undecided
Adam Young

Bug Description

The dependency resoution in Keystone requires that an object be explicitly instantiated prior to use. Extensions fall into this category. They are referenced in keystone/serivce.py such as:

from keystone.contrib import endpoint_filter
from keystone.contrib import oauth1

These components pull in other dependencies. In the case of oauth, it is httplib2.

We can extend this method

https://github.com/openstack/keystone/blob/master/keystone/common/wsgi.py#L536-L563

here

https://github.com/openstack/keystone/blob/master/keystone/contrib/oauth1/routers.py#L21

And activate the Manager upon creating of the routes, which indicates they will actually be used in the deployment.

Adam Young (ayoung)
Changed in keystone:
assignee: nobody → Adam Young (ayoung)
Adam Young (ayoung)
summary: - Extensions must be explicitly referenced even when inactive
+ Inactive oauth extension creates dependency on httplib2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to keystone (master)

Fix proposed to branch: master
Review: https://review.openstack.org/46334

Changed in keystone:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/46797

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to keystone (master)

Reviewed: https://review.openstack.org/46363
Committed: http://github.com/openstack/keystone/commit/5e04343ff5b5f6f7ac896492ebdb4f992d07be47
Submitter: Jenkins
Branch: master

commit 5e04343ff5b5f6f7ac896492ebdb4f992d07be47
Author: Brant Knudson <email address hidden>
Date: Thu Sep 12 16:07:13 2013 -0500

    Optional dependency injection

    This adds support for optional dependencies using Keystone
    dependency injection.

    A new decorator for classes is provided.

     @dependency.optional('optional_api_1', 'optional_api_2')

    If there's a provider for the dependency, the attribute
    will be set to the provider instance, otherwise the attribute
    will be set to None.

    This can be used in combination with required dependencies.

    Related-bug: #1223524
    Change-Id: I2b987f10a7bc85efab136ae9e84606e666494246

Changed in keystone:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to keystone (master)

Reviewed: https://review.openstack.org/46797
Committed: http://github.com/openstack/keystone/commit/acd70e5641a81f9e0333dfc495ac38cadaa450df
Submitter: Jenkins
Branch: master

commit acd70e5641a81f9e0333dfc495ac38cadaa450df
Author: Adam Young <email address hidden>
Date: Mon Sep 16 15:20:39 2013 -0400

    oauth using optional dependencies

    Bug 1223524

    Change-Id: Ic0d53fd1d5b3b7a587d33dc230e9ff200782ad4f

Thierry Carrez (ttx)
Changed in keystone:
milestone: none → havana-rc1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in keystone:
milestone: havana-rc1 → 2013.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.