This patch updates the SSH testutils to match reality better. So far, the test framework did not consider the fact that the key of each node should be added to it's own 'authorized_keys' file, even if the node is not a master candidate. This patch fixes that to represent the production behavior more accurately.
Signed-off-by: Helga Velroyen <[email protected]> --- test/py/ganeti.backend_unittest.py | 13 ++++++++----- test/py/testutils_ssh.py | 5 +++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/test/py/ganeti.backend_unittest.py b/test/py/ganeti.backend_unittest.py index 35ea9f4..ab3de9e 100755 --- a/test/py/ganeti.backend_unittest.py +++ b/test/py/ganeti.backend_unittest.py @@ -1385,10 +1385,11 @@ class TestAddRemoveGenerateNodeSshKey(testutils.GanetiTestCase): self._ssh_file_manager.AssertNoNodeHasPublicKey( node_info.uuid, node_info.key) - self._ssh_file_manager.AssertNoNodeHasAuthorizedKey(node_info.key) + self._ssh_file_manager.AssertNodeSetOnlyHasAuthorizedKey( + node_name, node_info.key) self.assertEqual(0, len(self._ssh_file_manager.GetPublicKeysOfNode(node_name))) - self.assertEqual(0, + self.assertEqual(1, len(self._ssh_file_manager.GetAuthorizedKeysOfNode(node_name))) def testRemoveNormalNode(self): @@ -1408,10 +1409,11 @@ class TestAddRemoveGenerateNodeSshKey(testutils.GanetiTestCase): self._ssh_file_manager.AssertNoNodeHasPublicKey( node_info.uuid, node_info.key) - self._ssh_file_manager.AssertNoNodeHasAuthorizedKey(node_info.key) + self._ssh_file_manager.AssertNodeSetOnlyHasAuthorizedKey( + [node_name], node_info.key) self.assertEqual(0, len(self._ssh_file_manager.GetPublicKeysOfNode(node_name))) - self.assertEqual(0, + self.assertEqual(1, len(self._ssh_file_manager.GetAuthorizedKeysOfNode(node_name))) def testDemoteMasterCandidateToPotentialMasterCandidate(self): @@ -1458,7 +1460,8 @@ class TestAddRemoveGenerateNodeSshKey(testutils.GanetiTestCase): self._ssh_file_manager.AssertNoNodeHasPublicKey( node_info.uuid, node_info.key) - self._ssh_file_manager.AssertNoNodeHasAuthorizedKey(node_info.key) + self._ssh_file_manager.AssertNodeSetOnlyHasAuthorizedKey( + [node_name], node_info.key) def _GetReducedOnlineNodeList(self): """'Randomly' mark some nodes as offline.""" diff --git a/test/py/testutils_ssh.py b/test/py/testutils_ssh.py index e4d76c1..7dbb6fb 100644 --- a/test/py/testutils_ssh.py +++ b/test/py/testutils_ssh.py @@ -126,8 +126,9 @@ class FakeSshFileManager(object): self._public_keys[receiving_node_name][node_info.uuid] = [node_info.key] def _FillAuthorizedKeyOfOneNode(self, receiving_node_name): - for node_info in self._all_node_data.values(): - if node_info.is_master_candidate: + for node_name, node_info in self._all_node_data.items(): + if node_info.is_master_candidate \ + or node_name == receiving_node_name: self._authorized_keys[receiving_node_name].add(node_info.key) def InitAllNodes(self, num_nodes, num_pot_mcs, num_mcs): -- 2.6.0.rc2.230.g3dd15c0
