Incorrect notification to nova about ironic baremetall port (for nodes in 'cleaning' state)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Fix Released
|
Undecided
|
Sam Betts | ||
neutron |
Fix Released
|
Low
|
Sam Betts | ||
ironic (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
neutron (Ubuntu) |
Fix Released
|
Low
|
Unassigned |
Bug Description
version: newton (2:9.0.
When neutron trying to bind port for Ironic baremetall node, it sending wrong notification to nova about port been ready. neutron send it with 'device_id' == ironic-node-id, and nova rejects it as 'not found' (there is no nova instance with such id).
Log:
neutron.
neutron.
neutron.
neutron.
oslo_messaging.
neutron.
novaclient.
novaclient.
RESP BODY: {"itemNotFound": {"message": "No instances found for any event", "code": 404}}
_http_log_response /usr/lib/
novaclient.
neutron.
oslo_messaging.
neutron.
Port info:
+------
| Field | Value |
+------
| admin_state_up | True |
| binding:host_id | d02c7361-
| binding:profile | {"local_
| | "switch_id": "60:96:
| binding:vif_details | {} |
| binding:vif_type | binding_failed |
| binding:vnic_type | baremetal |
| created_at | 2017-01-
| description | |
| device_id | d02c7361-
| device_owner | baremetal:none |
| extra_dhcp_opts | {"opt_value": "204.74.228.4", "ip_version": 4, "opt_name": "tftp-server"} |
| | {"opt_value": "204.74.228.4", "ip_version": 4, "opt_name": "server-
| | {"opt_value": "pxelinux.0", "ip_version": 4, "opt_name": "bootfile-name"} |
| fixed_ips | {"subnet_id": "5402755a-
| id | bc46cbdf-
| mac_address | 18:66:ee:aa:dd:cc |
| name | |
| network_id | 4b352ae7-
| project_id | 7d450ecf00d6439
| revision_number | 8 |
| status | DOWN |
| tenant_id | 7d450ecf00d6439
| updated_at | 2017-01-
+------
ironic node:
ironic node-list
/usr/lib/
SubjectAltNam
+------
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+------
| d02c7361-
+------
Changed in ironic (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → High |
tags: | added: mitaka-backport-potential |
Changed in neutron: | |
status: | In Progress → Incomplete |
assignee: | Sam Betts (sambetts) → nobody |
status: | Incomplete → In Progress |
importance: | Undecided → Low |
assignee: | nobody → Sam Betts (sambetts) |
milestone: | none → pike-1 |
Changed in ironic (Ubuntu): | |
status: | Triaged → Fix Released |
Changed in neutron (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
Still looking into this...
Based on the code I see, the port.device_id is used as the server_uuid in the notification which corresponds to the logs provided above.
It's not yet clear to me why/how this should be different for this ironic case.