【问题标题】:Dependency injection in a Keystone middleware (openstack)Keystone 中间件中的依赖注入 (openstack)
【发布时间】:2015-05-19 14:03:28
【问题描述】:

在我的 keystone 中间件中,我正在尝试调用 assignment_api 函数 get_project_by_name。

我正在尝试通过使用依赖注入来做到这一点,但是,我在调试日志中看到了以下错误:

AttributeError: 'ProjectsByDemand' 对象没有属性 'assignment_api'

请看下面的代码:

from keystone.openstack.common import log as logging
from keystone.common import dependency
from keystone import config
from keystone import exception
from keystone.common import cache
from keystone.common import wsgi

@dependency.requires('assignment_api')
class ProjectsByDemand(wsgi.Middleware):
  def __init__(self, app, conf):
    self.conf = conf
    self.app = app
    self.internal_l = ['admin','neutron','glance','cinder','nova']
    self.log = logging.getLogger(__name__)

   .
   .
   .

  def process_request(self, environ, start_response):
    auth = self.get_username(environ)
    if auth is not None:
      if auth[0] is not self.internal_l:
        self.log.debug('middleware-debug: Authenticating with: %s' % (auth[0]) )
        project_ref = self.assignment_api.get_project_by_name(username, "default")
        self.log.debug("middleware-debug: Project ref is: %s", project_ref)
    return self.app(environ, start_response)

知道缺少什么吗?

【问题讨论】:

    标签: python openstack middleware keystone


    【解决方案1】:

    您混合了制表符和空格,并且还弄乱了缩进,请尝试使用 python -tt 运行脚本来检查。

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 2017-08-02
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多