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.
84 lines
3.1 KiB
Python
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()
|