From: rohitagarwalla Date: Sun, 28 Aug 2011 19:27:27 +0000 (-0700) Subject: adding new api methods using just port_id X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=f64f8d74a1f74323791bb65a5ed8103032ac5a74;p=openstack-build%2Fneutron-build.git adding new api methods using just port_id --- diff --git a/quantum/plugins/cisco/db/api.py b/quantum/plugins/cisco/db/api.py index db4e631a2..55bce235f 100644 --- a/quantum/plugins/cisco/db/api.py +++ b/quantum/plugins/cisco/db/api.py @@ -252,3 +252,46 @@ def port_destroy(net_id, port_id): return port except exc.NoResultFound: raise q_exc.PortNotFound(port_id=port_id) + + +#methods using just port_id +def port_get_by_id(port_id): + session = get_session() + try: + return session.query(models.Port).\ + filter_by(uuid=port_id).one() + except exc.NoResultFound: + raise q_exc.PortNotFound(port_id=port_id) + + +def port_set_attachment_by_id(port_id, new_interface_id): + session = get_session() + port = port_get_by_id(port_id) + + if new_interface_id != "": + if port['interface_id']: + raise q_exc.PortInUse(port_id=port_id, + att_id=port['interface_id']) + + try: + port = session.query(models.Port).\ + filter_by(interface_id=new_interface_id).\ + one() + raise q_exc.AlreadyAttached(port_id=port_id, + att_id=new_interface_id, + att_port_id=port['uuid']) + except exc.NoResultFound: + pass + port.interface_id = new_interface_id + session.merge(port) + session.flush() + return port + + +def port_unset_attachment_by_id(port_id): + session = get_session() + port = port_get_by_id(port_id) + port.interface_id = None + session.merge(port) + session.flush() + return port