Skip to content

VTacius/ESBackup

Repository files navigation

ESBackup

Backup de indices en Elasticsearch 6.x

El script tiene como misión dejar el servidor siempre disponible; para lo cual procura mucho la cuestión del espacio

Para usar este script como la herramienta de backup, basta con instalar y verificar que el nombre de los indices activos debe ser {nombre_indice}-activo-yyy.mm.dd; y el de los backup, pues {nombre_indice}-backup-yyy.mm.dd

Instalacion

Por ahora, la distribución destino es Debian 9. (Ni siquiera 10) Así que es el único paquete creado. Para otros destinos, tendré que hacerse a mano Aunque parece que viene ya instalado en muchas distribuciones, el único paquete necesario para que esto funcione es Request

# Para Fedora
dnf install python3-requests

# Para Debian
apt install python3-requests

# El paquete propiamente se instala asi:
tar xzvf esbackup-1.0.0.linux-x86_64.tar.gz -C /

Desarrollo.

Ya que el destino final de esta aplicación es Debian, he cuidado que las versiones a usar sean compatibles con las disponibles en 9.x, que tiene instalada la versión 3.5 de python.

pipenv --python python35 shell
pipenv install
pipenv install --dev

En Fedora, un par de paquetes son necesarios (TODO: ¿En verdad lo son?)

dnf install python3-devel 

Linting

Este es un trabajo en proceso. El código funciona a este momento, pero aspiro a que este realmente bien escrito

flake8 --ignore E501,E266 esbackup/
pylint esbackup/

Test

Hay dos grupos de test (Por lo pronto, un poco redundantes) que deben correrse desde la raíz del repositorio:

Para el código python, usamos pytest; en forma de módulo, lo que permite ahorrar muchos dolores de cabeza. Antes de correrlos, debemos aseguranos de tener el módulo hecho en Rust

# maturin es genial pero queda fuera por el momento
# rustup run nightly maturin develop --release 
rustup run nightly python setup.py develop
python -m pytest esbackup/test/

Para el código en Rust, usamos su sistema integrado. Es necesario correrlo señalando el toolchain nightly y usar la opción --no-default-features

rustup run nightly cargo test --no-default-features --

Empaquetado

El paquete lo creamos con setuptools-rust, que es más feo que maturin, pero permite ser un poco versatil

rustup run nightly python setup.py bdist

About

Backup de indices en Elasticsearch

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published