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 sí 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
Unify collections into a single unified_collection.
ansible-galaxy install constrict0r.unify