ChaosTargetFilter Class
Defines all filters for targeted Chaos faults, for example, faulting only certain node types or faulting only certain applications. If ChaosTargetFilter is not used, Chaos faults all cluster entities. If ChaosTargetFilter is used, Chaos faults only the entities that meet the ChaosTargetFilter specification. NodeTypeInclusionList and ApplicationInclusionList allow a union semantics only. It is not possible to specify an intersection of NodeTypeInclusionList and ApplicationInclusionList. For example, it is not possible to specify "fault this application only when it is on that node type." Once an entity is included in either NodeTypeInclusionList or ApplicationInclusionList, that entity cannot be excluded using ChaosTargetFilter. Even if applicationX does not appear in ApplicationInclusionList, in some Chaos iteration applicationX can be faulted because it happens to be on a node of nodeTypeY that is included in NodeTypeInclusionList. If both NodeTypeInclusionList and ApplicationInclusionList are null or empty, an ArgumentException is thrown.
Constructor
ChaosTargetFilter(*, node_type_inclusion_list=None, application_inclusion_list=None, **kwargs)
Parameters
| Name | Description |
|---|---|
|
node_type_inclusion_list
Required
|
A list of node types to include in Chaos faults. All types of faults (restart node, restart code package, remove replica, restart replica, move primary, and move secondary) are enabled for the nodes of these node types. If a node type (say NodeTypeX) does not appear in the NodeTypeInclusionList, then node level faults (like NodeRestart) will never be enabled for the nodes of NodeTypeX, but code package and replica faults can still be enabled for NodeTypeX if an application in the ApplicationInclusionList. happens to reside on a node of NodeTypeX. At most 100 node type names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfNodeTypesInChaosEntityFilter configuration. |
|
application_inclusion_list
Required
|
A list of application URIs to include in Chaos faults. All replicas belonging to services of these applications are amenable to replica faults (restart replica, remove replica, move primary, and move secondary) by Chaos. Chaos may restart a code package only if the code package hosts replicas of these applications only. If an application does not appear in this list, it can still be faulted in some Chaos iteration if the application ends up on a node of a node type that is included in NodeTypeInclusionList. However, if applicationX is tied to nodeTypeY through placement constraints and applicationX is absent from ApplicationInclusionList and nodeTypeY is absent from NodeTypeInclusionList, then applicationX will never be faulted. At most 1000 application names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfApplicationsInChaosEntityFilter configuration. |
Keyword-Only Parameters
| Name | Description |
|---|---|
|
node_type_inclusion_list
|
Default value: None
|
|
application_inclusion_list
|
Default value: None
|
Methods
| as_dict |
Return a dict that can be JSONify using json.dump. Advanced usage might optionally use a callback as parameter: Key is the attribute name used in Python. Attr_desc is a dict of metadata. Currently contains 'type' with the msrest type and 'key' with the RestAPI encoded key. Value is the current value in this object. The string returned will be used to serialize the key. If the return type is a list, this is considered hierarchical result dict. See the three examples in this file:
If you want XML serialization, you can pass the kwargs is_xml=True. |
| deserialize |
Parse a str using the RestAPI syntax and return a model. |
| enable_additional_properties_sending | |
| from_dict |
Parse a dict using given key extractor return a model. By default consider key extractors (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor and last_rest_key_case_insensitive_extractor) |
| is_xml_model | |
| serialize |
Return the JSON that would be sent to azure from this model. This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False). If you want XML serialization, you can pass the kwargs is_xml=True. |
| validate |
Validate this model recursively and return a list of ValidationError. |
as_dict
Return a dict that can be JSONify using json.dump.
Advanced usage might optionally use a callback as parameter:
Key is the attribute name used in Python. Attr_desc is a dict of metadata. Currently contains 'type' with the msrest type and 'key' with the RestAPI encoded key. Value is the current value in this object.
The string returned will be used to serialize the key. If the return type is a list, this is considered hierarchical result dict.
See the three examples in this file:
attribute_transformer
full_restapi_key_transformer
last_restapi_key_transformer
If you want XML serialization, you can pass the kwargs is_xml=True.
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)
Parameters
| Name | Description |
|---|---|
|
key_transformer
|
<xref:function>
A key transformer function. |
|
keep_readonly
|
Default value: True
|
Returns
| Type | Description |
|---|---|
|
A dict JSON compatible object |
deserialize
Parse a str using the RestAPI syntax and return a model.
deserialize(data, content_type=None)
Parameters
| Name | Description |
|---|---|
|
data
Required
|
A str using RestAPI structure. JSON by default. |
|
content_type
|
JSON by default, set application/xml if XML. Default value: None
|
Returns
| Type | Description |
|---|---|
|
An instance of this model |
Exceptions
| Type | Description |
|---|---|
|
DeserializationError if something went wrong
|
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
Parse a dict using given key extractor return a model.
By default consider key extractors (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor and last_rest_key_case_insensitive_extractor)
from_dict(data, key_extractors=None, content_type=None)
Parameters
| Name | Description |
|---|---|
|
data
Required
|
A dict using RestAPI structure |
|
content_type
|
JSON by default, set application/xml if XML. Default value: None
|
|
key_extractors
|
Default value: None
|
Returns
| Type | Description |
|---|---|
|
An instance of this model |
Exceptions
| Type | Description |
|---|---|
|
DeserializationError if something went wrong
|
is_xml_model
is_xml_model()
serialize
Return the JSON that would be sent to azure from this model.
This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).
If you want XML serialization, you can pass the kwargs is_xml=True.
serialize(keep_readonly=False, **kwargs)
Parameters
| Name | Description |
|---|---|
|
keep_readonly
|
If you want to serialize the readonly attributes Default value: False
|
Returns
| Type | Description |
|---|---|
|
A dict JSON compatible object |
validate
Validate this model recursively and return a list of ValidationError.
validate()
Returns
| Type | Description |
|---|---|
|
A list of validation error |