Adjust VNI column for provisioner to text

Allows the storing of the textual cluster labels (e.g. 'upstream') as
valid VNI values in the template.
This commit is contained in:
Joshua Boniface 2021-06-02 15:45:22 -04:00
parent 7dea5d2fac
commit 34ef055954
3 changed files with 30 additions and 1 deletions

View File

@ -0,0 +1,28 @@
"""PVC version 0.9.18
Revision ID: bae4d5a77c74
Revises: 3efe890e1d87
Create Date: 2021-06-02 15:41:40.061806
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'bae4d5a77c74'
down_revision = '3efe890e1d87'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.execute('ALTER TABLE network ALTER COLUMN vni TYPE TEXT')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.execute('ALTER TABLE network ALTER COLUMN vni TYPE INTEGER USING vni::integer')
# ### end Alembic commands ###

View File

@ -78,6 +78,7 @@ class DBNetworkElement(db.Model):
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
network_template = db.Column(db.Integer, db.ForeignKey("network_template.id"), nullable=False) network_template = db.Column(db.Integer, db.ForeignKey("network_template.id"), nullable=False)
vni = db.Column(db.Integer, nullable=False) vni = db.Column(db.Integer, nullable=False)
vni2 = db.Column(db.Text, nullable=False)
def __init__(self, network_template, vni): def __init__(self, network_template, vni):
self.network_template = network_template self.network_template = network_template

View File

@ -268,7 +268,7 @@ def create_template_network_element(name, vni):
networks = [] networks = []
found_vni = False found_vni = False
for network in networks: for network in networks:
if int(network['vni']) == int(vni): if network['vni'] == vni:
found_vni = True found_vni = True
if found_vni: if found_vni:
retmsg = {'message': 'The VNI "{}" in network template "{}" already exists.'.format(vni, name)} retmsg = {'message': 'The VNI "{}" in network template "{}" already exists.'.format(vni, name)}