#!/bin/bash

set -eu
# __SILENT=TRUE
. /opt/fox_utils/crab_sys.sh
[ "${1:---help}" = "--help" ] && sys::usage "$@"
### --help Info: migrate_out_commit вызывается, когда vm мигрирована и запущена
### --help Info: на новой ноде. Чистим правила firewall, включенные на время миграции
### --help Usage: vz7_migrate_out_commit --vm-name=<vm_name> --vm-ip=<vm_ip>
### --help Example:

# Смотри /проект_cloud_и_vps_2.0:в_работе:2021-12-01_dnat_и_masquerade_при_миграции
# Информацию о vm получаем из аргументов, т.к. конфиг уже удален

# Важно! Это должен быть универсальный скрипт vz7 и kvm
# Не можем пользоваться fox_conf vm get

declare VM_IP
declare VM_UUID
declare VM_DNAT
sys::arg_parse "$@"

__change_dnat_to_masquerade(){
	# Для vm с dnat-правилами, заменяем их на masquerade на 1 час
	# реализовано в vm_firewall do_migrate_out
	return 0
}

__wh_ip_masquerade(){
	# Для белых IP тоже временно делаем masquerade, пока лаг DNS
	# TODO
	return 0
}

__stop_drop(){
	# Убираем DROP-правила, которые выставляются во время
	# migrate_out и vm stop
	# Они мешают работе CDN
	local ip
	for ip in $ARG_VM_IP; do
		iptables -D OUTPUT -d "$ip" -m state --state NEW -j DROP || true
		iptables -D OUTPUT -d "$ip" -m state --state NEW -j DROP || true
	done
	return 0
}

main(){
	__change_dnat_to_masquerade
	__wh_ip_masquerade
	__stop_drop
	return 0
}

main
exit 0
