oslo_versionedobjects.fields.
BaseEnumField
(**kwargs)¶Base class for all enum field types
This class should not be directly instantiated. Instead subclass it and set AUTO_TYPE to be a SomeEnum() where SomeEnum is a subclass of Enum.
valid_values
¶Return the list of valid values for the field.
oslo_versionedobjects.fields.
CoercedDict
(*args, **kwargs)¶Dict which coerces its values
Dict implementation which overrides all element-adding methods and coercing the element(s) being added to the required element type
oslo_versionedobjects.fields.
CoercedList
(*args, **kwargs)¶List which coerces its elements
List implementation which overrides all element-adding methods and coercing the element(s) being added to the required element type
oslo_versionedobjects.fields.
CoercedSet
(*args, **kwargs)¶Set which coerces its values
Dict implementation which overrides all element-adding methods and coercing the element(s) being added to the required element type
oslo_versionedobjects.fields.
DictProxyField
(dict_field_name, key_type=<type 'int'>)¶Descriptor allowing us to assign pinning data as a dict of key_types
This allows us to have an object field that will be a dict of key_type keys, allowing that will convert back to string-keyed dict.
This will take care of the conversion while the dict field will make sure that we store the raw json-serializable data on the object.
key_type should return a type that unambiguously responds to six.text_type so that calling key_type on it yields the same thing.
oslo_versionedobjects.fields.
EnumField
(valid_values, **kwargs)¶Anonymous enum field type
This class allows for anonymous enum types to be declared, simply by passing in a list of valid values to its constructor. It is generally preferable though, to create an explicit named enum type by sub-classing the BaseEnumField type directly.
oslo_versionedobjects.fields.
SensitiveString
¶A string field type that may contain sensitive (password) information.
Passwords in the string value are masked when stringified.
oslo_versionedobjects.fields.
SensitiveStringField
(**kwargs)¶Field type that masks passwords when the field is stringified.
oslo_versionedobjects.fields.
StateMachine
(valid_values, **kwargs)¶A mixin that can be applied to an EnumField to enforce a state machine
e.g: Setting the code below on a field will ensure an object cannot transition from ERROR to ACTIVE
Example: | class FakeStateMachineField(fields.EnumField, fields.StateMachine):
ACTIVE = 'ACTIVE'
PENDING = 'PENDING'
ERROR = 'ERROR'
DELETED = 'DELETED'
ALLOWED_TRANSITIONS = {
ACTIVE: {
PENDING,
ERROR,
DELETED,
},
PENDING: {
ACTIVE,
ERROR
},
ERROR: {
PENDING,
},
DELETED: {} # This is a terminal state
}
_TYPES = (ACTIVE, PENDING, ERROR, DELETED)
def __init__(self, **kwargs):
super(FakeStateMachineField, self).__init__(
self._TYPES, **kwargs)
|
---|
oslo_versionedobjects.fields.
UUIDField
(**kwargs)¶UUID Field Type
Warning
This class does not actually validate UUIDs. This will happen in a future major version of oslo.versionedobjects
To validate that you have valid UUIDs you need to do the following in your own objects/fields.py
Example: | import oslo_versionedobjects.fields as ovo_fields
class UUID(ovo_fields.UUID):
def coerce(self, obj, attr, value):
uuid.UUID(value)
return str(value)
class UUIDField(ovo_fields.AutoTypedField):
AUTO_TYPE = UUID()
|
---|
and then in your objects use
<your_projects>.object.fields.UUIDField
.
This will become default behaviour in the future.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.