summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/conductor
diff options
context:
space:
mode:
authorJulia Kreger <juliaashleykreger@gmail.com>2020-09-01 16:10:34 -0700
committerJulia Kreger <juliaashleykreger@gmail.com>2020-09-04 17:09:39 +0000
commit5b272b0c46f5a10c50fc7325cc653fd577908ca0 (patch)
tree7d8e3f3bb37c8610bcccad988e0215bb203adbd8 /ironic/tests/unit/conductor
parent30d9cb47e62b62d570e1792515e16abf1ac3cd56 (diff)
downloadironic-5b272b0c46f5a10c50fc7325cc653fd577908ca0.tar.gz
Remove token-less agent support
Removes the deprecated support for token-less agents which better secures the ironic-python-agent<->ironic interactions to help ensure heartbeat operations are coming from the same node which originally checked-in with the Ironic and that commands coming to an agent are originating from the same ironic deployment which the agent checked-in with to begin with. Story: 2007025 Task: 40814 Change-Id: Id7a3f402285c654bc4665dcd45bd0730128bf9b0
Diffstat (limited to 'ironic/tests/unit/conductor')
-rw-r--r--ironic/tests/unit/conductor/test_manager.py43
1 files changed, 8 insertions, 35 deletions
diff --git a/ironic/tests/unit/conductor/test_manager.py b/ironic/tests/unit/conductor/test_manager.py
index 7ab03e175..994ba78b9 100644
--- a/ironic/tests/unit/conductor/test_manager.py
+++ b/ironic/tests/unit/conductor/test_manager.py
@@ -7221,7 +7221,8 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,
- target_provision_state=states.ACTIVE)
+ target_provision_state=states.ACTIVE,
+ driver_internal_info={'agent_secret_token': 'magic'})
self._start_service()
@@ -7229,7 +7230,8 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
mock_spawn.side_effect = self._fake_spawn
- self.service.heartbeat(self.context, node.uuid, 'http://callback')
+ self.service.heartbeat(self.context, node.uuid, 'http://callback',
+ agent_token='magic')
mock_heartbeat.assert_called_with(mock.ANY, mock.ANY,
'http://callback', '3.0.0')
@@ -7242,7 +7244,8 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,
- target_provision_state=states.ACTIVE)
+ target_provision_state=states.ACTIVE,
+ driver_internal_info={'agent_secret_token': 'magic'})
self._start_service()
@@ -7250,8 +7253,8 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
mock_spawn.side_effect = self._fake_spawn
- self.service.heartbeat(
- self.context, node.uuid, 'http://callback', '1.4.1')
+ self.service.heartbeat(self.context, node.uuid, 'http://callback',
+ '1.4.1', agent_token='magic')
mock_heartbeat.assert_called_with(mock.ANY, mock.ANY,
'http://callback', '1.4.1')
@@ -7259,34 +7262,9 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
autospec=True)
@mock.patch('ironic.conductor.manager.ConductorManager._spawn_worker',
autospec=True)
- def test_heartbeat_with_agent_pregenerated_token(
- self, mock_spawn, mock_heartbeat):
- """Test heartbeating."""
- node = obj_utils.create_test_node(
- self.context, driver='fake-hardware',
- provision_state=states.DEPLOYING,
- target_provision_state=states.ACTIVE,
- driver_internal_info={'agent_secret_token': 'a secret'})
-
- self._start_service()
-
- mock_spawn.reset_mock()
-
- mock_spawn.side_effect = self._fake_spawn
- self.service.heartbeat(
- self.context, node.uuid, 'http://callback', '6.0.1',
- agent_token=None)
- mock_heartbeat.assert_called_with(mock.ANY, mock.ANY,
- 'http://callback', '6.0.1')
-
- @mock.patch('ironic.drivers.modules.fake.FakeDeploy.heartbeat',
- autospec=True)
- @mock.patch('ironic.conductor.manager.ConductorManager._spawn_worker',
- autospec=True)
def test_heartbeat_with_no_required_agent_token(self, mock_spawn,
mock_heartbeat):
"""Tests that we kill the heartbeat attempt very early on."""
- self.config(require_agent_token=True)
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,
@@ -7311,7 +7289,6 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
def test_heartbeat_with_required_agent_token(self, mock_spawn,
mock_heartbeat):
"""Test heartbeat works when token matches."""
- self.config(require_agent_token=True)
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,
@@ -7336,7 +7313,6 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
def test_heartbeat_with_agent_token(self, mock_spawn,
mock_heartbeat):
"""Test heartbeat works when token matches."""
- self.config(require_agent_token=False)
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,
@@ -7361,7 +7337,6 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
def test_heartbeat_invalid_agent_token(self, mock_spawn,
mock_heartbeat):
"""Heartbeat fails when it does not match."""
- self.config(require_agent_token=False)
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,
@@ -7388,7 +7363,6 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
def test_heartbeat_invalid_agent_token_older_version(
self, mock_spawn, mock_heartbeat):
"""Heartbeat is rejected if token is received that is invalid."""
- self.config(require_agent_token=False)
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,
@@ -7416,7 +7390,6 @@ class DoNodeAdoptionTestCase(mgr_utils.ServiceSetUpMixin, db_base.DbTestCase):
def test_heartbeat_invalid_newer_version(
self, mock_spawn, mock_heartbeat):
"""Heartbeat rejected if client should be sending a token."""
- self.config(require_agent_token=False)
node = obj_utils.create_test_node(
self.context, driver='fake-hardware',
provision_state=states.DEPLOYING,