def _stub_out_quantum_port_and_iface_create_calls(self):
        self.mox.StubOutWithMock(quantum, 'create_port')
        self.mox.StubOutWithMock(quantum, 'plug_iface')

        quantum.create_port(IgnoreArg(), IgnoreArg()).\
                                MultipleTimes().AndReturn("port_id")
        quantum.plug_iface(IgnoreArg(), IgnoreArg(),
                           IgnoreArg(), IgnoreArg()).MultipleTimes()
    def allocate_for_instance(self, context, **kwargs):
        """Handles allocating the various network resources for an instance.

        rpc.called by network_api
        """
        instance_id = kwargs.pop('instance_id')
        host = kwargs.pop('host')
        project_id = kwargs.pop('project_id')
        type_id = kwargs.pop('instance_type_id')
        vpn = kwargs.pop('vpn')
        admin_context = context.elevated()
        LOG.debug(_("network allocations for instance %s"), instance_id,
                                                            context=context)
        networks = self._get_networks_for_instance(admin_context, instance_id,
                                                                  project_id)
        # Create a port via quantum and attach the vif
        tenant_id = project_id
        for n in networks:
            vif_id = "nova-" + str(instance_id) + "-" + str(n['id'])
            quantum_net_id = n['bridge']
            LOG.debug("Using quantum_net_id: %s" % quantum_net_id)
            port_id = quantum.create_port(tenant_id, quantum_net_id)
            quantum.plug_iface(tenant_id, quantum_net_id, port_id, vif_id)

            # TODO: also communicate "interface-binding" and "tenant-id"
            # to Quantum

        LOG.warn(networks)
        self._allocate_mac_addresses(context, instance_id, networks)
        ips = self._allocate_fixed_ips(admin_context, instance_id, host,
                                       networks, vpn=vpn)
        vifs = self.db.virtual_interface_get_by_instance(context, instance_id)
        return self._construct_instance_nw_info(context, instance_id, type_id,
                                         host, ips, vifs)