diff --git a/cachet_url_monitor/configuration.py b/cachet_url_monitor/configuration.py index 8a343c0..dcd5ce2 100644 --- a/cachet_url_monitor/configuration.py +++ b/cachet_url_monitor/configuration.py @@ -329,6 +329,9 @@ class Expectation(object): 'LATENCY': Latency, 'REGEX': Regex } + if configuration['type'] not in expectations: + raise ConfigurationValidationError(f"Invalid type: {configuration['type']}") + return expectations.get(configuration['type'])(configuration) def __init__(self, configuration): diff --git a/setup.py b/setup.py index 753c8e1..a40b352 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup setup(name='cachet-url-monitor', - version='0.6.0', + version='0.6.1', description='Cachet URL monitor plugin', author='Mitsuo Takaki', author_email='mitsuotakaki@gmail.com', diff --git a/tests/configs/config.yml b/tests/configs/config.yml new file mode 100644 index 0000000..d514bf5 --- /dev/null +++ b/tests/configs/config.yml @@ -0,0 +1,26 @@ +endpoints: + - name: foo + url: http://localhost:8080/swagger + method: GET + header: + SOME-HEADER: SOME-VALUE + timeout: 0.01 + expectation: + - type: HTTP_STATUS + status_range: 200-300 + incident: MAJOR + - type: LATENCY + threshold: 1 + - type: REGEX + regex: '.*(