MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / resolve_host_findings

Method resolve_host_findings

network_intelligence.py:497–529  ·  view source on GitHub ↗

Resolve all active findings for a given host across networks.

(self, host: str, reason: str = "host_offline")

Source from the content-addressed store, hash-verified

495 return open_vulns
496
497 def resolve_host_findings(self, host: str, reason: str = "host_offline"):
498 """Resolve all active findings for a given host across networks."""
499 try:
500 resolved_any = False
501 for network_id, vulns in list(self.active_vulnerabilities.items()):
502 for vuln_id, vuln_data in list(vulns.items()):
503 if vuln_data.get('host') == host:
504 self.active_vulnerabilities[network_id].pop(vuln_id, None)
505 vuln_data['status'] = 'resolved'
506 vuln_data['resolved'] = datetime.now().isoformat()
507 vuln_data['resolution_reason'] = reason
508 if network_id not in self.resolved_vulnerabilities:
509 self.resolved_vulnerabilities[network_id] = {}
510 self.resolved_vulnerabilities[network_id][vuln_id] = vuln_data
511 resolved_any = True
512
513 for network_id, creds in list(self.active_credentials.items()):
514 for cred_id, cred_data in list(creds.items()):
515 if cred_data.get('host') == host:
516 self.active_credentials[network_id].pop(cred_id, None)
517 cred_data['status'] = 'resolved'
518 cred_data['resolved'] = datetime.now().isoformat()
519 cred_data['resolution_reason'] = reason
520 if network_id not in self.resolved_credentials:
521 self.resolved_credentials[network_id] = {}
522 self.resolved_credentials[network_id][cred_id] = cred_data
523 resolved_any = True
524
525 if resolved_any:
526 self.save_intelligence_data()
527 self.logger.info(f"Resolved findings for host {host} due to {reason}")
528 except Exception as e:
529 self.logger.error(f"Error resolving findings for host {host}: {e}")
530
531 def get_all_findings_for_netkb(self) -> Dict:
532 """Get all findings (active + resolved) for NetKB view"""

Callers 1

update_wifi_network_dataFunction · 0.80

Calls 6

popMethod · 0.80
infoMethod · 0.80
errorMethod · 0.80
itemsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected