Begin Main...
(logger=None)
| 99 | |
| 100 | |
| 101 | def main(logger=None): |
| 102 | """ |
| 103 | Begin Main... |
| 104 | """ |
| 105 | if logger is None: |
| 106 | logger = LoggingUtil.create_log(__name__) |
| 107 | |
| 108 | now = datetime.now() |
| 109 | print("Starting: " + str(now)) |
| 110 | logger.info("Starting...") |
| 111 | |
| 112 | mongo_connector = MongoConnector.MongoConnector() |
| 113 | dns_manager = DNSManager.DNSManager(mongo_connector) |
| 114 | jobs_manager = JobsManager.JobsManager(mongo_connector, "sonar_round_two") |
| 115 | google_dns = GoogleDNS.GoogleDNS() |
| 116 | jobs_manager.record_job_start() |
| 117 | |
| 118 | zones = ZoneManager.get_distinct_zones(mongo_connector) |
| 119 | |
| 120 | results = dns_manager.find_multiple({"type": "cname"}, "sonar_dns") |
| 121 | |
| 122 | round_two = [] |
| 123 | round_three = [] |
| 124 | |
| 125 | # Get all the CNAME values from all_dns and append them to round_two |
| 126 | for result in results: |
| 127 | if is_tracked_zone(result["value"], zones): |
| 128 | round_two.append(result["value"]) |
| 129 | |
| 130 | logger.info("Round two pre-list: " + str(len(round_two))) |
| 131 | |
| 132 | dead_dns_collection = mongo_connector.get_dead_dns_connection() |
| 133 | |
| 134 | for value in round_two: |
| 135 | is_present = dns_manager.find_count({"fqdn": value}, "sonar_dns") |
| 136 | if is_present == 0: |
| 137 | logger.debug(value + " not found") |
| 138 | time.sleep(1) |
| 139 | result = google_dns.fetch_DNS_records(value) |
| 140 | if result is None or result == []: |
| 141 | logger.debug("Unable to resolve") |
| 142 | original_records = dns_manager.find_multiple( |
| 143 | {"value": value}, "sonar_dns" |
| 144 | ) |
| 145 | for record in original_records: |
| 146 | check = dead_dns_collection.count_documents( |
| 147 | {"fqdn": record["fqdn"]} |
| 148 | ) |
| 149 | if check == 0: |
| 150 | record.pop("_id") |
| 151 | mongo_connector.perform_insert(dead_dns_collection, record) |
| 152 | else: |
| 153 | for entry in result: |
| 154 | if is_tracked_zone(entry["fqdn"], zones): |
| 155 | new_record = entry |
| 156 | new_record["status"] = "unconfirmed" |
| 157 | new_record["zone"] = get_fld_from_value(value, "") |
| 158 | new_record["created"] = datetime.now() |
no test coverage detected