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 }
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 }
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"])
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"])
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"])
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"])
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}
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"])
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}
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"])
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"])
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}
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}
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}
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"])
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"])
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"])
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}
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"])
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"])
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"])
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"])
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"])
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"])
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"])
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"])
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}
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}
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"])
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"])