openSUSE-release-tools/abichecker/abichecker_dbmodel.py
Jimmy Berry 6069245350 Remove SUSE copyright, warranty, and license headers.
Distinct copyrights were left as I do not wish to track down commit
history to ensure it properly documents the copyright holders. Also left
non-GPLv2 licenses and left bs_copy untouched as a mirror from OBS.

Already have a mix of with and without headers and even OBS does not place
on majority of files. If SUSE lawyers have an issue it will come up in
legal review for Factory.
2018-08-23 19:18:06 -05:00

84 lines
3.1 KiB
Python

#!/usr/bin/python
import os
import sys
from datetime import datetime
from sqlalchemy import Column, ForeignKey, Integer, String, Boolean, DateTime, Text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from abichecker_common import DATADIR
Base = declarative_base()
class Request(Base):
__tablename__ = 'request'
id = Column(Integer, primary_key=True)
state = Column(String(32), nullable=False)
result = Column(String(32), nullable=True)
t_created = Column(DateTime, default=datetime.now)
t_updated = Column(DateTime, default=datetime.now, onupdate=datetime.now)
class Log(Base):
__tablename__ = 'log'
id = Column(Integer, primary_key=True)
request_id = Column(Integer, ForeignKey('request.id'), nullable=False)
request = relationship(Request, backref=backref('log', order_by=id, cascade="all, delete-orphan"))
line = Column(Text(), nullable=True)
t_created = Column(DateTime, default=datetime.now)
class ABICheck(Base):
__tablename__ = 'abicheck'
id = Column(Integer, primary_key=True)
request_id = Column(Integer, ForeignKey('request.id'), nullable=False)
request = relationship(Request, backref=backref('abichecks', order_by=id, cascade="all, delete-orphan"))
src_project = Column(String(255), nullable=False)
src_package = Column(String(255), nullable=False)
src_rev = Column(String(255), nullable=True)
dst_project = Column(String(255), nullable=False)
dst_package = Column(String(255), nullable=False)
result = Column(Boolean(), nullable = True)
t_created = Column(DateTime, default=datetime.now)
t_updated = Column(DateTime, default=datetime.now, onupdate=datetime.now)
class LibReport(Base):
__tablename__ = 'libreport'
id = Column(Integer, primary_key=True)
submission_id = Column(Integer, ForeignKey('abicheck.id'), nullable=False)
abicheck = relationship(ABICheck, backref=backref('reports', order_by=id, cascade="all, delete-orphan"))
src_repo = Column(String(255), nullable=False)
src_lib = Column(String(255), nullable=False)
dst_repo = Column(String(255), nullable=False)
dst_lib = Column(String(255), nullable=False)
arch = Column(String(255), nullable=False)
htmlreport = Column(String(255), nullable=False)
result = Column(Boolean(), nullable = False)
t_created = Column(DateTime, default=datetime.now)
t_updated = Column(DateTime, default=datetime.now, onupdate=datetime.now)
class Config(Base):
__tablename__ = 'config'
id = Column(Integer, primary_key=True)
key = Column(String(32), nullable=False, unique=True)
value = Column(String(255), nullable=False)
t_created = Column(DateTime, default=datetime.now)
t_updated = Column(DateTime, default=datetime.now, onupdate=datetime.now)
def db_engine():
return create_engine('sqlite:///%s/abi-checker.db'%DATADIR)
def db_session():
engine = db_engine()
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
return DBSession()