Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# -*- coding: utf-8 -*-
# @Authors:
# Eduardo Santos (eduardosantoshf@av.it.pt)
# Rafael Direito (rdireito@av.it.pt)
# @Organization:
# Instituto de Telecomunicações, Aveiro (ITAv)
# Aveiro, Portugal
# @Date:
# December 2024
import os
import sys
import logging
class Config():
broker_address = os.getenv('BROKER_ADDRESS')
broker_port = os.getenv('BROKER_PORT')
broker_username = os.getenv('BROKER_USERNAME')
broker_password = os.getenv('BROKER_PASSWORD')
service_uuid = os.getenv('SERVICE_UUID')
log_level = os.getenv('LOG_LEVEL', "INFO")
db_path = os.getenv("SQLITE_DB_PATH", "/data/sqlite.db")
# Broker topics
catalog_upd_service = "CATALOG.UPD.SERVICE"
event_service_attrchanged = "EVENT.SERVICE.ATTRCHANGED"
logger = None
@classmethod
def validate(cls):
missing_envs = []
for var in ['broker_address', 'broker_port', 'broker_username',
'broker_password', 'service_uuid']:
if getattr(cls, var) is None:
missing_envs.append(var.upper())
if missing_envs:
raise EnvironmentError(
f"Missing required environment variables: {', '.join(missing_envs)}"
)
print("All required environment variables are set.")
@classmethod
def setup_logging(cls):
if cls.logger is None:
log_level = getattr(logging, cls.log_level.upper())
# Create a logger
cls.logger = logging.getLogger()
cls.logger.setLevel(log_level)
# Create a stream handler that outputs to stdout
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(log_level)
# Create a formatter and add it to the handler
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
# Add the handler to the logger
cls.logger.addHandler(handler)
return cls.logger