Miros Rabbitmq Manual Discovery
miros_rabbitmq_manual_discovery
User Manual:
Open the PDF directly: View PDF .
Page Count: 1
Download | |
Open PDF In Browser | View PDF |
MirosRabbitManualNetwork make_amqp_url(ip_address) routing_key exchange_name dict hosts live_hosts dead_hosts live_amqp_urls dead_amqp_urls file_name file_path manual_file_chart ManNetChart Event Processor read_and_evaluate_network_details entry / if not hasattr(chart, 'manual_file_chart'): chart.file_path = '.miros_rabbimq_hosts.json' chart.file_name = os.path.basename(chart.file_path) chart.manual_file_chart = CacheFileChart( file_path=chart.file_path) chart.subscribe(Event(signal=signals.CACHE)) chart.publish(Event(signals.CACHE_FILE_READ)) network_evaluated / payload = ConnectionDiscoveryPayload( ip_addresses=chart.live_hosts, amqp_urls=chart.live_amqp_urls, from=chart.name) chart.publish( Event(signal=signals.CONNECTION_DISCOVERY, payload=payload) CacheReadPayload = \ namedtuple('CacheReadPayload', ['dict', 'last_modified', 'created_at', 'expired', 'file_name']) CACHE as e: \ [e.payload.file_name == chart.file_name] chart.hosts = e.payload.dict['hosts'] ConnectionDiscoveryPayload = \ namedtuple('ConnectionDiscoveryPayload', ['hosts', 'amqp_urls', 'dispatcher']) evaluate_network entry / chart.candidates = {} for host_address in chart.hosts: each scout will produce chart.candidates[host_address] = \ an AMQP_CONSUMER_CHECK event RecceNode(searched=False, and will be destroyed after use result=False scout=RabbitConsumerScoutChart( host_address, chart.routing_key, chart.exchange_name)) AMQP_CONSUMER_CHECK as e with payload / h, result = e.payload.ip_address, e.payload.result is_one_of_my_hosts = h in chart.hosts is_my_routing_key = e.payload.routing_key is chart.routing_key is_my_exchange_name = e.payload.exchange_name is chart.exchange_name if is_one_of_my_hosts and is_my_routing_key and is_my_exchange_name: chart.candidates[h] = RecceNode(searched=True, result=result, scout=None) if result: chart.live_hosts.append(h) RecceNode chart.live_amqp_urls.append(chart.make_amqp_url(h)) namedtuple( else 'RecceNode', ['searched', 'result', 'scout']) chart.dead_hosts.append(h) chart.dead_amqp_urls.append(h) search_complete = all([node.searched for node in chart.candidates.values()]) if search_complete: chart.post_fifo(Event(signals.network_evaluated)) CACHE / {} EVALUATE_HOSTS_FILE CONNECTION_DISCOVERY()
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.4 Linearized : No Modify Date : 2018:06:07 09:47:18-07:00 Create Date : 2018:06:07 09:47:18-07:00 Producer : iText® 5.4.1 ©2000-2012 1T3XT BVBA (AGPL-version) Page Count : 1EXIF Metadata provided by EXIF.tools