Esempio n. 1
0
class DispLevel(Tuple, DeclarativeBase):
    __tablename__ = 'DispLevel'
    __tupleTypeShort__ = 'DLE'
    __tupleType__ = diagramTuplePrefix + __tablename__

    #: Misc data holder
    data = TupleField()

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(50), nullable=False)
    order = Column(Integer, nullable=False, server_default='0')
    minZoom = Column(Float)
    maxZoom = Column(Float)

    coordSetId = Column(Integer,
                        ForeignKey('ModelCoordSet.id', ondelete='CASCADE'),
                        nullable=False)
    coordSet = relationship(ModelCoordSet, foreign_keys=[coordSetId])

    importHash = Column(String(100), doc=JSON_EXCLUDE)

    __table_args__ = (
        Index("idx_DispLevel_coordSetId", coordSetId, unique=False),
        Index("idx_DispLevel_importHash", coordSetId, importHash, unique=True),
    )
Esempio n. 2
0
class DispLayer(Tuple, DeclarativeBase):
    __tablename__ = 'DispLayer'
    __tupleTypeShort__ = 'DLA'
    __tupleType__ = diagramTuplePrefix + __tablename__

    #: Misc data holder
    data = TupleField()

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(50), nullable=False)
    order = Column(Integer, nullable=False, server_default='0')
    selectable = Column(Boolean, nullable=False, server_default='false')
    visible = Column(Boolean, nullable=False, server_default='true')

    modelSetId = Column(Integer,
                        ForeignKey('ModelSet.id', ondelete='CASCADE'),
                        nullable=False)
    modelSet = relationship(ModelSet)

    importHash = Column(String(100), doc=JSON_EXCLUDE)

    __table_args__: typing.Tuple = (
        Index("idx_DispLayer_modelSetId", modelSetId, unique=False),
        Index("idx_DispLayer_importHash", modelSetId, importHash, unique=True),
    )
Esempio n. 3
0
class DispTextStyle(Tuple, DeclarativeBase):
    __tupleTypeShort__ = 'DTS'
    __tablename__ = 'DispTextStyle'
    __tupleType__ = diagramTuplePrefix + __tablename__

    #: Misc data holder
    data = TupleField()

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(50), nullable=False)
    fontName = Column(String(30), nullable=False, server_default="GillSans")
    fontSize = Column(Integer, nullable=False, server_default='9')
    fontStyle = Column(String(30))
    scalable = Column(Boolean, nullable=False, server_default="true")
    scaleFactor = Column(Integer, nullable=False, server_default="1")

    modelSetId = Column(Integer,
                        ForeignKey('ModelSet.id', ondelete='CASCADE'),
                        doc=JSON_EXCLUDE,
                        nullable=False)
    modelSet = relationship(ModelSet)

    importHash = Column(String(100), doc=JSON_EXCLUDE)

    __table_args__ = (
        Index("idx_DispTextStyle_modelSetId", modelSetId, unique=False),
        Index("idx_DispTextStyle_importHash",
              modelSetId,
              importHash,
              unique=True),
    )
Esempio n. 4
0
class DispColor(Tuple, DeclarativeBase):
    __tupleTypeShort__ = 'DC'
    __tablename__ = 'DispColor'
    __tupleType__ = diagramTuplePrefix + __tablename__

    #: Misc data holder
    data = TupleField()

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(50), doc=JSON_EXCLUDE, nullable=False)
    color = Column(String(20), server_default='orange')
    altColor = Column(String(20))
    swapPeriod = Column(Float)

    modelSetId = Column(Integer,
                        ForeignKey('ModelSet.id', ondelete='CASCADE'),
                        doc=JSON_EXCLUDE,
                        nullable=False)
    modelSet = relationship(ModelSet)

    importHash = Column(String(100), doc=JSON_EXCLUDE)

    __table_args__ = (
        Index("idx_DispColor_modelSetId", modelSetId, unique=False),
        Index("idx_DispColor_importHash", modelSetId, importHash, unique=True),
    )
Esempio n. 5
0
class TimestampSequencedWithIDRecord(Base):
    __tablename__ = "timestamp_sequenced_items"

    # Record ID.
    id = Column(
        BigInteger().with_variant(Integer, "sqlite"),
        primary_key=True,
        index=True,
        unique=True,
        autoincrement=True,
    )

    # Sequence ID (e.g. an entity or aggregate ID).
    sequence_id = Column(UUIDType(), nullable=False)

    # Position (timestamp) of item in sequence.
    position = Column(DECIMAL(24, 6, 6), nullable=False, unique=False)

    # Topic of the item (e.g. path to domain event class).
    topic = Column(Text(), nullable=False)

    # State of the item (serialized dict, possibly encrypted).
    state = Column(LargeBinary())

    __table_args__ = (
        Index(
            "timestamp_sequenced_items_sequence_id_position_index",
            "sequence_id",
            "position",
            unique=True,
        ),
        Index("timestamp_sequenced_items_position_index", "position", unique=False),
    )
Esempio n. 6
0
class SearchObject(Tuple, DeclarativeBase):
    __tablename__ = 'SearchObject'
    __tupleType__ = searchTuplePrefix + 'SearchObjectTable'

    id = Column(BigInteger, primary_key=True, autoincrement=True)

    #:  The object that this routs is for
    objectTypeId = Column(Integer,
                          ForeignKey('SearchObjectType.id', ondelete='CASCADE'),
                          nullable=False)

    key = Column(String, nullable=False)

    chunkKey = Column(Integer, nullable=False)

    fullKwPropertiesJson = Column(String, nullable=True)

    partialKwPropertiesJson = Column(String, nullable=True)

    packedJson = Column(String, nullable=True)

    __table_args__ = (
        Index("idx_SearchObject_objectTypeId", objectTypeId),
        Index("idx_SearchObject_key", key, unique=True),
        Index("idx_SearchObject_chunkKey", chunkKey),
    )
Esempio n. 7
0
class DispLineStyle(Tuple, DeclarativeBase):
    __tupleTypeShort__ = 'DLS'
    __tablename__ = 'DispLineStyle'
    __tupleType__ = diagramTuplePrefix + __tablename__

    #: Misc data holder
    data = TupleField()

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(50), nullable=False)
    backgroundFillDashSpace = Column(Boolean,
                                     nullable=False,
                                     server_default='false')
    capStyle = Column(String(15), nullable=False)
    joinStyle = Column(String(15), nullable=False)
    dashPattern = Column(String(50))
    startArrowSize = Column(Integer)
    endArrowSize = Column(Integer)
    winStyle = Column(Integer, nullable=False)

    modelSetId = Column(Integer,
                        ForeignKey('ModelSet.id', ondelete='CASCADE'),
                        doc=JSON_EXCLUDE,
                        nullable=False)
    modelSet = relationship(ModelSet)

    importHash = Column(String(100), doc=JSON_EXCLUDE)

    __table_args__ = (
        Index("idx_DispLineStyle_modelSetId", modelSetId, unique=False),
        Index("idx_DispLineStyle_importHash",
              modelSetId,
              importHash,
              unique=True),
    )
class SearchObjectRoute(Tuple, DeclarativeBase):
    """ Search Object Route

    This is like the "Open with"

    """
    __tablename__ = 'SearchObjectRoute'
    __tupleType__ = searchTuplePrefix + 'SearchObjectRouteTable'

    id = Column(Integer, primary_key=True, autoincrement=True)

    #:  The object that this routs is for
    objectId = Column(Integer,
                      ForeignKey('SearchObject.id', ondelete='CASCADE'),
                      nullable=False)

    importGroupHash = Column(String, nullable=False)
    routeTitle = Column(String, nullable=False)
    routePath = Column(String, nullable=False)

    __table_args__ = (
        Index("idx_ObjectRoute_objectId", objectId),  # For foreign key
        Index("idx_ObjectRoute_routeTitle_importGroupHash",
              importGroupHash,
              unique=False),
        Index("idx_ObjectRoute_routeTitle_objectId",
              routeTitle,
              objectId,
              unique=True),
    )
class LocationIndexCompiled(Tuple, DeclarativeBase,
                            ACIEncodedChunkTupleABC):
    __tablename__ = 'LocationIndexCompiled'
    __tupleType__ = diagramTuplePrefix + __tablename__

    id = Column(BigInteger, primary_key=True, autoincrement=True)

    indexBucket = Column(String(100), primary_key=True)
    blobData = Column(PeekLargeBinary, nullable=False)
    lastUpdate = Column(String(50), nullable=False)

    modelSetId = Column(Integer,
                        ForeignKey('ModelSet.id', ondelete='CASCADE'),
                        nullable=False)
    modelSet = relationship(ModelSet)

    __table_args__ = (
        Index("idx_LIIndexUpdate_modelSetId", modelSetId, unique=False),
        Index("idx_LIIndexUpdate_indexBucket", indexBucket, unique=True),
    )

    @property
    def ckiChunkKey(self):
        return self.indexBucket

    @property
    def ckiHasEncodedData(self) -> bool:
        return bool(self.blobData)

    @property
    def ckiLastUpdate(self):
        return self.lastUpdate

    @classmethod
    def ckiCreateDeleteEncodedChunk(cls, chunkKey: str):
        from peek_plugin_diagram._private.tuples.location_index.EncodedLocationIndexTuple import \
            EncodedLocationIndexTuple
        return EncodedLocationIndexTuple(indexBucket=chunkKey)

    @classmethod
    def sqlCoreChunkKeyColumn(cls):
        return cls.__table__.c.indexBucket

    @classmethod
    def sqlCoreLoad(cls, row):
        from peek_plugin_diagram._private.tuples.location_index.EncodedLocationIndexTuple import \
            EncodedLocationIndexTuple
        return EncodedLocationIndexTuple(modelSetKey=row.key,
                                         indexBucket=row.indexBucket,
                                         encodedLocationIndexTuple=row.blobData,
                                         lastUpdate=row.lastUpdate)
Esempio n. 10
0
class GridKeyIndexCompiled(Tuple, DeclarativeBase,
                           ACIEncodedChunkTupleABC):
    __tablename__ = 'GridKeyIndexCompiled'
    __tupleType__ = diagramTuplePrefix + __tablename__

    id = Column(BigInteger, primary_key=True, autoincrement=True)

    gridKey = Column(String(30), nullable=False)
    encodedGridTuple = Column(PeekLargeBinary, nullable=False)
    lastUpdate = Column(String(50), nullable=False)

    coordSetId = Column(Integer,
                        ForeignKey('ModelCoordSet.id', ondelete='CASCADE'),
                        nullable=False)
    coordSet = relationship(ModelCoordSet)

    __table_args__ = (
        Index("idx_GKIndexUpdate_coordSetId", coordSetId, unique=False),
        Index("idx_GKIndexUpdate_gridKey", gridKey, unique=True),
    )

    @property
    def ckiChunkKey(self):
        return self.gridKey

    @property
    def ckiHasEncodedData(self) -> bool:
        return bool(self.encodedGridTuple)

    @property
    def ckiLastUpdate(self):
        return self.lastUpdate

    @classmethod
    def ckiCreateDeleteEncodedChunk(cls, chunkKey: str):
        from peek_plugin_diagram._private.tuples.grid.EncodedGridTuple import \
            EncodedGridTuple
        return EncodedGridTuple(gridKey=chunkKey)

    @classmethod
    def sqlCoreChunkKeyColumn(cls):
        return cls.__table__.c.gridKey

    @classmethod
    def sqlCoreLoad(cls, row):
        from peek_plugin_diagram._private.tuples.grid.EncodedGridTuple import \
            EncodedGridTuple
        return EncodedGridTuple(gridKey=row.gridKey,
                                encodedGridTuple=row.encodedGridTuple,
                                lastUpdate=row.lastUpdate)
Esempio n. 11
0
class JobDependency(db.Model):
    __tablename__ = 'job_dependency_v2'
    __table_args__ = (Index('idx_src_job_id', 'src_job_id'),
                      Index('idx_dst_job_id', 'dst_job_id'), {
                          'comment': 'record job dependencies',
                          'mysql_engine': 'innodb',
                          'mysql_charset': 'utf8mb4',
                      })
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   comment='id')
    src_job_id = db.Column(db.Integer, comment='src job id')
    dst_job_id = db.Column(db.Integer, comment='dst job id')
    dep_index = db.Column(db.Integer, comment='dep index')
 def __table_args__(cls):
     return (
         Index(
             f"ix_uq_version_{cls.__tablename__}",
             "taxonomy_item_id",
             "version",
             unique=True,
         ),
         Index(
             f"ix_search{cls.__tablename__}",
             "name",
             "description",
             **FULLTEXT_INDEX_PARAMS,
         ),
     )
Esempio n. 13
0
class ExternalSource(DBBASE):

    __tablename__ = "external_sources"

    source_id = Column(Integer, primary_key=True)
    source = Column(String, unique=True)
    rtype = Column(String, unique=False)
    valid_raw = Column(Boolean)
    __table_args__ = ((Index("external_source_idx", "source_id"), ))

    def __init__(self, source, rtype, valid_raw):

        self.source = source
        if valid_raw not in (True, False):
            raise ValueError("\"Valid raw\" flags must be boolean!")
        if np.dtype("bool") == rtype:
            rtype = "bool"
        elif np.dtype("int") == rtype:
            rtype = "int"
        elif np.dtype("float") == rtype:
            rtype = "float"
        elif np.dtype("complex") == rtype:
            rtype = "complex"
        else:
            raise ValueError("Invalid source rtype for {}: {}".format(
                source, rtype))

        self.rtype = rtype
        self.valid_raw = valid_raw
Esempio n. 14
0
class PeekAppInfo(Tuple, DeclarativeBase):
    """ PeekAppInfo

    This table stores information on the version of Peek apps that are stored in Peek.

    """
    __tupleType__ = 'peek_server.papp.info'
    __tablename__ = 'PeekAppInfo'

    id = Column(Integer, primary_key=True)
    title = Column(String, nullable=False)
    name = Column(String, nullable=False)
    version = Column(String, nullable=False)
    creator = Column(String, nullable=True)
    website = Column(String, nullable=True)
    buildNumber = Column(String, nullable=True)
    buildDate = Column(String, nullable=True)

    # File location columns
    fileName = Column(String, nullable=False)
    dirName = Column(String, nullable=False)

    __table_args__ = (Index("idx_PeekAppInfo_NameVersion",
                            name,
                            version,
                            unique=True), )
Esempio n. 15
0
 def __table_args__(cls):
     return (Index(
         f"ix_search{cls.__tablename__}",
         "name",
         "description",
         **FULLTEXT_INDEX_PARAMS,
     ), )
Esempio n. 16
0
 def __table_args__(cls):
     return (Index(
         f"ix_uq_version_{cls.__tablename__}",
         "object_type_id",
         "version",
         unique=True,
     ), )
Esempio n. 17
0
class IntegerSequencedWithIDRecord(Base):
    __tablename__ = 'integer_sequenced_items'

    # Record ID.
    id = Column(BigInteger().with_variant(Integer, "sqlite"),
                primary_key=True,
                index=True,
                unique=True)

    # Sequence ID (e.g. an entity or aggregate ID).
    sequence_id = Column(UUIDType(), nullable=False)

    # Position (index) of item in sequence.
    position = Column(BigInteger().with_variant(Integer, "sqlite"),
                      nullable=False)

    # Topic of the item (e.g. path to domain event class).
    topic = Column(Text(), nullable=False)

    # State of the item (serialized dict, possibly encrypted).
    data = Column(Text())

    __table_args__ = (Index(
        'integer_sequenced_items_sequence_id_position_index',
        'sequence_id',
        'position',
        unique=True), )
Esempio n. 18
0
class StoredEventRecord(Base):
    __tablename__ = 'stored_events'

    # Record ID.
    id = Column(BigInteger().with_variant(Integer, "sqlite"),
                primary_key=True,
                index=True,
                unique=True)

    # Originator ID (e.g. an entity or aggregate ID).
    originator_id = Column(UUIDType(), nullable=False)

    # Originator version of item in sequence.
    originator_version = Column(BigInteger().with_variant(Integer, "sqlite"),
                                nullable=False)

    # Type of the event (class name).
    event_type = Column(Text(), nullable=False)

    # State of the item (serialized dict, possibly encrypted).
    state = Column(Text())

    __table_args__ = (Index('stored_events_sequence_id_position_index',
                            'originator_id',
                            'originator_version',
                            unique=True), )
Esempio n. 19
0
class InteractionCategory(Base):
    __tablename__ = 'interaction_category'

    id = Column(Integer, primary_key=True)
    user_id = Column(ForeignKey('users.user_id'), nullable=False)
    interaction_id = Column(ForeignKey('interactions.id'), nullable=False)
    category_id = Column(ForeignKey('category.category_id'), nullable=False)
    sm_account_id = Column(ForeignKey('sm_accounts.sm_account_id'),
                           nullable=False)
    created_date = Column(DateTime)

    user = relationship('User')
    interaction = relationship('Interactions')
    category = relationship('Category')
    sm_account = relationship('SmAccounts')

    __table_args__ = (UniqueConstraint('user_id',
                                       'interaction_id',
                                       'category_id',
                                       name='int_cat_u_idx'),
                      Index('int_sm_cat_idx',
                            id.desc(),
                            sm_account_id,
                            category_id,
                            postgresql_where=user_id == 1))
Esempio n. 20
0
class TaskAction(Tuple, DeclarativeBase):
    """ Task Action

    This table stores the Task Actions.
    Tasks have zero or more actions that can be performed by the user when they
    receive a task.
    
    :member title: The title of the action, this will appear as a menu option.
    :member confirmMessage: This is the message that will be shown to confirm the action.
    :member actionedPayload: This payload will be delivered locally on Peek Server
        When the action is performed on the user device.

    """
    __tupleType__ = inboxTuplePrefix + 'TaskAction'
    __tablename__ = 'TaskAction'

    id = Column(Integer, primary_key=True, autoincrement=True)
    taskId = Column(Integer,
                    ForeignKey("Task.id", ondelete="CASCADE"),
                    nullable=False)
    task = relationship("Task", uselist=False)

    title = Column(String)
    confirmMessage = Column(String)
    onActionPayloadEnvelope = Column(PeekLargeBinary)

    __table_args__ = (Index("idx_TaskAction_taskId", taskId, unique=False), )
Esempio n. 21
0
class WorkflowTemplate(db.Model):
    __tablename__ = 'template_v2'
    __table_args__ = (UniqueConstraint('name', name='uniq_name'),
                      Index('idx_group_alias', 'group_alias'), {
                          'comment': 'workflow template',
                          'mysql_engine': 'innodb',
                          'mysql_charset': 'utf8mb4',
                      })
    id = db.Column(db.Integer, primary_key=True, comment='id')
    name = db.Column(db.String(255), comment='name')
    comment = db.Column('cmt',
                        db.String(255),
                        key='comment',
                        comment='comment')
    group_alias = db.Column(db.String(255),
                            nullable=False,
                            comment='group_alias')
    config = db.Column(db.LargeBinary(), nullable=False, comment='config')
    is_left = db.Column(db.Boolean, comment='is_left')

    def set_config(self, proto):
        self.config = proto.SerializeToString()

    def get_config(self):
        proto = workflow_definition_pb2.WorkflowDefinition()
        proto.ParseFromString(self.config)
        return proto
Esempio n. 22
0
class LocationIndexCompilerQueue(Tuple, DeclarativeBase,
                                 ACIProcessorQueueTupleABC):
    __tablename__ = 'LocationIndexCompilerQueue'
    __tupleType__ = diagramTuplePrefix + __tablename__

    id = Column(BigInteger, primary_key=True, autoincrement=True)

    indexBucket = Column(String(100), primary_key=True)
    modelSetId = Column(Integer,
                        ForeignKey('ModelSet.id', ondelete='CASCADE'),
                        primary_key=True)

    __table_args__ = (
        Index("idx_LICompQueue_modelSetId_indexBucket", modelSetId, indexBucket,
              unique=False),
    )

    # noinspection PyUnresolvedReferences
    @classmethod
    def sqlCoreLoad(cls, row):
        return LocationIndexCompilerQueue(id=row.id, modelSetId=row.modelSetId,
                                          indexBucket=row.indexBucket)

    @property
    def ckiUniqueKey(self):
        return self.indexBucket
Esempio n. 23
0
class ReportUnknownPackage(GenericTable):
    __tablename__ = "reportunknownpackages"
    __table_args__ = (
        UniqueConstraint('report_id', 'type', 'name', 'epoch',
                         'version', 'release',
                         'arch_id'),
    )

    id = Column(Integer, primary_key=True)
    report_id = Column(Integer, ForeignKey("{0}.id".format(Report.__tablename__), ondelete="CASCADE"),
                       nullable=False)
    type = Column(Enum("CRASHED", "RELATED", "SELINUX_POLICY", name="reportpackage_type"))
    name = Column(String(256), nullable=False, index=True)
    epoch = Column(Integer, nullable=False)
    version = Column(String(64), nullable=False)
    release = Column(String(64), nullable=False)
    arch_id = Column(Integer, ForeignKey("{0}.id".format(Arch.__tablename__)), nullable=False)
    count = Column(Integer, nullable=False)
    report = relationship(Report, backref="unknown_packages")
    arch = relationship(Arch, primaryjoin="Arch.id==ReportUnknownPackage.arch_id")
    semver = Column(Semver, nullable=False)  # semantic version
    semrel = Column(Semver, nullable=False)  # semantic release
    Index("ix_reportunknownpackages_semver_semrel", semver, semrel)

    def nvr(self):
        return "{0}-{1}-{2}".format(self.name, self.version, self.release)

    def nevr(self):
        if not self.epoch:
            return self.nvr()
        return "{0}-{1}:{2}-{3}".format(self.name, self.epoch, self.version, self.release)

    def evr(self):
        return "{0}:{1}-{2}".format(self.epoch, self.version, self.release)
Esempio n. 24
0
class ExtendedIntegerSequencedRecord(Base):
    __tablename__ = 'extended_integer_sequenced_items'

    id = Column(BigInteger().with_variant(Integer, "sqlite"), primary_key=True)

    # Sequence ID (e.g. an entity or aggregate ID).
    sequence_id = Column(UUIDType(), nullable=False)

    # Position (index) of item in sequence.
    position = Column(BigInteger(), nullable=False)

    # Topic of the item (e.g. path to domain event class).
    topic = Column(String(255), nullable=False)

    # State of the item (serialized dict, possibly encrypted).
    state = Column(Text())

    # Timestamp of the event.
    timestamp = Column(DECIMAL(24, 6, 6), nullable=False)
    # timestamp = Column(DECIMAL(27, 9, 9), nullable=False)

    # Type of the event (class name).
    event_type = Column(String(255))

    __table_args__ = (Index('integer_sequenced_items_index',
                            'sequence_id',
                            'position',
                            unique=True), )
Esempio n. 25
0
    def createTable(self, entity):
        '''
        Add the given entity table to schema.

        Arguments:
            entity: The SQLAlchemy entity object

        Returns:
            sqlalchemy.sql.schema.Table: The SQLAlchemy table object
        '''
        table = entity.__table__
        table._data = []
        table._sorted_indexes = []

        # Workaround to render table indexes in the order they were declared
        table.indexes = set()

        for column in table.columns:
            if column.index:
                table._sorted_indexes.append(
                    Index(None, column, unique=bool(column.unique)))

        self.tables.append(table)

        return table
Esempio n. 26
0
class LiveDbItem(Tuple, DeclarativeBase):
    __tupleTypeShort__ = 'LDK'
    __tablename__ = 'LiveDbItem'
    __tupleType__ = livedbTuplePrefix + __tablename__

    NUMBER_VALUE = 0
    STRING_VALUE = 1
    COLOR = 2
    LINE_WIDTH = 3
    LINE_STYLE = 4
    GROUP_PTR = 5

    id_seq = Sequence('LiveDbItem_id_seq',
                      metadata=DeclarativeBase.metadata,
                      schema=DeclarativeBase.metadata.schema)
    id = Column(Integer, id_seq, server_default=id_seq.next_value(),
                primary_key=True, autoincrement=False)

    modelSetId = Column(Integer, ForeignKey('LiveDbModelSet.id', ondelete='CASCADE'),
                        doc=JSON_EXCLUDE, nullable=False)
    modelSet = relationship(LiveDbModelSet)

    # comment="The unique reference of the value we want from the live db"
    key = Column(String, nullable=False)

    # comment="The last value from the source"
    rawValue = Column(String)

    # comment="The PEEK value, converted to PEEK IDs if required (Color for example)"
    displayValue = Column(String)

    # comment="The type of data this value represents"
    dataType = Column(Integer, nullable=False)

    importHash = Column(String)

    # Store custom props for this link
    propsJson = Column(String)

    __table_args__ = (
        Index("idx_LiveDbDKey_importHash", importHash, unique=False),
        Index("idx_LiveDbDKey_modelSet_key", modelSetId, key, unique=True),
    )
Esempio n. 27
0
class LocationIndex(Tuple, DeclarativeBase):
    __tablename__ = 'LocationIndex'
    __tupleType__ = diagramTuplePrefix + __tablename__

    indexBucket = Column(String(100), primary_key=True)
    dispId = Column(BigInteger,
                    ForeignKey('DispBase.id', ondelete='CASCADE'),
                    primary_key=True)

    disp = relationship(DispBase)

    modelSetId = Column(Integer, ForeignKey('ModelSet.id'), nullable=False)
    modelSet = relationship(ModelSet)

    __table_args__ = (
        Index("idx_LocationIndex_indexBucket", indexBucket, unique=False),
        Index("idx_LocationIndex_dispId", dispId, unique=False),
        Index("idx_LocationIndex_modelSetId", modelSetId, unique=False),
    )
Esempio n. 28
0
class Project(db.Model):
    __tablename__ = 'projects_v2'
    __table_args__ = (UniqueConstraint('name', name='idx_name'),
                      Index('idx_token', 'token'), {
                          'comment': 'webconsole projects',
                          'mysql_engine': 'innodb',
                          'mysql_charset': 'utf8mb4',
                      })
    id = db.Column(db.Integer,
                   primary_key=True,
                   autoincrement=True,
                   comment='id')
    name = db.Column(db.String(255), comment='name')
    token = db.Column(db.String(64), comment='token')
    config = db.Column(db.LargeBinary(), comment='config')
    certificate = db.Column(db.LargeBinary(), comment='certificate')
    comment = db.Column('cmt', db.Text(), key='comment', comment='comment')
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now(),
                           comment='created at')
    updated_at = db.Column(db.DateTime(timezone=True),
                           onupdate=func.now(),
                           server_default=func.now(),
                           comment='updated at')
    deleted_at = db.Column(db.DateTime(timezone=True), comment='deleted at')

    def set_config(self, proto):
        self.config = proto.SerializeToString()

    def get_config(self):
        if self.config is None:
            return None
        proto = project_pb2.Project()
        proto.ParseFromString(self.config)
        return proto

    def set_certificate(self, proto):
        self.certificate = proto.SerializeToString()

    def get_certificate(self):
        if self.certificate is None:
            return None
        proto = project_pb2.CertificateStorage()
        proto.ParseFromString(self.certificate)
        return proto

    def get_namespace(self):
        config = self.get_config()
        if config is not None:
            variables = self.get_config().variables
            for variable in variables:
                if variable.name == 'NAMESPACE':
                    return variable.value
        return 'default'
Esempio n. 29
0
class GridKeyIndex(Tuple, DeclarativeBase):
    __tablename__ = 'GridKeyIndex'
    __tupleType__ = diagramTuplePrefix + __tablename__

    gridKey = Column(String(30), primary_key=True)
    dispId = Column(BigInteger,
                    ForeignKey('DispBase.id', ondelete='CASCADE'),
                    primary_key=True)

    disp = relationship(DispBase)

    coordSetId = Column(Integer, ForeignKey('ModelCoordSet.id', ondelete="CASCADE"),
                        nullable=False)
    coordSet = relationship(ModelCoordSet)

    __table_args__ = (
        Index("idx_GridKeyIndex_gridKey", gridKey, unique=False),
        Index("idx_GridKeyIndex_dispId", dispId, unique=False),
        Index("idx_GridKeyIndex_coordSetId", coordSetId, unique=False),
    )
Esempio n. 30
0
class VoiceChatEvent(Event, BaseModel):
    __tablename__ = 'vc_events'

    channel_id = Column(BigInteger, nullable=False, index=True)

    __table_args__ = (Index('cix_vc_events', "user_id", "channel_id",
                            "created_at"), )

    def __repr__(self):
        s = super().__repr__()[:-2]
        f = ",channel_id={0.channel_id!r}".format(self)
        return s + f + ")>"