(self)
| 104 | } |
| 105 | |
| 106 | def validate(self): |
| 107 | # Validate policy itself |
| 108 | cleaned = super(PolicyAPI, self).validate() |
| 109 | |
| 110 | # Validate policy parameters |
| 111 | # pylint: disable=no-member |
| 112 | policy_type_db = PolicyType.get_by_ref(cleaned.policy_type) |
| 113 | if not policy_type_db: |
| 114 | raise ValueError( |
| 115 | 'Referenced policy_type "%s" doesnt exist' % (cleaned.policy_type) |
| 116 | ) |
| 117 | |
| 118 | parameters_schema = policy_type_db.parameters |
| 119 | parameters = getattr(cleaned, "parameters", {}) |
| 120 | schema = util_schema.get_schema_for_resource_parameters( |
| 121 | parameters_schema=parameters_schema |
| 122 | ) |
| 123 | validator = util_schema.get_validator() |
| 124 | cleaned_parameters = util_schema.validate( |
| 125 | parameters, schema, validator, use_default=True, allow_default_none=True |
| 126 | ) |
| 127 | |
| 128 | cleaned.parameters = cleaned_parameters |
| 129 | |
| 130 | return cleaned |
| 131 | |
| 132 | @classmethod |
| 133 | def to_model(cls, instance): |
no test coverage detected