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.nicira_nvp_plugin import nicira_models
23
from quantum.plugins.nicira.nicira_nvp_plugin 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())