The test_create_update_get_service test is failing due to the service update taking too long to propagate
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tempest |
Invalid
|
Undecided
|
Castulo J. Martinez |
Bug Description
The test case tempest.
These are the steps to reproduce (steps followed by the Tempest test):
1) Creates a new service
2) Updates the description of the service
3) Gets the service and verifies it has the newly updated data
Expected Results;
- When getting the service, it should show the changes done through the service update.
Actual Results:
- The service does not reflect the updated data until 10 minutes have passed, causing the test to fail everytime.
If I debug the test and go step by step this is what I see:
1) Creates a new service
The service gets created correctly as can be seen with keystone service-list (service name: tempest-
root@node-1:~# keystone service-list
+------
| id | name | type | description |
+------
| d2715775fcaf4b4
| 112e5f470a25469
| f5294f0e114b46b
| b3916c4b179647b
| 20e515e720324fd
| 662022a782fb405
| 7e87fe59df2d494
| 92ad86293090446
| 5c8b6b3527ac41c
| 5a0ddb40b82e445
+------
2) Updates the description of the service
After the service update is executed, if "keystone service-list" is used, it shows the updated service as expected, but if "keystone service-get" is used, the service shows its old description:
root@node-1:~# keystone service-list
+------
| id | name | type | description |
+------
| d2715775fcaf4b4
| 112e5f470a25469
| f5294f0e114b46b
| b3916c4b179647b
| 20e515e720324fd
| 662022a782fb405
| 7e87fe59df2d494
| 92ad86293090446
| 5c8b6b3527ac41c
| 5a0ddb40b82e445
+------
root@node-1:~# keystone service-get 5a0ddb40b82e445
+------
| Property | Value |
+------
| description | tempest-
| enabled | True |
| id | 5a0ddb40b82e445
| name | tempest-
| type | tempest-
+------
3) Gets the service and verifies it has the newly updated data
After 10 minutes, if I do the "keystone service-get"again, it now shows the correct data. And if I unpause the test then, it passes.
root@node-1:~# keystone service-get 5a0ddb40b82e445
+------
| Property | Value |
+------
| description | tempest-
| enabled | True |
| id | 5a0ddb40b82e445
| name | tempest-
| type | tempest-
+------
I repeated this process several times, it behaved the same way every time.
I tried this in two deployments: one OpenStack deployed by Fuel in Virtualbox and one OpenStack deployed by Fuel in real physical servers.
Changed in tempest: | |
status: | Incomplete → Invalid |
It seems to me that a timeout should be added to this test, so the service get can be attempted within the timeout, if the service changes (is updated) within the timeout, the test should pass if not the test should fail.
As it is, is giving false negative, the service is actually getting updated, it just takes long to have the changes reflected for some reason (10 minutes). The only problem with this is that given this test is part of the smoke test, if a timeout is added, it is also going to exted the time the smoke test takes to finish.