from aiogram.types import InlineKeyboardButton from aiogram.utils.keyboard import InlineKeyboardBuilder from app.callbacks.callback_docker import ContainerCallback, ActionCallback def container_names_keyboard(stdout: str): container_names = [line.split(" ")[-1].strip() for line in stdout.splitlines()[1:]] builder = InlineKeyboardBuilder() for name in container_names: builder.add( InlineKeyboardButton( text=name, callback_data=ContainerCallback(name=name).pack(), ) ) builder.adjust(1) return builder def container_actions_keyboard(name: str): builder = InlineKeyboardBuilder() builder.add(InlineKeyboardButton( text="Запустить контейнер", callback_data=ActionCallback(name=name, action="start").pack(), )) builder.add(InlineKeyboardButton( text="Остановить контейнер", callback_data=ActionCallback(name=name, action="stop").pack(), )) builder.add(InlineKeyboardButton( text="Перезапустить контейнер", callback_data=ActionCallback(name=name, action="restart").pack(), )) builder.add(InlineKeyboardButton( text="Удалить контейнер", callback_data=ActionCallback(name=name, action="delete").pack(), )) builder.adjust(1) return builder