115cf068a6
Currently, when attaching neutron pre-existing port to an instance, if the attach failed, it will also be deleted in Neutron side due to bad judgement of the who created the port by reading not up-to-date info_cache. The workflow starts at: https://github.com/openstack/nova/blob/9ed0d6114/nova/network/neutronv2/api.py#L881 ordered_ports and preexisting_port_ids are the same when attaching a preexisting port to an instance and it calls https://github.com/openstack/nova/blob/9ed0d6114/nova/network/base_api.py#L246 which calls back into the neutronv2 api code https://github.com/openstack/nova/blob/9ed0d6114/nova/network/neutronv2/api.py#L1274 and at this point, compute_utils.refresh_info_cache_for_instance(context, instance) won't have the newly attached port in it(see debug log: http://paste.openstack.org/show/613232/) because _build_network_info_model() is going to process it. The instance obj in memoryt with old info_cache will be used at rollback process and causing the miss-judging. This patch fixed it by updating instance.info_cache to the new ic after it is created. Co-Authored-By: huangtianhua@huawei.com Change-Id: Ib323b74d4ea1e874b476ab5addfc6bc79cb7c751 closes-bug: #1645175
12 lines
434 B
YAML
12 lines
434 B
YAML
---
|
|
other:
|
|
- |
|
|
``instance.shutdown.end`` versioned notification will
|
|
have an empty ``ip_addresses`` field since the network
|
|
resources associated with the instance are deallocated
|
|
before this notification is sent, which is actually
|
|
more accurate. Consumers should rely on the
|
|
instance.shutdown.start notification if they need the
|
|
network information for the instance when it is being
|
|
deleted.
|