constrict0r.unify

unify


.. imagen:: https://gitlab.com/constrict0r/unify/badges/master/pipeline.svg :alt: pipeline

.. imagen:: https://travis-ci.com/constrict0r/unify.svg :alt: travis

.. imagen:: https://readthedocs.org/projects/unify/badge :alt: readthedocs

.. imagen:: https://coveralls.io/repos/github/constrict0r/unify/badge.svg :alt: coverage

.. imagen:: https://gitlab.com/constrict0r/unify/badges/master/coverage.svg :alt: coverage_gitlab

Rol de Ansible para unificar colecciones en una única colección unificada.

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/avatar.png :alt: avatar

Documentación completa en Readthedocs <https://unify.readthedocs.io>_.

Código fuente en:

Github <https://github.com/constrict0r/unify>_

Gitlab <https://gitlab.com/constrict0r/unify>_

Parte de: <https://gitlab.com/explore/projects?tag=doombot>_

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/doombot.png :alt: doombot

Ingredientes

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/ingredient.png :alt: ingredient

Contenidos


  • Descripción <#Description>_
  • Uso <#Uso>_
  • Variables <#Variables>_
    • Entrada <#input>_
      • validar <#validate>_
      • actualizar <#update>_
      • elementos <#items>_
      • expandir <#expand>_
      • títulos <#titles>_
      • secundario <#secondary>_
      • elementos_b <#items-b>_
      • expandir_b <#expand-b>_
      • títulos_b <#titles-b>_
    • Salida <#output>_
      • unificado <#unified>_
      • unificado_b <#unified-b>_
  • Módulos <#Modules>_
    • unify-module <#unify-module>_
      • Sinopsis <#synopsis>_
      • Parámetros <#parameters>_
      • Ejemplos <#examples>_
      • Valores de retorno <#return-values>_
      • Estado <#status>_
      • Autores <#authors>_
  • Plugins <#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>_
  • Atributos <#Attributes>_
    • item_expand <#item-expand>_
    • item_path <#item-path>_
  • Requisitos <#Requirements>_
  • Compatibilidad <#Compatibility>_
  • Limitaciones <#Limitations>_
  • Licencia <#License>_
  • Enlaces <#Links>_
  • UML <#UML>_
    • Clase <#class>_
    • Implementación <#deployment>_
    • Principal <#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>_
  • Autor <#Author>_

Contenido de la API


  • API <#API>_
  • Paquetes <#packages>_
    • Unify-package <#module-library>_
      • Módulo library.unify <#module-library.unify>_
    • Utilidad <#module-test_plugins>_
      • Módulo test_plugins.util <#module-test_plugins.util>_

Descripción


Rol de Ansible para unificar colecciones en una única colección unificada. Incluye un plugin llamado util y un módulo llamado unify.

Los elementos a unificar pueden ser elementos individuales, colecciones de elementos, rutas y URLs a archivos .yml donde cargar más elementos.

La variable items se utiliza para especificar los elementos a unificar, el resultado se almacena en una única variable de colección unified. Opcionalmente, se creará una colección secundaria unified_b si la variable secondary está establecida en true. Si necesitas más de dos colecciones unificadas, puedes usar el módulo unify incluido.

Si la variable expand se establece en true o si un elemento especifica el atributo item_expand como true, los elementos de cada ruta de archivo o URL listada se cargarán utilizando la variable titles como índice; por lo tanto, al expandir elementos de archivos, la variable titles no debe estar vacía.

Por ejemplo, si el valor de la variable items es la ruta /home/username/my-config.yml, la variable titles tiene el valor packages y la variable expand está establecida en true, este rol intentará cargar una lista llamada packages desde el archivo /home/username/my-config.yml.

El contenido de /home/username/my-config.yml podría ser algo como lo siguiente:

..

::

  ---
  packages:
    - leafpad
    - rolldice
    - /home/username/extra-config.yml
    - https://my-url/my-config.yml

Cuando la variable expand está establecida en false, las rutas de archivo o URLs encontradas dentro de la variable items se tratan como elementos de texto simple, esto es útil para mantener listas de archivos y directorios, por ejemplo, para propósitos de respaldo.

Al añadir un elemento a la variable unified, solo se añadirá si no está ya presente. En el caso de valores booleanos, se permiten duplicados en unified porque los valores booleanos se usan comúnmente para listas de verificación.

Este rol también incluye la siguiente funcionalidad:

  • Asegurar que se instalen los requisitos.

Uso


  • Para instalar y ejecutar:

..

::

  ansible-galaxy install constrict0r.unify
  ansible localhost -m include_role -a name=constrict0r.unify -K
  • Pasando variables:

..

::

  ansible localhost -m include_role -a name=constrict0r.unify -K \
      -e "{items: [1, '/home/user/my-config.yml']}"
  • Para incluir el rol en un playbook:

..

::

  - hosts: servers
    roles:
        - {role: constrict0r.unify}
  • Para incluir el rol como dependencia en otro rol:

..

::

  dependencies:
    - role: constrict0r.unify
      items: [gemmata, muscaria]
  • Para usar el rol desde tareas:

..

::

  - name: Ejecutar tarea del rol.
    import_role:
      name: constrict0r.unify
    vars:
      items: [gemmata, muscaria]

Para ejecutar pruebas:

::

cd unify chmod +x testme.sh ./testme.sh

Es posible que en algunas pruebas necesites usar sudo para tener éxito.

Variables


Entrada

Las siguientes variables son soportadas:

validar

Valor booleano que indica si se aplican validaciones o no.

Si se establece en true, se aplican las siguientes validaciones:

  • Verificar si el usuario puede convertirse en root.

Esta variable está establecida en false por defecto.

::

Incluyendo desde la terminal.

ansible localhost -m include_role -a name=constrict0r.unify -K -e
"validate=false"

Incluyendo en un playbook.

  • hosts: servers roles:
    • role: constrict0r.unify validate: false

Para un playbook desde la terminal.

ansible-playbook -i inventory my-playbook.yml -K -e
"validate=false"

Para evitar cualquier comportamiento inesperado, se recomienda especificar siempre esta variable al llamar a este rol.

actualizar

Variable booleano que define si actualizar o no la caché de apt.

Si se establece en true, se actualiza la caché de apt.

Esta variable está establecida en false por defecto.

::

Incluyendo desde la terminal.

ansible localhost -m include_role -a name=constrict0r.unify -K -e
"update=false"

Incluyendo en un playbook.

  • hosts: servers roles:
    • role: constrict0r.unify update: false

Para un playbook desde la terminal.

ansible-playbook -i inventory my-playbook.yml -K -e
"update=false"

Para evitar cualquier comportamiento inesperado, se recomienda especificar siempre esta variable al llamar a este rol.

elementos

Lista de elementos que se deben añadir a la variable unified.

Cada elemento se añadirá solo si está definido y no está vacío.

Esta variable puede contener elementos individuales, listas, diccionarios, rutas a archivos y URLs.

Al especificar un elemento de ruta o URL, la variable titles no debe estar vacía, titles se utiliza como los nombres de las colecciones a cargar desde cada archivo.

Al especificar rutas de archivos, se deben usar rutas absolutas, se recomienda siempre añadir una extensión .yml o .yaml a dichos archivos, lo mismo se aplica para archivos especificados usando URLs.

Esta variable está vacía por defecto.

::

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]}"

expandir

Valor booleano que indica si carga elementos desde rutas de archivos o URLs o simplemente trata los archivos y URLs como texto plano.

Si está establecido en true, este rol intentará cargar elementos desde los caminos y URLs especificados.

Si está establecido en false, cada ruta de archivo o URL encontrada en los elementos se tratará como texto plano.

Esta variable está establecida en false por defecto.

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true configuration='/home/username/my-config.yml' titles='items'"

Si deseas sobrescribir el valor de esta variable, especifica atributos item_path y item_expand al pasar el ítem; el atributo item_path también se puede usar con URLs:

::

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'}"

Para evitar cualquier comportamiento inesperado, se recomienda especificar siempre esta variable al llamar a este rol.

títulos

Nombre utilizado como índice para cargar elementos desde archivos y URLs.

Esta variable se utiliza cuando la variable expand está establecida en true.

Esta variable está vacía por defecto.

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true items='/home/username/my-config.yml' titles='items'"

Para evitar cualquier comportamiento inesperado, se recomienda pasar esta variable como una lista vacía [] cuando no se use.

secundario

Valor booleano que indica si unificar los elementos encontrados en la variable items_b en una colección unified_b.

Si se establece en true, este rol construirá una colección unified_b a partir de los elementos encontrados en items_b.

Esta variable se utiliza junto con las variables items_b, expand_b y titles_b.

Esta variable está establecida en false por defecto.

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "secondary=true items_b='/home/username/extra-packages.yml' titles_b='items'"

Para evitar cualquier comportamiento inesperado, se recomienda especificar siempre esta variable al llamar a este rol.

elementos_b

Lista de elementos que se deben añadir a la variable unified_b.

Cada elemento se añadirá solo si está definido y no está vacío.

Esta variable puede contener elementos individuales, listas, diccionarios, rutas a archivos y URLs.

Al especificar un elemento de ruta o URL, la variable titles_b no debe estar vacía, titles_b se utiliza como los nombres de las colecciones a cargar desde cada archivo.

Al especificar rutas de archivos, se deben usar rutas absolutas, se recomienda siempre añadir una extensión .yml o .yaml a dichos archivos, lo mismo se aplica para archivos especificados usando URLs.

Esta variable está vacía por defecto.

::

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]}"

expandir_b

Valor booleano que indica si carga elementos desde rutas de archivos o URLs o simplemente trata los archivos y URLs como texto plano.

Si está establecido en true, este rol intentará cargar elementos desde los caminos y URLs especificados.

Si está establecido en false, cada ruta de archivo o URL encontrada en los elementos se tratará como texto plano.

Esta variable está establecida en false por defecto.

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand_b=true items_b='/home/username/my-config.yml' titles_b='items'"

Si deseas sobrescribir el valor de esta variable, especifica atributos item_path y item_expand al pasar el ítem; el atributo item_path también se puede usar con URLs:

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "{expand_b: false, items_b: [
item_path: '/home/username/my-config.yml',
item_expand: false
], titles_b: 'items'}"

títulos_b

Nombre utilizado como índice para cargar elementos desde archivos y URLs.

Esta variable se utiliza cuando la variable expand_b está establecida en true.

Esta variable está vacía por defecto.

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand_b=true items_b='/home/username/my-config.yml' titles_b='items'"

Salida

Las siguientes variables resultantes se producen:

unificado

Lista resultante única donde se almacenan los elementos de la variable items.

unificado_b

Lista resultante única donde se almacenan los elementos de la variable items_b.

Módulos


Los módulos disponibles son:

unify-module

Unificar elementos en una única variable unified.

Sinopsis

  • Tomar elementos de múltiples fuentes y agregarlos a una única colección unified.

  • Los elementos pueden ser elementos individuales, listas, diccionarios, rutas de archivos y URLs a archivos .yml.

  • Puede manejar valores válidos e inválidos como null, None y undefined.

Parámetros

+-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Parámetros | Opciones/Predeterminados | Comentarios | +=============+=======================+===================================================================================================================================================================================================================================================================================================================================================================================================================================+ | expand | Opciones: no, sí. | Cuando se establece en y se encuentra un archivo o URL, carga los elementos de ese archivo o URL en la colección unified. Al expandir elementos, el parámetro titles no debe estar vacío porque se utiliza como índice de colección en los archivos. Cuando se establece en no y se encuentra un archivo o URL, ese elemento se trata como texto simple, lo cual es ideal al gestionar listas de archivos, por ejemplo, con fines de respaldo. | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | items | — | Elementos a añadir a la colección unified. Los elementos pueden incluir elementos individuales (es decir, una cadena o número), listas, diccionarios, rutas a archivos .yml y URLs a archivos .yml. | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | titles | — | Índice utilizado en un archivo o URL para cargar elementos en la variable unified. Por ejemplo, si el archivo se llama my-file.yml y titles está establecido en packages, la lista llamada packages se cargará desde my-file.yml y se añadirá a unified. | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Ejemplos

..

::

  # Unificar dos listas.
  - name: Unificar dos listas.
    items: [[one, two], [three, four]]
    register: unified_result

  # Unificar dos listas pasando una como variable.
  - name: Unificar dos listas de paquetes.
    items: [[emacs, vim], "{{ my_packages }}"]
    register: unified_result

  # Cargar y unificar dos rutas de archivos.
  - name: Unificar dos archivos.
    items: [/home/user/packages.yml, /home/user/more-packages.yml]
    titles: 'packages'
    register: unified_result

  # Cargar y unificar una ruta de archivo y una URL.
  - name: Unificar un archivo y una URL.
    items: [/home/user/packages.yml, https://my-url/packages.yml]
    titles: 'packages'
    register: unified_result

  # Cargar y unificar un elemento y una ruta de archivo.
  - name: Unificar un elemento y una ruta de archivo.
    items: [gedit, /home/user/packages.yml]
    titles: 'packages'
    register: unified_result

  # Cargar y unificar un elemento y una ruta de archivo expandiendo (cargando) los elementos.
  - name: Unificar un elemento y una ruta de archivo expandiendo.
    items: [gedit, /home/user/packages.yml]
    titles: 'packages'
    expand: yes
    register: unified_result

  # Cargar y unificar una URL.
  - name: Unificar una URL.
    items: [https://my-url/packages.yml]
    titles: 'packages'
    expand: yes
    register: unified_result

Valores de retorno

+------------+-----------------------+-----------------------------------------------------------------+ | Clave | Devuelto | Descripción | +============+=======================+=================================================================+ | unified | siempre | Lista unified de elementos o lista vacía. | +------------+-----------------------+-----------------------------------------------------------------+ | unified_b | cuando secondary = true | Lista secundaria opcional. | +------------+-----------------------+-----------------------------------------------------------------+

Estado

  • Este módulo está garantizado para no tener cambios en la interfaz incompatibles hacia atrás en el futuro.

  • Este módulo es mantenido por la comunidad.

Autores

  • constrict0r

Plugins


Las afirmaciones disponibles son:

user_root

Determina si un usuario puede convertirse en root o no.

Si el usuario puede convertirse en root, se devuelve true, si no, se devuelve false.

Si el usuario no está definido o está vacío, se devuelve false.

::

 - name: Probar user_root con root no vacío.
   debug:
     msg: 'El usuario puede convertirse en root'
   failed_when: "not 'root' is user_root"

variable_boolean

Determina si una variable es del tipo booleano o no.

Los valores considerados booleanos son:

  • true

  • false

  • True

  • False

  • yes

  • no

Si la variable es booleano, se devuelve true, si no, se devuelve false.

::

 - name: Definir variable booleano true.
   set_fact:
     boolean_true_var: true

::

 - name: Probar variable_boolean con booleano false no vacío.
   debug:
     msg: 'La variable es booleano'
   failed_when: boolean_false_var is not variable_boolean

variable_boolean_true

Determina si una variable es del tipo booleano y si su valor es true.

Los valores considerados booleanos son:

  • true

  • false

  • True

  • False

  • yes

  • no

Si la variable es booleano y está establecida en true, se devuelve un valor true, de lo contrario se devuelve false.

::

 - name: Definir variable booleano false.
   set_fact:
     boolean_false_var: false

::

 - name: Probar variable_boolean_true con booleano false no vacío.
   debug:
     msg: 'La variable no es booleano true'
   failed_when: boolean_false_var is variable_boolean_true

variable_collection

Determina si una variable es una colección o no.

Si la variable es una colección, se devuelve true, si no, se devuelve false.

::

 - name: Definir variable de colección no vacía.
   set_fact:
     non_empty_collection_var: [one, two]

::

 - name: Probar variable_collection con colección no vacía.
   debug:
     msg: 'La variable es una colección'
   failed_when: non_empty_collection_var is not variable_collection

variable_empty

Determina si una variable está vacía o no.

Si la variable está vacía, se devuelve true, si no, se devuelve false.

::

 - name: Definir variable no vacía.
   set_fact:
     non_empty_var: 'non-empty-value'

::

 - name: Probar variable_empty con no vacío.
   debug:
     msg: 'La variable no está vacía'
   failed_when: non_empty_var is variable_empty

variable_path

Determina si una variable es una ruta existente o no.

Si la variable es una ruta existente, se devuelve true, si no, se devuelve false.

::

 - name: Definir variable de ruta.
   set_fact:
     path_var: /bin/ls

::

 - name: Probar variable_path con no vacío.
   debug:
     msg: 'La variable es una ruta'
   failed_when: path_var is not variable_path

variable_url

Determina si una variable es una URL o no.

Si la variable es una URL, se devuelve true, si no, se devuelve false.

::

 - name: Definir variable de URL no existente.
   set_fact:
     non_existent_url_var: https://constrict0r.readthedocs.io

::

 - name: Probar variable_url con no vacía inexistente.
   debug:
     msg: 'La variable es URL'
   failed_when: non_existent_url_var is not variable_url

variable_url_existent

Determina si una variable es una URL existente o no.

Se recomienda usar URLs que apunten a archivos individuales y no a índices o sitios principales, para evitar respuestas de estado no-200.

::

 - name: Definir variable de URL existente.
   set_fact:
     existent_url_var: https://is.gd/AuuivH

::

 - name: Probar variable_url_existent con no vacía existente.
   debug:
     msg: 'La variable es URL'
   failed_when: existent_url_var is not variable_url_existent

YAML


Al pasar archivos de configuración a este rol como parámetros, se recomienda añadir la extensión .yml o .yaml a cada archivo.

También se recomienda añadir tres guiones al principio de cada archivo:

::


Puedes incluir en el archivo las variables requeridas para tus tareas:

::


items: - [gemmata, muscaria]

Si deseas que este rol cargue listas de elementos de archivos y URLs, puedes establecer la variable expand en true:

::


items: /home/username/my-config.yml

expand: true

Si la variable expand es false, cualquier ruta de archivo o URL encontrada se tratará como texto plano.

Atributos


En el nivel de ítem puedes usar atributos para configurar cómo maneja este rol los datos de elementos.

Los atributos soportados por este rol son:

item_expand

Valor booleano que indica si tratar este ítem como una ruta de archivo o URL o simplemente tratarlo como texto plano.

::


items: - item_expand: true item_path: /home/username/my-config.yml

item_path

Ruta de archivo absoluta o URL a un archivo .yml.

::


items: - item_path: /home/username/my-config.yml

Este atributo también funciona con URLs.

Requisitos


  • 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/>_.

Si deseas ejecutar las pruebas, también necesitarás:

  • Docker <https://www.docker.com/>_.

  • Molecule <https://molecule.readthedocs.io/>_.

  • Setuptools <https://pypi.org/project/setuptools/>_.

Compatibilidad


  • 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/>_.

Limitaciones


  • Este rol ignora variables anidadas (es decir, {{ my_variable }}) dentro de colecciones para evitar que variables indefinidas entren en el proceso.

  • Se recomienda pasar la variable titles como vacía cuando no se use, esto previene el uso de un valor de titles “antiguo”:

..

::

  ansible localhost -m include_role -a name=constrict0r.unify \
    --extra-vars "{ \
      items: [gemmata, muscaria], \
      titles: []}"
  • Para evitar comportamientos inesperados, se recomienda siempre pasar las variables expand, secondary, update y validate:

..

::

  ansible localhost -m include_role -a name=constrict0r.unify \
    --extra-vars "{ \
      items: [gemmata, muscaria], \
      expand: true, \
      secondary: true, \
      update: false, \
      validate: false}"
  • Este rol no soporta valores de vault.

Licencia


MIT. Ver el archivo LICENSE para más detalles.

Enlaces


  • 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


Clase

Las clases del proyecto se muestran a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/class.png :alt: class

Implementación

La estructura completa del proyecto se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/deploy.png :alt: deploy

Principal

El flujo de datos del proyecto se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/main.png :alt: main

user-root

El flujo de datos para el filtro de prueba user_root se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/user_root.png :alt: user_root

variable-boolean

El flujo de datos para el filtro de prueba variable_boolean se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_boolean.png :alt: variable_boolean

variable-boolean-true

El flujo de datos para el filtro de prueba variable_boolean_true se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_boolean_true.png :alt: variable_boolean_true

variable-collection

El flujo de datos para el filtro de prueba variable_collection se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_collection.png :alt: variable_collection

variable-empty

El flujo de datos para el filtro de prueba variable_empty se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_empty.png :alt: variable_empty

variable-path

El flujo de datos para el filtro de prueba variable_path se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_path.png :alt: variable_path

variable-url

El flujo de datos para el filtro de prueba variable_url se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_url.png :alt: variable_url

variable-url-existent

El flujo de datos para el filtro de prueba variable_url_existent se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_url_existent.png :alt: variable_url_existent

unify-collection

El flujo de datos para la función unify-collection se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/unify_collection.png :alt: unify_collection

unify-item

El flujo de datos para la función unify-item se muestra a continuación:

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/unify_item.png :alt: unify_item

Autor


.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/author.png :alt: author

El Villano de Vaudeville Viajero.

¡Disfruta!

.. imagen:: https://gitlab.com/constrict0r/img/raw/master/unify/enjoy.png :alt: enjoy

API


Paquetes


Unify-package

library - Unir colecciones de elementos.

Módulo library.unify

library.unify.main()

library.unify.run_module()

Ejecuta el módulo.

:Parámetros: * items (lista) – Lista de elementos para añadir a la colección unificada.

  * **titles** (*lista*) – Nombres de colecciones a cargar desde archivos o URLs.

  * **expand** (*bool*) – Cargar elementos desde rutas/URL o usar texto plano.

:Retornos: Lista unificada de elementos.

:Tipo de retorno: lista

library.unify.unify_collection(collection, unified=[], titles=[], expand=False)

Unifica una colección en una única colección unificada.

:Parámetros: * collection (dict) – Colección para añadir a la colección unificada.

  * **unified** (*dict*) – Colección unificada actual.

  * **titles** (*dict*) – Lista de elementos para buscar en archivos o URLs.

  * **expand** (*bool*) – Cargar o no los elementos en archivos y URLs.

:Retornos: Unificado más la colección pasada.

:Tipo de retorno: dict

library.unify.unify_item(item, unified=[], titles=[], expand=False)

Unifica un elemento en una única colección unificada.

:Parámetros: * item (str) – Valor para añadir a la colección unificada.

  * **unified** (*dict*) – Colección unificada actual.

  * **titles** (*dict*) – Lista de elementos para buscar en archivos o URLs.

  * **expand** (*bool*) – Cargar o no los elementos en archivos y URLs.

:Retornos: Colección actual más el elemento actual.

:Tipo de retorno: dict

library.unify.variable_boolean(value)

Verifica si una variable es booleano o no.

:Parámetros: value (str) – Variable a probar.

:Retornos: Verdadero si la variable es del tipo booleano, falso de lo contrario.

:Tipo de retorno: bool

library.unify.variable_boolean_value(value)

Obtiene el valor booleano de una variable.

Los valores aceptados como verdadero booleano son: * true

  * True

  * yes

Los valores aceptados como falso booleano son: * false

  * False

  * no

:Parámetros: value (str) – Variable a probar.

:Retornos: Verdadero si la variable es un valor booleano verdadero, falso de lo contrario.

:Tipo de retorno: bool

library.unify.variable_collection(value)

Verifica si una variable es una colección o no.

Para esta función, una variable vacía no se considera una colección.

:Parámetros: value (str) – Variable a probar.

:Retornos: Verdadero si la variable es una colección no vacía, falso de lo contrario.

:Tipo de retorno: bool

library.unify.variable_empty(value)

Verifica si una variable está vacía o no.

:Parámetros: value (str) – Variable a probar.

:Retornos: Verdadero si la variable es no vacía, falso de lo contrario.

:Tipo de retorno: bool

library.unify.variable_path(value)

Verifica si una variable es un archivo existente o no.

:Parámetros: value (str) – Variable a probar.

:Retornos: Verdadero si la variable es una ruta de archivo existente, falso de lo contrario.

:Tipo de retorno: bool

library.unify.variable_url(value)

Verifica si una variable es una URL válida.

:Parámetros: value (str) – Variable a probar.

:Retornos: Verdadero si la variable es una URL válida, falso de lo contrario.

:Tipo de retorno: bool

library.unify.variable_url_existent(value)

Verifica si una variable es una URL existente.

Se recomienda usar URLs que apunten a archivos individuales, no a índice o principal.

:Parámetros: value (str) – Variable a probar.

:Retornos: Verdadero si la variable es una URL existente, falso de lo contrario.

:Tipo de retorno: bool

Util

test_plugins - Validaciones y utilidades de manejo de variables.

Módulo test_plugins.util

Validaciones y utilidades de manejo de variables.

class test_plugins.util.TestModule

Bases: object

Filtros de prueba para validaciones y manejo de variables.

tests()

  Define los filtros de prueba disponibles.

  :Retornos:
     Colección de filtros de prueba disponibles.

  :Tipo de retorno:
     dict

user_root(username=None)

  Verifica si un usuario puede convertirse en sudo o no.

  Si el nombre de usuario no está definido o está vacío, se devolverá falso.

  :Parámetros:
     **username** (*str*) – Nombre de usuario a verificar.

  :Retornos:
     Verdadero si el usuario puede convertirse en sudo, falso de lo contrario.

  :Tipo de retorno:
     bool

variable_boolean(value)

  Verifica si una variable es booleano o no.

  :Parámetros:
     **value** (*str*) – Variable a probar.

  :Retornos:
     Verdadero si la variable es del tipo booleano, falso de lo contrario.

  :Tipo de retorno:
     bool

variable_boolean_true(value)

  Verifica si una variable es booleano y su valor es True.

  :Parámetros:
     **value** (*str*) – Variable a probar.

  :Retornos:
     Verdadero si la variable tiene el valor booleano True, falso de lo contrario.

  :Tipo de retorno:
     bool

variable_collection(value)

  Verifica si una variable es una colección o no.

  Para esta función, una variable vacía no se considera una colección.

  :Parámetros:
     **value** (*str*) – Variable a probar.

  :Retornos:
     Verdadero si la variable es una colección no vacía, falso de lo contrario.

  :Tipo de retorno:
     bool

variable_empty(value)

  Verifica si una variable está vacía o no.

  :Parámetros:
     **value** (*str*) – Variable a probar.

  :Retornos:
     Verdadero si la variable es no vacía, falso de lo contrario.

  :Tipo de retorno:
     bool

variable_path(value)

  Verifica si una variable es un archivo existente o no.

  :Parámetros:
     **value** (*str*) – Variable a probar.

  :Retornos:
     Verdadero si la variable es una ruta de archivo existente, falso de lo contrario.

  :Tipo de retorno:
     bool

variable_url(value)

  Verifica si una variable es una URL válida.

  :Parámetros:
     **value** (*str*) – Variable a probar.

  :Retornos:
     Verdadero si la variable es una URL válida, falso de lo contrario.

  :Tipo de retorno:
     bool

variable_url_existent(value)

  Verifica si una variable es una URL existente.

  Se recomienda usar URLs que apunten a archivos individuales, no a índice o principal.

  :Parámetros:
     **value** (*str*) – Variable a probar.

  :Retornos:
     Verdadero si la variable es una URL existente, falso de lo contrario.

  :Tipo de retorno:
     bool
Acerca del proyecto

Unify collections into a single unified_collection.

Instalar
ansible-galaxy install constrict0r.unify
Licencia
mit
Descargas
4k
Propietario
The Traveling Vaudeville Villain Gitlab: gitlab.com/constrict0r - Blog: geekl0g.wordpress.com - Twitter: twitter.com/constrict0r - Functional Café: is.gd/YDqy