net-backup/app/main.py

57 lines
1.6 KiB
Python

from config import cfg
import logging as log
from backup import (
read_device_list,
save_mikrotik_bcp,
save_snr_bcp,
save_cisco_sb_bcp,
save_cisco_bcp,
)
from repo import check_bcp_repo, push_to_remote
import schedule
import time
def main():
check_bcp_repo()
device_dict = read_device_list()
for device in device_dict:
current_device = device_dict[device]
if current_device["vendor"].lower() == "mikrotik":
save_mikrotik_bcp(host=current_device["ip"], name=current_device["name"])
elif current_device["vendor"].lower() == "snr":
save_snr_bcp(host=current_device["ip"], name=current_device["name"])
elif current_device["vendor"].lower() == "cisco":
if current_device["model"].lower() in [
"sg350-28mp",
"sg350-10mp",
"cbs350-8fp-2g",
"sg300-28p",
"sf302-08mp",
"sg300-10mpp",
"cbs250-48p-4g",
"cbs250-24p-4g",
"sg350-28sfp",
]:
save_cisco_sb_bcp(
host=current_device["ip"], name=current_device["name"]
)
else:
save_cisco_bcp(host=current_device["ip"], name=current_device["name"])
if cfg.git.push:
push_to_remote()
if __name__ == "__main__":
log.info("Starting app")
schedule.every().day.at(cfg.bcp.start_at).do(main)
try:
main()
while True:
schedule.run_pending()
time.sleep(60)
except KeyboardInterrupt:
log.info("Manual app stopped")
log.info("App stopped")