YaST/Tutorials/Simple YaST Module/What the Module Should Really Do

Перейти к: навигация, поиск

Проектная спецификация

Проектная спецификация - важный этап в разработке модуля. Ниже приведен упрощенный пример проектной спецификации.

Общие характеристики и требования к проекту

Проектная спецификация - часть любого модуля YaST. На этом этапе выясняется стоит ли модуль тех усилий которые будут на него потрачены, выявляются неразрешимые проблемы еще до начала разработки, а так же определяется оптимальный путь развития.

YaST, как правило, состоит из нескольких слоев. Некоторые из них могут работать на разных компьютерах:

T1-yast-overview.png

  • Пользовательский интерфейс – графический либо текстовый пользовательский интерфейс.
  • Обработка пользовательского интерфейса – все события поступающие от пользователя, диалоги и диалоговые мастера.
  • Программная логика – обеспечивает весь функционал глобального API и глобальных переменных (функциональный интерфейс более предпочтителен). Обеспечивает внутреннюю обработку данных, структур и доступ к SCR агентам.
  • SCR агенты – небольшие программы для доступа к файловой системе, базам данных, системным командам и т. д.

Очень часто, в более крупных проектах функции разделены на несколько модулей, которые могут быть написаны как на YCP так и на Perl.

Учебный пример

В этом примере показана разработка модуля YaST для конфигурирования демона SSH. Его настройки хранится в файле /etc/ssh/sshd_config.

Общее описание проекта

ВАЖНО: Имейте в виду что это только пример, а не настоящий инструмент настройки. Требования к данному проекту выбраны так, чтобы его реализация была максимально простой.

Для конфигурирования выбраны следующие параметры:

  • Параметры поведения сервера: Port, AllowTcpForwarding, X11Forwarding, и Compression
  • Параметры входа в систему: PrintMotd и PermitRootLogin
  • Параметры аутентификации: MaxAuthTries, PasswordAuthentication, RSAAuthentication и PubkeyAuthentication

Пользовательский интерфейс диалогового мастера

Этот модуль будет использовать только два диалога расположенных в виде мастера настроек. Диалоги будут использовать интерфейс типичный для диалогов YaST с кнопками Назад, Отмена и Вперед и текстом справки в отдельной области в левой части диалога. Перед этими диалогами будет диалог чтения с полосой прогресса, где считывается текущая конфигурация, а после диалог записи, в котором производиться запись новой конфигурации.

Это диаграмма предлагаемого алгоритма работы мастера:

T1-workflow.png

Эта диаграмма также показывает, что пользователь может прервать настройку на любом диалоге, нажав кнопку Отмена. После нажатия кнопки всплывающие окно попросит подтверждения отмены настроек. При подтверждении настройки будут отменены и программа завершит свою работу без сохранения изменений.

Интерфейс диалогов

Первый диалог будет содержать таблицу портов TCP, используемых демоном SSH и его основные параметры.

Изображения первого диалога:

T1-dialog1-draw-ru.png

T1-dialog1-draw-en.png

В первом диалоговом окне кнопка «Назад» (Back) будет неактивна, а в последнем кнопка «Далее» (Next) будет заменена на кнопку «Завершить» (Accept), как это реализовано в любом модуле YaST, если он создан в строгом соответствии с Program Text Style Guide.

Изображения второго диалога:

T1-dialog2-draw-ru.png

T1-dialog2-draw-en.png


Далее