Loading src/opticalattackdetector/.gitlab-ci.yml +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ unit_test opticalattackdetector: script: - export REDIS_PASSWORD=$(uuidgen) - docker pull "redis:7.0-alpine" - docker run --name redis -d --network=teraflowbridge -p 6379:6379 -e REDIS_PASSWORD=${REDIS_PASSWORD} --rm redis:7.0-alpine redis-server --requirepass ${REDIS_PASSWORD} - docker run --name redis -d --network=teraflowbridge -p 16379:6379 -e REDIS_PASSWORD=${REDIS_PASSWORD} --rm redis:7.0-alpine redis-server --requirepass ${REDIS_PASSWORD} - docker logs redis - REDIS_ADDRESS=$(docker inspect redis --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}") - docker pull "$CI_REGISTRY_IMAGE/dbscanserving:$IMAGE_TAG" Loading src/opticalattackdetector/tests/test_unitary.py +17 −10 Original line number Diff line number Diff line Loading @@ -13,13 +13,15 @@ # limitations under the License. import logging import os import uuid import queue from unittest.mock import patch import pytest from common.proto import dbscanserving_pb2 as dbscan from common.proto.optical_attack_detector_pb2 import DetectionRequest from common.tests.MockServicerImpl_Monitoring import MockServicerImpl_Monitoring from opticalattackdetector.client.OpticalAttackDetectorClient import \ OpticalAttackDetectorClient Loading Loading @@ -48,25 +50,30 @@ def optical_attack_detector_client(optical_attack_detector_service): def test_detect_attack( optical_attack_detector_service: OpticalAttackDetectorService, optical_attack_detector_client: OpticalAttackDetectorClient, ): message = dbscan.DetectionResponse() message.cluster_indices.extend([0, 1, -1, -1, -1]) monitoring_mock = MockServicerImpl_Monitoring(queue_samples = queue.Queue()) with patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.attack_mitigator_client" ) as mitigator, patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.monitoring_client" "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.monitoring_client", monitoring_mock, ) as monitoring, patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.dbscanserving_client.Detect", # TODO: return dumb object with "cluster_indices" attribute # idea: create new response object return_value=message, ) as dbscanserving: for _ in range(10): request: DetectionRequest = DetectionRequest() request.service_id.context_id.context_uuid.uuid = "" request.service_id.service_uuid.uuid = str("") request.kpi_id.kpi_id.uuid = "" request.service_id.context_id.context_uuid.uuid = str(uuid.uuid4()) request.service_id.service_uuid.uuid = str(uuid.uuid4()) request.kpi_id.kpi_id.uuid = "1" optical_attack_detector_client.DetectAttack(request) mitigator.NotifyAttack.assert_called_once() monitoring.IncludeKpi.assert_called_once() dbscanserving.assert_called_once() monitoring.IncludeKpi.assert_called_once() mitigator.NotifyAttack.assert_called() src/opticalattackmanager/utils/monitor.py +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ import logging import traceback from grpclib.client import Channel from prometheus_client import Counter from common.proto.asyncio.optical_attack_detector_grpc import \ OpticalAttackDetectorServiceStub Loading src/tests/scenario3/optical/ofc23/run_experiment_demo.py +1 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,7 @@ import threading import redis from kubernetes import client, config from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_setting, wait_for_environment_variables from common.Settings import get_setting, wait_for_environment_variables # Configs can be set in Configuration class directly or using helper utility namespace = get_setting("TFS_K8S_NAMESPACE", default="tfs") Loading Loading
src/opticalattackdetector/.gitlab-ci.yml +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ unit_test opticalattackdetector: script: - export REDIS_PASSWORD=$(uuidgen) - docker pull "redis:7.0-alpine" - docker run --name redis -d --network=teraflowbridge -p 6379:6379 -e REDIS_PASSWORD=${REDIS_PASSWORD} --rm redis:7.0-alpine redis-server --requirepass ${REDIS_PASSWORD} - docker run --name redis -d --network=teraflowbridge -p 16379:6379 -e REDIS_PASSWORD=${REDIS_PASSWORD} --rm redis:7.0-alpine redis-server --requirepass ${REDIS_PASSWORD} - docker logs redis - REDIS_ADDRESS=$(docker inspect redis --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}") - docker pull "$CI_REGISTRY_IMAGE/dbscanserving:$IMAGE_TAG" Loading
src/opticalattackdetector/tests/test_unitary.py +17 −10 Original line number Diff line number Diff line Loading @@ -13,13 +13,15 @@ # limitations under the License. import logging import os import uuid import queue from unittest.mock import patch import pytest from common.proto import dbscanserving_pb2 as dbscan from common.proto.optical_attack_detector_pb2 import DetectionRequest from common.tests.MockServicerImpl_Monitoring import MockServicerImpl_Monitoring from opticalattackdetector.client.OpticalAttackDetectorClient import \ OpticalAttackDetectorClient Loading Loading @@ -48,25 +50,30 @@ def optical_attack_detector_client(optical_attack_detector_service): def test_detect_attack( optical_attack_detector_service: OpticalAttackDetectorService, optical_attack_detector_client: OpticalAttackDetectorClient, ): message = dbscan.DetectionResponse() message.cluster_indices.extend([0, 1, -1, -1, -1]) monitoring_mock = MockServicerImpl_Monitoring(queue_samples = queue.Queue()) with patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.attack_mitigator_client" ) as mitigator, patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.monitoring_client" "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.monitoring_client", monitoring_mock, ) as monitoring, patch( "opticalattackdetector.service.OpticalAttackDetectorServiceServicerImpl.dbscanserving_client.Detect", # TODO: return dumb object with "cluster_indices" attribute # idea: create new response object return_value=message, ) as dbscanserving: for _ in range(10): request: DetectionRequest = DetectionRequest() request.service_id.context_id.context_uuid.uuid = "" request.service_id.service_uuid.uuid = str("") request.kpi_id.kpi_id.uuid = "" request.service_id.context_id.context_uuid.uuid = str(uuid.uuid4()) request.service_id.service_uuid.uuid = str(uuid.uuid4()) request.kpi_id.kpi_id.uuid = "1" optical_attack_detector_client.DetectAttack(request) mitigator.NotifyAttack.assert_called_once() monitoring.IncludeKpi.assert_called_once() dbscanserving.assert_called_once() monitoring.IncludeKpi.assert_called_once() mitigator.NotifyAttack.assert_called()
src/opticalattackmanager/utils/monitor.py +0 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ import logging import traceback from grpclib.client import Channel from prometheus_client import Counter from common.proto.asyncio.optical_attack_detector_grpc import \ OpticalAttackDetectorServiceStub Loading
src/tests/scenario3/optical/ofc23/run_experiment_demo.py +1 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,7 @@ import threading import redis from kubernetes import client, config from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_setting, wait_for_environment_variables from common.Settings import get_setting, wait_for_environment_variables # Configs can be set in Configuration class directly or using helper utility namespace = get_setting("TFS_K8S_NAMESPACE", default="tfs") Loading