From 1cbc77b21e06bbfabd8f9901bd4dd789d7294fcb Mon Sep 17 00:00:00 2001 From: c8y3 <25362953+c8y3@users.noreply.github.com> Date: Fri, 5 Jan 2024 08:59:25 +0100 Subject: [PATCH] Renamed python test files --- .github/workflows/ci.yml | 6 +---- validation/graylog/driver.py | 3 +-- validation/graylog/gelf_input.py | 15 +++++++---- .../graylog/gelf_input_context_manager.py | 22 ++++++++++++++++ validation/graylog/graylog_inputs.py | 25 ------------------- validation/graylog/graylog_rest_api.py | 4 +-- 6 files changed, 36 insertions(+), 39 deletions(-) create mode 100644 validation/graylog/gelf_input_context_manager.py delete mode 100644 validation/graylog/graylog_inputs.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18ca435..32b6eec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,6 +62,7 @@ jobs: run: | mkdir runtime/graylog/plugin cp ${{ steps.requestPom.outputs.JAR_PATH }} runtime/graylog/plugin + # TODO should try to cache dependencies installed with pip? - name: Execute backend tests working-directory: plugin/validation/server run: | @@ -70,11 +71,6 @@ jobs: pip install -r requirements.txt docker-compose --project-directory ../../runtime pull PYTHONUNBUFFERED=true PYTHONPATH=.. python -m unittest --verbose - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: 'npm' - cache-dependency-path: plugin/end_to_end/package-lock.json - name: Run Playwright tests working-directory: plugin/validation/end_to_end run: | diff --git a/validation/graylog/driver.py b/validation/graylog/driver.py index 4798fae..fba9792 100644 --- a/validation/graylog/driver.py +++ b/validation/graylog/driver.py @@ -1,7 +1,6 @@ import time from graylog.graylog_server import GraylogServer from graylog.graylog_rest_api import GraylogRestApi -from graylog.graylog_inputs import GraylogInputs from graylog.server_timeout_error import ServerTimeoutError @@ -52,7 +51,7 @@ def create_event_definition(self, notification_identifier, streams=None, backlog def create_gelf_input(self): gelf_input = self._api.create_gelf_input() self._wait(gelf_input.is_running, 10, sleep_duration=.1) - return GraylogInputs() + return gelf_input def create_stream_with_rule(self, title, field, value): return self._api.create_stream_with_rule(title, field, value) diff --git a/validation/graylog/gelf_input.py b/validation/graylog/gelf_input.py index 69be465..4d716ea 100644 --- a/validation/graylog/gelf_input.py +++ b/validation/graylog/gelf_input.py @@ -1,9 +1,14 @@ +import json + class GelfInput: - def __init__(self, api, identifier): - self._api = api - self._identifier = identifier + def __init__(self, input_socket): + self._socket = input_socket + + def send(self, args): + data = dict({'version': '1.1', 'host': 'host', 'short_message': 'short_message'}, **args) + print('Sending {}'.format(data)) + message = '{}\0'.format(json.dumps(data)) + self._socket.send(message.encode()) - def is_running(self): - return self._api.gelf_input_is_running(self._identifier) \ No newline at end of file diff --git a/validation/graylog/gelf_input_context_manager.py b/validation/graylog/gelf_input_context_manager.py new file mode 100644 index 0000000..c2f3bdc --- /dev/null +++ b/validation/graylog/gelf_input_context_manager.py @@ -0,0 +1,22 @@ +import socket +from graylog.gelf_input import GelfInput + +_INPUT_ADDRESS = ('127.0.0.1', 12201) + + +class GelfInputContextManager: + + def __init__(self, api, identifier): + self._api = api + self._identifier = identifier + self._socket = None + + def is_running(self): + return self._api.gelf_input_is_running(self._identifier) + + def __enter__(self): + self._socket = socket.create_connection(_INPUT_ADDRESS) + return GelfInput(self._socket) + + def __exit__(self, exc_type, exc_value, exc_traceback): + self._socket.close() diff --git a/validation/graylog/graylog_inputs.py b/validation/graylog/graylog_inputs.py deleted file mode 100644 index 132bad4..0000000 --- a/validation/graylog/graylog_inputs.py +++ /dev/null @@ -1,25 +0,0 @@ -import socket -import json - -_GRAYLOG_INPUT_ADDRESS = ('127.0.0.1', 12201) - - -class GraylogInputs: - - def __init__(self): - self._socket = socket.create_connection(_GRAYLOG_INPUT_ADDRESS) - - def send(self, args): - data = dict({'version': '1.1', 'host': 'host', 'short_message': 'short_message'}, **args) - print('Sending {}'.format(data)) - message = '{}\0'.format(json.dumps(data)) - self._socket.send(message.encode()) - - def close(self): - self._socket.close() - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, exc_traceback): - self.close() diff --git a/validation/graylog/graylog_rest_api.py b/validation/graylog/graylog_rest_api.py index d217606..cb08c6b 100644 --- a/validation/graylog/graylog_rest_api.py +++ b/validation/graylog/graylog_rest_api.py @@ -1,7 +1,7 @@ from urllib import parse import requests from requests.exceptions import ConnectionError -from graylog.gelf_input import GelfInput +from graylog.gelf_input_context_manager import GelfInputContextManager STREAM_ALL_MESSAGES = "000000000000000000000001" _AUTH = ('admin', 'admin') @@ -131,7 +131,7 @@ def create_gelf_input(self): } response = self._post('system/inputs', payload) identifier = response.json()['id'] - return GelfInput(self, identifier) + return GelfInputContextManager(self, identifier) def create_stream_with_rule(self, title, field, value): response = self._get('system/indices/index_sets')