monkey/envs/monkey_zoo/blackbox/analyzers/communication_analyzer.py

25 lines
1001 B
Python
Raw Normal View History

from envs.monkey_zoo.blackbox.analyzers.analyzer_log import AnalyzerLog
2019-09-07 01:59:11 +08:00
2019-08-29 23:18:25 +08:00
class CommunicationAnalyzer(object):
def __init__(self, island_client, machine_ips):
2019-08-29 23:18:25 +08:00
self.island_client = island_client
self.machine_ips = machine_ips
2019-09-07 01:59:11 +08:00
self.log = AnalyzerLog(self.__class__.__name__)
2019-08-29 23:18:25 +08:00
def analyze_test_results(self):
2019-09-07 01:59:11 +08:00
self.log.clear()
all_monkeys_communicated = True
for machine_ip in self.machine_ips:
if not self.did_monkey_communicate_back(machine_ip):
2019-09-07 01:59:11 +08:00
self.log.add_entry("Monkey from {} didn't communicate back".format(machine_ip))
all_monkeys_communicated = False
else:
self.log.add_entry("Monkey from {} communicated back".format(machine_ip))
return all_monkeys_communicated
2019-08-29 23:18:25 +08:00
def did_monkey_communicate_back(self, machine_ip):
2019-09-13 21:12:58 +08:00
query = {'ip_addresses': {'$elemMatch': {'$eq': machine_ip}}}
return len(self.island_client.find_monkeys_in_db(query)) > 0