私のキーストーン ミドルウェアでは、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)
何が欠けているのですか?