BASE.metadata.drop_all(_ENGINE)
-def _check_duplicate_net_name(tenant_id, net_name):
- session = get_session()
- try:
- net = session.query(models.Network).\
- filter_by(tenant_id=tenant_id, name=net_name).\
- one()
- raise q_exc.NetworkNameExists(tenant_id=tenant_id,
- net_name=net_name, net_id=net.uuid)
- except exc.NoResultFound:
- # this is the "normal" path, as API spec specifies
- # that net-names are unique within a tenant
- pass
-
-
def network_create(tenant_id, name):
session = get_session()
- _check_duplicate_net_name(tenant_id, name)
with session.begin():
net = models.Network(tenant_id, name)
session.add(net)
session = get_session()
net = network_get(net_id)
for key in kwargs.keys():
- if key == "name":
- _check_duplicate_net_name(tenant_id, kwargs[key])
net[key] = kwargs[key]
session.merge(net)
session.flush()