Вход:  Пароль:  
FreeSource: TZ/ServerIntegracii/Notation ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Соглашения об именованиях и структуре

Структура модулей

Корневая папка проекта в системе: /usr/lib/tartarus
(В формате rpm-spec этот путь задается как %_libdir/tartarus)
Компоненты проекта делятся на ядро и модули. В данном случае под ядром следует понимать не набор ключевых сервисов системы, описанных в ТЗ (Kerberos, DNS, система пользователей и т.п.), а системную инфраструктуру для запуска компонент проекта, их инициализации и настройки

Ядро

Расположение в системе: /usr/lib/tartarus/core
Пакет: tartarus-core
Пакет устанавливает системный скрипт /etc/init.d/rc.d/tartarus для функций запуска в качестве сервиса и ряд python-скриптов для запуска, останова и мониторинга tartarus в целом.

Модули

Расположение в системе: /usr/lib/tartarus/modules/<имя модуля>
Пакет: tartarus-<имя модуля>
Имя модуля записывается в нижнем регистре без пробелов и разделителей.
Структура:
В корневой папке каждого модуля должен располагаться модуль run.py, предоставляющий функции:
1) start(objectAdapter) — запуск подсистемы
2) install — инсталляция в систему
3) reinstall — повторная инициализация и сброс в начальное состояние
4) uninstall — дополнительные действия по удалению созданных данных


Соглашения об именовании интерфейсов
Каждая подсистема может использовать разные подходы к именованию интерфейсов – посредством использования категорий или собственной системы именования «проксей».
В первом случае, к именовании категории добавляется префикс <имя подсистемы> с дефисом, например:
dns-Zone
dns-Zone File?
dhcp-Server
Соответственно именем «прокси» в большинстве случаев будет являться первичный ключ сущности из базы данных или другого хранилища


Во втором случае, префикс добавляется к каждому Identity по аналогичному соглашению:
kerberos-Service
nfs-configmanager


Оба подхода можно объединять, не забывая об обеспечении глобальной уникальности Identity. Например:
Identity('dns-Virtual Server?', 'ldap://server/services/dns/masterserver') (здесь создается прокси для категории Virtual Server? с некоторым идентификатором из ldap)
Identity('dhcp-Server', 'dhcp-server/services/dhcp/config1')


Для каждой подсистемы одно имя является зарезервированным — имя точки входа в систему.
Оно формируется как <имя подсистемы>-manager, например:
dns-manager
kerberos-manager
dfs-manager


Для некоторых подсистем возможна ситуация наличия нескольких точек входа в систему, таким образом последнее требование является больше рекомендацией.


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]