Compare commits

...

3 Commits

Author SHA1 Message Date
ed01ead04d Merge pull request 'Wire all components together' (#2) from wire_together into master
All checks were successful
continuous-integration/drone/push Build is passing
\O/
2020-03-30 17:34:35 +02:00
77f01db969
solve circular dependency
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2020-03-30 17:15:59 +02:00
94edf03cf8
introduce type hinting to consumerlocator
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-30 17:10:48 +02:00
3 changed files with 12 additions and 17 deletions

6
app.py
View File

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

View File

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

View File

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