예제 #1
0
class Usage(db.Model):
    """Quota and Usage"""
    id = id_column()
    soft = db.Column(db.BigInteger, nullable=False)
    hard = db.Column(db.BigInteger, nullable=False)
    usage = db.Column(db.BigInteger, nullable=False)
    owner_id = db.Column(None,
                         db.ForeignKey("owner.id"),
                         nullable=False,
                         index=True)
    snapshot_id = db.Column(None,
                            db.ForeignKey("snapshot.id"),
                            nullable=False,
                            index=True)
    filesystem_id = db.Column(None,
                              db.ForeignKey("filesystem.id"),
                              nullable=False,
                              index=True)

    def json(self):
        """Jsonify"""

        return {
            "owner": self.owner_id,
            "filesystem": self.filesystem_id,
            "snapshot": self.snapshot_id,
            "soft": self.soft,
            "hard": self.hard,
            "usage": self.usage
        }
예제 #2
0
class Job(db.Model):
    """HPC Job"""
    id = id_column()
    job_id = db.Column(db.String(64), unique=True, nullable=False)
    owner_id = db.Column(None, db.ForeignKey("owner.id"))
    queue_id = db.Column(None, db.ForeignKey("queue.id"))
    name = db.Column(db.String(256))
    start = db.Column(db.Integer)
    end = db.Column(db.Integer)
    cores = db.Column(db.Integer)
    cpu_seconds = db.Column(db.Integer)
    allocations = db.relationship("Allocation", backref="job")

    def json(self):
        """Jsonify"""
        return {
            "id": self.id,
            "job_id": self.job_id,
            "name": self.name,
            "owner": self.owner_id,
            "queue": self.queue_id,
            "start": self.start,
            "end": self.end,
            "cores": self.cores,
            "cpu_seconds": self.cpu_seconds
        }
예제 #3
0
class Account(db.Model):
    id = id_column()
    openstack_id = db.Column(db.String(64), unique=True, nullable=False)
    account_snapshots = db.relationship("Usage", backref="account")

    def json(self):
        """JSON"""
        return to_dict(self, ["openstack_id"])
예제 #4
0
class AvailabilityZone(db.Model):
    id = id_column()
    name = db.Column(db.String(64), unique=True, nullable=False)
    volumes = db.relationship("Volume", backref="availability_zone")

    def json(self):
        """JSON"""
        return to_dict(self, ["name"])
예제 #5
0
class VolumeStatus(db.Model):
    id = id_column()
    name = db.Column(db.String(64), nullable=False, unique=True)
    states = db.relationship("VolumeState", backref="status")

    def json(self):
        """JSON"""
        return to_dict(self, ["name"])
예제 #6
0
class Snapshot(db.Model):
    id = id_column()
    ts = db.Column(db.Integer, unique=True, nullable=False)
    account_snapshots = db.relationship("Usage", backref="snapshot")

    def json(self):
        """JSON"""
        return to_dict(self, ["ts"])
예제 #7
0
class Host(db.Model):
    """HPC Host"""
    id = id_column()
    name = db.Column(db.String(64), unique=True, nullable=False)
    allocations = db.relationship("Allocation", backref="host")

    def json(self):
        """Jsonify"""
        return {"id": self.id, "name": self.name}
예제 #8
0
class Snapshot(db.Model):
    """Storage Snapshot"""
    id = id_column()
    ts = db.Column(db.Integer, nullable=False)
    usage = db.relationship("Usage", backref="snapshot")

    def json(self):
        """JSON"""
        return to_dict(self, ["ts"])
예제 #9
0
class Owner(db.Model):
    """Storage Owner"""
    id = id_column()
    name = db.Column(db.String(64), unique=True, nullable=False)
    usage = db.relationship("Usage", backref="owner")

    def json(self):
        """Jsonify"""
        return {"id": self.id, "name": self.name}
예제 #10
0
class Host(db.Model):
    """Storage Host"""
    id = id_column()
    name = db.Column(db.String(256), unique=True, nullable=False)
    filesystems = db.relationship("Filesystem", backref="host")

    def json(self):
        """JSON"""
        return to_dict(self, ["name"])
예제 #11
0
class Project(db.Model):
    """Storage Group/Project"""
    id = id_column()
    name = db.Column(db.String(64), unique=True, nullable=False)
    usage = db.relationship("Usage", backref="project")

    def json(self):
        """JSON"""
        return to_dict(self, ["name"])
예제 #12
0
class Email(db.Model):
    """Email Data Model"""
    id = id_column()
    address = db.Column(db.String(128), index=True, nullable=False)
    person = db.relationship("PersonEmail", backref="email")

    def json(self):
        """Jsonify"""
        return {"id": self.id, "address": self.address}
예제 #13
0
class Username(db.Model):
    """Username Data Model"""
    id = id_column()
    username = db.Column(db.String(64), index=True, nullable=False)
    person = db.relationship("PersonUsername", backref="username")

    def json(self):
        """Jsonify"""
        return {"id": self.id, "username": self.username}
예제 #14
0
class Queue(db.Model):
    """HPC Queue"""
    id = id_column()
    name = db.Column(db.String(64), unique=True, nullable=False)
    jobs = db.relationship("Job", backref="queue")

    def json(self):
        """Jsonify"""
        return {"id": self.id, "name": self.name}
예제 #15
0
class EntityName(db.Model):
    """Entity Name"""
    id = id_column()
    name = db.Column(db.String(256), unique=True, nullable=False)
    mappings = db.relationship("EntityNameMapping", backref="name")

    def json(self):
        """JSON"""
        return to_dict(self, ["name"])
예제 #16
0
class Snapshot(db.Model):
    """A snapshot of the world."""
    id = id_column()
    ts = db.Column(db.Integer, unique=True, nullable=False)
    states = db.relationship("VolumeState", backref="snapshot")
    attachments = db.relationship("VolumeAttachment", backref="snapshot")

    def json(self):
        """JSON"""
        return to_dict(self, ["ts"])
예제 #17
0
class Allocation(db.Model):
    """Storage Allocation"""
    id = id_column()
    allocation = db.Column(db.Integer, unique=True, nullable=False)
    tenants = db.relationship("Tenant", backref="allocation")
    namespaces = db.relationship("Namespace", backref="allocation")

    def json(self):
        """JSON"""
        return to_dict(self, ["allocation"])
예제 #18
0
class Host(db.Model):
    """Storage Host"""
    id = id_column()
    name = db.Column(db.String(256), unique=True, nullable=False)
    snapshots = db.relationship("Snapshot", backref="host")
    filesystems = db.relationship("Filesystem", backref="host")

    def json(self):
        """Jsonify"""
        return {"id": self.id, "name": self.name}
예제 #19
0
class Filesystem(db.Model):
    """Filesystem"""
    id = id_column()
    name = db.Column(db.String(256), unique=True, nullable=False)
    snapshots = db.relationship("Snapshot", backref="filesystem")
    host_id = db.Column(None, db.ForeignKey("host.id"), nullable=False)

    def json(self):
        """JSON"""
        return to_dict(self, ["name", "host_id"])
예제 #20
0
class EntityRelationship(db.Model):
    """Entity Relationship"""
    id = id_column()
    valid1_id = db.Column(None, db.ForeignKey("entity_type.id"))
    valid2_id = db.Column(None, db.ForeignKey("entity_type.id"))
    name = db.Column(db.String(64), unique=True, nullable=False)

    def json(self):
        """JSON"""
        return to_dict(self, ["name", "valid1_id", "valid2_id"])
예제 #21
0
class Filesystem(db.Model):
    """Filesystem"""
    id = id_column()
    name = db.Column(db.String(256), unique=True, nullable=False)
    virtual_volumes = db.relationship("VirtualVolume", backref="filesystem")
    usage = db.relationship("FilesystemUsage", backref="filesystem")

    def json(self):
        """JSON"""
        return to_dict(self, ["name"])
예제 #22
0
class Owner(db.Model):
    """Storage Account/Owner"""
    id = id_column()
    name = db.Column(db.String(64), unique=True, nullable=False)
    virtual_volume_usage = db.relationship("VirtualVolumeUsage",
                                           backref="owner")

    def json(self):
        """JSON"""
        return to_dict(self, ["name"])
예제 #23
0
class Tenant(db.Model):
    """HCP Tenant"""
    id = id_column()
    name = db.Column(db.String(256), unique=True, nullable=False)
    namespaces = db.relationship("Namespace", backref="tenant")
    allocation_id = db.Column(None, db.ForeignKey("allocation.id"))

    def json(self):
        """JSON"""
        return to_dict(self, ["name", "allocation_id"])
예제 #24
0
class EntityStringAttribute(db.Model):
    """Entity Attribute"""
    id = id_column()
    name = db.Column(db.String(64), unique=True, nullable=False)
    type_id = db.Column(None, db.ForeignKey("entity_type.id"), nullable=False)
    mappings = db.relationship("EntityStringAttributeMapping",
                               backref="attribute")

    def json(self):
        """JSON"""
        return to_dict(self, ["name", "type_id"])
예제 #25
0
class Snapshot(db.Model):
    """Storage Snapshot"""
    id = id_column()
    ts = db.Column(db.Integer, nullable=False, unique=True)
    filesystem_usage = db.relationship("FilesystemUsage", backref="snapshot")
    virtual_volume_usage = db.relationship("VirtualVolumeUsage",
                                           backref="snapshot")

    def json(self):
        """JSON"""
        return to_dict(self, ["ts"])
예제 #26
0
class VolumeAttachment(db.Model):
    id = id_column()
    instance = db.Column(db.String(64), nullable=False)
    volume_id = db.Column(None, db.ForeignKey("volume.id"), primary_key=True)
    snapshot_id = db.Column(None,
                            db.ForeignKey("snapshot.id"),
                            primary_key=True)

    def json(self):
        """JSON"""
        return to_dict(self, ["instance", "volume_id", "snapshot_id"])
예제 #27
0
class Filesystem(db.Model):
    """Filesystem"""
    id = id_column()
    name = db.Column(db.String(256), nullable=False)
    usage = db.relationship("Usage", backref="filesystem")
    host_id = db.Column(None, db.ForeignKey("host.id"), nullable=False)
    __table_args__ = (UniqueConstraint("host_id", "name"), )

    def json(self):
        """Jsonify"""

        return {"id": self.id, "name": self.name, "host": self.host_id}
예제 #28
0
class Snapshot(db.Model):
    """Snapshot Data Model"""
    id = id_column()
    ts = db.Column(db.Integer, nullable=False)

    person_email = db.relationship("PersonEmail", backref="snapshot")
    person_username = db.relationship("PersonUsername", backref="snapshot")
    memberships = db.relationship("Membership", backref="snapshot")

    def json(self):
        """Jsonify"""
        return {"id": self.id, "ts": self.ts}
예제 #29
0
class VolumeSnapshot(db.Model):
    id = id_column()
    openstack_id = db.Column(db.String(64), nullable=False, unique=True)
    size = db.Column(db.Integer, nullable=False)
    name = db.Column(db.String(128))
    description = db.Column(db.String(512))
    source = db.Column(db.String(64), nullable=False)

    def json(self):
        """JSON"""
        return to_dict(self, ["openstack_id", "name", "size", "description",
                              "source"])
예제 #30
0
class EntityNameMapping(db.Model):
    """Entity-Name Mapping"""
    id = id_column()
    entity_id = db.Column(None, db.ForeignKey("entity.id"), nullable=False)
    name_id = db.Column(None, db.ForeignKey("entity_name.id"), nullable=False)
    start_time = db.Column(db.Integer)
    end_time = db.Column(db.Integer)

    def json(self):
        """JSON"""
        return to_dict(self,
                       ["entity_id", "name_id", "start_time", "end_time"])