fix: FSM calls do_transfer_offer() correctly; resume remembers target_host/user/port
This commit is contained in:
@@ -81,8 +81,8 @@ class FSM:
|
||||
from source.source import do_stop_service
|
||||
do_stop_service()
|
||||
elif name == "TRANSFER":
|
||||
from transfer.transfer import do_transfer
|
||||
do_transfer()
|
||||
from source.source import do_transfer_offer
|
||||
do_transfer_offer()
|
||||
elif name == "DONE":
|
||||
success("Source-режим завершён")
|
||||
|
||||
|
||||
@@ -330,6 +330,24 @@ def do_stop_service():
|
||||
|
||||
def do_transfer_offer():
|
||||
step(4, "ПЕРЕНОС НА НОВЫЙ СЕРВЕР (опционально)")
|
||||
st = state.load_state()
|
||||
|
||||
# При resume: проверяем, были ли уже введены target-параметры
|
||||
resume_host = st.get("target_host")
|
||||
resume_user = st.get("target_user")
|
||||
resume_port = st.get("target_port", 22)
|
||||
if resume_host and resume_host not in ("", "None"):
|
||||
info(f"Обнаружены ранее введённые параметры target: {resume_user}@{resume_host}:{resume_port}")
|
||||
if confirm("Использовать эти параметры повторно (если ошибка была в SSH-ключе, выберите Y, после фикса)", default="y"):
|
||||
host, user, port_int = resume_host, resume_user or "root", int(resume_port)
|
||||
else:
|
||||
# Сбрасываем, чтобы запросить заново
|
||||
state.set_stage("SOURCE_STOP", target_host=None, target_user=None, target_port=None)
|
||||
host = user = None
|
||||
else:
|
||||
host = user = None
|
||||
|
||||
if not host:
|
||||
if not confirm("Перенести архив на новый сервер сейчас", default="y"):
|
||||
success("Готово! Архив оставлен на текущем сервере.")
|
||||
success(f"Manifest и архив лежат в: {_ARCHIVE_DIR}")
|
||||
|
||||
Reference in New Issue
Block a user