Keystone controller.py & routers.py代码解析

Keystone项目将每个功能划分为独立目录,如token、assignment等。controllers.py包含操作函数,调用core.py中的接口实现RESTful API功能。routers.py则负责URL路由,将URL映射到controllers.py的动作上。本文通过示例解释了routers.py如何使用mapper连接URL和action,并介绍了wsgi.ComposingRouter如何作为WSGI应用处理请求,以及如何通过environ['wsgiorg.routing_args']确定调用哪个controller的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Keystone WSGI 实现

Keystone 项目把每个功能都分到单独的目录下,EXAMPLE:

  • token 相关的功能 ===> keystone/token/
  • assignment 相关的功能 ===> keystone/assignment/
  • auth 相关的功能 ===> keystone/auth/
  • catalog 相关的功能 ===> keystone/catalog/
  • credential 相关的功能 ===> keystone/credential/
  • identity 相关的功能 ===> keystone/identity/
  • policy 相关的功能 ===> keystone/policy/
  • resource 相关的功能 ===> keystone/resource/

这些功能目录下都一般会有三个文件:routers.py/ controllers.py/ core.py

controllers.py

controllers.py 中的 action 操作函数调用了 core.py 中的底层接口实现来 RESTful API 对应的操作功能。
EXAMPLE

### 关于 OpenStack Keystone 的 `server.xml` 配置文件 OpenStack Keystone 是一个身份验证服务组件,主要用于管理用户访问权限和服务令牌。然而,在标准的 OpenStack部署中,并不存在名为 `server.xml` 的配置文件用于 Keystone[^1]。通常情况下,Keystone 使用的是 `keystone.conf` 文件来定义其核心功能和行为。 如果提到 `server.xml`,这通常是与 Apache Tomcat 或其他基于 Java 的应用服务器相关联的配置文件。在某些特定场景下,可能有人尝试通过反向代理或其他方式集成 Keystone 和 Java 应用程序,但这并非官方推荐的标准实践。 以下是关于 Keystone 配置的一些补充说明: #### 官方支持的配置文件 - **主要配置文件**: `keystone.conf` 是 Keystone 的主要配置文件,位于 `/etc/keystone/keystone.conf` 路径下。 - **Fernet 密钥存储路径**: 如果启用了 Fernet token provider,则密钥会存放在 `/etc/keystone/fernet-keys/` 中。 #### 自定义环境下的可能性 如果有开发者或管理员决定将 Keystone 与其他中间件(如 Tomcat)结合使用,则可能会引入额外的配置文件,比如 `server.xml` 来设置连接池、端口绑定等内容。这种自定义实现不在官方文档范围内,因此具体位置和内容需依据实际项目需求而定。 ```xml <!-- 示例:Tomcat server.xml --> <Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps"/> </Engine> </Service> </Server> ``` 上述 XML 片段展示了一个典型的 Tomcat `server.xml` 结构,但它并不属于 Keystone 默认安装的一部分。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

范桂飓

文章对您有帮助就请一键三连:)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值