Compare commits

..

No commits in common. "ed01ead04d6d63d54a64c80a4443ca5567e6a3b3" and "62f059b4613030d0104764ce3eb9ea6a47a38e79" have entirely different histories.

3 changed files with 17 additions and 12 deletions

6
app.py
View File

@ -25,13 +25,11 @@ if __name__ == "__main__":
LOGGER.info("Producer started") LOGGER.info("Producer started")
generateduuid = str(uuid) generateduuid = str(uuid)
LOGGER.debug(f"My uuid is {generateduuid}") LOGGER.debug(f"My uuid is {generateduuid}")
consumerlocator = ConsumerLocator(uuid=generateduuid) consumerlocator = ConsumerLocator()
communicator = Communicator(consumerlocator=consumerlocator,uuid=generateduuid) communicator = Communicator(consumerlocator=consumerlocator,uuid=uuid)
messagesender = MessageSender(communicator=communicator) messagesender = MessageSender(communicator=communicator)
while True: while True:
LOGGER.info(f"Updating consumer list of {generateduuid}")
consumerlocator.updateconsumer()
LOGGER.info("Sending message to consumer") LOGGER.info("Sending message to consumer")
messagesender.sendmessage() messagesender.sendmessage()
time.sleep(random.random()) time.sleep(random.random())

View File

@ -21,7 +21,7 @@ class Communicator:
Class handling low level communication with consumers. Class handling low level communication with consumers.
""" """
def __init__(self, consumerlocator: ConsumerLocator, uuid: str): def __init__(self, consumerlocator: ConsumerLocator, uuid):
""" """
Initialize object Initialize object
:param consumerlocator: :param consumerlocator:

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
import datetime import datetime
from communicator import Communicator import communicator
import os import os
""" """
@ -20,15 +20,22 @@ class ConsumerLocator:
Manages the list of consumers. Manages the list of consumers.
""" """
def __init__(self, uuid: str): def __init__(self):
""" """
Initialize class. Initialize class.
""" """
os.environ["KnownConsumer"] = "10.69.42.2" # TODO remove
self.consumerlist = [{"Host": os.environ["KnownConsumer"], "State": True, "LastOk": datetime.datetime.now()}] self.consumerlist = [{"Host": os.environ["KnownConsumer"], "State": True, "LastOk": datetime.datetime.now()}]
self.currentconsumer = self.consumerlist[0] self.currentconsumer = self.consumerlist[0]
self.communicator = Communicator(consumerlocator=self,uuid=uuid)
def learnconsumerlist(self) -> None: def initcommunicator(self, comm: communicator.Communicator):
"""
Initialize the reference to the communicator
:param comm: is the communicator
"""
self.communicator = comm
def learnconsumerlist(self):
"""" """"
Learns the list of consumers. Learns the list of consumers.
""" """
@ -46,7 +53,7 @@ class ConsumerLocator:
self.updateconsumerlist() self.updateconsumerlist()
def updateconsumerlist(self) -> None: def updateconsumerlist(self):
""" """
Updates the consumer list based on their availability. Updates the consumer list based on their availability.
""" """
@ -86,14 +93,14 @@ class ConsumerLocator:
else: else:
return None return None
def getcurrentconsumer(self) -> str: def getcurrentconsumer(self):
""" """
Returns the currently selected consumer. Returns the currently selected consumer.
:return: the current consumer :return: the current consumer
""" """
return self.currentconsumer["Host"] return self.currentconsumer["Host"]
def checkcurrentconsumer(self) -> bool: def checkcurrentconsumer(self):
""" """
Check the consumers health. Check the consumers health.
:return: True if OK, False if fail :return: True if OK, False if fail