ansible/files/hotfix/autocloud/models.py
Sayan Chowdhury 78051dc038 Hotfix for the Autocloud fix
Signed-off-by: Sayan Chowdhury <sayanchowdhury@fedoraproject.org>
2017-03-29 12:56:30 +00:00

122 lines
3.6 KiB
Python

# -*- coding: utf-8 -*-
import datetime
from sqlalchemy import Column, Integer, String, DateTime, Text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import scoped_session
from sqlalchemy_utils import ChoiceType
import autocloud
Base = declarative_base()
class JobDetails(Base):
__tablename__ = 'job_details'
STATUS_TYPES = (
('s', 'Success'),
('f', 'Failed'),
('a', 'Aborted'),
('r', 'Running'),
('q', 'Queued')
)
IMAGE_FAMILY_TYPES = (
('b', 'Base'),
('a', 'Atomic')
)
ARCH_TYPES = (
('i386', 'i386'),
('x86_64', 'x86_64')
)
id = Column(Integer, primary_key=True)
taskid = Column(String(255), nullable=False)
status = Column(ChoiceType(STATUS_TYPES))
family = Column(ChoiceType(IMAGE_FAMILY_TYPES))
arch = Column(ChoiceType(ARCH_TYPES))
release = Column(String(255))
output = Column(Text, nullable=False, default='')
created_on = Column(DateTime, default=datetime.datetime.utcnow)
last_updated = Column(DateTime, default=datetime.datetime.utcnow)
user = Column(String(255), nullable=False)
class ComposeDetails(Base):
__tablename__ = 'compose_details'
STATUS_TYPES = (
('c', 'Complete'),
('q', 'Queued'),
('r', 'Running'),
)
id = Column(Integer, primary_key=True)
date = Column(DateTime, nullable=False)
compose_id = Column(String(255), nullable=False, unique=True)
respin = Column(Integer, nullable=False)
type = Column(String(255), nullable=False)
passed = Column(Integer, nullable=True, default=0)
failed = Column(Integer, nullable=True, default=0)
status = Column(ChoiceType(STATUS_TYPES))
created_on = Column(DateTime, default=datetime.datetime.utcnow)
last_updated = Column(DateTime, default=datetime.datetime.utcnow)
location = Column(String(255), nullable=False)
class ComposeJobDetails(Base):
__tablename__ = 'compose_job_details'
STATUS_TYPES = (
('s', 'Success'),
('f', 'Failed'),
('a', 'Aborted'),
('r', 'Running'),
('q', 'Queued')
)
IMAGE_FAMILY_TYPES = (
('b', u'Base'),
('a', u'Atomic')
)
ARCH_TYPES = (
('i386', 'i386'),
('x86_64', 'x86_64'),
('aarch64', 'aarch64')
)
id = Column(Integer, primary_key=True)
arch = Column(ChoiceType(ARCH_TYPES))
compose_id = Column(String(255), nullable=False)
created_on = Column(DateTime, default=datetime.datetime.utcnow)
family = Column(ChoiceType(IMAGE_FAMILY_TYPES))
image_url = Column(String(255), nullable=False)
last_updated = Column(DateTime, default=datetime.datetime.utcnow)
output = Column(Text, nullable=False, default='')
release = Column(String(255))
status = Column(ChoiceType(STATUS_TYPES))
subvariant = Column(String(255), nullable=False)
user = Column(String(255), nullable=False)
image_format = Column(String(255), nullable=False)
image_type = Column(String(255), nullable=False)
image_name = Column(String(255), nullable=False)
def create_tables():
# Create an engine that stores data in the local directory
engine = create_engine(autocloud.SQLALCHEMY_URI)
# Create all tables in the engine. This is equivalent to "Create Table"
# statements in raw SQL.
Base.metadata.create_all(engine)
def init_model():
engine = create_engine(autocloud.SQLALCHEMY_URI)
scopedsession = scoped_session(sessionmaker(bind=engine))
return scopedsession