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
Лицензия
mit
Загрузки
3969
Владелец
The Traveling Vaudeville Villain Gitlab: gitlab.com/constrict0r - Blog: geekl0g.wordpress.com - Twitter: twitter.com/constrict0r - Functional Café: is.gd/YDqy