tempest-api: Skip test if deployment has not enough agents

Neutron deployments can have various number of agents. For agentless
deployments there is no point in running agent API tests so that should
be reflected in tempest.conf available extension.

One of the tests require at least two agents - this patch skips such
test if environment doesn't contain enough agents for running the test.

Change-Id: I0f006258aa89c1f52fac73669352d725b109696c
Closes-bug: #1699199
diff --git a/neutron/tests/tempest/api/admin/test_agent_management.py b/neutron/tests/tempest/api/admin/test_agent_management.py
index a46721f..ceda460 100644
--- a/neutron/tests/tempest/api/admin/test_agent_management.py
+++ b/neutron/tests/tempest/api/admin/test_agent_management.py
@@ -28,7 +28,6 @@
         body = cls.admin_client.list_agents()
         agents = body['agents']
         cls.agent = agents[0]  # don't modify this agent
-        cls.dyn_agent = agents[1]
 
     @decorators.idempotent_id('9c80f04d-11f3-44a4-8738-ed2f879b0ff4')
     def test_list_agent(self):
@@ -66,20 +65,26 @@
 
     @decorators.idempotent_id('68a94a14-1243-46e6-83bf-157627e31556')
     def test_update_agent_description(self):
+        agents = self.admin_client.list_agents()['agents']
+        try:
+            dyn_agent = agents[1]
+        except IndexError:
+            raise self.skipException("This test requires at least two agents.")
+
         self.useFixture(tempest_fixtures.LockFixture('agent_description'))
         description = 'description for update agent.'
         agent_description = {'description': description}
-        body = self.admin_client.update_agent(agent_id=self.dyn_agent['id'],
+        body = self.admin_client.update_agent(agent_id=dyn_agent['id'],
                                               agent_info=agent_description)
-        self.addCleanup(self._restore_agent)
+        self.addCleanup(self._restore_agent, dyn_agent)
         updated_description = body['agent']['description']
         self.assertEqual(updated_description, description)
 
-    def _restore_agent(self):
+    def _restore_agent(self, dyn_agent):
         """
         Restore the agent description after update test.
         """
-        description = self.dyn_agent['description']
+        description = dyn_agent['description']
         origin_agent = {'description': description}
-        self.admin_client.update_agent(agent_id=self.dyn_agent['id'],
+        self.admin_client.update_agent(agent_id=dyn_agent['id'],
                                        agent_info=origin_agent)