LGTM On Tue, Nov 24, 2015 at 3:15 PM 'Helga Velroyen' via ganeti-devel < [email protected]> wrote:
> This patch adds a unit test for bulk-removing > normal nodes. Besides that, it fixes a small > bug that surfaced with that test. > > Signed-off-by: Helga Velroyen <[email protected]> > --- > lib/backend.py | 2 +- > test/py/ganeti.backend_unittest.py | 31 +++++++++++++++++++++++++++++++ > 2 files changed, 32 insertions(+), 1 deletion(-) > > diff --git a/lib/backend.py b/lib/backend.py > index 3d0443c..cfc6ec8 100644 > --- a/lib/backend.py > +++ b/lib/backend.py > @@ -1927,8 +1927,8 @@ def RemoveNodeSshKeyBulk(node_list, > master_node = ssconf_store.GetMasterNode() > ssh_port_map = ssconf_store.GetSshPortMap() > > + all_keys_to_remove = {} > if from_authorized_keys or from_public_keys: > - all_keys_to_remove = {} > for node_info in node_list: > > if keys_to_remove: > diff --git a/test/py/ganeti.backend_unittest.py b/test/py/ > ganeti.backend_unittest.py > index c551639..80845b2 100755 > --- a/test/py/ganeti.backend_unittest.py > +++ b/test/py/ganeti.backend_unittest.py > @@ -1478,6 +1478,37 @@ class > TestAddRemoveGenerateNodeSshKey(testutils.GanetiTestCase): > self.assertEqual(1, > len(self._ssh_file_manager.GetAuthorizedKeysOfNode(node_name))) > > + def testRemoveNormalNodeBulk(self): > + node_list = [] > + key_map = {} > + for node_name, (node_uuid, node_key, _, _, _) in \ > + self._ssh_file_manager.GetAllNormalNodes()[:3]: > + node_list.append(backend.SshRemoveNodeInfo(uuid=node_uuid, > + name=node_name, > + > from_authorized_keys=False, > + from_public_keys=False, > + > clear_authorized_keys=True, > + clear_public_keys=True)) > + key_map[node_name] = node_key > + > + backend.RemoveNodeSshKeyBulk(node_list, > + self._master_candidate_uuids, > + self._potential_master_candidates, > + pub_key_file=self._pub_key_file, > + ssconf_store=self._ssconf_mock, > + noded_cert_file=self.noded_cert_file, > + run_cmd_fn=self._run_cmd_mock) > + > + for node_info in node_list: > + self._ssh_file_manager.AssertNoNodeHasPublicKey( > + node_info.uuid, key_map[node_info.name]) > + self._ssh_file_manager.AssertNodeSetOnlyHasAuthorizedKey( > + [node_info.name], key_map[node_info.name]) > + self.assertEqual(0, > + len(self._ssh_file_manager.GetPublicKeysOfNode(node_info.name > ))) > + self.assertEqual(1, > + len(self._ssh_file_manager.GetAuthorizedKeysOfNode( > node_info.name))) > + > def testDemoteMasterCandidateToPotentialMasterCandidate(self): > node_name, node_info = > self._ssh_file_manager.GetAllMasterCandidates()[0] > self._ssh_file_manager.SetOrAddNode( > -- > 2.6.0.rc2.230.g3dd15c0 > > -- Lisa Velden Software Engineer [email protected] Google Germany GmbH Dienerstraße 12 80331 München Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg
