keystone 初始化启动流程【原创】
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启动,然后一直在后台运行。
浙公网安备 33010602011771号