Skip to content

Commit

Permalink
Update alerter and tests
Browse files Browse the repository at this point in the history
malinkinsa committed Dec 3, 2023
1 parent a47a884 commit cc71824
Showing 5 changed files with 11 additions and 10 deletions.
7 changes: 4 additions & 3 deletions elastalert/alerters/gelf.py
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@ def __init__(self, rule):
self.gelf_version = self.rule.get('gelf_version', '1.1')
self.gelf_log_level = self.rule.get('gelf_log_level', 5)
self.additional_headers = self.rule.get('gelf_http_headers')
self.ca_cert = self.rule.get('gelf_ca_cert', False)
self.ca_cert = self.rule.get('gelf_ca_cert')
self.http_ignore_ssl_errors = self.rule.get('gelf_http_ignore_ssl_errors', False)
self.timeout = self.rule.get('gelf_timeout', 30)

@@ -43,7 +43,7 @@ def send_http(self, gelf_msg):
if self.ca_cert:
verify = self.ca_cert
else:
verify = False
verify = not self.http_ignore_ssl_errors

if self.http_ignore_ssl_errors:
requests.packages.urllib3.disable_warnings()
@@ -65,7 +65,8 @@ def sent_tcp(self, gelf_msg):

try:
if self.ca_cert:
tcp_socket = ssl.wrap_socket(tcp_socket, ca_certs=self.ca_cert)
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
tcp_socket = ctx.wrap_socket(tcp_socket, ca_certs=self.ca_cert)
tcp_socket.sendall(bytes_msg)
else:
tcp_socket.sendall(bytes_msg)
4 changes: 2 additions & 2 deletions elastalert/alerters/iris.py
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ def __init__(self, rule):
self.url = f"https://{self.rule.get('iris_host')}"
self.api_token = self.rule.get('iris_api_token')
self.customer_id = self.rule.get('iris_customer_id')
self.ca_cert = self.rule.get('iris_ca_cert', False)
self.ca_cert = self.rule.get('iris_ca_cert')
self.ignore_ssl_errors = self.rule.get('iris_ignore_ssl_errors', False)
self.description = self.rule.get('iris_description', None)
self.overwrite_timestamp = self.rule.get('iris_overwrite_timestamp', False)
@@ -113,7 +113,7 @@ def alert(self, matches):
if self.ca_cert:
verify = self.ca_cert
else:
verify = False
verify = not self.ignore_ssl_errors

if self.ignore_ssl_errors:
requests.packages.urllib3.disable_warnings()
4 changes: 2 additions & 2 deletions elastalert/schema.yaml
Original file line number Diff line number Diff line change
@@ -511,7 +511,7 @@ properties:
required: [ field ]
properties:
field: { type: string, minLength: 1 }
gelf_ca_cert: {type: string}
gelf_ca_cert: {type: [boolean, string]}
gelf_http_ignore_ssl_errors: {type: boolean}
gelf_timeout: {type: integer}

@@ -544,7 +544,7 @@ properties:
iris_type: {type: string, enum: ['alert', 'case']}
iris_customer_id: {type: integer}
iris_ignore_ssl_errors: {type: boolean}
iris_ca_cert: {type: string}
iris_ca_cert: {type: [boolean, string]}
iris_overwrite_timestamp: {type: boolean}
iris_case_template_id: {type: integer}
iris_description: {type: string}
4 changes: 2 additions & 2 deletions tests/alerters/gelf_test.py
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ def test_gelf_sent_http(caplog):
url=rule['gelf_endpoint'],
headers={'Content-Type': 'application/json'},
json=mock.ANY,
verify=False,
verify=True,
timeout=30,
)

@@ -211,7 +211,7 @@ def test_gelf_sent_tcp_with_custom_ca(caplog):
expected_data = json.dumps(expected_data).encode('utf-8') + b'\x00'

with mock.patch('socket.socket') as mock_socket:
with mock.patch('ssl.wrap_socket') as mock_ssl_wrap_socket:
with mock.patch('ssl.SSLContext.wrap_socket') as mock_ssl_wrap_socket:
mock_ssl_wrap_socket.return_value = mock_socket
alert.alert([match])
mock_socket.assert_called_once_with(socket.AF_INET, socket.SOCK_STREAM)
2 changes: 1 addition & 1 deletion tests/alerters/iris_test.py
Original file line number Diff line number Diff line change
@@ -406,7 +406,7 @@ def test_iris_alert_alert(caplog):
'Authorization': f'Bearer {rule["iris_api_token"]}'
},
json=mock.ANY,
verify=False,
verify=True,
)

assert expected_data == mock_post_request.call_args_list[0][1]['json']

0 comments on commit cc71824

Please sign in to comment.