Fix tempest router migration test when HA enabled, v2

When run in an HA or DVR configured environment,
the test_update_router_extra_attributes_bumps_revision
API test can fail if the release does not support
router migration from CVR-HA to DVR.

Although Ocata and later releases support any type of
router migration, older ones do not, so the test
should be explicit and test a known valid migration.

Added missing l3-ha extension requirement from v1.

Change-Id: Ic48d078542492e933f71d24df85c54c53a0b110c
Related-bug: #1679794
diff --git a/neutron/tests/tempest/api/test_revisions.py b/neutron/tests/tempest/api/test_revisions.py
index 3db39c6..7a6443c 100644
--- a/neutron/tests/tempest/api/test_revisions.py
+++ b/neutron/tests/tempest/api/test_revisions.py
@@ -313,17 +313,21 @@
 
     @decorators.idempotent_id('afb6486c-41b5-483e-a500-3c506f4deb49')
     @test.requires_ext(extension="router", service="network")
-    @test.requires_ext(extension="dvr", service="network")
+    @test.requires_ext(extension="l3-ha", service="network")
     def test_update_router_extra_attributes_bumps_revision(self):
-        router = self.create_router(router_name='r1')
+        # updates from CVR to CVR-HA are supported on every release,
+        # but only the admin can forcibly create a non-HA router
+        router_args = {'tenant_id': self.client.tenant_id,
+                       'ha': False}
+        router = self.admin_client.create_router('r1', True,
+            **router_args)['router']
         self.addCleanup(self.client.delete_router, router['id'])
         self.assertIn('revision_number', router)
         rev1 = router['revision_number']
         router = self.admin_client.update_router(
             router['id'], admin_state_up=False)['router']
         self.assertGreater(router['revision_number'], rev1)
-        self.admin_client.update_router(router['id'],
-                                        distributed=True)['router']
+        self.admin_client.update_router(router['id'], ha=True)['router']
         updated = self.client.show_router(router['id'])['router']
         self.assertGreater(updated['revision_number'],
                            router['revision_number'])