We can't use merge if we're removing a field from the port object so use add
instead. Also, pass the session to port_get so that we don't run into the
"this port is already bound to session x" error.
Change-Id: I54a8484c8f6429ad18fb0c5e088720d21fc16299
all()
-def port_get(port_id, net_id):
+def port_get(port_id, net_id, session=None):
# confirm network exists
network_get(net_id)
- session = get_session()
+ if not session:
+ session = get_session()
try:
- return session.query(models.Port).\
+ return session.query(models.Port).\
filter_by(uuid=port_id).\
filter_by(network_id=net_id).\
one()
network_get(net_id)
session = get_session()
- port = port_get(port_id, net_id)
+ port = port_get(port_id, net_id, session)
port.interface_id = None
- session.merge(port)
+ session.add(port)
session.flush()