示例#1
0
    def delete_network(self, tenant_id, net_id):
        """
        Deletes the network with the specified network identifier
        belonging to the specified tenant.
        """
        LOG.debug("delete_network() called\n")
        net = db.network_get(net_id)
        if net:
            if len(net[const.NETWORKPORTS]) > 0:
                ports_on_net = db.port_list(net_id)
                for port in ports_on_net:
                    if port[const.INTERFACEID]:
                        raise exc.NetworkInUse(net_id=net_id)
                for port in ports_on_net:
                    self.delete_port(tenant_id, net_id, port[const.UUID])

            self._invoke_device_plugins(self._func_name(), [tenant_id, net_id])
            net_dict = cutil.make_net_dict(net[const.UUID],
                                           net[const.NETWORKNAME],
                                           [])
            self._release_vlan_for_tenant(tenant_id, net_id)
            cdb.remove_vlan_binding(net_id)
            db.network_destroy(net_id)
            return net_dict
        # Network not found
        raise exc.NetworkNotFound(net_id=net_id)
示例#2
0
    def delete_network(self, tenant_id, net_id):
        """
        Deletes the network with the specified network identifier
        belonging to the specified tenant.
        """
        LOG.debug("delete_network() called\n")
        net = db.network_get(net_id)
        if net:
            if len(net[const.NETWORKPORTS]) > 0:
                ports_on_net = db.port_list(net_id)
                for port in ports_on_net:
                    if port[const.INTERFACEID]:
                        raise exc.NetworkInUse(net_id=net_id)
                for port in ports_on_net:
                    self.delete_port(tenant_id, net_id, port[const.UUID])

            self._invoke_device_plugins(self._func_name(), [tenant_id, net_id])
            net_dict = cutil.make_net_dict(net[const.UUID],
                                           net[const.NETWORKNAME],
                                           [])
            self._release_vlan_for_tenant(tenant_id, net_id)
            cdb.remove_vlan_binding(net_id)
            db.network_destroy(net_id)
            return net_dict
        # Network not found
        raise exc.NetworkNotFound(net_id=net_id)
    def delete_network(self, context, id):
        LOG.debug("L2Network's delete_network() called")

        tenant_id = context.tenant_id
        self._invoke_device_plugins(self._func_name(), [context, id])
        self._release_vlan_for_tenant(tenant_id, id)
        cdb.remove_vlan_binding(id)
        super().delete_network(context, id)
    def test_delete_network(self):
        """Support for the Quantum core API call"""
        LOG.debug("test_delete_network - START")

        # Create the network in the test DB, then with the model
        self.net_id = db.network_create(tenant_id, net_name)[const.UUID]
        self._l2network_multiblade.create_network([tenant_id, net_name, self.net_id, vlan_name(self.net_id), vlan_id])
        cdb.add_vlan_binding(vlan_id, vlan_name(self.net_id), self.net_id)

        networks = self._l2network_multiblade.delete_network([tenant_id, self.net_id])
        cdb.remove_vlan_binding(self.net_id)
        db.network_destroy(self.net_id)
        for network in networks:
            self.assertEqual(network[const.NET_ID], self.net_id)
            self.assertEqual(network[const.NET_NAME], net_name)

        LOG.debug("test_delete_network - END")
示例#5
0
 def delete_vlan_binding(self, network_id):
     """Delete a vlan binding"""
     try:
         res = l2network_db.remove_vlan_binding(network_id)
         LOG.debug("Deleted vlan binding for vlan: %s" % res.vlan_id)
         vlan_dict = {}
         vlan_dict["vlan-id"] = str(res.vlan_id)
         return vlan_dict
     except Exception, exc:
         raise Exception("Failed to delete vlan binding: %s" % str(exc))
示例#6
0
 def delete_vlan_binding(self, network_id):
     """Delete a vlan binding."""
     try:
         res = l2network_db.remove_vlan_binding(network_id)
         LOG.debug("Deleted vlan binding for vlan: %s" % res.vlan_id)
         vlan_dict = {}
         vlan_dict["vlan-id"] = str(res.vlan_id)
         return vlan_dict
     except Exception as exc:
         raise Exception("Failed to delete vlan binding: %s" % str(exc))
示例#7
0
    def test_delete_network(self):
        """Support for the Quantum core API call"""
        LOG.debug("test_delete_network - START")

        # Create the network in the test DB, then with the model
        self.net_id = db.network_create(tenant_id, net_name)[const.UUID]
        self._l2network_multiblade.create_network([
            tenant_id, net_name, self.net_id,
            vlan_name(self.net_id), vlan_id
        ])
        cdb.add_vlan_binding(vlan_id, vlan_name(self.net_id), self.net_id)

        networks = self._l2network_multiblade.delete_network(
            [tenant_id, self.net_id])
        cdb.remove_vlan_binding(self.net_id)
        db.network_destroy(self.net_id)
        for network in networks:
            self.assertEqual(network[const.NET_ID], self.net_id)
            self.assertEqual(network[const.NET_NAME], net_name)

        LOG.debug("test_delete_network - END")