Begin Main...
(logger=None)
| 239 | |
| 240 | |
| 241 | def main(logger=None): |
| 242 | """ |
| 243 | Begin Main... |
| 244 | """ |
| 245 | if logger is None: |
| 246 | logger = LoggingUtil.create_log(__name__) |
| 247 | |
| 248 | if is_running(os.path.basename(__file__)): |
| 249 | logger.warning("Already running...") |
| 250 | exit(0) |
| 251 | |
| 252 | now = datetime.now() |
| 253 | print("Starting: " + str(now)) |
| 254 | logger.info("Starting...") |
| 255 | |
| 256 | parser = argparse.ArgumentParser( |
| 257 | description="Parse Sonar files based on domain zones." |
| 258 | ) |
| 259 | parser.add_argument( |
| 260 | "--sonar_file_type", |
| 261 | choices=["dns-any", "dns-a", "rdns"], |
| 262 | required=True, |
| 263 | help='Specify "dns-any", "dns-a", or "rdns"', |
| 264 | ) |
| 265 | parser.add_argument( |
| 266 | "--database", |
| 267 | choices=["local", "remote"], |
| 268 | required=False, |
| 269 | default="local", |
| 270 | help="Whether to use the local or remote DB", |
| 271 | ) |
| 272 | parser.add_argument( |
| 273 | "--download_location", |
| 274 | required=False, |
| 275 | default="./files/", |
| 276 | help="The location to save the downloaded files", |
| 277 | ) |
| 278 | args = parser.parse_args() |
| 279 | |
| 280 | if args.database == "remote": |
| 281 | mongo_connector = RemoteMongoConnector.RemoteMongoConnector() |
| 282 | dns_manager = DNSManager.DNSManager(mongo_connector, "get_sonar_data_dns") |
| 283 | else: |
| 284 | mongo_connector = MongoConnector.MongoConnector() |
| 285 | dns_manager = DNSManager.DNSManager(mongo_connector) |
| 286 | |
| 287 | zones = ZoneManager.get_distinct_zones(mongo_connector) |
| 288 | |
| 289 | r7 = Rapid7.Rapid7() |
| 290 | |
| 291 | save_directory = args.download_location |
| 292 | check_save_location(save_directory) |
| 293 | |
| 294 | # A session is necessary for the multi-step log-in process |
| 295 | s = requests.Session() |
| 296 | |
| 297 | if args.sonar_file_type == "rdns": |
| 298 | logger.info("Updating RDNS records") |
no test coverage detected