Add database fields for OVA storage
This commit is contained in:
		| @@ -0,0 +1,76 @@ | |||||||
|  | """PVC version 0.7 | ||||||
|  |  | ||||||
|  | Revision ID: 88c8514684f7 | ||||||
|  | Revises: 2d1daa722a0a | ||||||
|  | Create Date: 2020-02-16 19:49:50.126265 | ||||||
|  |  | ||||||
|  | """ | ||||||
|  | from alembic import op | ||||||
|  | import sqlalchemy as sa | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # revision identifiers, used by Alembic. | ||||||
|  | revision = '88c8514684f7' | ||||||
|  | down_revision = '2d1daa722a0a' | ||||||
|  | branch_labels = None | ||||||
|  | depends_on = None | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def upgrade(): | ||||||
|  |     # ### commands auto generated by Alembic - please adjust! ### | ||||||
|  |     op.create_table('ova', | ||||||
|  |     sa.Column('id', sa.Integer(), nullable=False), | ||||||
|  |     sa.Column('name', sa.Text(), nullable=False), | ||||||
|  |     sa.Column('ovf', sa.Text(), nullable=False), | ||||||
|  |     sa.PrimaryKeyConstraint('id'), | ||||||
|  |     sa.UniqueConstraint('name') | ||||||
|  |     ) | ||||||
|  |     op.create_table('ova_volume', | ||||||
|  |     sa.Column('id', sa.Integer(), nullable=False), | ||||||
|  |     sa.Column('ova', sa.Integer(), nullable=False), | ||||||
|  |     sa.Column('pool', sa.Text(), nullable=False), | ||||||
|  |     sa.Column('volume_name', sa.Text(), nullable=False), | ||||||
|  |     sa.Column('volume_format', sa.Text(), nullable=False), | ||||||
|  |     sa.Column('disk_id', sa.Text(), nullable=False), | ||||||
|  |     sa.Column('disk_size_gb', sa.Integer(), nullable=False), | ||||||
|  |     sa.ForeignKeyConstraint(['ova'], ['ova.id'], ), | ||||||
|  |     sa.PrimaryKeyConstraint('id') | ||||||
|  |     ) | ||||||
|  |     op.alter_column('network', 'network_template', | ||||||
|  |                existing_type=sa.INTEGER(), | ||||||
|  |                nullable=False) | ||||||
|  |     op.add_column('network_template', sa.Column('ova', sa.Integer(), nullable=True)) | ||||||
|  |     op.create_foreign_key(None, 'network_template', 'ova', ['ova'], ['id']) | ||||||
|  |     op.add_column('profile', sa.Column('ova', sa.Integer(), nullable=True)) | ||||||
|  |     op.add_column('profile', sa.Column('profile_type', sa.Text(), nullable=False)) | ||||||
|  |     op.create_foreign_key(None, 'profile', 'ova', ['ova'], ['id']) | ||||||
|  |     op.alter_column('storage', 'storage_template', | ||||||
|  |                existing_type=sa.INTEGER(), | ||||||
|  |                nullable=False) | ||||||
|  |     op.add_column('storage_template', sa.Column('ova', sa.Integer(), nullable=True)) | ||||||
|  |     op.create_foreign_key(None, 'storage_template', 'ova', ['ova'], ['id']) | ||||||
|  |     op.add_column('system_template', sa.Column('ova', sa.Integer(), nullable=True)) | ||||||
|  |     op.create_foreign_key(None, 'system_template', 'ova', ['ova'], ['id']) | ||||||
|  |     # ### end Alembic commands ### | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def downgrade(): | ||||||
|  |     # ### commands auto generated by Alembic - please adjust! ### | ||||||
|  |     op.drop_constraint(None, 'system_template', type_='foreignkey') | ||||||
|  |     op.drop_column('system_template', 'ova') | ||||||
|  |     op.drop_constraint(None, 'storage_template', type_='foreignkey') | ||||||
|  |     op.drop_column('storage_template', 'ova') | ||||||
|  |     op.alter_column('storage', 'storage_template', | ||||||
|  |                existing_type=sa.INTEGER(), | ||||||
|  |                nullable=True) | ||||||
|  |     op.drop_constraint(None, 'profile', type_='foreignkey') | ||||||
|  |     op.drop_column('profile', 'profile_type') | ||||||
|  |     op.drop_column('profile', 'ova') | ||||||
|  |     op.drop_constraint(None, 'network_template', type_='foreignkey') | ||||||
|  |     op.drop_column('network_template', 'ova') | ||||||
|  |     op.alter_column('network', 'network_template', | ||||||
|  |                existing_type=sa.INTEGER(), | ||||||
|  |                nullable=True) | ||||||
|  |     op.drop_table('ova_volume') | ||||||
|  |     op.drop_table('ova') | ||||||
|  |     # ### end Alembic commands ### | ||||||
| @@ -35,8 +35,9 @@ class DBSystemTemplate(db.Model): | |||||||
|     node_limit = db.Column(db.Text) |     node_limit = db.Column(db.Text) | ||||||
|     node_selector = db.Column(db.Text) |     node_selector = db.Column(db.Text) | ||||||
|     node_autostart = db.Column(db.Boolean, nullable=False) |     node_autostart = db.Column(db.Boolean, nullable=False) | ||||||
|  |     ova = db.Column(db.Integer, db.ForeignKey("ova.id"), nullable=True) | ||||||
|  |  | ||||||
|     def __init__(self, name, vcpu_count, vram_mb, serial, vnc, vnc_bind, node_limit, node_selector, node_autostart): |     def __init__(self, name, vcpu_count, vram_mb, serial, vnc, vnc_bind, node_limit, node_selector, node_autostart, ova=None): | ||||||
|         self.name = name |         self.name = name | ||||||
|         self.vcpu_count = vcpu_count |         self.vcpu_count = vcpu_count | ||||||
|         self.vram_mb = vram_mb |         self.vram_mb = vram_mb | ||||||
| @@ -46,6 +47,7 @@ class DBSystemTemplate(db.Model): | |||||||
|         self.node_limit = node_limit |         self.node_limit = node_limit | ||||||
|         self.node_selector = node_selector |         self.node_selector = node_selector | ||||||
|         self.node_autostart = node_autostart |         self.node_autostart = node_autostart | ||||||
|  |         self.ova = ova | ||||||
|  |  | ||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|         return '<id {}>'.format(self.id) |         return '<id {}>'.format(self.id) | ||||||
| @@ -56,10 +58,12 @@ class DBNetworkTemplate(db.Model): | |||||||
|     id = db.Column(db.Integer, primary_key=True) |     id = db.Column(db.Integer, primary_key=True) | ||||||
|     name = db.Column(db.Text, nullable=False, unique=True) |     name = db.Column(db.Text, nullable=False, unique=True) | ||||||
|     mac_template = db.Column(db.Text) |     mac_template = db.Column(db.Text) | ||||||
|  |     ova = db.Column(db.Integer, db.ForeignKey("ova.id"), nullable=True) | ||||||
|  |  | ||||||
|     def __init__(self, name, mac_template): |     def __init__(self, name, mac_template, ova=None): | ||||||
|         self.name = name |         self.name = name | ||||||
|         self.mac_template = mac_template |         self.mac_template = mac_template | ||||||
|  |         self.ova = ova | ||||||
|  |  | ||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|         return '<id {}>'.format(self.id) |         return '<id {}>'.format(self.id) | ||||||
| @@ -83,9 +87,11 @@ class DBStorageTemplate(db.Model): | |||||||
|  |  | ||||||
|     id = db.Column(db.Integer, primary_key=True) |     id = db.Column(db.Integer, primary_key=True) | ||||||
|     name = db.Column(db.Text, nullable=False, unique=True) |     name = db.Column(db.Text, nullable=False, unique=True) | ||||||
|  |     ova = db.Column(db.Integer, db.ForeignKey("ova.id"), nullable=True) | ||||||
|  |  | ||||||
|     def __init__(self, name): |     def __init__(self, name, ova=None): | ||||||
|         self.name = name |         self.name = name | ||||||
|  |         self.ova = ova | ||||||
|  |  | ||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|         return '<id {}>'.format(self.id) |         return '<id {}>'.format(self.id) | ||||||
| @@ -144,25 +150,65 @@ class DBScript(db.Model): | |||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|         return '<id {}>'.format(self.id) |         return '<id {}>'.format(self.id) | ||||||
|  |  | ||||||
|  | class DBOva(db.Model): | ||||||
|  |     __tablename__ = 'ova' | ||||||
|  |  | ||||||
|  |     id = db.Column(db.Integer, primary_key=True) | ||||||
|  |     name = db.Column(db.Text, nullable=False, unique=True) | ||||||
|  |     ovf = db.Column(db.Text, nullable=False) | ||||||
|  |  | ||||||
|  |     def __init__(self, name, ovf): | ||||||
|  |         self.name = name | ||||||
|  |         self.ovf = ovf | ||||||
|  |  | ||||||
|  |     def __repr__(self): | ||||||
|  |         return '<id {}>'.format(self.id) | ||||||
|  |  | ||||||
|  | class DBOvaVolume(db.Model): | ||||||
|  |     __tablename__ = 'ova_volume' | ||||||
|  |  | ||||||
|  |     id = db.Column(db.Integer, primary_key=True) | ||||||
|  |     ova = db.Column(db.Integer, db.ForeignKey("ova.id"), nullable=False) | ||||||
|  |     pool = db.Column(db.Text, nullable=False) | ||||||
|  |     volume_name = db.Column(db.Text, nullable=False) | ||||||
|  |     volume_format = db.Column(db.Text, nullable=False) | ||||||
|  |     disk_id = db.Column(db.Text, nullable=False) | ||||||
|  |     disk_size_gb = db.Column(db.Integer, nullable=False) | ||||||
|  |  | ||||||
|  |     def __init__(self, ova, pool, volume_name, volume_format, disk_id, disk_size_gb): | ||||||
|  |         self.ova = ova | ||||||
|  |         self.pool = pool | ||||||
|  |         self.volume_name = volume_name | ||||||
|  |         self.volume_format = volume_format | ||||||
|  |         self.disk_id = disk_id | ||||||
|  |         self.disk_size_gb = disk_size_gb | ||||||
|  |  | ||||||
|  |     def __repr__(self): | ||||||
|  |         return '<id {}>'.format(self.id) | ||||||
|  |  | ||||||
| class DBProfile(db.Model): | class DBProfile(db.Model): | ||||||
|     __tablename__ = 'profile' |     __tablename__ = 'profile' | ||||||
|  |  | ||||||
|     id = db.Column(db.Integer, primary_key=True) |     id = db.Column(db.Integer, primary_key=True) | ||||||
|     name = db.Column(db.Text, nullable=False, unique=True) |     name = db.Column(db.Text, nullable=False, unique=True) | ||||||
|  |     profile_type = db.Column(db.Text, nullable=False) | ||||||
|     system_template = db.Column(db.Integer, db.ForeignKey("system_template.id")) |     system_template = db.Column(db.Integer, db.ForeignKey("system_template.id")) | ||||||
|     network_template = db.Column(db.Integer, db.ForeignKey("network_template.id")) |     network_template = db.Column(db.Integer, db.ForeignKey("network_template.id")) | ||||||
|     storage_template = db.Column(db.Integer, db.ForeignKey("storage_template.id")) |     storage_template = db.Column(db.Integer, db.ForeignKey("storage_template.id")) | ||||||
|     userdata = db.Column(db.Integer, db.ForeignKey("userdata.id")) |     userdata = db.Column(db.Integer, db.ForeignKey("userdata.id")) | ||||||
|     script = db.Column(db.Integer, db.ForeignKey("script.id")) |     script = db.Column(db.Integer, db.ForeignKey("script.id")) | ||||||
|  |     ova = db.Column(db.Integer, db.ForeignKey("ova.id")) | ||||||
|     arguments = db.Column(db.Text) |     arguments = db.Column(db.Text) | ||||||
|  |  | ||||||
|     def __init__(self, name, system_template, network_template, storage_template, userdata, script, arguments): |     def __init__(self, name, profile_type, system_template, network_template, storage_template, userdata, script, ova, arguments): | ||||||
|         self.name = name |         self.name = name | ||||||
|  |         self.profile_type = profile_type | ||||||
|         self.system_template = system_template |         self.system_template = system_template | ||||||
|         self.network_template = network_template |         self.network_template = network_template | ||||||
|         self.storage_template = storage_template |         self.storage_template = storage_template | ||||||
|         self.userdata = userdata |         self.userdata = userdata | ||||||
|         self.script = script |         self.script = script | ||||||
|  |         self.ova = ova | ||||||
|         self.arguments = arguments |         self.arguments = arguments | ||||||
|  |  | ||||||
|     def __repr__(self): |     def __repr__(self): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user