[openstack-dev] [Neutron] need help in translating sql query to sqlalchemy query

Venkata Anil vkommadi at redhat.com
Tue Dec 1 15:22:41 UTC 2015


Thanks Sean. I will check that.

Meanwhile I tried this and it is working

         port1 = orm.aliased(models_v2.Port, name="port1")
         port2 = orm.aliased(models_v2.Port, name="port2")
         router_intf_qry = 
context.session.query(RouterPort.router_id).join((port1, 
port1.id==RouterPort.port_id), (port2, 
port2.device_id==RouterPort.router_id)).filter(port1.network_id==int_net_id, 
port2.network_id==ext_net_id).distinct()

        for router in router_intf_qry:
             router_id =router.router_id

Thanks
Anil Venkata

On 12/01/2015 06:35 PM, Sean M. Collins wrote:
> Consult the API:
>
> http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.join
>
> In fact, there is already one join happening a couple lines above your
> change:
>
> https://github.com/openstack/neutron/blob/stable/liberty/neutron/db/l3_db.py#L800
>
> Most likely, you will also need to use the aliased() function - since
> there are some examples that are similar to what you are trying to do -
> check out the "Joins to a Target with an ON Clause" section in the first
> link.
>
> http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.aliased
>




More information about the OpenStack-dev mailing list