def __init__(self): super().__init__() self.user = user_service.find_user_by_id(self.user_id) self.routers = router_service.get_router_list() self.router_to_update = self.request_dict.selected_router self.router_name = self.request_dict.name self.router_ip = self.request_dict.router_ip self.username = self.request_dict.username self.password = self.request_dict.password self.ignore: Optional[str] = None
def run(): # setting start time for sync to async comparison start_time = datetime.datetime.now() # gathering list all routers and list of routers to be ignored and router count routers = router_service.get_router_list() ignored_routers = router_service.get_router_ignore_list() router_count = router_service.get_router_count() loop = asyncio.get_event_loop() for item in tqdm(routers, total=router_count, unit=" router"): if item.router_name in ignored_routers: logging.info(f"Backup skipped for {item.router_name}") tqdm.write(f"Backup skipped for {item.router_name}") backup_status = "Backup Skipped" config_status = "Config Skipped" session = db_session.create_session() r = session.query(Router).filter(Router.router_name == item.router_name).one() r.backup_status = backup_status r.config_status = config_status session.commit() else: # starting backup tqdm.write(f"Starting backup for {item.router_name}...") logging.info(f"Starting backup for {item.router_name}...") task_1 = loop.create_task(create_backup(item.router_name, item.router_ip, item.username)) # backup file completed tqdm.write(f"Completed backup for {item.router_name}") logging.info(f"Completed backup for {item.router_name}") # starting config export tqdm.write(f"Starting config export for {item.router_name}...") logging.info(f"Starting config export for {item.router_name}...") task_2 = loop.create_task(create_config(item.router_name, item.router_ip, item.username)) tqdm.write(f"Config export complete for {item.router_name}") logging.info(f"Config export complete for {item.router_name}") # gathering info from rotuers task_3 = loop.create_task(router_details_service.get_info(item.router_name, item.router_ip, item.username)) router_details_service.parse_info(item.router_name) final_task = asyncio.gather(task_1, task_2, task_3) loop.run_until_complete(final_task) dt = datetime.datetime.now() - start_time print(colorama.Fore.WHITE + "App exiting, total time: {:,.2f} sec.".format(dt.total_seconds()), flush=True)
def __init__(self): super().__init__() self.user = user_service.find_user_by_id(self.user_id) self.routers = router_service.get_router_list() self.router_count = router_service.get_router_count() self.backup_complete_count = router_service.get_backup_complete_count() self.config_complete_count = router_service.get_config_complete_count() self.backup_failed_count = router_service.get_backup_failed_count() self.config_failed_count = router_service.get_config_failed_count() self.unknown_count = router_service.get_unknown_status_count() self.ignore_count = router_service.get_router_ignore_count()
def run(): tqdm.write(f"{log_date_time} Gathering Routers...") print(f"{log_date_time} Gathering Routers...") ignore_list = router_service.get_router_ignore_list() router_list = router_service.get_router_list() router_count = router_service.get_router_count() tqdm.write(f"{log_date_time} Routers Gathered.") print(f"{log_date_time} Routers Gathered.") for item in tqdm(router_list, total=router_count, unit=" routers"): tqdm.write( f"{log_date_time} Starting Removal for {item.router_name}...") print(f"{log_date_time} Starting Removal for {item.router_name}...") if item.router_name in ignore_list: tqdm.write(f"{log_date_time} Removal skipped.") print(f"{log_date_time} Removal skipped.") else: try: remove_backup = subprocess.run( f'ssh {item.username}@{item.router_ip} /file remove [find type="backup"]', shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) if remove_backup.stdout != '': print(f"{log_date_time} {remove_backup.stdout}") tqdm.write( f"{log_date_time} stdout: {remove_backup.stdout}") if remove_backup.stderr != '': print(f"{log_date_time} {remove_backup.stderr}") tqdm.write( f"{log_date_time} stderr: {remove_backup.stderr}") except: print(f'{log_date_time} {sys.exc_info()[1]}') tqdm.write(f"{log_date_time} Exception: {sys.exc_info()[1]}") tqdm.write( f"{log_date_time} Removal for {item.router_name} completed.") print(f"{log_date_time} Removal for {item.router_name} completed.")
def run(): # setting start time for sync to async comparison t0 = datetime.datetime.now() # gathering list all routers and list of routers to be ignored and router count routers = router_service.get_router_list() ignored_routers = router_service.get_router_ignore_list() router_count = router_service.get_router_count() for item in tqdm(routers, total=router_count, unit=" router"): if item.router_name in ignored_routers: print(f'{log_date_time} Backup skipped for {item.router_name}') tqdm.write(f"Backup skipped for {item.router_name}") backup_status = "Backup Skipped" config_status = "Config Skipped" session = db_session.create_session() r = session.query(Router).filter(Router.router_name == item.router_name).one() r.backup_status = backup_status r.config_status = config_status session.commit() else: # starting backup tqdm.write(f"Starting backup for {item.router_name}...") print(f'{log_date_time} Starting backup for {item.router_name}...') create_backup(item.router_name, item.router_ip, item.username) tqdm.write(f"Completed backup for {item.router_name}") print(f'{log_date_time} Completed backup for {item.router_name}') # starting config export tqdm.write(f"Starting config export for {item.router_name}...") print(f'{log_date_time} Starting config export for {item.router_name}...') create_config(item.router_name, item.router_ip, item.username) tqdm.write(f"Config export complete for {item.router_name}") print(f'{log_date_time} Config export complete for {item.router_name}') # gathering info from rotuers router_details_service.get_info(item.router_name, item.router_ip, item.username) router_details_service.parse_info(item.router_name) dt = datetime.datetime.now() - t0 print(colorama.Fore.WHITE + "App exiting, total time: {:,.2f} sec.".format(dt.total_seconds()), flush=True)
def run(): ignore_list = ['Spectrum Voice', 'CASA', 'Value Med Midwest City', 'Value Med Harrah', 'Value Med FTG', 'GPSS Hobart', 'Farmers Caleb Conner', 'Farmers Wayne Buck', 'GPSS HQ'] routers = router_service.get_router_list() router_count = sum(1 for _ in routers) for r in tqdm(routers, total=router_count, unit=" router"): if r.router_name in ignore_list: print(f'{log_date_time} Gathering info skipped for {r.router_name}') tqdm.write("Gathering info skipped for " + r.router_name) else: parse_info(r.router_name)
def __init__(self): super().__init__() self.user = user_service.find_user_by_id(self.user_id) self.routers = router_service.get_router_list() self.router_to_remove = self.request_dict.selected_router
def run(): routers = router_service.get_router_list() ignore_list = router_service.get_router_ignore_list() router_count = 0 for _ in routers: router_count += 1 for router in tqdm(routers, total=router_count, unit=" router"): top_folder = os.path.dirname(__file__) rel_file = os.path.join('..', 'backups', router.router_name) backup_path = os.path.abspath(os.path.join(top_folder, rel_file)) zip_path = os.path.join(backup_path, f'{router.router_name}.zip') if router.router_name in ignore_list: tqdm.write(f'{log_date_time} {router.router_name} skipped.') print(f'{log_date_time} {router.router_name} skipped.') elif os.path.exists(zip_path): tqdm.write(f'{log_date_time} {router.router_name} Found.') print(f'{log_date_time} {router.router_name} Found.') tqdm.write( f'{log_date_time} Removing old {router.router_name}.zip') print(f'{log_date_time} Removing old {router.router_name}.zip') os.remove(zip_path) tqdm.write(f'{log_date_time} {router.router_name} removed.') print(f'{log_date_time} {router.router_name} removed.') tqdm.write( f'{log_date_time} Creating new {router.router_name}.zip') print(f'{log_date_time} Creating new {router.router_name}.zip') shutil.make_archive(router.router_name, 'zip', backup_path) tqdm.write( f'{log_date_time} New {router.router_name}.zip created.') print(f'{log_date_time} New {router.router_name}.zip created.') tqdm.write( f'{log_date_time} Moving {router.router_name}.zip to backup directory.' ) print( f'{log_date_time} Moving {router.router_name}.zip to backup directory.' ) os.rename(f'{router.router_name}.zip', f'{backup_path}/{router.router_name}.zip') tqdm.write(f'{log_date_time} {router.router_name}.zip moved.') print(f'{log_date_time} {router.router_name}.zip moved.') else: tqdm.write(f'{log_date_time} {router.router_name} Not Found.') print(f'{log_date_time} {router.router_name} Not Found.') tqdm.write( f'{log_date_time} Creating new {router.router_name}.zip') print(f'{log_date_time} Creating new {router.router_name}.zip') shutil.make_archive(router.router_name, 'zip', backup_path) tqdm.write( f'{log_date_time} New {router.router_name}.zip created.') print(f'{log_date_time} New {router.router_name}.zip created.') tqdm.write( f'{log_date_time} Moving {router.router_name}.zip to backup directory.' ) print( f'{log_date_time} Moving {router.router_name}.zip to backup directory.' ) os.rename(f'{router.router_name}.zip', f'{backup_path}/{router.router_name}.zip') tqdm.write(f'{log_date_time} {router.router_name}.zip moved.') print(f'{log_date_time} {router.router_name}.zip moved.')