limited-beard-23879
11/11/2023, 12:22 PMrich-barista-93413
11/18/2023, 1:38 AMlimited-beard-23879
11/24/2023, 8:08 AMlimited-beard-23879
11/24/2023, 8:08 AMlimited-beard-23879
11/24/2023, 8:09 AMlimited-beard-23879
11/24/2023, 8:16 AMdef add_owners(gms_endpoint, owner_id, owner_type,entity_urn):
need_write = False
emitter = DatahubRestEmitter(gms_endpoint)
owner_to_add = make_user_urn(owner_id)
ownership_type = ownershiptype[owner_type]
owner_class_to_add = get_owner_class_to_add(owner_id, owner_type)
ownership_to_add = OwnershipClass(owners=[owner_class_to_add])
current_owners = get_current_owners(gms_endpoint=gms_endpoint,entity_urn=entity_urn)
if current_owners:
for owner in current_owners.owners:
if((owner_to_add, ownership_type) not in (owner.owner, owner.type)):
current_owners.owners.remove(owner)
current_owners.owners.append(ownership_to_add)
break
need_write = True
else:
# create a brand new ownership aspect
current_owners = ownership_to_add
need_write = True
if need_write:
event: MetadataChangeProposalWrapper = MetadataChangeProposalWrapper(
entityUrn=entity_urn,
aspect=current_owners,
)
emitter.emit_mcp(event)
<http://log.info|log.info>(
f"Owner {owner_to_add}, type {ownership_type} added to dataset {entity_urn}"
)
else:
<http://log.info|log.info>(f"Owner {owner_to_add} already exists, omitting write")
this is the code I am using to update the ownersip of one user among the current userslimited-beard-23879
11/24/2023, 8:19 AMlimited-beard-23879
11/24/2023, 8:21 AMlimited-beard-23879
11/27/2023, 9:59 PMelegant-father-67984
12/06/2023, 2:29 PMlimited-beard-23879
12/13/2023, 12:31 AMlimited-beard-23879
12/13/2023, 12:32 AMdef add_owners(gms_endpoint, owner_id, owner_type,entity_urn):
need_write = False
emitter = DatahubRestEmitter(gms_endpoint)
owner_to_add = make_user_urn(owner_id)
ownership_type = ownershiptype[owner_type]
owner_class_to_add = get_owner_class_to_add(owner_id, owner_type)
ownership_to_add = OwnershipClass(owners=[owner_class_to_add])
current_owners = get_current_owners(gms_endpoint=gms_endpoint,entity_urn=entity_urn)
if current_owners.owners:
for owner in current_owners.owners:
if((owner_to_add, ownership_type) not in (owner.owner, owner.type)):
current_owners.owners.append(owner_class_to_add)
break
need_write = True
else:
# create a brand new ownership aspect
current_owners = ownership_to_add
need_write = True
if need_write:
event: MetadataChangeProposalWrapper = MetadataChangeProposalWrapper(
entityUrn=entity_urn,
aspect=current_owners,
)
emitter.emit_mcp(event)
<http://log.info|log.info>(
f"Owner {owner_to_add}, type {ownership_type} added to entity {entity_urn}"
)
else:
<http://log.info|log.info>(f"Owner {owner_to_add} already exists, omitting write")
The above code worked for me