From 4a2ad9c5c14dd5ce89a007296dd714022945b4d0 Mon Sep 17 00:00:00 2001 From: ggil Date: Mon, 18 Nov 2024 11:09:18 +0100 Subject: [PATCH 1/3] refs #631 - API improvement and 'ogAdmRepo.cfg.tmpl' edition --- api/repo_api.py | 4 ++++ etc/ogAdmRepo.cfg.tmpl | 1 + 2 files changed, 5 insertions(+) diff --git a/api/repo_api.py b/api/repo_api.py index c7b2da9..abb32cd 100644 --- a/api/repo_api.py +++ b/api/repo_api.py @@ -164,6 +164,10 @@ def check_remote_connection(remote_ip, remote_user): # Iniciamos un cliente SFTP: sftp_client = ssh_client.open_sftp() + # Cerramos el cliente SSH y el cliente SFTP: + ssh_client.close() + sftp_client.close() + # Retornamos "True", porque hemos conseguido conectar: return True diff --git a/etc/ogAdmRepo.cfg.tmpl b/etc/ogAdmRepo.cfg.tmpl index ed68ea6..0f278b3 100644 --- a/etc/ogAdmRepo.cfg.tmpl +++ b/etc/ogAdmRepo.cfg.tmpl @@ -1,2 +1,3 @@ IPlocal=SERVERIP +IPcore=OGCOREIP ApiToken=REPOKEY From e49bde25e396041cf7eb52b41882567367cae2b8 Mon Sep 17 00:00:00 2001 From: ggil Date: Mon, 18 Nov 2024 15:36:45 +0100 Subject: [PATCH 2/3] refs #631 - Supress '/admin/Sources/Services' dir and update documentation --- README.md | 5 +- admin/Sources/Services/ogAdmRepoAux | 285 ----------------------- admin/Sources/Services/opengnsys.default | 15 -- admin/Sources/Services/opengnsys.init | 224 ------------------ 4 files changed, 2 insertions(+), 527 deletions(-) delete mode 100644 admin/Sources/Services/ogAdmRepoAux delete mode 100644 admin/Sources/Services/opengnsys.default delete mode 100644 admin/Sources/Services/opengnsys.init diff --git a/README.md b/README.md index 47c8319..507e383 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,10 @@ ogRepository - OpenGnsys Repository Manager Este repositorio GIT contiene la estructura de datos del repositorio de imágenes de OpenGnsys. -- **admin** --- Archivos de configuración de ogRepository. -- **api** ------ API de ogRepository. +- **api** ------ API de ogRepository. - **bin** ------ Scripts en Python 3 y binarios de gestión de ogRepository. - **etc** ------ Ficheros y plantillas de configuración de ogRepository. -- **packets** - Paquetes cuya instalación es requerida. +- **packets** - Paquetes cuya instalación es requerida. --- diff --git a/admin/Sources/Services/ogAdmRepoAux b/admin/Sources/Services/ogAdmRepoAux deleted file mode 100644 index ede2bea..0000000 --- a/admin/Sources/Services/ogAdmRepoAux +++ /dev/null @@ -1,285 +0,0 @@ -#!/bin/bash -PARM=`cat` -#PARM=$@ - - -#TODO: ticket 379 -#buscar parametro de identificador de operacion. -#usar parametro de identificacion para anexarlo al nombre de log -#Comprobar si la variable está seteas. -#Si no lo está setearla. -#Si esta seteada (en progreso) salir. - - -TIME=$SECONDS - -BASEDIR=/opt/opengnsys -PATH=$PATH:$BASEDIR/bin -REPONAME=ogAdmRepo -REPODIR="$BASEDIR/images/" - -# Para las sincronizadas -# BACKUP: Define si se realiza copia de seguridad al crear una imagen (true|false). -# IMGFS: Sistema de ficheros al crear las sincronizadas tipo archivo (EXT4|BTRFS). -[ -z $OGENGINECONFIGURATE ] && source $BASEDIR/client/etc/engine.cfg -# FS segun la configuracion y la version del kernel. ext4 para < 3.7, para >= BTRFS -KERNEL=$(file -bkr /opt/opengnsys/tftpboot/ogclient/ogvmlinuz |awk '/Linux/ {for(i=1;i<=NF;i++) if($i~/version/) {v=$(i+1);printf("%d",v);sub(/[0-9]*\./,"",v);printf(".%02d",v)}}') -[ $KERNEL \< 3.07 ] && IMGFS="EXT4" || IMGFS=${IMGFS:-"BTRFS"} - -# Añade registro de incidencias. -function echolog () { - logger --tag $0 --priority local0.info "$*" - echo "$*" -} - -function mountImage () { - #@param 1 image_file - #@param 2 mount_dir - #@param 3 openciones mount - [ "$3" != "" ] && OPTMOUNT=" -o $3 " - # Si está montado nada que hacer - df |grep "$2$" 2>&1 >/dev/null && return 0 - # FS de la imagen segun el contenido del archivo .img - if file "$1" |grep -i -e " ext4 filesystem " 2>&1 > /dev/null ; then - echolog "mount $OPTMOUNT -t ext4 $1 $2" - mount $OPTMOUNT -t ext4 $1 $2 - else - echolog "mount $OPTMOUNT -o compress=lzo $1 $2" - mount $OPTMOUNT -o compress=lzo "$1" "$2" - fi - # Si esta montado da error 32, lo damos como bueno - RETVAL=$? - [ $RETVAL -eq 32 ] && RETVAL=0 - return $RETVAL -} - - -PARM1=$(echo $PARM | cut -f1 -d" ") -PARM2=$(echo $PARM | cut -f2 -d" ") -PARM3=$(echo $PARM | cut -f3 -d" ") -PARM4=$(echo $PARM | cut -f4 -d" ") - -# Determinamos el tipo de sistema de fichero de las imagenes segun el kernel que tenga - - -case "$PARM1" in - START_MULTICAST) - #1 START_MULTICAST - #2 fichero a enviar - #3 opciones de multicast - FILE="$PARM2" - MCASTOPT="$PARM3" - echolog "Ejecutar $(which sendFileMcast) $FILE $MCASTOPT" - sendFileMcast $FILE $MCASTOPT |logger --tag $0 --priority local0.info - case $? in - 1) echolog "Parametros insuficientes" - exit 1 ;; - 2) echolog "Fichero no accesible" - exit 2 ;; - 3) echolog "Sesion multicast no valida" - exit 3 ;; - esac - ;; - CREATE_IMAGE) - # Creamos/Redimensionamos el fichero de imagen y lo montamos para que se pueda escribir sobre el - #1 CREATE_IMAGE - #2 nombre imagen - #3 tipo de imagen [ img | diff ] - #4 tamaño imagen - LOOPDEVICE=$(losetup -f) - DIRMOUNT="$REPODIR/mount/$PARM2" - if [ "$PARM3" == "img" ] ; then - IMGEXT="img" - else - IMGEXT="img.diff" - DIRMOUNT="$DIRMOUNT.diff" - fi - IMGFILE="$REPODIR/$PARM2.$IMGEXT" - IMGDIR="$(dirname $IMGFILE)" - [ -d $IMGDIR ] || mkdir -p $IMGDIR - mkdir -p "$DIRMOUNT" - - LOCKFILE="$IMGFILE.lock" - - SIZEREQUIRED="$PARM4" - - # Si existe la imagen hacemos copia de seguridad y la redimesionamos - if [ -f "$IMGFILE" ]; then - echolog "La imagen $IMGFILE ya existe." - # TODO modificar ogGetImageSize - IMGSIZE=$(ls -l --block-size=1024 $IMGFILE| cut -f5 -d" ") - - if [ "$BACKUP" == "true" -o "$BACKUP" == "TRUE" -o $IMGSIZE -lt $SIZEREQUIRED ]; then - # Si la imagen esta montada la desmonto - if [ -r "$DIRMOUNT/ogimg.info" ]; then - echolog "umount $DIRMOUNT" - umount "$DIRMOUNT" - [ $? -ne 0 ] && echolog "Error: No podemos desmontar la imagen para hacer copia de seguridad o redimensionar" && exit 1 - fi - fi - - # Copia de seguridad de la imagen - if [ "$BACKUP" == "true" -o "$BACKUP" == "TRUE" ]; then - echolog "Copia de seguridad de la imagen anterior" - echolog "cp $IMGFILE $IMGFILE.ant" - cp "$IMGFILE" "$IMGFILE.ant" - echolog mv -f "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null - mv -f "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null - fi - - # Redimensionamos la imagen al tamaño necesario - if [ $IMGSIZE -lt $SIZEREQUIRED ];then - echolog "Redimensionamos la imagen $IMGFILE al tamaño necesario: $SIZEREQUIRED" - echolog "truncate --size=\">$SIZEREQUIRED\"k $IMGFILE" - truncate --size=">$SIZEREQUIRED"k $IMGFILE 2>&1 |logger --tag $0 --priority local0.info - # FS de la imagen segun el contenido del archivo .img - if file "$IMGFILE" |grep -i -e " ext4 filesystem " 2>&1 > /dev/null ; then - losetup $LOOPDEVICE "$IMGFILE" - echolog "resize2fs -f $LOOPDEVICE" - resize2fs -f $LOOPDEVICE |logger --tag $0 --priority local0.info - else - mount -o compress=lzo "$IMGFILE" "$DIRMOUNT" - echolog "btrfs filesystem resize max $DIRMOUNT" - btrfs filesystem resize max "$DIRMOUNT" 2>&1 |logger --tag $0 --priority local0.info - fi - fi - - - # Si no existe la imagen creamos el fichero. - else - echolog "Creamos la imagen $IMGFILE al tamaño necesario: $SIZEREQUIRED" - touch "$IMGFILE" - echolog "truncate --size=\">$SIZEREQUIRED\"k $IMGFILE" - truncate --size=">$SIZEREQUIRED"k $IMGFILE 2>&1 |logger --tag $0 --priority local0.info - #Formateamos imagen - echo losetup $LOOPDEVICE "$IMGFILE" - losetup $LOOPDEVICE "$IMGFILE" - if [ $IMGFS == "EXT4" ] ; then - echolog " mkfs.ext4 -i 4096 -b 4096 -L ${PARM2##*\/} $LOOPDEVICE" - mkfs.ext4 -i 4096 -b 4096 -L ${PARM2##*\/} $LOOPDEVICE - else - echolog mkfs.btrfs -L ${PARM2##*\/} $LOOPDEVICE - mkfs.btrfs -L ${PARM2##*\/} $LOOPDEVICE #&> $OGLOGCOMMAND - fi - fi - # Montamos la imagen. - mountImage "$IMGFILE" "$DIRMOUNT" - if [ $? -ne 0 ]; then - rmdir "$DIRMOUNT" - echolog "Error al crear/redimensionar la imagen" - exit 1 - fi - - #touch "$DIRMOUNT/ogimg.info" - echo "mounted"> "$LOCKFILE" - TIME2=$[SECONDS-TIME] - echolog "Fin creación/redimension de la imagen: $[TIME2/60]m $[TIME2%60]s" - # Si existe dispositivo loop lo borramos. - [ $LOOPDEVICE ] && losetup -a| grep $LOOPDEVICE &> /dev/null && losetup -d $LOOPDEVICE - # TODO: comprobar que no se quede el losetup bloqueado. - - ;; - MOUNT_IMAGE) - # Montamos el fichero imagen para que se pueda - #1 MOUNT_IMAGE - #2 nombre imagen - #3 tipo de imagen [ img | diff ] - DIRMOUNT="$REPODIR""mount/$PARM2" - if [ "$PARM3" == "img" ] ; then - IMGEXT="img" - else - IMGEXT="img.diff" - DIRMOUNT="$DIRMOUNT.diff" - fi - IMGFILE="$REPODIR/$PARM2.$IMGEXT" - echolog "Montamos la imagen $IMGFILE " - mkdir -p "$DIRMOUNT" - mountImage "$IMGFILE" "$DIRMOUNT" ro || (echolog "Error al montar la imagen"; exit 1) - ;; - UMOUNT_IMAGE) - # Desmontamos el fichero imagen. - # Si el directorio esta ocupado no se desmontará - #1 UMOUNT_IMAGE - #2 nombre imagen - #3 tipo de imagen [ img | diff ] - IMGTYPE="$PARM3" - DIRMOUNT="$REPODIR/mount/$PARM2" - if [ "$IMGTYPE" == "img" ]; then - IMGEXT="img" - else - DIRMOUNT="$DIRMOUNT.$IMGTYPE" - IMGEXT="img.diff" - fi - LOCKFILE="$REPODIR/$PARM2.$IMGEXT.lock" - echolog "Desmontamos la imagen $PARM2 $PARM3 " - umount $DIRMOUNT - rmdir $DIRMOUNT - [ -f $LOCKFILE ] && sed -i s/mounted//g $LOCKFILE - - ;; - REDUCE_IMAGE) - # Reduce el archivo de la imagen a tamaño datos + 500M - #1 REDUCE_IMAGE - #2 Nombre Imagen - #3 Tipo de imagen [ img |diff ] - DIRMOUNT="${REPODIR}mount/${PARM2}" - if [ "$PARM3" == "img" ] ; then - IMGEXT="img" - else - IMGEXT="img.diff" - DIRMOUNT="$DIRMOUNT.diff" - fi - IMGFILE="$REPODIR$PARM2.$IMGEXT" - LOCKFILE="$IMGFILE.lock" - [ ! -f $IMGFILE ] && echolog "Imagen $IMGFILE no existe" && exit 1 - - # Para imagenes EXT4 reduzco, para BTRFS solo desmonto. - if file $IMGFILE |grep -i -e " ext4 filesystem " 2>&1 > /dev/null ; then - - [ -d $DIRMOUNT ] || mkdir $DIRMOUNT - mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen $IMGFILE"; exit 1) - - - # Si el espacio libre menor que 200Mb desmontamos la imagen y nos salimos - AVAILABLE=$(df -k|grep $DIRMOUNT|awk '{print $4}') - if [ $AVAILABLE -lt 200000 ]; then - echolog "reducir imagen REPO $PARM2 $IMGEXT. tamaño minimo, nada que hacer" - umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1) - else - - # Calculamos la diferencia entre el tamaño interno y externo - EXTSIZE=$(ls -l --block-size=1024 $IMGFILE | cut -f5 -d" ") - INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}') - let EDGESIZE=$EXTSIZE-$INTSIZE - - echolog "reducir imagen REPO $PARM2 $IMGEXT, tamaño final: $ENDSIZE" - umount $DIRMOUNT - LOOPDEVICE=$(losetup -f) - losetup $LOOPDEVICE "$IMGFILE" - - # Redimensiono sistema de ficheros - echolog "resize2fs -fpM $LOOPDEVICE " - resize2fs -fpM $LOOPDEVICE # 2>&1 |logger --tag $0 --priority local0.info - mountImage "$IMGFILE" "$DIRMOUNT" - # Calculamos el tamaño final del archivo - INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}') - let EXTSIZE=$INTSIZE+$EDGESIZE - umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1) - # Si existe dispositivo loop lo borramos. - [ $LOOPDEVICE ] && losetup -a| grep $LOOPDEVICE &> /dev/null && losetup -d $LOOPDEVICE - # Corto el archivo al tamaño del sistema de ficheros - echo "truncate --size=\"$EXTSIZE\"k $IMGFILE" - echolog "truncate --size=\"$EXTSIZE\"k $IMGFILE" - truncate --size="$EXTSIZE"k $IMGFILE - fi - else - umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1) - fi - rmdir $DIRMOUNT - echo "reduced" >$LOCKFILE - - ;; - default) - echolog "Solicitud con parametros \"$PARM\" no realizada, no registrada o con errores" - ;; -esac diff --git a/admin/Sources/Services/opengnsys.default b/admin/Sources/Services/opengnsys.default deleted file mode 100644 index d7376cf..0000000 --- a/admin/Sources/Services/opengnsys.default +++ /dev/null @@ -1,15 +0,0 @@ -# RUN_OGADMSERVER defined as OpenGnsys Admin Server -# RUN_OGADMREPO defined as OpenGnsys Repository Manager -# RUN_OGADMAGENT run task scheduler service, only if Admin Server is enabled -# RUN_BTTRACKER run Bittorrent Tracker, only if Repository is enabled -# RUN_BTSEEDER start seeding of selected torrent files, only if Repository is enabled -# BTSEEDER_PRIORITY nice priority to seed torrent files; recommended values: -# 8 for Admin Server or Repo without Torrent -# 0 for Admin Server and Repo with Torrent -# -8 for Repo with Torrent -RUN_OGADMSERVER="yes" -RUN_OGADMREPO="yes" -RUN_OGADMAGENT="yes" -RUN_BTTRACKER="yes" -RUN_BTSEEDER="yes" -BTSEEDER_PRIORITY=0 diff --git a/admin/Sources/Services/opengnsys.init b/admin/Sources/Services/opengnsys.init deleted file mode 100644 index ae27593..0000000 --- a/admin/Sources/Services/opengnsys.init +++ /dev/null @@ -1,224 +0,0 @@ -#!/bin/bash - -### BEGIN INIT INFO -# Provides: opengnsys -# Required-Start: -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 1 -# Short-Description: Servicios del sistema OpenGnsys -# Description: Servicios del sistema OpenGnsys -### END INIT INFO - -# -# Definiciones globales -# -BASEDIR=/opt/opengnsys -OPENGNSYSUSER="opengnsys" -IMAGEDIR=$BASEDIR/images -CLIENTLOGDIR=$BASEDIR/log/clients - -# -# Servidor de OpenGnsys -# -SERVERNAME=ogAdmServer -SERVERDAEMON=$BASEDIR/sbin/$SERVERNAME -SERVERCFG=$BASEDIR/etc/$SERVERNAME.cfg -SERVERLOG=$BASEDIR/log/$SERVERNAME.log -SERVERDAEMON_OPTIONS="-f $SERVERCFG -l $SERVERLOG" - -# -# Servidor de Repositorio -# -############## ADV -REPOAUXNAME=ogAdmRepoAux -REPOAUXDAEMON=$BASEDIR/sbin/$REPOAUXNAME -REPOAUXPORT=$(awk -F= '/PUERTO/ {print $2+1}' $SERVERCFG 2>/dev/null) -############## ADV -############# IRINA # para setBootMode desde el cliente -SERVERAUXNAME=ogAdmServerAux -SERVERAUXDAEMON=$BASEDIR/sbin/$SERVERAUXNAME -SERVERAUXPORT=2011 -############# IRINA - -# -# Servidor de tareas programadas -# -AGENTNAME=ogAdmAgent -AGENTDAEMON=$BASEDIR/sbin/$AGENTNAME -AGENTCFG=$BASEDIR/etc/$AGENTNAME.cfg -AGENTLOG=$BASEDIR/log/$AGENTNAME.log -AGENTDAEMON_OPTIONS="-f $AGENTCFG -l $AGENTLOG" - -# -# Opciones Bittorrent -# - -BTTRACK=/usr/bin/bttrack.bittorrent -BTSEEDER=/usr/bin/btlaunchmany.bittornado -BTTRACKPORT=6969 -BTTRACKDFILE=/tmp/dstate -BTTRACKLOG=$BASEDIR/log/bttrack.log -BTINTERVAL=30 -BTTORRENTSDIR=$BASEDIR/images -BTTRACK_OPTIONS=" --port $BTTRACKPORT --dfile $BTTRACKDFILE --reannounce_interval $BTINTERVAL --logfile $BTTRACKLOG --allowed_dir $BTTORRENTSDIR --allow_get 1" -BTTRACKPID="/var/run/bttrack.pid" -BTSEEDERPID="/var/run/btseeder.pid" - - -export PATH="${PATH:+$PATH:}/usr/sbin:/sbin:/usr/bin" - -# Read config file if it is present. -if [ -r /etc/default/opengnsys ]; then - source /etc/default/opengnsys -fi - -# Configuración de arranque según la distribución Linux usada. -config() { - if [ -f /etc/os-release ]; then - source /etc/os-release - OSDISTRIB="$ID" - else - OSDISTRIB=$(lsb_release -is 2>/dev/null) - fi - OSDISTRIB="${OSDISTRIB,,}" - case "$OSDISTRIB" in - ubuntu|debian|linuxmint) - INITFUNCTIONS=/lib/lsb/init-functions - DAEMONSTART="start-stop-daemon --start --quiet --background --exec" - EXTRAOPTS="--" - DAEMONSTOP="start-stop-daemon --stop --quiet --oknodo --name" - ACTIONMSG="log_daemon_msg" - SUCCESSMSG="log_end_msg 0" - FAILMSG="log_end_msg 1" - TRACKERSTART="start-stop-daemon --make-pidfile --pidfile $BTTRACKPID --start --quiet --background --exec" - BTTRACK_OPTIONS="$BTTRACK_OPTIONS --parse_allowed_interval 1" - TRACKERSTOP="start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $BTTRACKPID" - SEEDERSTART="start-stop-daemon --make-pidfile --pidfile $BTSEEDERPID --start --quiet --background --exec" - SEEDERSTOP="start-stop-daemon --stop --quiet --oknodo --pidfile $BTSEEDERPID" - ;; - centos|fedora) - INITFUNCTIONS=/etc/init.d/functions - DAEMONSTART="daemon" - ENDOPTS="&" - DAEMONSTOP="killproc" - ACTIONMSG="echo -n" - SUCCESSMSG="eval ( success; echo )" - FAILMSG="eval ( failure; echo )" - BTTRACK=/usr/bin/bttrack.py - BTSEEDER=/usr/bin/btlaunchmany.py - TRACKERSTART="daemon --pidfile $BTTRACKPID" - TRACKERSTOP="killproc -p $BTTRACKPID $BTTRACK" - SEEDERSTART="daemon --pidfile $BTSEEDERPID" - SEEDERSTOP="killproc -p $BTSEEDERPID $BTSEEDER" - ;; - *) echo "Distribución Linux desconcocida o no soportada." - exit ;; - esac - if [ -r $INITFUNCTIONS ]; then - source $INITFUNCTIONS - fi -} - -arranca_demonios() { - # Comprobar que está instalado OpenGnsys. - if [ ! -d $BASEDIR ]; then - $ACTIONMSG "ERROR: No existe el directorio $BASEDIR" - $FAILMSG - exit $? - fi - # Deshabilitar modo reforzado de SELinux. - [ -f /selinux/enforce ] && echo 0 > /selinux/enforce - # Verificar permisos básicos. - if [ "$(stat --printf="%A%G" $IMAGEDIR 2>/dev/null)" != "drwxrwxr-x$OPENGNSYSUSER" ]; then - mkdir $IMAGEDIR 2>/dev/null - chmod 775 $IMAGEDIR - chgrp $OPENGNSYSUSER $IMAGEDIR - fi - if [ "$(stat --printf="%A%G" $CLIENTLOGDIR 2>/dev/null)" != "drwxrwxr-x$OPENGNSYSUSER" ]; then - mkdir -p $CLIENTLOGDIR 2>/dev/null - chmod 775 $CLIENTLOGDIR - chgrp $OPENGNSYSUSER $CLIENTLOGDIR - fi - # Arrancar los servicios indicados. - if [ $RUN_OGADMSERVER = "yes" ]; then - $ACTIONMSG "Iniciando demonio: $SERVERNAME" - $DAEMONSTART $SERVERDAEMON $EXTRAOPTS $SERVERDAEMON_OPTIONS $ENDOPTS - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - # Para SetBootmode desde el cliente - $ACTIONMSG "Iniciando demonio: $SERVERAUXNAME" # - faucet $SERVERAUXPORT --daemon --in bash -c "$SERVERAUXDAEMON" # NUEVO - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - fi - if [ $RUN_OGADMREPO = "yes" ]; then - $ACTIONMSG "Iniciando demonio: $REPOAUXNAME" - faucet $REPOAUXPORT --daemon --in bash -c "$REPOAUXDAEMON" - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - fi - if [ $RUN_OGADMSERVER = "yes" ] && [ $RUN_OGADMAGENT = "yes" ]; then - sleep 5 # Damos tiempo a que ogAdmServer este funcionando - fi - if [ $RUN_OGADMAGENT = "yes" ]; then - $ACTIONMSG "Iniciando demonio: $AGENTNAME" - $DAEMONSTART $AGENTDAEMON $EXTRAOPTS $AGENTDAEMON_OPTIONS $ENDOPTS - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - fi - if [ $RUN_BTTRACKER = "yes" ]; then - $ACTIONMSG "Iniciando demonio: $BTTRACK" - $TRACKERSTART $BTTRACK $EXTRAOPTS $BTTRACK_OPTIONS $ENDOPTS - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - fi - if [ $RUN_BTSEEDER = "yes" ]; then - $ACTIONMSG "Iniciando demonio: $BTSEEDER" - $SEEDERSTART $BTSEEDER $EXTRAOPTS $BTTORRENTSDIR &>/dev/null $ENDOPTS - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - fi - -} - -para_demonios() { - if [ -e $BTSEEDERPID ]; then - $ACTIONMSG "Parando demonio: $BTSEEDER" - $SEEDERSTOP - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - rm -f $BTSEEDERPID - fi - if [ -e $BTTRACKPID ]; then - $ACTIONMSG "Parando demonio: $BTTRACK" - $TRACKERSTOP - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - rm -f $BTTRACKPID - fi - $ACTIONMSG "Parando demonio: $AGENTNAME" - $DAEMONSTOP $AGENTNAME - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG - $ACTIONMSG "Parando demonio: $REPOAUXNAME" - pkill faucet - [ $? -le 1 ] && $SUCCESSMSG || $FAILMSG - $ACTIONMSG "Parando demonio: $SERVERNAME" - $DAEMONSTOP $SERVERNAME - [ $? = 0 ] && $SUCCESSMSG || $FAILMSG -} - -config - -case "$1" in - start) - arranca_demonios - ;; - stop) - para_demonios - ;; - restart) - para_demonios - arranca_demonios - ;; - - *) - echo "Uso: $0 {start|stop|restart}" - exit 1 - ;; -esac - -exit 0 - From d1fa8a60378ff88a1c4ec2be89ff3c954cd2af99 Mon Sep 17 00:00:00 2001 From: ggil Date: Wed, 20 Nov 2024 12:50:32 +0100 Subject: [PATCH 3/3] refs #634 - Modify 'getRepoStatus.py' and documentation --- README.md | 2 +- api/swagger.yaml | 2 +- bin/getRepoStatus.py | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 507e383..c1db0e8 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ curl -X GET -H "Authorization: $API_KEY" http://example.com/ogrepository/v1/stat "udp-sender": "stopped", "uftp": "stopped", "bttrack": "stopped", - "btlaunchmany": "stopped" + "btlaunchmany.bittornado": "stopped" } } ``` diff --git a/api/swagger.yaml b/api/swagger.yaml index 7ee31d3..e801159 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -138,7 +138,7 @@ paths: bttrack: type: string example: "stopped" - btlaunchmany: + btlaunchmany.bittornado: type: string example: "stopped" "500 (Error)": diff --git a/bin/getRepoStatus.py b/bin/getRepoStatus.py index ad46ea2..cd6316c 100644 --- a/bin/getRepoStatus.py +++ b/bin/getRepoStatus.py @@ -59,10 +59,10 @@ def get_service_status(service): def get_process_status(process): """ Obtiene y retorna el estado del proceso que recibe como parámetro. """ - #for proc in psutil.process_iter(['pid', 'name', 'status']): for proc in psutil.process_iter(['name']): - if proc.info['name'] == process: + if proc.info['name'] in process: return 'running' + # Esto no debe ir asociado a un "else" (porque comprueba todos los procesos): return 'stopped' @@ -88,7 +88,7 @@ def main(): services_status = {service: get_service_status(service) for service in service_list} # Obtenemos el estado de los procesos listados, que almacenamos en un diccionario: - process_list = ['udp-sender', 'uftp', 'bttrack', 'btlaunchmany'] + process_list = ['udp-sender', 'uftp', 'bttrack', 'btlaunchmany.bittornado'] process_status = {process: get_process_status(process) for process in process_list} # Creamos un diccionario con toda la información obtenida: