Ejemplo n.º 1
0
 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))
Ejemplo n.º 2
0
 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,
                             })
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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')
Ejemplo n.º 5
0
    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'
                    )
Ejemplo n.º 6
0
 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={})
Ejemplo n.º 7
0
 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
Ejemplo n.º 10
0
 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
     }
Ejemplo n.º 11
0
 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
     }
Ejemplo n.º 12
0
 def _create_record_iterator(self) -> Iterator[RDSModel]:
     yield RDSDashboardOwner(
         user_rk=User.get_user_model_key(email=self._email),
         dashboard_rk=self.start_key,
     )
Ejemplo n.º 13
0
 def _get_user_key(self, email):
     # type: (str) -> str
     return User.get_user_model_key(email=email)
Ejemplo n.º 14
0
 def _get_user_key(self, email: str) -> str:
     return User.get_user_model_key(email=email)
Ejemplo n.º 15
0
 def test_get_user_model_key(self) -> None:
     user_email = User.get_user_model_key(email=self.user.email)
     self.assertEqual(user_email, '*****@*****.**')
Ejemplo n.º 16
0
 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='*****@*****.**'))
Ejemplo n.º 17
0
 def _get_user_key(self) -> str:
     return User.get_user_model_key(email=self.user_email)