diff --git a/charms_ceph/utils.py b/charms_ceph/utils.py index 5dc6ed1..9a88832 100644 --- a/charms_ceph/utils.py +++ b/charms_ceph/utils.py @@ -709,7 +709,7 @@ def get_local_osd_ids(): try: dirs = os.listdir(osd_path) for osd_dir in dirs: - osd_id = osd_dir.split('-')[1] + osd_id = osd_dir.split('-')[1] if '-' in osd_dir else '' if (_is_int(osd_id) and filesystem_mounted(os.path.join( os.sep, osd_path, osd_dir)) and diff --git a/unit_tests/test_osd_upgrade_roll.py b/unit_tests/test_osd_upgrade_roll.py index 5d553ff..a50bb18 100644 --- a/unit_tests/test_osd_upgrade_roll.py +++ b/unit_tests/test_osd_upgrade_roll.py @@ -478,6 +478,21 @@ class UpgradeRollingTestCase(unittest.TestCase): self.assertIn(listdir.return_value[0][-1], osds) self.assertNotIn(listdir.return_value[1][-1], osds) + @patch('os.path.exists') + @patch('os.listdir') + @patch.object(charms_ceph.utils, 'filesystem_mounted') + def test_get_osd_ids_unexpected_files(self, fs_mounted, listdir, exists): + exists.return_value = True + listdir.return_value = [ + '/var/lib/ceph/osd/ceph-1', + '/var/lib/ceph/osd/ceph-2', + '/var/lib/ceph/osd/ohno!' + ] + fs_mounted.side_effect = lambda x: x == listdir.return_value[0] + osds = charms_ceph.utils.get_local_osd_ids() + self.assertIn(listdir.return_value[0][-1], osds) + self.assertNotIn(listdir.return_value[1][-1], osds) + """ @patch.object(charms_ceph.utils, 'log')