Comment 5 for bug 1753209

Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

So the reason of failure here is that one test case uses a network that was temporarily shared with all tenants while running a RBAC test case. When the network is for a short span of time shared with everyone, the other test case - VolumesSnapshotTestJSON:test_snapshot_create_delete_with_volume_in_use - creates an instance with the following request body:

    Body: {"server": {"flavorRef": "e443576a-50cd-4023-88e0-574b1ec1726e", "name": "tempest-VolumesSnapshotTestJSON-instance-1302082485", "imageRef": "9a98ccb7-cd30-43da-85a9-5cfd8126c5ae"}}
which, as you can see, doesn't specify network to use, so nova then apparently picks one of available networks to boot the instance on, and it happens to be the network that was momentarily shared in RBAC test case.

I don't think that the Volumes test case should rely on nova to pick a network for them, and instead pre-create a tenant network for this specific test case and then boot the instance on it. By doing so, we will avoid the race condition between those test cases b/c Volumes test case won't touch the shared network and create VIF ports on it.

This is probably a bug for cinder folks to solve since the offending test case is in VolumesSnapshot class.

One thing to mull over on neutron side though is whether the rbac test case, as written, could reduce its impact. One thing to consider is that the network that is momentarily shared with everyone will pop up for all tenants, incl. those unaware of tempest running in background. Since some operators execute tempest periodically against their cloud, they probably don't want their customers to get random networks popping up for a brief moment. Though the RBAC test case explicitly validates the wildcard RBAC behavior so not sure if we can easily get rid of it w/o loosing some coverage.

How does tempest core team look at such cases? Do we forbid any impact on other cloud users? If so, we could probably shorten the neutron api case to avoid it, even if it means a particular use case won't be covered with tempest.