当前位置: 首页 > news >正文

glance学习小结

接口

glance image-create

glanceclient

先由glanceclient在对应版本的shell里寻找action,找到后执行action

创建镜像先获取field,field获取前先get获取schemas,创建镜像时,在传入的参数中,仅保留在schema中记录的参数,然后调用glanceclient对应版本下的images拼接header设置参数等,最后将参数打包发到v2/images或v1/images创建镜像,文件创建的镜像,文件内容好像会通过标准输入传递过去

glance

v2/images逻辑在glance仓库中

创建镜像时,准备参数。先获取image factory和repo,这两个都是从gateway拿到。然后设置image对象的own属性,如果创建镜像没传入own属性,则设为project id

基于角色的权限校验

调policy的add_image方法,先进行基于角色的校验。以前好像/etc/项目名底下有policy文件,从policy文件读取校验规则,yoga版本的glance将规则放到仓库里,由glance调用oslo_policy的register_defaults注册角色规则。

从glance.policy.image读到的add_image行为的rule如下,然后调用enforcer的enforce方法进行校验,该方法封装在oslo_policy.policy.Enforcer.enforce方法中

add_image的check字符串如下,DocumentedRuleDefault的父类_BaseDefault会解析check_str加载为check规则,放到实例的_check里面

校验完add_image再校验镜像visibility

oslo_policy

glance的images api controller创建时空参数创建,对应的enforcer对象是oslo_policy.policy.Enforcer()

鉴权调用enforce方法,enforce方法先加载规则,规则会放到self.rules,加载的规则的to_check属性会在enforce用到

enforce中主要下图来进行鉴权

然后校验被某个projectid own的镜像数量,也enforce校验,调oslo_limit校验,没细看

问题

project id从哪来


http://www.mrgr.cn/news/15410.html

相关文章:

  • 在Ubuntu24.04上安装多主多从的高可用Kubernetes节点
  • 掌握Nginx负载均衡中的请求缓存处理:策略与实现
  • 轻松掌握 ViewPager2:打造流畅的页面切换体验
  • 基于PHP+MySQL组合开发的微信投票小程序 带完整的安装代码包以及搭建教程
  • 【推荐】Linux 推荐软件
  • 【iOS】iOS中简单的网络请求
  • LIN诊断(4)——Tp层函数LINtp.dll应用
  • 探索Edge-TTS与WebSocket集成:打造实时语音交互系统
  • 如何根据oom的信息找到对应的POD
  • 深入解析Nginx负载均衡中的`down`指令及其应用
  • three.js 着色器学习 聚集地
  • Django缓存设置
  • 【PHP小课堂】PHP中的数组函数学习(五)
  • 1.Docker初探 —— 走进集装箱的世界
  • 微知-如何查看linux网口的收包队列/channel个数?ethtool -l eth0
  • c++ string类的简单模拟实现
  • PHP语言有哪些优势和特点?
  • WPF UserControl 进行界面绑定,怎么进行内存释放
  • IT服务器安全规范 2024.08
  • 从面向对象(OOP)到面向切面(AOP):编程范式的演变