Begin Main...
(logger=None)
| 205 | |
| 206 | |
| 207 | def main(logger=None): |
| 208 | """ |
| 209 | Begin Main... |
| 210 | """ |
| 211 | if logger is None: |
| 212 | logger = LoggingUtil.create_log(__name__) |
| 213 | |
| 214 | now = datetime.now() |
| 215 | print("Starting: " + str(now)) |
| 216 | logger.info("Starting...") |
| 217 | |
| 218 | azure_connector = AzureConnector.AzureConnector() |
| 219 | mongo_connector = MongoConnector.MongoConnector() |
| 220 | dns_manager = DNSManager.DNSManager(mongo_connector) |
| 221 | zone_ingestor = ZoneIngestor.ZoneIngestor() |
| 222 | jobs_manager = JobsManager.JobsManager(mongo_connector, "fetch_azure_dns") |
| 223 | jobs_manager.record_job_start() |
| 224 | |
| 225 | current_zones = ZoneManager.get_distinct_zones(mongo_connector) |
| 226 | |
| 227 | resource_client = azure_connector.get_resources_client() |
| 228 | resources = [] |
| 229 | |
| 230 | # The resource list is not currently used. |
| 231 | for item in resource_client.resource_groups.list(): |
| 232 | resources.append(item.name) |
| 233 | |
| 234 | dns_client = azure_connector.get_dns_client() |
| 235 | |
| 236 | zones = dns_client.zones.list() |
| 237 | |
| 238 | # The type of records the Azure DNS will let you configure |
| 239 | record_types = { |
| 240 | "A": "arecords", |
| 241 | "AAAA": "aaaa_records", |
| 242 | "MX": "mx_records", |
| 243 | "NS": "ns_records", |
| 244 | "PTR": "ptr_records", |
| 245 | "SRV": "srv_records", |
| 246 | "TXT": "txt_records", |
| 247 | "CNAME": "cname_record", |
| 248 | "SOA": "soa_record", |
| 249 | } |
| 250 | |
| 251 | for zone in zones: |
| 252 | logger.info("Zone: " + zone.name) |
| 253 | data = split_id(zone.id) |
| 254 | |
| 255 | if zone.zone_type == ZoneType.public: |
| 256 | logger.info(zone.name + " is public:") |
| 257 | |
| 258 | if zone.name not in current_zones: |
| 259 | logger.debug("Creating zone: " + zone.name) |
| 260 | zone_ingestor.add_zone(zone.name, "azure:" + data["resourceGroups"]) |
| 261 | |
| 262 | try: |
| 263 | logger.info("ResourceGroup: " + data["resourceGroups"]) |
| 264 | records = dns_client.record_sets.list_all_by_dns_zone( |
no test coverage detected