Skip to content

Commit

Permalink
Adds agent class and address to registry info
Browse files Browse the repository at this point in the history
  • Loading branch information
jlashner committed May 17, 2022
1 parent 7038508 commit bb75854
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions agents/registry/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,14 @@ class RegisteredAgent:
operations. For details on what the operation codes mean, see
docs from the ``ocs_agent`` module
"""
def __init__(self):
def __init__(self, feed):
self.expired = False
self.time_expired = None
self.last_updated = time.time()
self.op_codes = {}
self.agent_class = feed.get('agent_class')
self.agent_address = feed['agent_address']


def refresh(self, op_codes=None):
self.expired = False
Expand All @@ -49,6 +52,8 @@ def encoded(self):
'time_expired': self.time_expired,
'last_updated': self.last_updated,
'op_codes': self.op_codes,
'agent_class': self.agent_class,
'agent_address': self.agent_address,
}


Expand Down Expand Up @@ -83,7 +88,7 @@ def __init__(self, agent):
self._run = False

# Dict containing agent_data for each registered agent
self.registered_agents = defaultdict(RegisteredAgent)
self.registered_agents = {}
self.agent_timeout = 5.0 # Removes agent after 5 seconds of no heartbeat.

self.agent.subscribe_on_start(
Expand All @@ -104,7 +109,10 @@ def _register_heartbeat(self, _data):
It will update that agent in the Registry's registered_agent dict.
"""
op_codes, feed = _data
self.registered_agents[feed['agent_address']].refresh(op_codes=op_codes)
addr = feed['agent_address']
if addr not in self.registered_agents:
self.registered_agents[addr] = RegisteredAgent(feed)
self.registered_agents[addr].refresh(op_codes=op_codes)

@ocs_agent.param('test_mode', default=False, type=bool)
@inlineCallbacks
Expand Down

0 comments on commit bb75854

Please sign in to comment.