Inconsistent notifications after subnet update
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned | ||
neutron |
New
|
Undecided
|
Unassigned |
Bug Description
Description
===========
When I use horizon UI to update name of an existing subnet (through "Edit Subnet" dialog), the relevant message that gets posted to nova message queue (RabbitMQ) is inconsistent in both "event_type" field and structure in general.
Steps to reproduce
==================
Prerequisite: Project should contain a network.
In Horizon UI:
1. In sidebar go to Project -> Network -> Networks.
2. In Subnets list click "Create subnet", fill the details and bind it to an existing network, click Next -> Create.
3. On networks screen click "Edit Subnet" button next to newly created subnet.
4. Change name to a new value, click Next -> Save.
Repeat steps 3-4 at least 3 times (preferably, each time use a previously unused name).
For "Expected/actual result" sections I'll refer to the subnet as "test-subnet". The sequence of updated names is the following:
"test-subnet" -> "test-subnet1" -> "test-subnet2" -> "test-subnet3" -> "test-subnet4" -> "test-subnet5" -> "test-subnet6"
Expected result
===============
For each update a message is posted to RabbitMQ of the following structure (only important fields specified):
{
"event_type": "subnet.
"payload": {
"subnet": {
"id": uuid of subnet,
"name": updated subnet name
}
}
}
Actual result
=============
For these consequential updates the pattern observed is the following:
1) "test-subnet" -> "test-subnet1"
{
"event_type": "subnet.
"payload": {
"subnet": {
"id": uuid of subnet,
"name": "test-subnet1"
}
}
}
2) "test-subnet1" -> "test-subnet2"
{
"event_type": "subnet.
"payload": {
"id": uuid of subnet (note the location of field)
"subnet": {
"name": "test-subnet2" (note the absence of id on this level)
}
}
}
3) "test-subnet2" -> "test-subnet3"
No message was caught at all
4) "test-subnet3" -> "test-subnet4"
{
"event_type": "subnet.
"payload": {
"subnet": {
"id": uuid of subnet,
"name": "test-subnet4"
}
}
}
// The same as in p.1, except for the new name
5) "test-subnet4" -> "test-subnet5"
// The same as in p.2, except for the new name
6) "test-subnet5" -> "test-subnet6"
// The same as in p.3
This cycle repeats in this very order indefinitely.
Environment
===========
1. Mirantis-Mitaka (nova version 13.1.2)
2. libvirt+KVM
3. LVM
4. neutron with OVS
5. Python AMQP listener - kombu 4.0.2
tags: | added: notifications |
Reassigning to the Neutron project as the notification is emitted by it.