#!/usr/bin/python

import sqlalchemy
import sys
from neutron.plugins.common import constants as p_const

if len(sys.argv) != 2:
    raise ValueError('One and only one argument must be passed: database connection uri')

db_uri = sys.argv[1]

db = sqlalchemy.create_engine(db_uri)
try:
    connection = db.connect()
except sqlalchemy.exc.SQLAlchemyError as e:
    print >>sys.stderr, 'Cannot connect to database: %s' % e
    sys.exit(1)

ret = connection.execute(
    "UPDATE networks SET mtu=%s "
    "FROM ml2_network_segments "
    "WHERE ml2_network_segments.network_type=%s "
    "AND networks.mtu IS NULL "
    "AND networks.id=ml2_network_segments.network_id;",
    1500 - p_const.GRE_ENCAP_OVERHEAD, "gre")

ret = connection.execute(
    "UPDATE networks SET mtu=%s "
    "FROM ml2_network_segments "
    "WHERE ml2_network_segments.network_type=%s "
    "AND networks.mtu IS NULL "
    "AND networks.id=ml2_network_segments.network_id;",
    1500 - p_const.VXLAN_ENCAP_OVERHEAD, "vxlan")
