SIENTIAPDE-1030

Add comprehensive tests and utility functions for orchestrator activities

- Introduced tests for the new Formatters class, covering methods for processing schedules and slots.
- Enhanced SlotManager tests with update and delete slot functionalities.
- Added TemporalManager tests for creating, updating, and deleting schedules, including frequency parsing.
- Implemented utility functions for orchestrator operations, including frequency parsing and tag configuration building.
- Created tests for utility functions to ensure correct behavior and integration with orchestrator activities.
- Established a new converters module for parsing frequency strings into seconds.
This commit is contained in:
vitor-aignosi
2025-06-03 17:29:00 -03:00
parent 43e9695849
commit 5dc49b476a
18 changed files with 2208 additions and 668 deletions

View File

@@ -15,6 +15,8 @@ services:
networks:
- sientia-network
couchbase:
image: couchbase/server:7.2.0
container_name: couchbase
@@ -62,6 +64,59 @@ services:
networks:
- sientia-network
kafka:
image: bitnami/kafka:3.7 # Using a specific Kafka version for stability
container_name: kafka
ports:
- "9092:9092" # For clients connecting from the host machine or outside Docker network
environment:
# KRaft (Kafka Raft without Zookeeper) settings
KAFKA_CFG_NODE_ID: '0'
KAFKA_CFG_PROCESS_ROLES: 'broker,controller'
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
# Listeners: <PROTOCOL>://<HOST/IP>:<PORT>
# PLAINTEXT_EXTERNAL for host access, INTERNAL for container-to-container communication
KAFKA_CFG_LISTENERS: 'PLAINTEXT_EXTERNAL://0.0.0.0:9092,INTERNAL://0.0.0.0:19092,CONTROLLER://0.0.0.0:9093'
# Advertised Listeners: How clients (including Kafka-UI) will connect
KAFKA_CFG_ADVERTISED_LISTENERS: 'PLAINTEXT_EXTERNAL://localhost:9092,INTERNAL://kafka:19092'
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT_EXTERNAL:PLAINTEXT,INTERNAL:PLAINTEXT'
KAFKA_CFG_INTER_BROKER_LISTENER_NAME: 'INTERNAL'
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: '0@kafka:9093' # Node 0 is at kafka:9093 for controller comms
# Single node cluster settings (important for KRaft single node)
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: '1'
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: '1'
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: '1'
KAFKA_CFG_DEFAULT_REPLICATION_FACTOR: '1' # For auto-created topics
KAFKA_CFG_NUM_PARTITIONS: '1' # Default partitions for auto-created topics
KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: 'true' # Convenient for development
volumes:
- kafka_data:/bitnami/kafka # Bitnami Kafka data directory
networks:
- sientia-network
healthcheck:
# Checks if Kafka is ready by trying to list topics using the internal listener
test: ["CMD-SHELL", "/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server kafka:19092 --list > /dev/null || exit 1"]
interval: 30s
timeout: 10s
retries: 5
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
ports:
- "8082:8080" # Kafka UI will be accessible on host's port 8082
environment:
KAFKA_CLUSTERS_0_NAME: sientia-local-kafka
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:19092 # Connects to Kafka's internal listener
# DYNAMIC_CONFIG_ENABLED: 'true' # Optional: To allow config changes through UI
depends_on:
kafka: # Ensures Kafka starts and is healthy before Kafka UI
condition: service_healthy
networks:
- sientia-network
networks:
sientia-network:
@@ -73,4 +128,6 @@ volumes:
couchbase_data:
driver: local
redis_data:
driver: local
kafka_data:
driver: local