fix(ingest): allow ingestion of glossary terms without nodes (#3253)

This commit is contained in:
Remi 2021-09-17 00:11:25 -06:00 committed by GitHub
parent 9db7a34cfa
commit f307521331
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -62,7 +62,8 @@ class BusinessGlossarySourceConfig(ConfigModel):
class BusinessGlossaryConfig(DefaultConfig): class BusinessGlossaryConfig(DefaultConfig):
version: str version: str
nodes: List[GlossaryNodeConfig] nodes: Optional[List[GlossaryNodeConfig]]
terms: Optional[List[GlossaryTermConfig]]
@validator("version") @validator("version")
def version_must_be_1(cls, v): def version_must_be_1(cls, v):
@ -106,14 +107,26 @@ def get_mces(
path: List[str] = [] path: List[str] = []
root_owners = get_owners(glossary.owners) root_owners = get_owners(glossary.owners)
for node in glossary.nodes: if glossary.nodes:
events += get_mces_from_node( for node in glossary.nodes:
node, events += get_mces_from_node(
path + [node.name], node,
parentNode=None, path + [node.name],
parentOwners=root_owners, parentNode=None,
defaults=glossary, parentOwners=root_owners,
) defaults=glossary,
)
if glossary.terms:
for term in glossary.terms:
events += get_mces_from_term(
term,
path + [term.name],
parentNode=None,
parentOwnership=root_owners,
defaults=glossary,
)
return events return events
@ -171,7 +184,7 @@ def get_mces_from_node(
def get_mces_from_term( def get_mces_from_term(
glossaryTerm: GlossaryTermConfig, glossaryTerm: GlossaryTermConfig,
path: List[str], path: List[str],
parentNode: str, parentNode: Optional[str],
parentOwnership: models.OwnershipClass, parentOwnership: models.OwnershipClass,
defaults: DefaultConfig, defaults: DefaultConfig,
) -> List[models.MetadataChangeEventClass]: ) -> List[models.MetadataChangeEventClass]: