Beispiel #1
0
    def create_network(self, context, network):
        (network_type, physical_network,
         vlan_id) = self._process_provider_create(context, network['network'])

        session = context.session
        with session.begin(subtransactions=True):
            if not network_type:
                # tenant network
                network_type = self.tenant_network_type
                if network_type == constants.TYPE_NONE:
                    raise q_exc.TenantNetworksDisabled()
                elif network_type == constants.TYPE_VLAN:
                    physical_network, vlan_id = db.reserve_network(session)
                else:  # TYPE_LOCAL
                    vlan_id = constants.LOCAL_VLAN_ID
            else:
                # provider network
                if network_type in [constants.TYPE_VLAN, constants.TYPE_FLAT]:
                    db.reserve_specific_network(session, physical_network,
                                                vlan_id)
                # no reservation needed for TYPE_LOCAL
            net = super(LinuxBridgePluginV2,
                        self).create_network(context, network)
            db.add_network_binding(session, net['id'], physical_network,
                                   vlan_id)
            self._process_l3_create(context, network['network'], net['id'])
            self._extend_network_dict_provider(context, net)
            self._extend_network_dict_l3(context, net)
            # note - exception will rollback entire transaction
        return net
    def create_network(self, context, network):
        (network_type, physical_network,
         vlan_id) = self._process_provider_create(context,
                                                  network['network'])

        session = context.session
        with session.begin(subtransactions=True):
            if not network_type:
                # tenant network
                network_type = self.tenant_network_type
                if network_type == constants.TYPE_NONE:
                    raise q_exc.TenantNetworksDisabled()
                elif network_type == constants.TYPE_VLAN:
                    physical_network, vlan_id = db.reserve_network(session)
                else:  # TYPE_LOCAL
                    vlan_id = constants.LOCAL_VLAN_ID
            else:
                # provider network
                if network_type in [constants.TYPE_VLAN, constants.TYPE_FLAT]:
                    db.reserve_specific_network(session, physical_network,
                                                vlan_id)
                # no reservation needed for TYPE_LOCAL
            net = super(LinuxBridgePluginV2, self).create_network(context,
                                                                  network)
            db.add_network_binding(session, net['id'],
                                   physical_network, vlan_id)
            self._process_l3_create(context, network['network'], net['id'])
            self._extend_network_dict_provider(context, net)
            self._extend_network_dict_l3(context, net)
            # note - exception will rollback entire transaction
        return net
Beispiel #3
0
 def test_add_network_binding(self):
     self.assertIsNone(
         lb_db.get_network_binding(self.session, TEST_NETWORK_ID))
     lb_db.add_network_binding(self.session, TEST_NETWORK_ID, PHYS_NET,
                               1234)
     binding = lb_db.get_network_binding(self.session, TEST_NETWORK_ID)
     self.assertIsNotNone(binding)
     self.assertEqual(binding.network_id, TEST_NETWORK_ID)
     self.assertEqual(binding.physical_network, PHYS_NET)
     self.assertEqual(binding.vlan_id, 1234)
Beispiel #4
0
 def test_add_network_binding(self):
     self.assertIsNone(lb_db.get_network_binding(self.session,
                                                 TEST_NETWORK_ID))
     lb_db.add_network_binding(self.session, TEST_NETWORK_ID, PHYS_NET,
                               1234)
     binding = lb_db.get_network_binding(self.session, TEST_NETWORK_ID)
     self.assertIsNotNone(binding)
     self.assertEqual(binding.network_id, TEST_NETWORK_ID)
     self.assertEqual(binding.physical_network, PHYS_NET)
     self.assertEqual(binding.vlan_id, 1234)
Beispiel #5
0
 def test_add_network_binding(self):
     with self.network() as network:
         TEST_NETWORK_ID = network['network']['id']
         self.assertIsNone(lb_db.get_network_binding(self.session,
                                                     TEST_NETWORK_ID))
         lb_db.add_network_binding(self.session, TEST_NETWORK_ID, 'vxlan',
                                   PHYS_NET, 1234)
         binding = lb_db.get_network_binding(self.session, TEST_NETWORK_ID)
         self.assertIsNotNone(binding)
         self.assertEqual(binding.network_id, TEST_NETWORK_ID)
         self.assertEqual(binding.network_type, 'vxlan')
         self.assertEqual(binding.physical_network, PHYS_NET)
         self.assertEqual(binding.vlan_id, 1234)
Beispiel #6
0
    def create_network(self, context, network):
        (network_type, physical_network,
         vlan_id) = self._process_provider_create(context,
                                                  network['network'])

        session = context.session
        with session.begin(subtransactions=True):
            if not network_type:
                physical_network, vlan_id = db.reserve_network(session)
            else:
                db.reserve_specific_network(session, physical_network, vlan_id)
            net = super(LinuxBridgePluginV2, self).create_network(context,
                                                                  network)
            db.add_network_binding(session, net['id'],
                                   physical_network, vlan_id)
            self._extend_network_dict(context, net)
            # note - exception will rollback entire transaction
        return net
    def create_network(self, context, network):
        (network_type, physical_network,
         vlan_id) = self._process_provider_create(context,
                                                  network['network'])

        session = context.session
        with session.begin(subtransactions=True):
            if not network_type:
                physical_network, vlan_id = db.reserve_network(session)
            else:
                db.reserve_specific_network(session, physical_network, vlan_id)
            net = super(LinuxBridgePluginV2, self).create_network(context,
                                                                  network)
            db.add_network_binding(session, net['id'],
                                   physical_network, vlan_id)
            self._process_l3_create(context, network['network'], net['id'])
            self._extend_network_dict_provider(context, net)
            self._extend_network_dict_l3(context, net)
            # note - exception will rollback entire transaction
        return net