def test_generate_check_definition_with_valid_team_property(self): check = { 'name': 'sensu-check1', 'script': 'foo.py', 'type': 'script', 'interval': 10 } check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual( check_definition['checks'][unique_check_name]['team'], 'ateam') check['override_notification_settings'] = 'dietcode' check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) self.assertEqual( check_definition['checks'][unique_check_name]['team'], 'dietcode')
def test_generate_windows_check_definition_with_command_and_no_arguments(self, mock_exists): check = { 'name': 'sensu-check1', 'plugin': 'foo.ps1', 'type': 'plugin', 'interval': 10 } check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name]['command'], 'powershell.exe -NonInteractive -NoProfile -ExecutionPolicy RemoteSigned -Command "{0}"'.format(path.join(MOCK_SENSU_PLUGINS, 'foo.ps1')))
def test_powershell_is_given_file_rather_than_command(self, mock_exists): check = { 'name': 'sensu-check1', 'plugin': 'foo.ps1', 'type': 'plugin', 'interval': 10, 'server_script_isfile': 'yes' } check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name]['command'], 'powershell.exe -NonInteractive -NoProfile -ExecutionPolicy RemoteSigned -File "{0}"'.format(path.join(MOCK_SENSU_PLUGINS, 'foo.ps1')))
def test_generate_linux_check_definition_with_command_and_no_arguments(self, mock_exists): check = { 'name': 'sensu-check1', 'plugin': 'foo.sh', 'type': 'plugin', 'interval': 10 } self.deployment.platform = 'linux' check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name] ['command'], path.join(MOCK_SENSU_PLUGINS, 'foo.sh'))
def test_generate_linux_http_check_with_port(self, mock_patch): check = { 'name': 'sensu-http-linux-check', 'type': 'http', 'url': 'https://localhost:${PORT}/my/service', 'interval': 10 } self.deployment.service.slice = 'none' self.deployment.platform = 'linux' check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name]['command'], '{0} -u https://localhost:{1}/my/service'.format(path.join(MOCK_SENSU_PLUGINS, 'check-http.rb'), MOCK_PORT))
def test_generate_windows_http_check(self, mock_patch): check = { 'name': 'sensu-http-win-check', 'type': 'http', 'url': 'https://localhost/my/service', 'interval': 10 } self.deployment.service.slice = 'none' self.deployment.platform = 'windows' check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name]['command'], '{0} https://localhost/my/service'.format(path.join(MOCK_SENSU_PLUGINS, 'ttl-check-http.bat')))
def test_generate_local_check_definition_with_command_and_arguments_and_slice(self): check = { 'name': 'sensu-check1', 'type': 'script', 'script': 'check-windows-service.ps1', 'script_arguments': '-ServiceName service_name', 'interval': 10 } self.deployment.service.slice = 'green' check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name]['command'], 'powershell.exe -NonInteractive -NoProfile -ExecutionPolicy RemoteSigned -Command "{0}" -ServiceName service_name green'.format(path.join('healthchecks', 'sensu', 'check-windows-service.ps1')))
def test_generate_linux_local_check_definition_with_command_and_slice_and_no_arguments(self, stat, chmod): check = { 'name': 'sensu-check1', 'script': 'foo.sh', 'type': 'script', 'interval': 10 } self.deployment.platform = 'linux' self.deployment.service.slice = 'green' check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name] ['command'], '{0} green'.format(path.join('healthchecks', 'sensu', 'foo.sh')))
def test_warning_deprecated_properties(self): check = { 'name': 'sensu-check1', 'script': 'foo.py', 'type': 'script', 'notification_email': ['*****@*****.**', '*****@*****.**'], 'interval': 10 } definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) self.deployment.logger.warning.assert_called_with( "'notification_email' property is deprecated, please use 'override_notification_email' instead") unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(definition['checks'][unique_check_name] ['notification_email'], '[email protected],[email protected]')
def test_generate_check_definition_with_valid_list_of_emails_and_slack_channels(self): check = { 'name': 'sensu-check1', 'script': 'fuj.py', 'type': 'script', 'override_notification_email': ['*****@*****.**', '*****@*****.**'], 'override_chat_channel': ['channel1', 'channel2'], 'interval': 10 } check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name] ['notification_email'], '[email protected],[email protected]') self.assertEqual( check_definition['checks'][unique_check_name]['slack_channel'], 'channel1,channel2')
def test_generate_check_definition_with_instance_tags(self, stat, chmod): check = { 'name': 'sensu-check1', 'script': 'foo.py', 'type': 'script', 'interval': 10 } self.deployment.platform = 'linux' check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual(check_definition['checks'][unique_check_name] ['ttl_environment'], self.deployment.instance_tags['Environment']) self.assertEqual(check_definition['checks'][unique_check_name] ['ttl_owningcluster'], self.deployment.instance_tags['OwningCluster']) self.assertEqual(check_definition['checks'][unique_check_name] ['ttl_role'], self.deployment.instance_tags['Role'])
def test_generate_check_definition_with_default_values(self): check = { 'name': 'sensu-check1', 'type': 'script', 'script': 'foo.py', 'interval': 10 } check_definition = RegisterSensuHealthChecks.generate_check_definition( HealthCheck.create(check, self.deployment), self.deployment) unique_check_name = HealthcheckUtils.get_unique_name( check, self.deployment.service) self.assertEqual( check_definition['checks'][unique_check_name]['aggregate'], False) self.assertEqual( check_definition['checks'][unique_check_name]['alert_after'], 600) self.assertEqual( check_definition['checks'][unique_check_name]['handlers'], ['default']) self.assertEqual( check_definition['checks'][unique_check_name] ['notification_email'], 'undef') self.assertEqual( check_definition['checks'][unique_check_name]['occurrences'], 5) self.assertEqual(check_definition['checks'][unique_check_name]['page'], False) self.assertEqual( check_definition['checks'][unique_check_name]['project'], False) self.assertEqual( check_definition['checks'][unique_check_name]['realert_every'], 0) self.assertEqual( check_definition['checks'][unique_check_name]['slack_channel'], 'undef') self.assertEqual( check_definition['checks'][unique_check_name]['standalone'], True) self.assertEqual( check_definition['checks'][unique_check_name]['subscribers'], ['sensu-base']) self.assertEqual( check_definition['checks'][unique_check_name]['ticket'], False) self.assertEqual( check_definition['checks'][unique_check_name]['timeout'], 120)