1
# vim: tabstop=4 shiftwidth=4 softtabstop=4
3
# Copyright 2012 Nicira, Inc.
6
# Licensed under the Apache License, Version 2.0 (the "License"); you may
7
# not use this file except in compliance with the License. You may obtain
8
# a copy of the License at
10
# http://www.apache.org/licenses/LICENSE-2.0
12
# Unless required by applicable law or agreed to in writing, software
13
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
# License for the specific language governing permissions and limitations
18
from sqlalchemy.orm import exc
20
import quantum.db.api as db
21
from quantum.openstack.common import log as logging
22
from quantum.plugins.nicira import nicira_models
23
from quantum.plugins.nicira import nicira_networkgw_db
25
LOG = logging.getLogger(__name__)
28
def get_network_binding(session, network_id):
29
session = session or db.get_session()
31
binding = (session.query(nicira_models.NvpNetworkBinding).
32
filter_by(network_id=network_id).
35
except exc.NoResultFound:
39
def get_network_binding_by_vlanid(session, vlan_id):
40
session = session or db.get_session()
42
binding = (session.query(nicira_models.NvpNetworkBinding).
43
filter_by(vlan_id=vlan_id).
46
except exc.NoResultFound:
50
def get_network_binding_by_vlanid_and_phynet(session, vlan_id,
52
session = session or db.get_session()
54
binding = (session.query(nicira_models.NvpNetworkBinding).
55
filter_by(vlan_id=vlan_id, phy_uuid=physical_network).
58
except exc.NoResultFound:
62
def add_network_binding(session, network_id, binding_type, phy_uuid, vlan_id):
63
with session.begin(subtransactions=True):
64
binding = nicira_models.NvpNetworkBinding(network_id, binding_type,
70
def add_quantum_nvp_port_mapping(session, quantum_id, nvp_id):
71
with session.begin(subtransactions=True):
72
mapping = nicira_models.QuantumNvpPortMapping(quantum_id, nvp_id)
77
def get_nvp_port_id(session, quantum_id):
79
mapping = (session.query(nicira_models.QuantumNvpPortMapping).
80
filter_by(quantum_id=quantum_id).
82
return mapping['nvp_id']
83
except exc.NoResultFound:
87
def unset_default_network_gateways(session):
88
with session.begin(subtransactions=True):
89
session.query(nicira_networkgw_db.NetworkGateway).update(
90
{nicira_networkgw_db.NetworkGateway.default: False})
93
def set_default_network_gateway(session, gw_id):
94
with session.begin(subtransactions=True):
95
gw = (session.query(nicira_networkgw_db.NetworkGateway).
96
filter_by(id=gw_id).one())