from quantum.plugins.cisco.db import nexus_models_v2
from quantum.plugins.cisco.db import ucs_models_v2
from quantum.plugins.cisco import l2network_plugin_configuration as conf
+from quantum.plugins.openvswitch import ovs_models_v2
def initialize():
except exc.NoResultFound:
raise c_exc.CredentialNotFound(credential_id=credential_id,
tenant_id=tenant_id)
+
+
+def get_ovs_vlans():
+ session = db.get_session()
+ try:
+ bindings = (session.query(ovs_models_v2.VlanAllocation).
+ filter_by(allocated=True).
+ all())
+ except exc.NoResultFound:
+ return []
+ return [binding.vlan_id for binding in bindings]
else:
return func(*args)
+ def _get_segmentation_id(self, network_id):
+ binding_seg_id = odb.get_network_binding(None, network_id)
+ return binding_seg_id.segmentation_id
+
def create_network(self, context, network):
"""
Perform this operation in the context of the configured device
ovs_output = self._invoke_plugin_per_device(const.VSWITCH_PLUGIN,
self._func_name(),
args)
- vlan_id = odb.get_vlan(ovs_output[0]['id'])
+ vlan_id = self._get_segmentation_id(ovs_output[0]['id'])
vlan_name = conf.VLAN_NAME_PREFIX + str(vlan_id)
- vlan_ids = odb.get_vlans()
+ vlan_ids = cdb.get_ovs_vlans()
vlanids = ''
for v_id in vlan_ids:
- vlanids = str(v_id[0]) + ',' + vlanids
+ vlanids = str(v_id) + ',' + vlanids
vlanids = vlanids.strip(',')
args = [ovs_output[0]['tenant_id'], ovs_output[0]['name'],
ovs_output[0]['id'], vlan_name, vlan_id,
args = [context, networks]
ovs_output = self._plugins[
const.VSWITCH_PLUGIN].create_network_bulk(context, networks)
- vlan_ids = odb.get_vlans()
+ vlan_ids = cdb.get_ovs_vlans()
vlanids = ''
for v_id in vlan_ids:
vlanids = str(v_id[0]) + ',' + vlanids
LOG.debug("ovs_output: %s\n " % ovs_output)
ovs_networks = ovs_output
for ovs_network in ovs_networks:
- vlan_id = odb.get_vlan(ovs_network['id'])
+ vlan_id = self._get_segmentation_id(ovs_network['id'])
vlan_name = conf.VLAN_NAME_PREFIX + str(vlan_id)
args = [ovs_network['tenant_id'], ovs_network['name'],
ovs_network['id'], vlan_name, vlan_id,
ovs_output = self._invoke_plugin_per_device(const.VSWITCH_PLUGIN,
self._func_name(),
args)
- vlan_id = odb.get_vlan(ovs_output[0]['id'])
- vlan_ids = ','.join(str(vlan[0]) for vlan in odb.get_vlans())
+ vlan_id = self._get_segmentation_id(ovs_output[0]['id'])
+ vlan_ids = ','.join(str(vlan[0]) for vlan in cdb.get_ovs_vlans())
args = [ovs_output[0]['tenant_id'], id, {'vlan_id': vlan_id},
{'net_admin_state': ovs_output[0]['admin_state_up']},
{'vlan_ids': vlan_ids}]
base_plugin_ref = QuantumManager.get_plugin()
n = base_plugin_ref.get_network(context, id)
tenant_id = n['tenant_id']
- vlan_id = odb.get_vlan(id)
+ vlan_id = self._get_segmentation_id(id)
output = []
args = [tenant_id, id, {const.VLANID:vlan_id},
{const.CONTEXT:context},
from quantum.common.test_lib import test_config
from quantum import context
from quantum.db import api as db
+from quantum.db import l3_db
from quantum.extensions import _quotav2_model as quotav2_model
from quantum.manager import QuantumManager
from quantum.plugins.cisco.common import cisco_constants as const
from quantum.plugins.cisco.db import network_db_v2
from quantum.plugins.cisco.db import network_models_v2
+from quantum.plugins.openvswitch import ovs_models_v2
from quantum.openstack.common import cfg
from quantum.tests.unit import test_db_plugin
from quantum.wsgi import JSONDeserializer
_plugin_name = 'quantum.plugins.cisco.network_plugin.PluginV2'
def setUp(self):
- super(CiscoNetworkPluginV2TestCase, self).setUp()
- db._ENGINE = None
- db._MAKER = None
- QuantumManager._instance = None
- # Update the plugin
- cfg.CONF.set_override('core_plugin', self._plugin_name)
-
def new_init():
db.configure_db({'sql_connection': 'sqlite://',
'base': network_models_v2.model_base.BASEV2})
with mock.patch.object(network_db_v2,
'initialize', new=new_init):
- self.api = APIRouter()
-
- def _is_native_bulk_supported():
- plugin_obj = QuantumManager.get_plugin()
- native_bulk_attr_name = ("_%s__native_bulk_support"
- % plugin_obj.__class__.__name__)
- return getattr(plugin_obj, native_bulk_attr_name, False)
-
- self._skip_native_bulk = not _is_native_bulk_supported()
-
- LOG.debug("%s.%s.%s done" % (__name__, self.__class__.__name__,
- inspect.stack()[0][3]))
-
- def tearDown(self):
- db.clear_db(network_models_v2.model_base.BASEV2)
- db._ENGINE = None
- db._MAKER = None
-
- cfg.CONF.reset()
+ super(CiscoNetworkPluginV2TestCase, self).setUp(self._plugin_name)
def _get_plugin_ref(self):
plugin_obj = QuantumManager.get_plugin()