示例#1
0
class PatchComponent(db.Model):
    __tablename__ = 'patch_components'

    id = db.Column(db.Integer, primary_key=True)

    name = db.Column(db.String)
    version = db.Column(db.String)

    patch_id = db.Column(db.Integer, db.ForeignKey('patches.id'))
    patch = db.relationship('Patch', back_populates='components')

    criteria = db.relationship(
        "PatchCompontentCriteria",
        back_populates="patch_component",
        cascade='all, delete, delete-orphan')

    @property
    def serialize(self):
        return {
            'name': self.name,
            'version': self.version,
            'criteria': [
                criteria.serialize for criteria in self.criteria
            ]
        }
示例#2
0
class PatchCriteria(db.Model):
    """Association table for linking sets of criteria to a patch."""
    __tablename__ = 'patch_criteria'

    patch_id = db.Column(db.Integer,
                         db.ForeignKey('patches.id'),
                         primary_key=True)
    criteria_id = db.Column(db.Integer,
                            db.ForeignKey('criteria.id'),
                            primary_key=True)

    index = db.Column(db.Integer)

    patch = db.relationship('Patch', back_populates='capabilities')

    criteria = db.relationship('Criteria', back_populates='patch')

    @property
    def serialize(self):
        return self.criteria.serialize
示例#3
0
class Patch(db.Model):
    __tablename__ = 'patches'

    id = db.Column(db.Integer, primary_key=True)

    version = db.Column(db.String)
    standalone = db.Column(db.Boolean, default=True)
    minimum_operating_system = db.Column(db.String)
    reboot = db.Column(db.Boolean, default=False)

    release_date = db.Column(db.DateTime)

    software_title_id = db.Column(
        db.Integer, db.ForeignKey('software_titles.id'))

    software_title = db.relationship(
        'SoftwareTitle', back_populates='patches')

    kill_apps = db.relationship(
        "PatchKillApps",
        back_populates="patch",
        cascade='all, delete')

    components = db.relationship(
        "PatchComponent",
        back_populates="patch",
        cascade='all, delete')

    capabilities = db.relationship(
        "PatchCriteria",
        back_populates="patch",
        cascade='all, delete, delete-orphan')

    dependencies = None  # Not used

    @property
    def serialize(self):
        return {
            'version': self.version,
            'releaseDate': datetime_to_iso(self.release_date),
            'standalone': self.standalone,
            'minimumOperatingSystem': self.minimum_operating_system,
            'reboot': self.reboot,
            'killApps': [
                killApp.serialize for killApp in self.kill_apps
            ],
            'components': [
                component.serialize for component in self.components
            ],
            'capabilities': [
                criteria.serialize for criteria in self.capabilities
            ]
            # 'dependencies': []
        }
示例#4
0
class SoftwareTitleCriteria(db.Model):
    """Association table for linking sets of criteria to a software title."""
    __tablename__ = 'software_title_criteria'

    title_id = db.Column(
        db.Integer, db.ForeignKey('software_titles.id'), primary_key=True)
    criteria_id = db.Column(
        db.Integer, db.ForeignKey('criteria.id'), primary_key=True)

    index = db.Column(db.Integer)

    software_title = db.relationship(
        'SoftwareTitle', back_populates='requirements')

    criteria = db.relationship(
        'Criteria', back_populates='software_title')

    @property
    def serialize(self):
        data = self.criteria.serialize
        data['index'] = self.index
        return data
示例#5
0
class PatchKillApps(db.Model):
    __tablename__ = 'patch_kill_apps'

    id = db.Column(db.Integer, primary_key=True)

    bundleId = db.Column(db.String(255))
    appName = db.Column(db.String(255))

    patch_id = db.Column(db.Integer, db.ForeignKey('patches.id'))

    patch = db.relationship('Patch', back_populates='kill_apps')

    @property
    def serialize(self):
        return {'bundleId': self.bundleId, 'appName': self.appName}
示例#6
0
class ExtensionAttribute(db.Model):
    __tablename__ = 'extension_attributes'

    id = db.Column(db.Integer, primary_key=True)

    key = db.Column(db.String(255))
    value = db.Column(db.Text)
    display_name = db.Column(db.String(255))

    software_title_id = db.Column(db.Integer,
                                  db.ForeignKey('software_titles.id'))

    software_title = db.relationship('SoftwareTitle',
                                     back_populates='extension_attributes')

    @property
    def serialize(self):
        return {
            'key': self.key,
            'value': self.value,
            'displayName': self.display_name
        }