diff --git a/charmhelpers/contrib/charmsupport/nrpe.py b/charmhelpers/contrib/charmsupport/nrpe.py index e3d10c1..10d86ac 100644 --- a/charmhelpers/contrib/charmsupport/nrpe.py +++ b/charmhelpers/contrib/charmsupport/nrpe.py @@ -416,15 +416,20 @@ def copy_nrpe_checks(nrpe_files_dir=None): """ NAGIOS_PLUGINS = '/usr/local/lib/nagios/plugins' - default_nrpe_files_dir = os.path.join( - os.getenv('CHARM_DIR'), - 'hooks', - 'charmhelpers', - 'contrib', - 'openstack', - 'files') - if not nrpe_files_dir: - nrpe_files_dir = default_nrpe_files_dir + if nrpe_files_dir is None: + # determine if "charmhelpers" is in CHARMDIR or CHARMDIR/hooks + for segment in ['.', 'hooks']: + nrpe_files_dir = os.path.abspath(os.path.join( + os.getenv('CHARM_DIR'), + segment, + 'charmhelpers', + 'contrib', + 'openstack', + 'files')) + if os.path.isdir(nrpe_files_dir): + break + else: + raise RuntimeError("Couldn't find charmhelpers directory") if not os.path.exists(NAGIOS_PLUGINS): os.makedirs(NAGIOS_PLUGINS) for fname in glob.glob(os.path.join(nrpe_files_dir, "check_*")): diff --git a/unit_tests/test_actions.py b/unit_tests/test_actions.py index b96b7a4..c0f300d 100644 --- a/unit_tests/test_actions.py +++ b/unit_tests/test_actions.py @@ -237,8 +237,8 @@ class AddUserTestCase(CharmTestCase): self.determine_api_port.return_value = 8070 self.CalledProcessError = ValueError - self.check_call.side_effect = subprocess.CalledProcessError( - 0, "hi", "no") + e = subprocess.CalledProcessError(0, "hi", "no") + self.check_call.side_effect = e actions.add_user.add_user() self.leader_get.assert_called_with("swauth-admin-key") calls = [call("account"), call("username"), call("password")] @@ -246,8 +246,7 @@ class AddUserTestCase(CharmTestCase): self.action_set.assert_not_called() self.action_fail.assert_called_once_with( - 'Adding user test failed with: "Command \'hi\' returned non-zero ' - 'exit status 0"') + 'Adding user test failed with: "{}"'.format(str(e))) class DiskUsageTestCase(CharmTestCase):