diff --git a/.gitignore b/.gitignore index 660b48a2bec273c09cca623edd4e5ae0674564b1..c3fd0b6342ca0576b8f9c514fad695bbe6fbd5e9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .project .tox .testrepository +.stestr bin *.sw[nop] *.pyc diff --git a/hooks/ceph_hooks.py b/hooks/ceph_hooks.py index b4ad3e267d160c44f77190b4262e608de98c5960..8253d8b886ae3a36a1a1830dd38f868c707d7aaa 100755 --- a/hooks/ceph_hooks.py +++ b/hooks/ceph_hooks.py @@ -82,8 +82,8 @@ STORAGE_MOUNT_PATH = '/var/lib/ceph' def check_for_upgrade(): - if not ceph.is_bootstrapped(): - log("Ceph is not bootstrapped, skipping upgrade checks.") + if not os.path.exists(ceph._upgrade_keyring): + log("Ceph upgrade keyring not detected, skipping upgrade checks.") return c = hookenv.config() diff --git a/unit_tests/test_upgrade.py b/unit_tests/test_upgrade.py index 383519c8a1f5115d545a2c594d5b7799654906c1..ad8762146b84dcafe934892033dd7141b556b69b 100644 --- a/unit_tests/test_upgrade.py +++ b/unit_tests/test_upgrade.py @@ -19,16 +19,16 @@ def config_side_effect(*args): class UpgradeRollingTestCase(unittest.TestCase): @patch('ceph_hooks.ceph.dirs_need_ownership_update') - @patch('ceph_hooks.ceph.is_bootstrapped') + @patch('ceph_hooks.os.path.exists') @patch('ceph_hooks.ceph.resolve_ceph_version') @patch('ceph_hooks.emit_cephconf') @patch('ceph_hooks.hookenv') @patch('ceph_hooks.ceph.roll_osd_cluster') def test_check_for_upgrade(self, roll_osd_cluster, hookenv, - emit_cephconf, version, is_bootstrapped, + emit_cephconf, version, exists, dirs_need_ownership_update): dirs_need_ownership_update.return_value = False - is_bootstrapped.return_value = True + exists.return_value = True version.side_effect = ['firefly', 'hammer'] previous_mock = MagicMock().return_value previous_mock.previous.return_value = "cloud:trusty-juno" @@ -40,19 +40,21 @@ class UpgradeRollingTestCase(unittest.TestCase): upgrade_key='osd-upgrade') emit_cephconf.assert_has_calls([call(upgrading=True), call(upgrading=False)]) + exists.assert_called_with( + "/var/lib/ceph/osd/ceph.client.osd-upgrade.keyring") @patch('ceph_hooks.ceph.dirs_need_ownership_update') - @patch('ceph_hooks.ceph.is_bootstrapped') + @patch('ceph_hooks.os.path.exists') @patch('ceph_hooks.ceph.resolve_ceph_version') @patch('ceph_hooks.emit_cephconf') @patch('ceph_hooks.hookenv') @patch('ceph_hooks.ceph.roll_osd_cluster') def test_resume_failed_upgrade(self, roll_osd_cluster, hookenv, emit_cephconf, version, - is_bootstrapped, + exists, dirs_need_ownership_update): dirs_need_ownership_update.return_value = True - is_bootstrapped.return_value = True + exists.return_value = True version.side_effect = ['jewel', 'jewel'] check_for_upgrade() @@ -61,15 +63,17 @@ class UpgradeRollingTestCase(unittest.TestCase): upgrade_key='osd-upgrade') emit_cephconf.assert_has_calls([call(upgrading=True), call(upgrading=False)]) + exists.assert_called_with( + "/var/lib/ceph/osd/ceph.client.osd-upgrade.keyring") - @patch('ceph_hooks.ceph.is_bootstrapped') + @patch('ceph_hooks.os.path.exists') @patch('ceph_hooks.ceph.resolve_ceph_version') @patch('ceph_hooks.hookenv') @patch('ceph_hooks.ceph.roll_monitor_cluster') def test_check_for_upgrade_not_bootstrapped(self, roll_monitor_cluster, hookenv, - version, is_bootstrapped): - is_bootstrapped.return_value = False + version, exists): + exists.return_value = False version.side_effect = ['firefly', 'hammer'] previous_mock = MagicMock().return_value previous_mock.previous.return_value = "cloud:trusty-juno" @@ -78,3 +82,5 @@ class UpgradeRollingTestCase(unittest.TestCase): check_for_upgrade() roll_monitor_cluster.assert_not_called() + exists.assert_called_with( + "/var/lib/ceph/osd/ceph.client.osd-upgrade.keyring")