keystone 初始化启动流程【原创】

keystone-wsgi-admin,keystone-wsgi-public初始化和运行

keystone-wsgi-public

初始化

初始化工作主要在这个函数initialize_public_application中进行。主要步骤有:

1. 加载配置文件keystone.conf,keystone-paste.ini

2. 加载后台驱动

server.backends.load_backends

1) 配置加载cache2) 加载Managers
DRIVERS = dict(
    assignment_api=assignment.Manager(),
    catalog_api=catalog.Manager(),
    credential_api=credential.Manager(),
    credential_provider_api=credential.provider.Manager(),
    domain_config_api=resource.DomainConfigManager(),
    endpoint_policy_api=endpoint_policy.Manager(),
    federation_api=federation.Manager(),
    id_generator_api=identity.generator.Manager(),
    id_mapping_api=identity.MappingManager(),
    identity_api=identity.Manager(),
    shadow_users_api=identity.ShadowUsersManager(),
    oauth_api=oauth1.Manager(),
    policy_api=policy.Manager(),
    resource_api=resource.Manager(),
    revoke_api=revoke.Manager(),
    role_api=assignment.RoleManager(),
    token_api=token.persistence.Manager(),
    trust_api=trust.Manager(),
    token_provider_api=token.provider.Manager())

 

3. 根据配置文件中定义的auth的method加载相应的插件

4. 根据paste_deploy配置初始化app

运行server

server = wss.make_server(args.host, args.port, initialize_public_application())

 初始化完成以后,server根据host,port启动,然后一直在后台运行。

keystone-wsgi-admin

初始化

wsgi-admin程序是靠initialize_admin_application函数进行初始化工作的。initialize_admin_application的初始化步骤跟wsgi-public差不多,只是传入参数name名字不同。还有就是admin的配置,比如端口,还有paste_deploy里面的配置。整个流程都是相同的。

运行server

server = wss.make_server(args.host, args.port, initialize_admin_application())

初始化完成以后,server根据host,port启动,然后一直在后台运行。

posted on 2017-11-14 15:26  _沉睡的狮子  阅读(1041)  评论(0)    收藏  举报

导航