def _create_record_iterator(self) -> Iterator[RDSModel]: yield RDSDashboardOwner( user_rk=User.get_user_model_key(email=self._email), dashboard_rk=DashboardMetadata.DASHBOARD_KEY_FORMAT.format( product=self._product, cluster=self._cluster, dashboard_group=self._dashboard_group_id, dashboard_name=self._dashboard_id))
def _create_node_iterator(self) -> Iterator[GraphNode]: for email in self.owner_emails: if email: yield GraphNode(key=User.get_user_model_key(email=email), label=User.USER_NODE_LABEL, attributes={ User.USER_NODE_EMAIL: email, })
def _create_atlas_owner_relation(self, owner: str) -> AtlasRelationship: table_relationship = AtlasRelationship( relationshipType=AtlasRelationshipTypes.resource_owner, entityType1=AtlasCommonTypes.data_set, entityQualifiedName1=self.start_key, entityType2=AtlasCommonTypes.user, entityQualifiedName2=User.get_user_model_key(email=owner), attributes={}) return table_relationship
def _create_record_iterator(self) -> Iterator[RDSModel]: if self.user_email: yield RDSUser( rk=User.get_user_model_key(email=self.user_email), email=self.user_email ) if self.start_label == TableMetadata.TABLE_NODE_LABEL: yield RDSTableUsage(user_rk=User.get_user_model_key(email=self.user_email), table_rk=self.start_key, read_count=self.read_count) elif self.start_label == DashboardMetadata.DASHBOARD_NODE_LABEL: yield RDSDashboardUsage( user_rk=User.get_user_model_key(email=self.user_email), dashboard_rk=self.start_key, read_count=self.read_count, ) else: raise Exception(f'{self.start_label} usage is not table serializable')
def _create_record_iterator(self) -> Iterator[RDSModel]: for email in self.owner_emails: if email: user_record = RDSUser(rk=User.get_user_model_key(email=email), email=email) yield user_record if self.start_label == TableMetadata.TABLE_NODE_LABEL: yield RDSTableOwner( table_rk=self.start_key, user_rk=User.get_user_model_key(email=email), ) elif self.start_label == DashboardMetadata.DASHBOARD_NODE_LABEL: yield RDSDashboardOwner( dashboard_rk=self.start_key, user_rk=User.get_user_model_key(email=email)) else: raise Exception( f'{self.start_label}<>Owner relationship is not table serializable' )
def _create_relation_iterator(self) -> Iterator[GraphRelationship]: for email in self.owner_emails: if email: yield GraphRelationship( start_label=self.start_label, start_key=self.start_key, end_label=User.USER_NODE_LABEL, end_key=User.get_user_model_key(email=email), type=OWNER_RELATION_TYPE, reverse_type=OWNER_OF_OBJECT_RELATION_TYPE, attributes={})
def _create_relation_iterator(self) -> Iterator[GraphRelationship]: yield GraphRelationship( start_label=self.start_label, start_key=self.start_key, end_label=User.USER_NODE_LABEL, end_key=User.get_user_model_key(email=self.user_email), type=READ_REVERSE_RELATION_TYPE, reverse_type=READ_RELATION_TYPE, attributes={ READ_RELATION_COUNT_PROPERTY: self.read_count, } )
def _create_relation_iterator(self) -> Iterator[GraphRelationship]: relationship = GraphRelationship( start_label=DashboardMetadata.DASHBOARD_NODE_LABEL, end_label=User.USER_NODE_LABEL, start_key=DashboardMetadata.DASHBOARD_KEY_FORMAT.format( product=self._product, cluster=self._cluster, dashboard_group=self._dashboard_group_id, dashboard_name=self._dashboard_id), end_key=User.get_user_model_key(email=self._email), type=READ_REVERSE_RELATION_TYPE, reverse_type=READ_RELATION_TYPE, attributes={READ_RELATION_COUNT_PROPERTY: self._view_count}) yield relationship
def _create_record_iterator(self) -> Iterator[RDSModel]: if self._should_create_user_node: user_record = self._user_model.create_next_record() if user_record: yield user_record dashboard_usage_record = RDSDashboardUsage( user_rk=User.get_user_model_key(email=self._email), dashboard_rk=DashboardMetadata.DASHBOARD_KEY_FORMAT.format( product=self._product, cluster=self._cluster, dashboard_group=self._dashboard_group_id, dashboard_name=self._dashboard_id), read_count=self._view_count) yield dashboard_usage_record
def _create_relation_iterator(self): # type: () -> Iterator[[Dict[str, Any]]] yield { RELATION_START_LABEL: DashboardMetadata.DASHBOARD_NODE_LABEL, RELATION_END_LABEL: User.USER_NODE_LABEL, RELATION_START_KEY: DashboardMetadata.DASHBOARD_KEY_FORMAT.format( product=self._product, cluster=self._cluster, dashboard_group=self._dashboard_group_id, dashboard_name=self._dashboard_id ), RELATION_END_KEY: User.get_user_model_key(email=self._email), RELATION_TYPE: OWNER_RELATION_TYPE, RELATION_REVERSE_TYPE: OWNER_OF_OBJECT_RELATION_TYPE }
def _create_relation_iterator(self) -> Iterator[Dict[str, Any]]: yield { RELATION_START_LABEL: DashboardMetadata.DASHBOARD_NODE_LABEL, RELATION_END_LABEL: User.USER_NODE_LABEL, RELATION_START_KEY: DashboardMetadata.DASHBOARD_KEY_FORMAT.format( product=self._product, cluster=self._cluster, dashboard_group=self._dashboard_group_id, dashboard_name=self._dashboard_id ), RELATION_END_KEY: User.get_user_model_key(email=self._email), RELATION_TYPE: READ_REVERSE_RELATION_TYPE, RELATION_REVERSE_TYPE: READ_RELATION_TYPE, READ_RELATION_COUNT_PROPERTY: self._view_count }
def _create_record_iterator(self) -> Iterator[RDSModel]: yield RDSDashboardOwner( user_rk=User.get_user_model_key(email=self._email), dashboard_rk=self.start_key, )
def _get_user_key(self, email): # type: (str) -> str return User.get_user_model_key(email=email)
def _get_user_key(self, email: str) -> str: return User.get_user_model_key(email=email)
def test_get_user_model_key(self) -> None: user_email = User.get_user_model_key(email=self.user.email) self.assertEqual(user_email, '*****@*****.**')
def test_get_user_model_key(self): # type: () -> None user_email = User.get_user_model_key(email=self.user.email) self.assertEquals(user_email, '{email}'.format(email='*****@*****.**'))
def _get_user_key(self) -> str: return User.get_user_model_key(email=self.user_email)