heat.common.policy 模块

Heat 的策略引擎。

class heat.common.policy.Enforcer(scope='heat', exc=<class 'heat.common.exception.Forbidden'>, default_rule=<oslo_policy._checks.FalseCheck object>, policy_file=None)[source]

基类: object

负责加载和执行规则。

check_is_admin(context)[source]

根据策略判断是否为管理员。

默认情况下,该规则将检查角色是否包含“admin”角色以及是否为管理员项目。

参数 context:

Heat 请求上下文

返回值:

如果用户根据策略是管理员,则返回非 False 值

enforce(context, action, scope=None, target=None, is_registered_policy=False)[source]

验证在此上下文中对目标执行的操作是否有效。

参数:
  • context – Heat 请求上下文

  • action – 表示要检查的操作的字符串

  • target – 表示操作对象的字典。

引发:

heat.common.exception.Forbidden – 当权限被拒绝时(或 self.exc 如果已提供)。

返回值:

如果允许访问,则返回非 False 值。

load_rules(force_reload=False)[source]

设置磁盘上 json 文件中找到的规则。

set_rules(rules, overwrite=True)[source]

基于提供的规则字典创建新的 Rules 对象。

class heat.common.policy.ResourceEnforcer(default_rule=<oslo_policy._checks.TrueCheck object>, **kwargs)[source]

继承自 Enforcer

enforce(context, res_type, scope=None, target=None, is_registered_policy=False)[source]

验证在此上下文中对目标执行的操作是否有效。

参数:
  • context – Heat 请求上下文

  • action – 表示要检查的操作的字符串

  • target – 表示操作对象的字典。

引发:

heat.common.exception.Forbidden – 当权限被拒绝时(或 self.exc 如果已提供)。

返回值:

如果允许访问,则返回非 False 值。

enforce_stack(stack, scope=None, target=None, is_registered_policy=False)[source]
heat.common.policy.get_enforcer()[source]
heat.common.policy.get_policy_enforcer()[source]