Дополнен/изменён вывод в терминал.
This commit is contained in:
40
download.py
40
download.py
@@ -18,7 +18,7 @@ ipv4_find_str=re.compile(r"(?<![0-9.])(?!10\.|172\.(?:1[6-9]|2[0-9]|3[01])\.|192
|
|||||||
ipv6_find_str=re.compile(r'(?<![0-9A-Fa-f:])([23][0-9A-Fa-f]{3}(?:(?::[0-9A-Fa-f]{1,4}){0,6}|(?:::[0-9A-Fa-f]{0,4})?)(?::[0-9A-Fa-f]{0,4})*)(?:/([1-9][0-9]?|1[01][0-9]|12[0-8]))?(?![0-9A-Fa-f:])')
|
ipv6_find_str=re.compile(r'(?<![0-9A-Fa-f:])([23][0-9A-Fa-f]{3}(?:(?::[0-9A-Fa-f]{1,4}){0,6}|(?:::[0-9A-Fa-f]{0,4})?)(?::[0-9A-Fa-f]{0,4})*)(?:/([1-9][0-9]?|1[01][0-9]|12[0-8]))?(?![0-9A-Fa-f:])')
|
||||||
|
|
||||||
# метод вывода прогресса на экран
|
# метод вывода прогресса на экран
|
||||||
def progres_print(lstr:list, mtype:int=0, ss:float=0.1):
|
def progres_print(lstr:list, mtype:int=0, ss:float=0.3):
|
||||||
"""
|
"""
|
||||||
Метод вывода на экран прогресса выполнения
|
Метод вывода на экран прогресса выполнения
|
||||||
"""
|
"""
|
||||||
@@ -333,7 +333,7 @@ if __name__ == "__main__":
|
|||||||
bgp_community=" ".join([f"bgp_community.add(({str(c).replace(':',',')}));" for c in sorted(v[0])])
|
bgp_community=" ".join([f"bgp_community.add(({str(c).replace(':',',')}));" for c in sorted(v[0])])
|
||||||
with open(ipv4_bird2_m4, "a") as file:
|
with open(ipv4_bird2_m4, "a") as file:
|
||||||
file.write(f"protocol static static_{k.lower()}_v4 {{\n\tipv4 {{ import filter {{ {bgp_community} preference=400; accept; }}; }};\n\tinclude \"{ipv4_out_file}\";\n}}\n")
|
file.write(f"protocol static static_{k.lower()}_v4 {{\n\tipv4 {{ import filter {{ {bgp_community} preference=400; accept; }}; }};\n\tinclude \"{ipv4_out_file}\";\n}}\n")
|
||||||
progres_print([ipv4_bird2_m4, f"добавлен {k}"])
|
progres_print([f"В {ipv4_bird2_m4}", f"добавлен {k}"])
|
||||||
|
|
||||||
# обновляем временный файл конфигурации ipv6
|
# обновляем временный файл конфигурации ipv6
|
||||||
# из группировок
|
# из группировок
|
||||||
@@ -349,7 +349,7 @@ if __name__ == "__main__":
|
|||||||
bgp_community=" ".join([f"bgp_community.add(({str(c).replace(':',',')}));" for c in sorted(v[0])])
|
bgp_community=" ".join([f"bgp_community.add(({str(c).replace(':',',')}));" for c in sorted(v[0])])
|
||||||
with open(ipv6_bird2_m4, "a") as file:
|
with open(ipv6_bird2_m4, "a") as file:
|
||||||
file.write(f"protocol static static_{k.lower()}_v6 {{\n\tipv6 {{ import filter {{ {bgp_community} preference=400; accept; }}; }};\n\tinclude \"{ipv6_out_file}\";\n}}\n")
|
file.write(f"protocol static static_{k.lower()}_v6 {{\n\tipv6 {{ import filter {{ {bgp_community} preference=400; accept; }}; }};\n\tinclude \"{ipv6_out_file}\";\n}}\n")
|
||||||
progres_print([ipv6_bird2_m4, f"добавлен {k}"])
|
progres_print([f"В {ipv6_bird2_m4}", f"добавлен {k}"])
|
||||||
|
|
||||||
# дополняем временный файл конфигурации всей выгрузкой ipv4 и ipv6
|
# дополняем временный файл конфигурации всей выгрузкой ipv4 и ipv6
|
||||||
for clist, value in ip_list.items():
|
for clist, value in ip_list.items():
|
||||||
@@ -370,7 +370,7 @@ if __name__ == "__main__":
|
|||||||
with open(ipv4_bird2_m4, "a") as file:
|
with open(ipv4_bird2_m4, "a") as file:
|
||||||
bgp_filter=f"if net ~ [{','.join(ip_addresses_filter)}] then reject; " if ip_addresses_filter else ''
|
bgp_filter=f"if net ~ [{','.join(ip_addresses_filter)}] then reject; " if ip_addresses_filter else ''
|
||||||
file.write(f"protocol static static_{clist.lower()}_v4 {{\n\tipv4 {{ import filter {{ {bgp_filter}{bgp_community} accept; }}; }};\n\tinclude \"{ipv4_out_file}\";\n}}\n")
|
file.write(f"protocol static static_{clist.lower()}_v4 {{\n\tipv4 {{ import filter {{ {bgp_filter}{bgp_community} accept; }}; }};\n\tinclude \"{ipv4_out_file}\";\n}}\n")
|
||||||
progres_print([ipv4_bird2_m4, f"добавлен {clist}"])
|
progres_print([f"В {ipv4_bird2_m4}", f"добавлен {clist}"])
|
||||||
if os.path.exists(ipv6_out_file):
|
if os.path.exists(ipv6_out_file):
|
||||||
# фильтер маршрутов ipv6, если список ignore существует в конфигурации
|
# фильтер маршрутов ipv6, если список ignore существует в конфигурации
|
||||||
ip_addresses_filter=set()
|
ip_addresses_filter=set()
|
||||||
@@ -383,18 +383,24 @@ if __name__ == "__main__":
|
|||||||
with open(ipv6_bird2_m4, "a") as file:
|
with open(ipv6_bird2_m4, "a") as file:
|
||||||
bgp_filter=f"if net ~ [{','.join(ip_addresses_filter)}] then reject; " if ip_addresses_filter else ''
|
bgp_filter=f"if net ~ [{','.join(ip_addresses_filter)}] then reject; " if ip_addresses_filter else ''
|
||||||
file.write(f"protocol static static_{clist.lower()}_v6 {{\n\tipv6 {{ import filter {{ {bgp_filter}{bgp_community} accept; }}; }};\n\tinclude \"{ipv6_out_file}\";\n}}\n")
|
file.write(f"protocol static static_{clist.lower()}_v6 {{\n\tipv6 {{ import filter {{ {bgp_filter}{bgp_community} accept; }}; }};\n\tinclude \"{ipv6_out_file}\";\n}}\n")
|
||||||
progres_print([ipv6_bird2_m4, f"добавлен {clist}"])
|
progres_print([f"В {ipv6_bird2_m4}", f"добавлен {clist}"])
|
||||||
|
|
||||||
print("\n")
|
|
||||||
# проверяем, что временный файл конфигурации ipv4 не пустой, сохраняем в постоянный
|
|
||||||
if os.path.exists(ipv4_bird2_m4) and os.path.getsize(ipv4_bird2_m4) != 0:
|
|
||||||
os.replace(ipv4_bird2_m4, ipv4_bird2_m4.removesuffix(".tmp"))
|
|
||||||
os.system("systemctl reload bird.service >/dev/null 2>&1 || \
|
|
||||||
systemctl restart bird.service >/dev/null 2>&1 && \
|
|
||||||
echo '\\e[32mНовый файл конфигурации ipv4 применён\\e[0m' || echo '\\e[31mBird2 error...\\e[0m'")
|
|
||||||
# проверяем, что временный файл конфигурации ipv6 не пустой, сохраняем в постоянный
|
# проверяем, что временный файл конфигурации ipv6 не пустой, сохраняем в постоянный
|
||||||
if os.path.exists(ipv6_bird2_m4) and os.path.getsize(ipv6_bird2_m4) != 0:
|
if os.path.exists(ipv6_bird2_m4) and os.path.getsize(ipv6_bird2_m4) != 0:
|
||||||
os.replace(ipv6_bird2_m4, ipv6_bird2_m4.removesuffix(".tmp"))
|
os.replace(ipv6_bird2_m4, config_ipv6:=ipv6_bird2_m4.removesuffix(".tmp"))
|
||||||
os.system("systemctl reload bird.service >/dev/null 2>&1 || \
|
progres_print([f"Конфиг {ipv6_bird2_m4}", f"перемещён в {os.path.basename(config_ipv6)}"])
|
||||||
systemctl restart bird.service >/dev/null 2>&1 && \
|
else:
|
||||||
echo '\\e[32mНовый файл конфигурации ipv6 применён\\e[0m' || echo '\\e[31mBird2 error...\\e[0m'")
|
progres_print([f"Конфиг {ipv6_bird2_m4}", f"отсутствует/пуст"], 1)
|
||||||
|
|
||||||
|
# проверяем, что временный файл конфигурации ipv4 не пустой, сохраняем в постоянный
|
||||||
|
if os.path.exists(ipv4_bird2_m4) and os.path.getsize(ipv4_bird2_m4) != 0:
|
||||||
|
os.replace(ipv4_bird2_m4, config_ipv4:=ipv4_bird2_m4.removesuffix(".tmp"))
|
||||||
|
progres_print([f"Конфиг {ipv4_bird2_m4}", f"перемещён в {os.path.basename(config_ipv4)}"])
|
||||||
|
else:
|
||||||
|
progres_print([f"Конфиг {ipv4_bird2_m4}", f"отсутствует/пуст"], 1)
|
||||||
|
|
||||||
|
print("\n")
|
||||||
|
# реконфигурирование Bird2
|
||||||
|
os.system("systemctl reload bird.service >/dev/null 2>&1 || \
|
||||||
|
systemctl restart bird.service >/dev/null 2>&1 && \
|
||||||
|
echo '\\e[32mНовый конфиг Bird2 применён\\e[0m' || echo '\\e[31mBird2 error...\\e[0m'")
|
||||||
|
|||||||
Reference in New Issue
Block a user