Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions hello/advertizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import random
import time
from logging import INFO, DEBUG
from typing import Any

from common_utility import IReusableTimer
Expand All @@ -22,7 +23,7 @@ def start(self, group: Group, info: ServiceInfo | None = None) -> None:
def stop(self) -> None:
raise NotImplementedError()

def advertise(self, info: ServiceInfo | None = None) -> None:
def advertise(self, info: ServiceInfo | None = None, log_level: int = INFO) -> None:
raise NotImplementedError()


Expand All @@ -43,18 +44,21 @@ def start(self, group: Group, info: ServiceInfo | None = None) -> None:
self._sender.start(group.hello())
self._group = group
self._info = info
log.info('Advertizer started', group=self._group, service=self._info)

def stop(self) -> None:
self._group = None
self._info = None
self._sender.stop()
log.info('Advertizer stopped')

def advertise(self, info: ServiceInfo | None = None) -> None:
def advertise(self, info: ServiceInfo | None = None, log_level: int = INFO) -> None:
if self._group:
if info:
self._info = info
if self._info:
self._sender.send(self._info)
log.info('Service advertised', service=self._info, group=self._group)
log.log(log_level, 'Service advertised', service=self._info, group=self._group)
else:
log.warning('Cannot advertise service, no service info provided', group=self._group)
else:
Expand Down Expand Up @@ -115,8 +119,8 @@ def stop(self) -> None:
super().stop()
self._advertizer.stop()

def advertise(self, info: ServiceInfo | None = None) -> None:
self._advertizer.advertise(info)
def advertise(self, info: ServiceInfo | None = None, log_level: int = INFO) -> None:
self._advertizer.advertise(info, log_level)

def _execute(self, info: ServiceInfo | None = None) -> None:
self.advertise(info)
self.advertise(info, DEBUG)
15 changes: 9 additions & 6 deletions hello/discoverer.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from concurrent.futures import ThreadPoolExecutor
from dataclasses import dataclass
from enum import Enum
from logging import INFO, DEBUG
from typing import Any, Protocol
from uuid import UUID

Expand Down Expand Up @@ -41,7 +42,7 @@ def start(self, group: Group, query: ServiceQuery | None = None) -> None:
def stop(self) -> None:
raise NotImplementedError()

def discover(self, query: ServiceQuery | None = None) -> None:
def discover(self, query: ServiceQuery | None = None, log_level: int = INFO) -> None:
raise NotImplementedError()

def register(self, handler: OnDiscoveryEvent) -> None:
Expand Down Expand Up @@ -78,21 +79,23 @@ def start(self, group: Group, query: ServiceQuery | None = None) -> None:
self._sender.start(group.query())
self._receiver.register(self._handle_message)
self._receiver.start(group.hello())
log.info('Discoverer started', group=self._group, query=query)

def stop(self) -> None:
self._group = None
self._matcher = None
self._sender.stop()
self._receiver.deregister(self._handle_message)
self._receiver.stop()
log.info('Discoverer stopped')

def discover(self, query: ServiceQuery | None = None) -> None:
def discover(self, query: ServiceQuery | None = None, log_level: int = INFO) -> None:
if self._group:
if query:
self._matcher = ServiceMatcher(query)
if self._matcher:
self._sender.send(self._matcher.query)
log.info('Service discovery initiated', group=self._group, query=self._matcher.query)
log.log(log_level, 'Service discovery initiated', group=self._group, query=self._matcher.query)
else:
log.warning('Cannot discover services, no query provided', group=self._group)
else:
Expand Down Expand Up @@ -168,8 +171,8 @@ def stop(self) -> None:
super().stop()
self._discoverer.stop()

def discover(self, query: ServiceQuery | None = None) -> None:
self._discoverer.discover(query)
def discover(self, query: ServiceQuery | None = None, log_level: int = INFO) -> None:
self._discoverer.discover(query, log_level)

def get_services(self) -> dict[UUID, ServiceInfo]:
return self._discoverer.get_services()
Expand All @@ -181,4 +184,4 @@ def deregister(self, handler: OnDiscoveryEvent) -> None:
self._discoverer.deregister(handler)

def _execute(self, query: ServiceQuery | None = None) -> None:
self.discover(query)
self.discover(query, DEBUG)
5 changes: 3 additions & 2 deletions tests/scheduledAdvertizerTest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import unittest
from logging import DEBUG, INFO
from unittest import TestCase
from unittest.mock import MagicMock
from uuid import uuid4
Expand Down Expand Up @@ -71,7 +72,7 @@ def test_sends_service_info(self):
scheduled_advertizer.advertise(SERVICE_INFO)

# Then
advertizer.advertise.assert_called_once_with(SERVICE_INFO)
advertizer.advertise.assert_called_once_with(SERVICE_INFO, INFO)

def test_schedules_advertise_once(self):
# Given
Expand Down Expand Up @@ -110,7 +111,7 @@ def test_execute_and_restart_calls_advertise_and_restarts_timer(self):
scheduled_advertizer._execute_and_restart(SERVICE_INFO)

# Then
advertizer.advertise.assert_called_once_with(SERVICE_INFO)
advertizer.advertise.assert_called_once_with(SERVICE_INFO, DEBUG)
timer.restart.assert_called_once()


Expand Down
5 changes: 3 additions & 2 deletions tests/scheduledDiscovererTest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import unittest
from logging import DEBUG, INFO
from unittest import TestCase
from unittest.mock import MagicMock

Expand Down Expand Up @@ -97,7 +98,7 @@ def test_sends_service_query(self):
scheduled_discoverer.discover(SERVICE_QUERY)

# Then
discoverer.discover.assert_called_once_with(SERVICE_QUERY)
discoverer.discover.assert_called_once_with(SERVICE_QUERY, INFO)

def test_schedules_discover_once(self):
# Given
Expand Down Expand Up @@ -136,7 +137,7 @@ def test_execute_and_restart_calls_discover_and_restarts_timer(self):
scheduled_discoverer._execute_and_restart(SERVICE_QUERY)

# Then
discoverer.discover.assert_called_once_with(SERVICE_QUERY)
discoverer.discover.assert_called_once_with(SERVICE_QUERY, DEBUG)
timer.restart.assert_called_once()


Expand Down
Loading