unify
Объединение
.. image:: https://gitlab.com/constrict0r/unify/badges/master/pipeline.svg :alt: пайплайн
.. image:: https://travis-ci.com/constrict0r/unify.svg :alt: travis
.. image:: https://readthedocs.org/projects/unify/badge :alt: readthedocs
.. image:: https://coveralls.io/repos/github/constrict0r/unify/badge.svg :alt: покрытие
.. image:: https://gitlab.com/constrict0r/unify/badges/master/coverage.svg :alt: покрытие_gitlab
Роль Ansible для объединения коллекций в единую унифицированную коллекцию.
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/avatar.png :alt: аватар
Полная документация на Readthedocs <https://unify.readthedocs.io>
_.
Исходный код на:
Github <https://github.com/constrict0r/unify>
_
Gitlab <https://gitlab.com/constrict0r/unify>
_
Часть: <https://gitlab.com/explore/projects?tag=doombot>
_
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/doombot.png :alt: doombot
Ингредиенты
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/ingredient.png :alt: ингредиент
Содержание
Описание <#Description>
_Использование <#Usage>
_Переменные <#Variables>
_Входные <#input>
_validate <#validate>
_update <#update>
_items <#items>
_expand <#expand>
_titles <#titles>
_secondary <#secondary>
_items_b <#items-b>
_expand_b <#expand-b>
_titles_b <#titles-b>
_
Выходные <#output>
_unified <#unified>
_unified_b <#unified-b>
_
Модули <#Modules>
_unify-module <#unify-module>
_Сводка <#synopsis>
_Параметры <#parameters>
_Примеры <#examples>
_Возвращаемые значения <#return-values>
_Статус <#status>
_Авторы <#authors>
_
Плагины <#Plugins>
_user_root <#user-root>
_variable_boolean <#variable-boolean>
_variable_boolean_true <#variable-boolean-true>
_variable_collection <#variable-collection>
_variable_empty <#variable-empty>
_variable_path <#variable-path>
_variable_url <#variable-url>
_variable_url_existent <#variable-url-existent>
_
YAML <#YAML>
_Атрибуты <#Attributes>
_item_expand <#item-expand>
_item_path <#item-path>
_
Требования <#Requirements>
_Совместимость <#Compatibility>
_Ограничения <#Limitations>
_Лицензия <#License>
_Ссылки <#Links>
_UML <#UML>
_Класс <#class>
_Развертывание <#deployment>
_Основной <#main>
_user-root <#user-root>
_variable-boolean <#variable-boolean>
_variable-boolean-true <#variable-boolean-true>
_variable-collection <#variable-collection>
_variable-empty <#variable-empty>
_variable-path <#variable-path>
_variable-url <#variable-url>
_variable-url-existent <#variable-url-existent>
_unify-collection <#unify-collection>
_unify-item <#unify-item>
_
Автор <#Author>
_
Содержимое API
API <#API>
_Пакеты <#packages>
_Unify-package <#module-library>
_Модуль library.unify <#module-library.unify>
_
Util <#module-test_plugins>
_Модуль test_plugins.util <#module-test_plugins.util>
_
Описание
Роль Ansible для объединения коллекций в единую унифицированную коллекцию. Включает плагин с именем util и модуль с именем unify.
Элементы для объединения могут быть отдельными элементами, коллекциями элементов, путями и URL к .yml файлам, где можно загрузить больше элементов.
Переменная items используется для указания элементов для объединения, результат сохраняется в одной переменной unified коллекции. Опционально может быть создана вторичная коллекция unified_b, если переменная secondary установлена в true. Если вам нужно более двух унифицированных коллекций, вы можете использовать включенный модуль unify.
Если переменная expand установлена в true, или если один элемент указывает атрибут item_expand как true, элементы из каждого указанного файла или URL будут загружены с использованием переменной titles как индекса, поэтому при расширении элементов из файлов переменная titles не должна быть пустой.
Например, если значение переменной items — это путь /home/username/my-config.yml, переменная titles имеет значение packages, а переменная expand установлена в true, эта роль попытается загрузить список с именем packages из файла /home/username/my-config.yml.
Содержимое файла /home/username/my-config.yml может выглядеть следующим образом:
..
::
---
packages:
- leafpad
- rolldice
- /home/username/extra-config.yml
- https://my-url/my-config.yml
Когда переменная expand установлена в false, найденные пути файлов или URL внутри переменной items обрабатываются как простые текстовые элементы, это полезно для сохранения списков файлов и каталогов, например, для резервного копирования.
При добавлении элемента в переменную unified он будет добавлен только в том случае, если он еще не присутствует. В случае логических значений дубликаты допустимы в unified, потому что логические значения обычно используются для контрольных списков.
Эта роль также включает в себя следующую функциональность:
- Убедитесь, что требования установлены.
Использование
- Для установки и выполнения:
..
::
ansible-galaxy install constrict0r.unify
ansible localhost -m include_role -a name=constrict0r.unify -K
- Передача переменных:
..
::
ansible localhost -m include_role -a name=constrict0r.unify -K \
-e "{items: [1, '/home/user/my-config.yml']}
- Включение роли в плейбук:
..
::
- hosts: servers
roles:
- {role: constrict0r.unify}
- Включение роли как зависимости в другую роль:
..
::
dependencies:
- role: constrict0r.unify
items: [gemmata, muscaria]
- Использование роли из задач:
..
::
- name: Выполнение задачи роли.
import_role:
name: constrict0r.unify
vars:
items: [gemmata, muscaria]
Для запуска тестов:
::
cd unify chmod +x testme.sh ./testme.sh
На некоторых тестах может потребоваться использовать sudo для успешного выполнения.
Переменные
Входные
Поддерживаются следующие переменные:
validate
Логическое значение, указывающее, нужно ли применять валидации.
Если установлено в true, применяются следующие проверки:
- Проверка, может ли пользователь стать root.
Эта переменная по умолчанию установлена в false.
::
Включение из терминала.
ansible localhost -m include_role -a name=constrict0r.unify -K -e
"validate=false"
Включение в плейбук.
- hosts: servers
roles:
- role: constrict0r.unify validate: false
Для плейбука из терминала.
ansible-playbook -i inventory my-playbook.yml -K -e
"validate=false"
Чтобы избежать неожиданных результатов, рекомендуется всегда указывать эту переменную при вызове этой роли.
update
Логическая переменная, указывающая, нужно ли обновлять кэш apt.
Если установлено в true, кэш apt обновляется.
Эта переменная по умолчанию установлена в false.
::
Включение из терминала.
ansible localhost -m include_role -a name=constrict0r.unify -K -e
"update=false"
Включение в плейбук.
- hosts: servers
roles:
- role: constrict0r.unify update: false
Для плейбука из терминала.
ansible-playbook -i inventory my-playbook.yml -K -e
"update=false"
Чтобы избежать неожиданных результатов, рекомендуется всегда указывать эту переменную при вызове этой роли.
items
Список элементов, которые будут добавлены в переменную unified.
Каждый элемент будет добавлен только в том случае, если он определен и не пуст.
Эта переменная может содержать отдельные элементы, списки, словари, пути к файлам и URL.
При указании пути или URL элемент, переменная titles не должна быть пустой, titles используется как названия коллекций для загрузки из каждого файла.
При указании файловых путей необходимо использовать абсолютные пути, рекомендуется всегда добавлять расширения .yml или .yaml к таким файлам, это же относится к файлам, указанным с помощью URL.
Эта переменная по умолчанию пуста.
::
ansible localhost -m include_role -a name=constrict0r.unify
--extra-vars "{
items: [
itemA, itemB, itemC,
'/home/username/my-config.yml',
'https://is.gd/lnf6vn'],
titles: 'items'
expand: true]}"
expand
Логическое значение, указывающее, нужно ли загружать элементы из файловых путей или URL или просто обрабатывать файлы и URL как простой текст.
Если установлено в true, эта роль попытается загрузить элементы из указанных путей и URL.
Если установлено в false, каждый файловый путь или URL, найденный в элементах, будет обрабатываться как простой текст.
Эта переменная по умолчанию установлена в false.
::
ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true configuration='/home/username/my-config.yml' titles='items'"
Если вы хотите переопределить значение этой переменной, укажите атрибуты item_path и item_expand при передаче элемента, атрибут item_path также можно использовать с URL:
::
ansible localhost -m include_role -a name=constrict0r.unify
-e "{expand: false,
items: [
item_path: '/home/username/my-config.yml',
item_expand: false
], titles: 'items'}"
Чтобы избежать неожиданных результатов, рекомендуется всегда указывать эту переменную при вызове этой роли.
titles
Имя, используемое в качестве индекса для загрузки элементов из файлов и URL.
Эта переменная используется, когда переменная expand установлена в true.
Эта переменная по умолчанию пуста.
::
ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true items='/home/username/my-config.yml' titles='items'"
Чтобы избежать неожиданных результатов, рекомендуется передавать эту переменную как пустой список [], когда она не используется.
secondary
Логическое значение, указывающее, нужно ли объединять элементы, найденные в переменной items_b, в коллекцию unified_b.
Если установлено в true, эта роль создаст коллекцию unified_b из элементов, найденных в items_b.
Эта переменная используется вместе с переменными items_b, expand_b и titles_b.
Эта переменная по умолчанию false.
::
ansible localhost -m include_role -a name=constrict0r.unify
-e "secondary=true items_b='/home/username/extra-packages.yml' titles_b='items'"
Чтобы избежать неожиданных результатов, рекомендуется всегда указывать эту переменную при вызове этой роли.
items_b
Список элементов, которые будут добавлены в переменную unified_b.
Каждый элемент будет добавлен только в том случае, если он определен и не пуст.
Эта переменная может содержать отдельные элементы, списки, словари, пути к файлам и URL.
При указании элемента пути или URL переменная titles_b не должна быть пустой, titles_b используется как названия коллекций для загрузки из каждого файла.
При указании путей к файлам необходимо использовать абсолютные пути, рекомендуется всегда добавлять расширение .yml или .yaml к таким файлам, то же самое касается файлов, указанных с помощью URL.
Эта переменная по умолчанию пуста.
::
ansible localhost -m include_role -a name=constrict0r.unify
--extra-vars "{
items_b: [
itemD, itemE, itemF,
'/home/username/my-config.yml',
'https://is.gd/lnf6vn'],
titles_b: 'items'
expand_b: true]}"
expand_b
Логическое значение, указывающее, нужно ли загружать элементы из файловых путей или URL или просто обрабатывать файлы и URL как простой текст.
Если установлено в true, эта роль попытается загрузить элементы из указанных путей и URL.
Если установлено в false, каждый файловый путь или URL, найденный в элементах, будет обрабатываться как простой текст.
Эта переменная по умолчанию установлена в false.
::
ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true configuration='/home/username/my-config.yml' titles='items'"
Если вы хотите переопределить значение этой переменной, укажите атрибуты item_path и item_expand при передаче элемента, атрибут item_path также можно использовать с URL:
::
ansible localhost -m include_role -a name=constrict0r.unify
-e "{expand: false,
items_b: [
item_path: '/home/username/my-config.yml',
item_expand: false
], titles: 'items'}"
titles_b
Имя, используемое в качестве индекса для загрузки элементов из файлов и URL.
Эта переменная используется, когда переменная expand_b установлена в true.
Эта переменная по умолчанию пуста.
::
ansible localhost -m include_role -a name=constrict0r.unify
-e "expand_b=true items_b='/home/username/my-config.yml' titles_b='items'"
Выходные
Следующие возвращаемые переменные создаются:
unified
Итоговый единый список, в который помещены элементы из переменной items.
unified_b
Итоговый единый список, в который помещены элементы из переменной items_b.
Модули
Доступные модули:
unify-module
Объединение элементов в единую переменную unified
Сводка
Брать элементы из множества источников и добавлять их в единую коллекцию unified.
Элементы могут быть отдельными элементами, списками, словарями, путями к файлам и URL на .yml файлы.
Может обрабатывать как валидные, так и невалидные значения, такие как null, None и неопределенные.
Параметры
+-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Параметры | Выбор/По умолчанию | Комментарии | +=============+=======================+===================================================================================================================================================================================================================================================================================================================================================================================================================================+ | expand | Выбор: нет, да. | Когда установлено в да и найден элемент файла или URL, загружает элементы из этого файла или URL в коллекцию unified. При расширении элементов параметр titles не должен быть пустым, потому что он используется как индекс коллекции на файлах. Когда установлено в нет и найден элемент файла или URL, этот элемент обрабатывается как простой текст, это идеально для управления списками файлов, например, для резервного копирования. | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | items | — | Элементы для добавления в коллекцию unified. Элементы могут включать отдельные элементы (т.е. строку или число), списки, словари, пути к .yml файлам и URL на .yml файлы. | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | titles | — | Индекс, используемый на файле или URL для загрузки элементов в переменную unified. Например, если файл называется my-file.yml, и titles установлено в packages, список с именем packages будет загружен из my-file.yml и добавлен в unified. | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Примеры
..
::
# Объединить два списка.
- name: Объединить два списка.
items: [[one, two], [three, four]]
register: unified_result
# Объединить два списка, передавая один как переменную.
- name: Объединить два списка пакетов.
items: [[emacs, vim], "{{ my_packages }}"]
register: unified_result
# Загрузить и объединить два пути файлов.
- name: Объединить два файла.
items: [/home/user/packages.yml, /home/user/more-packages.yml]
titles: 'packages'
register: unified_result
# Загрузить и объединить один путь файла и один URL.
- name: Объединить один файл и один URL.
items: [/home/user/packages.yml, https://my-url/packages.yml]
titles: 'packages'
register: unified_result
# Загрузить и объединить один элемент и путь файла.
- name: Объединить один элемент и путь файла.
items: [gedit, /home/user/packages.yml]
titles: 'packages'
register: unified_result
# Загрузить и объединить элемент и путь файла, расширяя (загружая) элементы.
- name: Объединить один элемент и путь файла с расширением.
items: [gedit, /home/user/packages.yml]
titles: 'packages'
expand: yes
register: unified_result
# Загрузить и объединить URL.
- name: Объединить URL.
items: [https://my-url/packages.yml]
titles: 'packages'
expand: yes
register: unified_result
Возвращаемые значения
+------------+-----------------------+-----------------------------------------------------------------+ | Ключ | Возвращается | Описание | +============+=======================+=================================================================+ | unified | всегда | unified список элементов или пустой список. | +------------+-----------------------+-----------------------------------------------------------------+ | unified_b | когда secondary = true | Опциональный вторичный список. | +------------+-----------------------+-----------------------------------------------------------------+
Статус
Этот модуль гарантирует отсутствие несовместимых изменений в интерфейсе в будущем.
Этот модуль поддерживается сообществом.
Авторы
- constrict0r
Плагины
Доступные проверки:
user_root
Определяет, может ли пользователь стать root или нет.
Если пользователь может стать root, возвращается true, иначе возвращается false.
Если пользователь не определен или пуст, возвращается false.
::
- name: Проверка user_root с непустым root.
debug:
msg: 'Пользователь может стать root'
failed_when: "not 'root' is user_root"
variable_boolean
Определяет, является ли переменная логического типа или нет.
Значения, считающиеся логическими:
true
false
True
False
yes
no
Если переменная логическая, возвращается true, иначе возвращается false.
::
- name: Определение логической переменной true.
set_fact:
boolean_true_var: true
::
- name: Проверка variable_boolean с непустым логическим значением false.
debug:
msg: 'Переменная логическая'
failed_when: boolean_false_var is not variable_boolean
variable_boolean_true
Определяет, является ли переменная логического типа и если ее значение true.
Значения, считающиеся логическими:
true
false
True
False
yes
no
Если переменная логическая и установлена в true, возвращается значение true, иначе false.
::
- name: Определение логической переменной false.
set_fact:
boolean_false_var: false
::
- name: Проверка variable_boolean_true с непустым логическим значением false.
debug:
msg: 'Переменная не логический true'
failed_when: boolean_false_var is variable_boolean_true
variable_collection
Определяет, является ли переменная коллекцией или нет.
Если переменная является коллекцией, возвращается true, иначе возвращается false.
::
- name: Определение непустой переменной коллекции.
set_fact:
non_empty_collection_var: [one, two]
::
- name: Проверка variable_collection с непустой коллекцией.
debug:
msg: 'Переменная является коллекцией'
failed_when: non_empty_collection_var is not variable_collection
variable_empty
Определяет, является ли переменная пустой или нет.
Если переменная пустая, возвращается true, иначе возвращается false.
::
- name: Определение непустой переменной.
set_fact:
non_empty_var: 'non-empty-value'
::
- name: Проверка variable_empty с непустым значением.
debug:
msg: 'Переменная не пустая'
failed_when: non_empty_var is variable_empty
variable_path
Определяет, является ли переменная существующим путем или нет.
Если переменная является существующим путем, возвращается true, иначе возвращается false.
::
- name: Определение переменной пути.
set_fact:
path_var: /bin/ls
::
- name: Проверка variable_path с непустым значением.
debug:
msg: 'Переменная является путем'
failed_when: path_var is not variable_path
variable_url
Определяет, является ли переменная URL или нет.
Если переменная является URL, возвращается true, иначе возвращается false.
::
- name: Определение несуществующей переменной url.
set_fact:
non_existent_url_var: https://constrict0r.readthedocs.io
::
- name: Проверка variable_url с непустым несуществующим значением.
debug:
msg: 'Переменная URL'
failed_when: non_existent_url_var is not variable_url
variable_url_existent
Определяет, является ли переменная существующим URL.
Если переменная является существующим URL, возвращается true, иначе возвращается false.
Для этого теста рекомендуется использовать URL, указывающие на отдельные файлы, а не на главные сайты, чтобы избежать ответов со статусом, отличным от 200.
::
- name: Определение существующей переменной url.
set_fact:
existent_url_var: https://is.gd/AuuivH
::
- name: Проверка variable_url_existent с непустым существующим значением.
debug:
msg: 'Переменная URL'
failed_when: existent_url_var is not variable_url_existent
YAML
При передаче конфигурационных файлов в эту роль в качестве параметров рекомендуется добавлять расширение .yml или .yaml к каждому файлу.
Также рекомендуется добавлять три тире в верхней части каждого файла:
::
Вы можете включить в файл переменные, необходимые для ваших задач:
::
items: - [gemmata, muscaria]
Если вы хотите, чтобы эта роль загружала список элементов из файлов и URL, вы можете установить переменную expand в true:
::
items: /home/username/my-config.yml
expand: true
Если переменная expand установлена в false, любой файловый путь или URL будет обработан как простой текст.
Атрибуты
На уровне элемента можно использовать атрибуты для настройки того, как эта роль обрабатывает данные элементов.
Атрибуты, поддерживаемые этой ролью:
item_expand
Логическое значение, указывающее, следует ли обрабатывать этот элемент как файловый путь или URL или просто обрабатывать его как простой текст.
::
items: - item_expand: true item_path: /home/username/my-config.yml
item_path
Абсолютный путь файла или URL к .yml файлу.
::
items: - item_path: /home/username/my-config.yml
Этот атрибут также работает с URL.
Требования
Ansible <https://www.ansible.com>
_ >= 2.8.Jinja2 <https://palletsprojects.com/p/jinja/>
_.Pip <https://pypi.org/project/pip/>
_.Python <https://www.python.org/>
_.PyYAML <https://pyyaml.org/>
_.Requests <https://2.python-requests.org/en/master/>
_.
Если вы хотите выполнять тесты, также потребуется:
Docker <https://www.docker.com/>
_.Molecule <https://molecule.readthedocs.io/>
_.Setuptools <https://pypi.org/project/setuptools/>
_.
Совместимость
Debian Buster <https://wiki.debian.org/DebianBuster>
_.Debian Raspbian <https://raspbian.org/>
_.Debian Stretch <https://wiki.debian.org/DebianStretch>
_.Ubuntu Xenial <http://releases.ubuntu.com/16.04/>
_.
Ограничения
Эта роль игнорирует вложенные переменные (т.е. {{ my_variable }}) внутри коллекций, чтобы предотвратить попадание неопределенных переменных в процесс.
Рекомендуется передавать переменную titles как пустую, когда она не используется, чтобы избежать использования старого значения titles:
..
::
ansible localhost -m include_role -a name=constrict0r.unify \
--extra-vars "{ \
items: [gemmata, muscaria], \
titles: []}"
- Чтобы избежать неожиданных результатов, рекомендуется всегда указывать переменные expand, secondary, update и validate:
..
::
ansible localhost -m include_role -a name=constrict0r.unify \
--extra-vars "{ \
items: [gemmata, muscaria], \
expand: true, \
secondary: true, \
update: false, \
validate: false}"
- Эта роль не поддерживает значения хранилища (vault)。
Лицензия
MIT. См. файл LICENSE для получения дополнительных сведений.
Ссылки
Coveralls <https://coveralls.io/github/constrict0r/unify>
_.Github <https://github.com/constrict0r/unify>
_.Gitlab <https://gitlab.com/constrict0r/unify>
_.Gitlab CI <https://gitlab.com/constrict0r/unify/pipelines>
_.Readthedocs <https://unify.readthedocs.io>
_.Travis CI <https://travis-ci.com/constrict0r/unify>
_.
UML
Класс
Классы проекта показаны ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/class.png :alt: класс
Развертывание
Полная структура проекта показана ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/deploy.png :alt: развертывание
Основной
Процесс передачи данных проекта показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/main.png :alt: основной
user-root
Процесс передачи данных для фильтра теста user_root показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/user_root.png :alt: user_root
variable-boolean
Процесс передачи данных для фильтра теста variable_boolean показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_boolean.png :alt: variable_boolean
variable-boolean-true
Процесс передачи данных для фильтра теста variable_boolean_true показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_boolean_true.png :alt: variable_boolean_true
variable-collection
Процесс передачи данных для фильтра теста variable_collection показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_collection.png :alt: variable_collection
variable-empty
Процесс передачи данных для фильтра теста variable_empty показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_empty.png :alt: variable_empty
variable-path
Процесс передачи данных для фильтра теста variable_path показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_path.png :alt: variable_path
variable-url
Процесс передачи данных для фильтра теста variable_url показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_url.png :alt: variable_url
variable-url-existent
Процесс передачи данных для фильтра теста variable_url_existent показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_url_existent.png :alt: variable_url_existent
unify-collection
Процесс передачи данных для функции unify-collection показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/unify_collection.png :alt: unify_collection
unify-item
Процесс передачи данных для функции unify-item показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/unify_item.png :alt: unify_item
Автор
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/author.png :alt: автор
Странствующий злодей Водевиля.
Приятного времени!!!
.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/enjoy.png :alt: наслаждайтесь
API
Пакеты
Unify-package
библиотека - Объединение коллекций элементов.
Модуль library.unify
library.unify.main()
library.unify.run_module()
Запускает модуль.
:Параметры: * items (list) – Список элементов для добавления в унифицированную коллекцию.
* **titles** (*list*) – Названия коллекций для загрузки из файлов
или URL.
* **expand** (*bool*) – Загружать ли элементы с путей/URL или использовать простой
путь/URL.
:Возвращает: Упакованный список элементов.
:Тип возвращаемого значения: list
library.unify.unify_collection(collection, unified=[], titles=[], expand=False)
Объединяет коллекцию в единую унифицированную коллекцию.
:Параметры: * collection (dict) – Коллекция для добавления в унифицированную коллекцию.
* **unified** (*dict*) – Текущая унифицированная коллекция.
* **titles** (*dict*) – Список элементов для поиска в файлах или
URL.
* **expand** (*bool*) – Загружать или нет элементы на файлах и
URL.
:Возвращает: Упакованную вместе с переданной коллекцией.
:Тип возвращаемого значения: dict
library.unify.unify_item(item, unified=[], titles=[], expand=False)
Объединяет элемент в единую унифицированную коллекцию.
:Параметры: * item (str) – Значение, которое нужно добавить в унифицированную коллекцию.
* **unified** (*dict*) – Текущая унифицированная коллекция.
* **titles** (*dict*) – Список элементов для поиска в файлах или
URL.
* **expand** (*bool*) – Загружать или нет элементы на файлах и
URL.
:Возвращает: Текущая коллекция плюс текущий элемент.
:Тип возвращаемого значения: dict
library.unify.variable_boolean(value)
Проверяет, является ли переменная логической или нет.
:Параметры: value (str) – Переменная для теста.
:Возвращает: True, если переменная логическая, иначе False.
:Тип возвращаемого значения: bool
library.unify.variable_boolean_value(value)
Получает логическое значение переменной.
Значения, принимаемые как логическое true:
* true
* True
* yes
Значения, принимаемые как логическое false:
* false
* False
* no
:Параметры: value (str) – Переменная для теста.
:Возвращает: True, если переменная является истинным логическим значением, иначе False.
:Тип возвращаемого значения: bool
library.unify.variable_collection(value)
Проверяет, является ли переменная коллекцией или нет.
Для этой функции пустая переменная не считается коллекцией.
:Параметры: value (str) – Переменная для теста.
:Возвращает: True, если переменная не пустая коллекция, иначе False.
:Тип возвращаемого значения: bool
library.unify.variable_empty(value)
Проверяет, является ли переменная пустой или нет.
:Параметры: value (str) – Переменная для теста.
:Возвращает: True, если переменная непустая, иначе False.
:Тип возвращаемого значения: bool
library.unify.variable_path(value)
Проверяет, является ли переменная существующим файлом или нет.
:Параметры: value (str) – Переменная для теста.
:Возвращает: True, если переменная является существующим файловым путем, иначе False.
:Тип возвращаемого значения: bool
library.unify.variable_url(value)
Проверяет, является ли переменная валидным URL.
:Параметры: value (str) – Переменная для теста.
:Возвращает: True, если переменная является валидным URL, иначе False.
:Тип возвращаемого значения: bool
library.unify.variable_url_existent(value)
Проверяет, является ли переменная существующим URL.
Рекомендуется использовать URL, указывающие на отдельные файлы, а не на главные.
:Параметры: value (str) – Переменная для теста.
:Возвращает: True, если переменная является существующим URL, иначе False.
:Тип возвращаемого значения: bool
**Util
test_plugins - Утилиты для валидации и обработки переменных.
Mod test_plugins.util
Утилиты для валидации и обработки переменных.
class test_plugins.util.TestModule
Основано на: object
Тестовые фильтры для валидации и обработки переменных.
tests()
Определить доступные тестовые фильтры.
:Возвращает:
Коллекция доступных тестов.
:Тип возвращаемого значения:
dict
user_root(username=None)
Проверяет, может ли пользователь стать sudo или нет.
Если имя пользователя не определено или пустое, будет возвращено False.
:Параметры:
**username** (*str*) – Имя пользователя для проверки.
:Возвращает:
True, если пользователь может стать sudo, иначе False.
:Тип возвращаемого значения:
bool
variable_boolean(value)
Проверяет, является ли переменная логической или нет.
:Параметры:
**value** (*str*) – Переменная для теста.
:Возвращает:
True, если переменная логическая, иначе False.
:Тип возвращаемого значения:
bool
variable_boolean_true(value)
Проверяет, является ли переменная логической и ее значение True.
:Параметры:
**value** (*str*) – Переменная для теста.
:Возвращает:
True, если переменная логическая и ее значение True,
иначе False.
:Тип возвращаемого значения:
bool
variable_collection(value)
Проверяет, является ли переменная коллекцией или нет.
Для этой функции пустая переменная не считается коллекцией.
:Параметры:
**value** (*str*) – Переменная для теста.
:Возвращает:
True, если переменная не пустая коллекция, иначе False.
:Тип возвращаемого значения:
bool
variable_empty(value)
Проверяет, является ли переменная пустой или нет.
:Параметры:
**value** (*str*) – Переменная для теста.
:Возвращает:
True, если переменная непустая, иначе False.
:Тип возвращаемого значения:
bool
variable_path(value)
Проверяет, является ли переменная существующим файлом или нет.
:Параметры:
**value** (*str*) – Переменная для теста.
:Возвращает:
True, если переменная является существующим файловым путем, иначе False.
:Тип возвращаемого значения:
bool
variable_url(value)
Проверяет, является ли переменная валидным URL.
:Параметры:
**value** (*str*) – Переменная для теста.
:Возвращает:
True, если переменная является валидным URL, иначе False.
:Тип возвращаемого значения:
bool
variable_url_existent(value)
Проверяет, является ли переменная существующим URL.
Рекомендуется использовать URL, указывающие на отдельные файлы, а не на главные.
:Параметры:
**value** (*str*) – Переменная для теста.
:Возвращает:
True, если переменная является существующим URL, иначе False.
:Тип возвращаемого значения:
bool
Unify collections into a single unified_collection.
ansible-galaxy install constrict0r/unify