<div dir="ltr">Hi, All<div><br></div><div style>I'm testing hot-plug network interface, I can successfully hot-add an interface to a running instance by using command 'nova interface-attach --net-id xxxxxx <instance_name>', but the network of the interface must has been specified to instance when you  create it. For a new network, I can't attach it to the instance and got errors from nova-api.log:</div>
<div style><br></div><div style>==================================================================</div><div style><div>2013-04-22 13:27:38.484 ERROR nova.api.openstack [req-73c7fcb6-5137-43c0-aa4f-c3ba3509df64 3745e52df7864de79f912d7a9479e182 67b78b4656cf4affa49fc75b847e8914] Caught error: u'e4eca07f-bf8e-435a-84e2-628f89067623' is not in list</div>
<div>Traceback (most recent call last):</div><div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 430, in _process_data</div><div>    rval = self.proxy.dispatch(ctxt, version, method, **args)</div>
<div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/dispatcher.py", line 133, in dispatch</div><div>    return getattr(proxyobj, method)(ctxt, **kwargs)</div><div><br></div><div>
  File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 2969, in attach_interface</div><div>    self.conductor_api)</div><div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/api.py", line 46, in wrapper</div>
<div>    res = f(self, context, *args, **kwargs)</div><div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 335, in allocate_port_for_instance</div><div>    conductor_api=conductor_api)</div>
<div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/api.py", line 46, in wrapper</div><div>    res = f(self, context, *args, **kwargs)</div><div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 285, in allocate_for_instance</div>
<div>    nw_info = self._get_instance_nw_info(context, instance, networks=nets)</div><div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 367, in _get_instance_nw_info</div>
<div>    nw_info = self._build_network_info_model(context, instance, networks)</div><div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 788, in _build_network_info_model</div>
<div>    [n['id'] for n in networks])</div><div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 945, in _ensure_requested_network_ordering</div><div>    unordered.sort(key=lambda i: preferred.index(accessor(i)))</div>
<div><br></div><div>  File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 945, in <lambda></div><div>    unordered.sort(key=lambda i: preferred.index(accessor(i)))</div><div><br></div>
<div>ValueError: u'e4eca07f-bf8e-435a-84e2-628f89067623' is not in list</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack Traceback (most recent call last):</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/__init__.py", line 81, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return req.get_response(self.application)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1296, in send</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     application, catch_exc_info=False)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return resp(environ, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/keystoneclient/middleware/auth_token.py", line 450, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return self.app(env, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return resp(environ, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return resp(environ, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return resp(environ, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     response = self.app(environ, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return resp(environ, start_response)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     resp = self.call_func(req, *args, **self.kwargs)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return self.func(req, *args, **kwargs)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 890, in __call__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     content_type, body, accept)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 942, in _process_stack</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     action_result = self.dispatch(meth, request, action_args)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 1022, in dispatch</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return method(req=request, **action_args)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/contrib/attach_interfaces.py", line 104, in create</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     instance, network_id, port_id, req_ip)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 164, in wrapped</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return func(self, context, target, *args, **kwargs)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/api.py", line 2357, in attach_interface</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     requested_ip=requested_ip)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/rpcapi.py", line 216, in attach_interface</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     version='2.25')</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/proxy.py", line 80, in call</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return rpc.call(context, self._get_topic(topic), msg, timeout)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/__init__.py", line 140, in call</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return _get_impl().call(CONF, context, topic, msg, timeout)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/impl_kombu.py", line 798, in call</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     rpc_amqp.get_connection_pool(conf, Connection))</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 612, in call</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     rv = list(rv)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 561, in __iter__</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     raise result</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack ValueError: u'e4eca07f-bf8e-435a-84e2-628f89067623' is not in list</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack Traceback (most recent call last):</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 430, in _process_data</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     rval = self.proxy.dispatch(ctxt, version, method, **args)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/openstack/common/rpc/dispatcher.py", line 133, in dispatch</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     return getattr(proxyobj, method)(ctxt, **kwargs)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 2969, in attach_interface</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     self.conductor_api)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/api.py", line 46, in wrapper</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     res = f(self, context, *args, **kwargs)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 335, in allocate_port_for_instance</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     conductor_api=conductor_api)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/api.py", line 46, in wrapper</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     res = f(self, context, *args, **kwargs)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 285, in allocate_for_instance</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     nw_info = self._get_instance_nw_info(context, instance, networks=nets)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 367, in _get_instance_nw_info</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     nw_info = self._build_network_info_model(context, instance, networks)</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 788, in _build_network_info_model</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     [n['id'] for n in networks])</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 945, in _ensure_requested_network_ordering</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     unordered.sort(key=lambda i: preferred.index(accessor(i)))</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 945, in <lambda></div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack     unordered.sort(key=lambda i: preferred.index(accessor(i)))</div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack ValueError: u'e4eca07f-bf8e-435a-84e2-628f89067623' is not in list</div>
<div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>2013-04-22 13:27:38.484 22571 TRACE nova.api.openstack </div><div>================================================================== </div></div><div style>
<br></div><div style>Ray</div></div>