heat.engine.constraints 模块

class heat.engine.constraints.AllowedPattern(pattern, description=None)[source]

基类: Constraint

约束值到一个预定义的正则表达式模式。

序列化为 JSON 如下

{
    'allowed_pattern': <pattern>,
    'description': <description>
}
valid_types = ('STRING',)
class heat.engine.constraints.AllowedValues(allowed, description=None)[source]

基类: Constraint

约束值到一个预定义的集合。

序列化为 JSON 如下

{
    'allowed_values': [<allowed1>, <allowed2>, ...],
    'description': <description>
}
valid_types = ('STRING', 'INTEGER', 'NUMBER', 'BOOLEAN', 'LIST')
class heat.engine.constraints.AnyIndexDict(value)[source]

基类: Mapping

一个 Mapping,对于任何整数索引都返回相同的值。

用于存储列表的模式。转换为字典时,它包含一个键为 ‘*’ 的项目。

ANYTHING = '*'
class heat.engine.constraints.BaseCustomConstraint[source]

基类: object

使用 API 客户端进行验证的基类。

它将提供更好的错误消息,并减少一些重复。子类必须提供 expected_exceptions 并实现 validate_with_client

error(value)[source]
expected_exceptions = (<class 'heat.common.exception.EntityNotFound'>,)
resource_client_name = None
resource_getter_name = None
validate(value, context)[source]
validate_with_client(client, resource_id)[source]
class heat.engine.constraints.Constraint(description=None)[source]

基类: Mapping

Property 允许值的约束的父类。

约束可以序列化为字典,遵循 HOT 输入参数约束模式,使用 dict()。

DESCRIPTION = 'description'
validate(value, schema=None, context=None)[source]
class heat.engine.constraints.CustomConstraint(name, description=None, environment=None)[source]

基类: Constraint

一个将验证委托给外部类的约束。

property custom_constraint
valid_types = ('STRING', 'INTEGER', 'NUMBER', 'BOOLEAN', 'LIST')
class heat.engine.constraints.Length(min=None, max=None, description=None)[source]

基类: Range

约束值的长度在一个范围内。

序列化为 JSON 如下

{
    'length': {'min': <min>, 'max': <max>},
    'description': <description>
}
valid_types = ('STRING', 'LIST', 'MAP')
class heat.engine.constraints.Modulo(step=None, offset=None, description=None)[source]

基类: Constraint

约束值为模数。

序列化为 JSON 如下

{
    'modulo': {'step': <step>, 'offset': <offset>},
    'description': <description>
}
OFFSET = 'offset'
STEP = 'step'
valid_types = ('INTEGER', 'NUMBER')
class heat.engine.constraints.Range(min=None, max=None, description=None)[source]

基类: Constraint

约束值在一个范围内。

序列化为 JSON 如下

{
    'range': {'min': <min>, 'max': <max>},
    'description': <description>
}
MAX = 'max'
MIN = 'min'
valid_types = ('INTEGER', 'NUMBER')
class heat.engine.constraints.Schema(data_type, description=None, default=None, schema=None, required=False, constraints=None, label=None, immutable=False)[source]

基类: Mapping

用于验证属性或参数的 Schema 基类。

Schema 对象可以序列化为字典,遵循使用 dict() 的 HOT 输入参数 Schema 的超集。

序列化为 JSON 的形式如下

{
    'type': 'list',
    'required': False
    'constraints': [
        {
            'length': {'min': 1},
            'description': 'List must not be empty'
        }
    ],
    'schema': {
        '*': {
            'type': 'string'
        }
    },
    'description': 'An example list property.'
}
ANY = 'Any'
BOOLEAN = 'Boolean'
BOOLEAN_TYPE = 'BOOLEAN'
CONSTRAINTS = 'constraints'
DEFAULT = 'default'
DESCRIPTION = 'description'
IMMUTABLE = 'immutable'
INTEGER = 'Integer'
INTEGER_TYPE = 'INTEGER'
KEYS = ('type', 'description', 'default', 'schema', 'required', 'constraints', 'immutable')
LIST = 'List'
LIST_TYPE = 'LIST'
MAP = 'Map'
MAP_TYPE = 'MAP'
NUMBER = 'Number'
NUMBER_TYPE = 'NUMBER'
REQUIRED = 'required'
SCHEMA = 'schema'
STRING = 'String'
STRING_TYPE = 'STRING'
TYPE = 'type'
TYPES = ('Integer', 'String', 'Number', 'Boolean', 'Map', 'List', 'Any')
TYPE_KEYS = ('INTEGER', 'STRING', 'NUMBER', 'BOOLEAN', 'MAP', 'LIST')
set_default(default=None)[source]

设置此 Schema 对象的默认值。

static str_to_num(value)[source]

将数字的字符串表示形式转换为数字类型。

to_schema_type(value)[source]

以 Schema 的数据类型返回该值。

validate(context=None)[source]

验证 Schema。

此方法检查 Schema 本身是否有效,以及默认值(如果存在)是否符合 Schema 的约束。

validate_constraints(value, context=None, skipped=None)[source]