in aws_advanced_python_wrapper/plugin_service.py [0:0]
def _update_hosts(self, new_hosts: Tuple[HostInfo, ...]):
old_hosts_dict = {x.url: x for x in self._all_hosts}
new_hosts_dict = {x.url: x for x in new_hosts}
changes: Dict[str, Set[HostEvent]] = {}
for host in self._all_hosts:
corresponding_new_host = new_hosts_dict.get(host.url)
if corresponding_new_host is None:
changes[host.url] = {HostEvent.HOST_DELETED}
else:
host_changes: Set[HostEvent] = self._compare(host, corresponding_new_host)
if len(host_changes) > 0:
changes[host.url] = host_changes
for key, value in new_hosts_dict.items():
if key not in old_hosts_dict:
changes[key] = {HostEvent.HOST_ADDED}
if len(changes) > 0:
self._all_hosts = tuple(new_hosts) if new_hosts is not None else ()
self._container.plugin_manager.notify_host_list_changed(changes)