feat(node): ship managed environment startup and USB recovery
This commit is contained in:
@@ -219,7 +219,33 @@ def tailscale_install():
|
||||
return "Tailscale установлен; системная служба запущена. Вход проверяется отдельно."
|
||||
|
||||
|
||||
OPERATIONS = {"platform": platform, "packages": packages, "node-service": node_service, "network-inventory": network_inventory, "usb-inventory": usb_inventory, "ssh-service": ssh_service, "tailscale-install": tailscale_install}
|
||||
def desktop_autostart():
|
||||
owned_config(Path('/usr/share/mission-core-node/mission-core-node-autostart.desktop'),
|
||||
Path('/etc/xdg/autostart/org.nodedc.MissionCoreNode.desktop'))
|
||||
return "Окно приложения открывается при входе в рабочий стол. Служба БК работает и без входа."
|
||||
|
||||
|
||||
def usb_startup():
|
||||
# Enabling the next boot is distinct from executing recovery now. This
|
||||
# workflow never resets devices in a running operator session.
|
||||
owned_config(Path('/usr/share/mission-core-node/usb-startup.json'),
|
||||
Path('/etc/mission-core-node/usb-startup.json'))
|
||||
command(['/usr/bin/systemctl', 'daemon-reload'])
|
||||
command(['/usr/bin/systemctl', 'enable', 'mission-core-node-usb-startup.service'])
|
||||
command(['/usr/bin/systemctl', 'is-enabled', 'mission-core-node-usb-startup.service'])
|
||||
report = json.loads(command(['/usr/bin/python3', '-I', '-B', '/usr/lib/mission-core-node/usb_startup_recovery.py', '--inspect'], timeout=75))
|
||||
if report.get('state') != 'inspected':
|
||||
raise SetupError("Не удалось проверить поддержку восстановления USB. Повторите настройку.")
|
||||
supported = sum(h.get('individual_power') is True for h in report.get('hubs', []))
|
||||
if not supported:
|
||||
return "Проверка при загрузке включена. Поддержка отдельного переключения USB-портов не подтверждена; они будут пропущены."
|
||||
return "Восстановление при загрузке включено для поддерживаемых USB-портов. Обнаруженные устройства сохраняют подключение."
|
||||
|
||||
|
||||
OPERATIONS = {"platform": platform, "packages": packages, "node-service": node_service,
|
||||
"desktop-autostart": desktop_autostart, "usb-startup": usb_startup,
|
||||
"network-inventory": network_inventory, "usb-inventory": usb_inventory,
|
||||
"ssh-service": ssh_service, "tailscale-install": tailscale_install}
|
||||
|
||||
|
||||
def run_steps(profile, operations, save):
|
||||
|
||||
Reference in New Issue
Block a user