diff --git a/bumper/__init__.py b/bumper/__init__.py index 34ffc95..5b0f8ad 100644 --- a/bumper/__init__.py +++ b/bumper/__init__.py @@ -54,7 +54,8 @@ bumper_debug = strtobool(os.environ.get("BUMPER_DEBUG")) or False use_auth = False token_validity_seconds = 3600 # 1 hour oauth_validity_days = 15 -bumper_proxy_mode = strtobool(os.environ.get("BUMPER_PROXY_MODE")) or False +bumper_proxy_mqtt = strtobool(os.environ.get("BUMPER_PROXY_MQTT")) or False +bumper_proxy_web = strtobool(os.environ.get("BUMPER_PROXY_WEB")) or False mqtt_server: MQTTServer mqtt_helperbot: HelperBot @@ -65,7 +66,6 @@ shutting_down = False bumperlog = get_logger("bumper") logging.getLogger("asyncio").setLevel(logging.CRITICAL + 1) # Ignore this logger -proxymodelog = get_logger("proxymode") web_server_https_port = os.environ.get("WEB_SERVER_HTTPS_PORT") or 443 mqtt_listen_port = 8883 @@ -113,15 +113,17 @@ async def start() -> None: bumperlog.info("Starting Bumper") - if bumper_proxy_mode: - bumperlog.info("Proxy Mode Enabled") + if bumper_proxy_mqtt: + bumperlog.info("Proxy MQTT Enabled") + if bumper_proxy_web: + bumperlog.info("Proxy Web Enabled") global mqtt_server mqtt_server = MQTTServer(bumper_listen, mqtt_listen_port) global mqtt_helperbot mqtt_helperbot = HelperBot(bumper_listen, mqtt_listen_port) global web_server - web_server = WebServer(web_server_bindings, bumper_proxy_mode) + web_server = WebServer(web_server_bindings, bumper_proxy_web) global xmpp_server xmpp_server = XMPPServer(bumper_listen, xmpp_listen_port) @@ -208,19 +210,12 @@ def main(argv: None | list[str] = None) -> None: help="announce address to bots on checkin", ) parser.add_argument("--debug", action="store_true", help="enable debug logs") - parser.add_argument( - "--proxy-mode", action="store_true", help="enable proxy mode" - ) args = parser.parse_args(args=argv) if args.debug: bumper_debug = True - if args.proxy_mode: - global bumper_proxy_mode - bumper_proxy_mode = True - if args.listen: bumper_listen = args.listen diff --git a/bumper/db.py b/bumper/db.py index cfbd006..79d92df 100644 --- a/bumper/db.py +++ b/bumper/db.py @@ -10,7 +10,7 @@ from bumper.models import BumperUser, OAuth, VacBotClient, VacBotDevice from .util import get_logger -bumperlog = get_logger("bumper") +_LOGGER = get_logger("db") def db_file() -> str: @@ -41,7 +41,7 @@ def user_add(userid: str) -> None: user = user_get(userid) if not user: - bumperlog.info(f"Adding new user with userid: {newuser.userid}") + _LOGGER.info(f"Adding new user with userid: {newuser.userid}") user_full_upsert(newuser.asdict()) @@ -137,7 +137,7 @@ def user_add_token(userid: str, token: str) -> None: tokens = opendb.table("tokens") tmptoken = tokens.get((Query().userid == userid) & (Query().token == token)) if not tmptoken: - bumperlog.debug(f"Adding token {token} for userid {userid}") + _LOGGER.debug(f"Adding token {token} for userid {userid}") tokens.insert( { "userid": userid, @@ -166,9 +166,7 @@ def user_revoke_expired_tokens(userid: str) -> None: tsearch = tokens.search(Query().userid == userid) for i in tsearch: if datetime.now() >= datetime.fromisoformat(i["expiration"]): - bumperlog.debug( - "Removing token {} due to expiration".format(i["token"]) - ) + _LOGGER.debug("Removing token {} due to expiration".format(i["token"])) tokens.remove(doc_ids=[i.doc_id]) @@ -214,9 +212,7 @@ def revoke_expired_oauths() -> None: for i in entries: oauth = OAuth(**i) if datetime.now() >= datetime.fromisoformat(oauth.expire_at): - bumperlog.debug( - f"Removing oauth {oauth.access_token} due to expiration" - ) + _LOGGER.debug(f"Removing oauth {oauth.access_token} due to expiration") table.remove(doc_ids=[i.doc_id]) @@ -228,9 +224,7 @@ def user_revoke_expired_oauths(userid: str) -> None: for i in search: oauth = OAuth(**i) if datetime.now() >= datetime.fromisoformat(oauth.expire_at): - bumperlog.debug( - f"Removing oauth {oauth.access_token} due to expiration" - ) + _LOGGER.debug(f"Removing oauth {oauth.access_token} due to expiration") table.remove(doc_ids=[i.doc_id]) @@ -244,7 +238,7 @@ def user_add_oauth(userid: str) -> OAuth: return OAuth(**entry) else: oauth = OAuth.create_new(userid) - bumperlog.debug(f"Adding oauth {oauth.access_token} for userid {userid}") + _LOGGER.debug(f"Adding oauth {oauth.access_token} for userid {userid}") table.insert(oauth.toDB()) return oauth @@ -261,7 +255,7 @@ def get_disconnected_xmpp_clients() -> list[Document]: def check_authcode(uid: str, authcode: str) -> bool: - bumperlog.debug(f"Checking for authcode: {authcode}") + _LOGGER.debug(f"Checking for authcode: {authcode}") tokens = db_get().table("tokens") tmpauth = tokens.get( (Query().authcode == authcode) @@ -277,7 +271,7 @@ def check_authcode(uid: str, authcode: str) -> bool: def loginByItToken(authcode: str) -> dict[str, str]: - bumperlog.debug(f"Checking for authcode: {authcode}") + _LOGGER.debug(f"Checking for authcode: {authcode}") tokens = db_get().table("tokens") tmpauth = tokens.get( Query().authcode @@ -294,7 +288,7 @@ def loginByItToken(authcode: str) -> dict[str, str]: def check_token(uid: str, token: str) -> bool: - bumperlog.debug(f"Checking for token: {token}") + _LOGGER.debug(f"Checking for token: {token}") tokens = db_get().table("tokens") tmpauth = tokens.get( (Query().token == token) @@ -313,7 +307,7 @@ def revoke_expired_tokens() -> None: tokens = db_get().table("tokens").all() for i in tokens: if datetime.now() >= datetime.fromisoformat(i["expiration"]): - bumperlog.debug("Removing token {} due to expiration".format(i["token"])) + _LOGGER.debug("Removing token {} due to expiration".format(i["token"])) db_get().table("tokens").remove(doc_ids=[i.doc_id]) @@ -330,7 +324,7 @@ def bot_add(sn: str, did: str, devclass: str, resource: str, company: str) -> No if ( not devclass == "" or "@" not in sn or "tmp" not in sn ): # try to prevent bad additions to the bot list - bumperlog.info(f"Adding new bot with SN: {newbot.name} DID: {newbot.did}") + _LOGGER.info(f"Adding new bot with SN: {newbot.name} DID: {newbot.did}") bot_full_upsert(newbot.asdict()) @@ -353,7 +347,7 @@ def bot_full_upsert(vacbot: dict[str, Any]) -> None: if "did" in vacbot: bots.upsert(vacbot, Bot.did == vacbot["did"]) else: - bumperlog.error(f"No DID in vacbot: {vacbot}") + _LOGGER.error(f"No DID in vacbot: {vacbot}") def bot_set_nick(did: str, nick: str) -> None: @@ -382,7 +376,7 @@ def client_add(userid: str, realm: str, resource: str) -> None: client = client_get(resource) if not client: - bumperlog.info(f"Adding new client with resource {newclient.resource}") + _LOGGER.info(f"Adding new client with resource {newclient.resource}") client_full_upsert(newclient.asdict()) diff --git a/bumper/mqtt/helper_bot.py b/bumper/mqtt/helper_bot.py index 4f7efae..3975576 100644 --- a/bumper/mqtt/helper_bot.py +++ b/bumper/mqtt/helper_bot.py @@ -10,7 +10,7 @@ from gmqtt.mqtt.constants import MQTTv311 from bumper.util import get_logger -_LOGGER = get_logger("helperbot") +_LOGGER = get_logger("helper_bot") class CommandDto: diff --git a/bumper/mqtt/proxy.py b/bumper/mqtt/proxy.py index 80b1cf1..f6824ca 100644 --- a/bumper/mqtt/proxy.py +++ b/bumper/mqtt/proxy.py @@ -25,7 +25,7 @@ import bumper from ..util import get_logger -_LOGGER = get_logger("proxymode") +_LOGGER = get_logger("mqtt_proxy") # iot/p2p/[command]]/[sender did]/[sender class]]/[sender resource] # /[receiver did]/[receiver class]]/[receiver resource]/[q|p/[request id/j diff --git a/bumper/mqtt/server.py b/bumper/mqtt/server.py index 3e417c2..d831bd9 100644 --- a/bumper/mqtt/server.py +++ b/bumper/mqtt/server.py @@ -21,13 +21,12 @@ from bumper.db import ( client_set_mqtt, ) from bumper.mqtt.helper_bot import HELPER_BOT_CLIENT_ID +from bumper.mqtt.proxy import _LOGGER as _LOGGER_PROXY from bumper.mqtt.proxy import ProxyClient from bumper.util import get_logger -mqttserverlog = get_logger("mqttserver") -helperbotlog = get_logger("helperbot") -boterrorlog = get_logger("boterror") -proxymodelog = get_logger("proxymode") +_LOGGER = get_logger("mqtt_server") +_LOGGER_MESSAGES = get_logger("mqtt_messages") class MQTTServer: @@ -81,9 +80,7 @@ class MQTTServer: self._broker = amqtt.broker.Broker(config=config) except Exception: - mqttserverlog.exception( - "An exception occurred during initialize", exc_info=True - ) + _LOGGER.exception("An exception occurred during initialize", exc_info=True) raise @property @@ -98,13 +95,11 @@ class MQTTServer: async def start(self) -> None: """Start MQTT server.""" - mqttserverlog.info("Starting MQTT Server at %s:%d", self._host, self._port) + _LOGGER.info("Starting MQTT Server at %s:%d", self._host, self._port) try: await self._broker.start() except Exception: - mqttserverlog.exception( - "An exception occurred during startup", exc_info=True - ) + _LOGGER.exception("An exception occurred during startup", exc_info=True) raise async def shutdown(self) -> None: @@ -119,7 +114,9 @@ class MQTTServer: def _log__helperbot_message(custom_log_message: str, topic: str, data: str) -> None: - helperbotlog.debug("%s - Topic: %s - Message: %s", custom_log_message, topic, data) + _LOGGER_MESSAGES.debug( + "%s - Topic: %s - Message: %s", custom_log_message, topic, data + ) class BumperMQTTServerPlugin: @@ -137,7 +134,7 @@ class BumperMQTTServerPlugin: "'bumper' section not found in context configuration" ) except Exception: - mqttserverlog.exception( + _LOGGER.exception( "An exception occurred during plugin initialization", exc_info=True ) raise @@ -150,7 +147,7 @@ class BumperMQTTServerPlugin: try: if client_id == HELPER_BOT_CLIENT_ID: - mqttserverlog.info("Bumper Authentication Success - Helperbot") + _LOGGER.info("Bumper Authentication Success - Helperbot") return True if "@" in client_id: @@ -165,16 +162,16 @@ class BumperMQTTServerPlugin: tmpbotdetail[1], "eco-ng", ) - mqttserverlog.info( + _LOGGER.info( "Bumper Authentication Success - Bot - SN: %s - DID: %s - Class: %s", username, didsplit[0], tmpbotdetail[0], ) - if bumper.bumper_proxy_mode: + if bumper.bumper_proxy_mqtt: mqtt_server = await dns.resolve("mq-ww.ecouser.net") - proxymodelog.info( + _LOGGER_PROXY.info( f"MQTT Proxy Mode - Using server {mqtt_server} for client {client_id}" ) proxy = ProxyClient( @@ -192,7 +189,7 @@ class BumperMQTTServerPlugin: if check_authcode(didsplit[0], password) or not bumper.use_auth: client_add(userid, realm, resource) - mqttserverlog.info( + _LOGGER.info( "Bumper Authentication Success - Client - Username: %s - ClientID: %s", username, client_id, @@ -206,27 +203,23 @@ class BumperMQTTServerPlugin: message_suffix = f"- Username: {username} - ClientID: {client_id}" if password_hash: # If there is a matching entry in passwd, check hash if pwd_context.verify(password, password_hash): - mqttserverlog.info( - "File Authentication Success %s", message_suffix - ) + _LOGGER.info("File Authentication Success %s", message_suffix) return True - mqttserverlog.info("File Authentication Failed %s", message_suffix) + _LOGGER.info("File Authentication Failed %s", message_suffix) else: - mqttserverlog.info( + _LOGGER.info( "File Authentication Failed - No Entry %s", message_suffix ) except Exception: # pylint: disable=broad-except - mqttserverlog.exception( - "Session: %s", kwargs.get("session", ""), exc_info=True - ) + _LOGGER.exception("Session: %s", kwargs.get("session", ""), exc_info=True) # Check for allow anonymous if self.auth_config.get("allow-anonymous", True): message = f"Anonymous Authentication Success: config allows anonymous - Username: {username}" self.context.logger.debug(message) - mqttserverlog.info(message) + _LOGGER.info(message) return True return False @@ -260,15 +253,15 @@ class BumperMQTTServerPlugin: async def on_broker_client_subscribed( self, client_id: str, topic: str, qos: QOS_0 | QOS_1 | QOS_2 ) -> None: - if bumper.bumper_proxy_mode: + if bumper.bumper_proxy_mqtt: # if proxy mode, also subscribe on ecovacs server if client_id in self._proxy_clients: await self._proxy_clients[client_id].subscribe(topic, qos) - proxymodelog.info( + _LOGGER_PROXY.info( f"MQTT Proxy Mode - New MQTT Topic Subscription - Client: {client_id} - Topic: {topic}" ) elif client_id != HELPER_BOT_CLIENT_ID: - proxymodelog.warning( + _LOGGER_PROXY.warning( f"MQTT Proxy Mode - No proxy client found! - Client: {client_id} - Topic: {topic}" ) @@ -307,16 +300,11 @@ class BumperMQTTServerPlugin: _log__helperbot_message("Send Command", topic, data_decoded) elif topic_split[1] == "atr": # Broadcast message received on atr - if topic_split[2] == "errors": - boterrorlog.error( - "Received Error - Topic: %s - Message: %s", topic, data_decoded - ) - else: - _log__helperbot_message("Received Broadcast", topic, data_decoded) + _log__helperbot_message("Received Broadcast", topic, data_decoded) else: _log__helperbot_message("Received Message", topic, data_decoded) - if bumper.bumper_proxy_mode and client_id in self._proxy_clients: + if bumper.bumper_proxy_mqtt and client_id in self._proxy_clients: if not topic_split[3] == "proxyhelper": # if from proxyhelper, don't send back to ecovacs...yet if topic_split[6] == "proxyhelper": @@ -325,7 +313,7 @@ class BumperMQTTServerPlugin: ttopic[10], "" ) if ttopic[6] == "": - proxymodelog.warning( + _LOGGER_PROXY.warning( "Request mapper is missing entry, " f"probably request took to long... Client_id: {client_id}" f" - Request_id: {ttopic[10]}" @@ -333,19 +321,19 @@ class BumperMQTTServerPlugin: return ttopic_join = "/".join(ttopic) - proxymodelog.info( + _LOGGER_PROXY.info( f"Bot Message Converted Topic From {message.topic} TO {ttopic_join} " f"with message: {data_decoded}" ) else: ttopic_join = message.topic - proxymodelog.info( + _LOGGER_PROXY.info( f"Bot Message From {ttopic_join} with message: {data_decoded}" ) try: # Send back to ecovacs - proxymodelog.info( + _LOGGER_PROXY.info( "Proxy Forward Message to Ecovacs - Topic:" f" {ttopic_join} - Message: {data_decoded}" ) @@ -353,13 +341,13 @@ class BumperMQTTServerPlugin: ttopic_join, data_decoded.encode(), message.qos ) except Exception: # pylint: disable=broad-except - proxymodelog.error( + _LOGGER_PROXY.error( "Forwarding to Ecovacs - Exception", exc_info=True, ) async def on_broker_client_disconnected(self, client_id: str) -> None: """On client disconnect.""" - if bumper.bumper_proxy_mode and client_id in self._proxy_clients: + if bumper.bumper_proxy_mqtt and client_id in self._proxy_clients: await self._proxy_clients.pop(client_id).disconnect() self._set_client_connected(client_id, False) diff --git a/bumper/util.py b/bumper/util.py index 06da4e3..697ab34 100644 --- a/bumper/util.py +++ b/bumper/util.py @@ -32,7 +32,7 @@ def get_logger(name: str, rotate: RotatingFileHandler | None = None) -> logging. __loggers[name] = logger - if name == "mqttserver": + if name == "mqtt_server": get_logger("transitions", rotate).setLevel( logging.CRITICAL + 1 ) # Ignore this logger diff --git a/bumper/web/auth_util.py b/bumper/web/auth_util.py index d683b2b..3352f55 100644 --- a/bumper/web/auth_util.py +++ b/bumper/web/auth_util.py @@ -30,10 +30,9 @@ from bumper.models import ( EcoVacs_Login, EcoVacsHome_Login, ) -from bumper.util import get_current_time_as_millis, get_logger +from bumper.util import get_current_time_as_millis from bumper.web.plugins import get_success_response - -_logger = get_logger("confserver") +from bumper.web.server import _LOGGER def _generate_token(user: dict[str, Any]) -> str: @@ -56,7 +55,7 @@ async def login(request: Request) -> Response: user_devid = request.match_info.get("devid", "") countrycode = request.match_info.get("country", "us") apptype = request.match_info.get("apptype", "") - _logger.info(f"client with devid {user_devid} attempting login") + _LOGGER.info(f"client with devid {user_devid} attempting login") if use_auth: if ( not user_devid == "" @@ -120,7 +119,7 @@ async def login(request: Request) -> Response: ) except Exception as e: - _logger.exception(f"{e}") + _LOGGER.exception(f"{e}") raise HTTPInternalServerError @@ -214,7 +213,7 @@ def _check_token( return web.json_response(body) except Exception as e: - _logger.exception(f"{e}") + _LOGGER.exception(f"{e}") raise HTTPInternalServerError @@ -269,7 +268,7 @@ def _auth_any( if "did" in bot: user_add_bot(tmpuser["userid"], bot["did"]) else: - _logger.error(f"No DID for bot: {bot}") + _LOGGER.error(f"No DID for bot: {bot}") if "checkLogin" in request.path: # If request was to check a token do so checkToken = _check_token( @@ -300,5 +299,5 @@ def _auth_any( return body except Exception as e: - _logger.exception(f"{e}") + _LOGGER.exception(f"{e}") return {} diff --git a/bumper/web/server.py b/bumper/web/server.py index 8dfa909..f9da533 100644 --- a/bumper/web/server.py +++ b/bumper/web/server.py @@ -35,10 +35,10 @@ class _aiohttp_filter(logging.Filter): return False -confserverlog = get_logger("confserver") +_LOGGER = get_logger("webserver") # Add logging filter above to aiohttp.access logging.getLogger("aiohttp.access").addFilter(_aiohttp_filter()) -proxymodelog = logging.getLogger("proxymode") +_LOGGER_PROXY = logging.getLogger("web_proxy") @dataclasses.dataclass(frozen=True) @@ -110,7 +110,7 @@ class WebServer: async def start(self) -> None: """Start server.""" try: - confserverlog.info("Starting ConfServer") + _LOGGER.info("Starting ConfServer") for binding in self._bindings: runner = web.AppRunner(self._app) self._runners.append(runner) @@ -130,13 +130,13 @@ class WebServer: await site.start() except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") raise e async def shutdown(self) -> None: """Shutdown server.""" try: - confserverlog.info("Shutting down") + _LOGGER.info("Shutting down") for runner in self._runners: await runner.shutdown() @@ -144,7 +144,7 @@ class WebServer: await self._app.shutdown() except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") async def _handle_base(self, request: Request) -> Response: try: @@ -174,7 +174,7 @@ class WebServer: } return aiohttp_jinja2.render_template("home.jinja2", request, context=all) except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") raise HTTPInternalServerError @@ -209,7 +209,7 @@ class WebServer: return web.json_response({"status": "invalid service"}) except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") raise async def _handle_remove_bot(self, request: Request) -> Response: @@ -222,7 +222,7 @@ class WebServer: return web.json_response({"status": "successfully removed bot"}) except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") raise HTTPInternalServerError @@ -236,7 +236,7 @@ class WebServer: return web.json_response({"status": "successfully removed client"}) except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") raise HTTPInternalServerError @@ -247,14 +247,14 @@ class WebServer: else: body = json.loads(await request.text()) - confserverlog.debug(body) + _LOGGER.debug(body) if body["todo"] == "FindBest": service = body["service"] if service == "EcoMsgNew": srvip = bumper.bumper_announce_ip srvport = 5223 - confserverlog.info( + _LOGGER.info( "Announcing EcoMsgNew Server to bot as: {}:{}".format( srvip, srvport ) @@ -267,7 +267,7 @@ class WebServer: elif service == "EcoUpdate": srvip = "47.88.66.164" # EcoVacs Server srvport = 8005 - confserverlog.info( + _LOGGER.info( "Announcing EcoUpdate Server to bot as: {}:{}".format( srvip, srvport ) @@ -279,7 +279,7 @@ class WebServer: return web.json_response({}) except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") raise HTTPInternalServerError @@ -291,14 +291,14 @@ class WebServer: else: postbody = json.loads(await request.text()) - confserverlog.debug(postbody) + _LOGGER.debug(postbody) body = {"authCode": postbody["itToken"], "result": "ok", "todo": "result"} return web.json_response(body) except Exception as e: - confserverlog.exception(f"{e}") + _LOGGER.exception(f"{e}") raise HTTPInternalServerError @@ -318,7 +318,7 @@ class WebServer: ) as session: if request.content.total_bytes > 0: read_body = await request.read() - proxymodelog.info( + _LOGGER_PROXY.info( f"HTTP Proxy Request to EcoVacs (body=true) (URL:{request.url}) - {read_body.decode('utf-8')}" ) if request.content_type == "application/x-www-form-urlencoded": @@ -328,7 +328,7 @@ class WebServer: request.method, request.url, data=fdata ) as resp: response = await resp.text() - proxymodelog.info( + _LOGGER_PROXY.info( f"HTTP Proxy Response from EcoVacs (URL: {request.url}) - (Status: {resp.status}) - {response}" ) else: @@ -337,23 +337,23 @@ class WebServer: request.method, request.url, json=await request.json() ) as resp: response = await resp.text() - proxymodelog.info( + _LOGGER_PROXY.info( f"HTTP Proxy Response from EcoVacs (URL: {request.url}) - (Status: {resp.status}) - {response}" ) else: - proxymodelog.info( + _LOGGER_PROXY.info( f"HTTP Proxy Request to EcoVacs (body=false) (URL:{request.url})" ) async with session.request(request.method, request.url) as resp: if resp.content_type == "application/octet-stream": - proxymodelog.info( + _LOGGER_PROXY.info( f"HTTP Proxy Response from EcoVacs (URL: {request.url}) - (Status: {resp.status}) - " ) return web.Response(body=await resp.read()) else: response = await resp.text() - proxymodelog.info( + _LOGGER_PROXY.info( f"HTTP Proxy Response from EcoVacs (URL: {request.url}) - (Status: {resp.status}) - {response}" ) @@ -366,12 +366,12 @@ class WebServer: return web.Response(text=response) except asyncio.CancelledError: - proxymodelog.exception( + _LOGGER_PROXY.exception( f"Request cancelled or timeout - {request.url}", exc_info=True ) raise except Exception: - proxymodelog.exception("An exception occurred", exc_info=True) + _LOGGER_PROXY.exception("An exception occurred", exc_info=True) raise HTTPInternalServerError diff --git a/example/docker-compose/docker-compose.yaml b/example/docker-compose/docker-compose.yaml index b8e388d..9aa9042 100644 --- a/example/docker-compose/docker-compose.yaml +++ b/example/docker-compose/docker-compose.yaml @@ -21,7 +21,7 @@ services: volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - - ./nginx/:/etc/nginx:ro # See config file below + - ./nginx/:/etc/nginx:ro # See config file below bumper: image: bmartin5692/bumper @@ -33,7 +33,7 @@ services: PUID: 1000 PGID: 1000 TZ: Europe/Rome - BUMPER_ANNOUNCE_IP: XXX # Insert your IP + BUMPER_ANNOUNCE_IP: XXX # Insert your IP BUMPER_LISTEN: 0.0.0.0 # BUMPER_DEBUG: "true" LOG_TO_STDOUT: "true" diff --git a/tests/test_mqttserver.py b/tests/test_mqttserver.py index 7133d42..8276a83 100644 --- a/tests/test_mqttserver.py +++ b/tests/test_mqttserver.py @@ -27,7 +27,7 @@ async def test_helperbot_message(mqtt_client: Client): l.check_present( ( - "helperbot", + "mqtt_messages", "DEBUG", "Received Broadcast - Topic: iot/atr/DustCaseST/bot_serial/ls1ok3/wC3g/x - Message: ", ) @@ -47,7 +47,7 @@ async def test_helperbot_message(mqtt_client: Client): l.check_present( ( - "helperbot", + "mqtt_messages", "DEBUG", "Send Command - Topic: iot/p2p/GetWKVer/helperbot/bumper/helperbot/bot_serial/ls1ok3/wC3g/q/iCmuqp/j - Message: {}", ) @@ -67,7 +67,7 @@ async def test_helperbot_message(mqtt_client: Client): l.check_present( ( - "helperbot", + "mqtt_messages", "DEBUG", 'Received Response - Topic: iot/p2p/GetWKVer/bot_serial/ls1ok3/wC3g/helperbot/bumper/helperbot/p/iCmuqp/j - Message: {"ret":"ok","ver":"0.13.5"}', ) @@ -83,11 +83,11 @@ async def test_helperbot_message(mqtt_client: Client): msg_topic_name = "iot/p2p/GetWKVer/bot_serial/ls1ok3/wC3g/TESTBAD/bumper/helperbot/p/iCmuqp/j" mqtt_client.publish(msg_topic_name, msg_payload.encode()) - await asyncio.sleep(0.1) + await asyncio.sleep(0.2) l.check_present( ( - "helperbot", + "mqtt_messages", "DEBUG", "Received Message - Topic: iot/p2p/GetWKVer/bot_serial/ls1ok3/wC3g/TESTBAD/bumper/helperbot/p/iCmuqp/j - Message: test", ) @@ -107,9 +107,9 @@ async def test_helperbot_message(mqtt_client: Client): l.check_present( ( - "boterror", - "ERROR", - "Received Error - Topic: iot/atr/errors/bot_serial/ls1ok3/wC3g/x - Message: ", + "mqtt_messages", + "DEBUG", + "Received Broadcast - Topic: iot/atr/errors/bot_serial/ls1ok3/wC3g/x - Message: ", ) ) # Check received message was logged l.clear() @@ -324,7 +324,7 @@ async def test_mqttserver(): l.check_present( ( - "mqttserver", + "mqtt_server", "INFO", "File Authentication Failed - Username: test-client - ClientID: test-file-auth", ), @@ -339,7 +339,7 @@ async def test_mqttserver(): l.check_present( ( - "mqttserver", + "mqtt_server", "INFO", "File Authentication Failed - No Entry - Username: test-client-noexist - ClientID: test-file-auth", ),