YaST/Tutorials/Simple YaST Module/What the Module Should Really Do
Содержание
Проектная спецификация
Проектная спецификация - важный этап в разработке модуля. Ниже приведен упрощенный пример проектной спецификации.
Общие характеристики и требования к проекту
Проектная спецификация - часть любого модуля YaST. На этом этапе выясняется стоит ли модуль тех усилий которые будут на него потрачены, выявляются неразрешимые проблемы еще до начала разработки, а так же определяется оптимальный путь развития.
YaST, как правило, состоит из нескольких слоев. Некоторые из них могут работать на разных компьютерах:
- Пользовательский интерфейс – графический либо текстовый пользовательский интерфейс.
- Обработка пользовательского интерфейса – все события поступающие от пользователя, диалоги и диалоговые мастера.
- Программная логика – обеспечивает весь функционал глобального API и глобальных переменных (функциональный интерфейс более предпочтителен). Обеспечивает внутреннюю обработку данных, структур и доступ к SCR агентам.
- SCR агенты – небольшие программы для доступа к файловой системе, базам данных, системным командам и т. д.
Очень часто, в более крупных проектах функции разделены на несколько модулей, которые могут быть написаны как на YCP так и на Perl.
Учебный пример
В этом примере показана разработка модуля YaST для конфигурирования демона SSH. Его настройки хранится в файле /etc/ssh/sshd_config.
Общее описание проекта
ВАЖНО: Имейте в виду что это только пример, а не настоящий инструмент настройки. Требования к данному проекту выбраны так, чтобы его реализация была максимально простой.
Для конфигурирования выбраны следующие параметры:
- Параметры поведения сервера: Port, AllowTcpForwarding, X11Forwarding, и Compression
- Параметры входа в систему: PrintMotd и PermitRootLogin
- Параметры аутентификации: MaxAuthTries, PasswordAuthentication, RSAAuthentication и PubkeyAuthentication
Пользовательский интерфейс диалогового мастера
Этот модуль будет использовать только два диалога расположенных в виде мастера настроек. Диалоги будут использовать интерфейс типичный для диалогов YaST с кнопками Назад, Отмена и Вперед и текстом справки в отдельной области в левой части диалога. Перед этими диалогами будет диалог чтения с полосой прогресса, где считывается текущая конфигурация, а после диалог записи, в котором производиться запись новой конфигурации.
Это диаграмма предлагаемого алгоритма работы мастера:
Эта диаграмма также показывает, что пользователь может прервать настройку на любом диалоге, нажав кнопку Отмена. После нажатия кнопки всплывающие окно попросит подтверждения отмены настроек. При подтверждении настройки будут отменены и программа завершит свою работу без сохранения изменений.
Интерфейс диалогов
Первый диалог будет содержать таблицу портов TCP, используемых демоном SSH и его основные параметры.
Изображения первого диалога:
В первом диалоговом окне кнопка «Назад» (Back) будет неактивна, а в последнем кнопка «Далее» (Next) будет заменена на кнопку «Завершить» (Accept), как это реализовано в любом модуле YaST, если он создан в строгом соответствии с Program Text Style Guide.
Изображения второго диалога: