keystone几个组件keystoneclient、keystoneauth1、keystonemiddleware之间的关系

4700阅读 0评论2016-09-21 lolizeppelin
分类:虚拟化

keystone好的几个组件作用查了半天也没查到什么,自己看了下弄个个大致

keystoneauth1是核心组件,大部分openstack需要验证的的组件都依赖它
里面有
1、基础的数据结构
2、http访问使用的requests的session由keystoneauth1封装


keystoneclient应该是工具组件、依赖keystoneauth1
部分keystoneclient的代码转移到keystoneauth1中了
里面写好了v2和v3接口的client,并定义了keystone的异常
keystoneclient.common.cms也被较多的引用(这玩意看了下 大概是和openssl相关的调用)
这个组件给我的感觉是个要淘汰的组件,估计再过一两个版本就要完全被keystoneauth1取代了 


keystonemiddleware应该是个二次封装的组件、依赖keystoneauth1
对keystoneclient的使用也仅限于cms和异常 
搭建过glance以后知道这个组件是干什么的了,各个openstack服务和keystone通信用的(不是用户和keystone通信用的,用户和keystone通信时靠keystoneclient)
生成、校验、缓存token的代码都写在里面,一般用法是把验证类写在pipeline中


keystone,验证的服务端,wsgi服务,依赖keystoneauth1
etc里配置了keystonemiddleware的日志,但是代码中好像只使用了keystoneclient.common.cms
作为服务端我本来以为不会使用keystoneclient
但是代码里使用到了keystoneclient.common.cms
看了下cms里面主要有校验工具,和一些调用shell生成ca文件的工具,应该是客户端服务器端通用的
我估计以后这部分代码也会移到keystoneauth1中



horizon,wsgi服务,openstack的客户端网站,依赖keystoneclient


python-novaclient,openstack的cli工具,依赖keystoneauth1
没有使用keystoneclient(原来使用的keystoneclient代码已经转移到keystoneauth1中
直接使用keystoneauth1, 不支持v3,自己写了v2版本的对应接口工具(也就是说这玩意在重复造轮子?)


nova-api,wsgi服务,配置里有个拦截器指向
keystonemiddleware,  奇怪的是nova-api没有使用keystoneclient

keystonemiddleware这个目前只看到nova-api用了.

上一篇:OpenStack Mitaka从零开始——消息队列基础
下一篇:OpenStack Mitaka从零开始——wsgi服务的启动、paste、deploy中urlmap映射过程