def _validate_category(self, category): try: if category.type_id != self.parsed_obj["category"]: raise exception.OCCISchemaMismatch( expected=category.type_id, found=self.parsed_obj["category"]) except KeyError: raise exception.OCCIMissingType(type_id=category.type_id)
def _validate_optional_links(self, expected, links): for uri, l in links.items(): try: rel = l['rel'] except KeyError: raise exception.OCCIMissingType(type_id=uri) for ex in expected: if rel == ex.type_id: break else: expected_types = ', '.join([e.type_id for e in expected]) raise exception.OCCISchemaMismatch(expected=expected_types, found=l['rel'])
def _validate_mandatory_mixins(self, mixins, unmatched): for m in mixins: for um in unmatched: if self._compare_schemes(m, um): unmatched[um] -= 1 break else: # NOTE(aloga): I am not sure of this... expected = m.scheme if hasattr(m, "term"): expected += m.term raise exception.OCCIMissingType(type_id=expected) return unmatched