diff --git a/ironic_python_agent/ironic_api_client.py b/ironic_python_agent/ironic_api_client.py index 04aba9c00..11e0cdd87 100644 --- a/ironic_python_agent/ironic_api_client.py +++ b/ironic_python_agent/ironic_api_client.py @@ -33,7 +33,15 @@ class APIClient(object): def __init__(self, api_url, driver_name): self.api_url = api_url.rstrip('/') self.driver_name = driver_name + + # Only keep alive a maximum of 2 connections to the API. More will be + # opened if they are needed, but they will be closed immediately after + # use. + adapter = requests.adapters.HTTPAdapter(pool_connections=2, + pool_maxsize=2) self.session = requests.Session() + self.session.mount(self.api_url, adapter) + self.encoder = encoding.RESTJSONEncoder() self.log = log.getLogger(__name__) diff --git a/ironic_python_agent/tests/agent.py b/ironic_python_agent/tests/agent.py index 43d3c6930..368551927 100644 --- a/ironic_python_agent/tests/agent.py +++ b/ironic_python_agent/tests/agent.py @@ -53,6 +53,7 @@ class TestHeartbeater(test_base.BaseTestCase): def setUp(self): super(TestHeartbeater, self).setUp() self.mock_agent = mock.Mock() + self.mock_agent.api_url = 'https://fake_api.example.org:8081/' self.heartbeater = agent.IronicPythonAgentHeartbeater(self.mock_agent) self.heartbeater.api = mock.Mock() self.heartbeater.hardware = mock.create_autospec(