summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/Sources/Services/ogAdmRepo/Makefile44
-rw-r--r--admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp177
-rw-r--r--admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h41
-rw-r--r--admin/Sources/Services/opengnsys.default7
-rwxr-xr-xadmin/Sources/Services/opengnsys.init17
-rwxr-xr-xinstaller/opengnsys_installer.sh11
-rwxr-xr-xinstaller/opengnsys_update.sh12
-rwxr-xr-xrepoman/bin/opengnsys.cron5
-rw-r--r--repoman/etc/logrotate.tmpl2
-rw-r--r--repoman/etc/ogAdmRepo.cfg.tmpl (renamed from admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg)1
-rw-r--r--server/etc/logrotate.tmpl2
-rwxr-xr-xserver/lib/security-config5
12 files changed, 12 insertions, 312 deletions
diff --git a/admin/Sources/Services/ogAdmRepo/Makefile b/admin/Sources/Services/ogAdmRepo/Makefile
deleted file mode 100644
index d7b3591d..00000000
--- a/admin/Sources/Services/ogAdmRepo/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-# makefile
-
-# Nombre del proyecto
-PROYECTO := ogAdmRepo
-
-#Directorio de instalación
-INSTALL_DIR := /opt/opengnsys
-
-# Opciones de compilacion
-CFLAGS := $(shell mysql_config --cflags)
-CFLAGS += -O0 -g -Wall -I../../Includes # Depuracion
-#CFLAGS += -O3 -I../../Includes # Optimizacion
-CPPFLAGS := $(CFLAGS)
-
-# Opciones de linkado
-LDFLAGS := -Wl,--no-as-needed $(shell mysql_config --libs) -lpthread
-
-# Ficheros objetos
-OBJS := ../../Includes/Database.o sources/ogAdmRepo.o
-
-
-all: $(PROYECTO)
-
-$(PROYECTO): $(OBJS)
- g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO)
-# strip $(PROYECTO) # Optimizacion
-
-install: $(PROYECTO)
- cp $(PROYECTO) $(INSTALL_DIR)/sbin
- cp $(PROYECTO).cfg $(INSTALL_DIR)/etc
-
-clean:
- rm -f $(PROYECTO) $(OBJS)
-
-uninstall: clean
- rm -f /usr/local/sbin/$(PROYECTO) /usr/local/etc/$(PROYECTO).cfg
-
-sources/%.o: sources/%.cpp
- g++ $(CPPFLAGS) -c -o"$@" "$<"
-
-sources/%.o: sources/%.c
- gcc $(CFLAGS) -c -o"$@" "$<"
-
-
diff --git a/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp b/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp
deleted file mode 100644
index 067b6af0..00000000
--- a/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-// ********************************************************************************************************
-// Servicio: ogAdmRepo
-// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creación: Marzo-2010
-// Fecha Última modificación: Marzo-2010
-// Nombre del fichero: ogAdmRepo.cpp
-// Descripción :Este fichero implementa el servicio de administración general del sistema
-// ********************************************************************************************************
-#include "ogAdmRepo.h"
-#include "ogAdmLib.c"
-//________________________________________________________________________________________________________
-// Función: tomaConfiguracion
-//
-// Descripción:
-// Lee el fichero de configuración del servicio
-// Parámetros:
-// filecfg : Ruta completa al fichero de configuración
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-//________________________________________________________________________________________________________
-BOOLEAN tomaConfiguracion(char* filecfg) {
- char modulo[] = "tomaConfiguracion()";
-
- if (filecfg == NULL || strlen(filecfg) == 0) {
- errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío
- return (FALSE);
- }
- FILE *fcfg;
- long lSize;
- char * buffer, *lineas[MAXPRM], *dualparametro[2];
- int i, numlin, resul;
-
- fcfg = fopen(filecfg, "rt");
- if (fcfg == NULL) {
- errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio
- return (FALSE);
- }
-
- fseek(fcfg, 0, SEEK_END);
- lSize = ftell(fcfg); // Obtiene tamaño del fichero.
- rewind(fcfg);
- buffer = (char*) reservaMemoria(lSize+1); // Toma memoria para el buffer de lectura.
- if (buffer == NULL) { // No hay memoria suficiente para el buffer
- errorLog(modulo, 3, FALSE);
- return (FALSE);
- }
- fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero
- buffer[lSize]=(char) NULL;
- fclose(fcfg);
-
- iplocal[0] = (char) NULL; //inicializar variables globales
- puerto[0] = (char) NULL;
-
- numlin = splitCadena(lineas, buffer, '\n');
- for (i = 0; i < numlin; i++) {
- splitCadena(dualparametro, lineas[i], '=');
- resul = strcmp(StrToUpper(dualparametro[0]), "IPLOCAL");
- if (resul == 0)
- strcpy(iplocal, dualparametro[1]);
- resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO");
- if (resul == 0)
- strcpy(puerto, dualparametro[1]);
- }
- if (iplocal[0] == (char) NULL) {
- errorLog(modulo, 4, FALSE); // Falta parámetro IPLOCAL
- return (FALSE);
- }
- if (puerto[0] == (char) NULL) {
- errorLog(modulo, 5, FALSE); // Falta parámetro PUERTO
- return (FALSE);
- }
- return (TRUE);
-}
-// ________________________________________________________________________________________________________
-// Función: gestionaTrama
-//
-// Descripción:
-// Procesa las tramas recibidas .
-// Parametros:
-// - s : Socket usado para comunicaciones
-// Devuelve:
-// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
-// ________________________________________________________________________________________________________
-BOOLEAN gestionaTrama(SOCKET *socket_c)
-{
- TRAMA* ptrTrama;
- int i, res;
- char *nfn;
- char modulo[] = "gestionaTrama()";
-
- ptrTrama=recibeTrama(socket_c);
- if (ptrTrama){
- INTROaFINCAD(ptrTrama);
- nfn = copiaParametro("nfn",ptrTrama); // Toma dirección/es IP
- for (i = 0; i < MAXIMAS_FUNCIONES; i++) { // Recorre funciones que procesan las tramas
- res = strcmp(tbfuncionesRepo[i].nf, nfn);
- if (res == 0) { // Encontrada la función que procesa el mensaje
- return (tbfuncionesRepo[i].fptr(socket_c, ptrTrama)); // Invoca la función
- }
- }
- }
- else
- errorLog(modulo, 17, FALSE); // Error en la recepción
- return (TRUE);
-}
-// ********************************************************************************************************
-// PROGRAMA PRINCIPAL (SERVICIO)
-// ********************************************************************************************************
-int main(int argc, char *argv[])
-{
- SOCKET socket_r; // Socket donde escucha el servidor
- SOCKET socket_c; // Socket de los clientes que se conectan
- socklen_t iAddrSize;
- struct sockaddr_in local, cliente;
- char modulo[] = "main()";
-
- /*--------------------------------------------------------------------------------------------------------
- Validación de parámetros de ejecución y lectura del fichero de configuración del servicio
- ---------------------------------------------------------------------------------------------------------*/
- if (!validacionParametros(argc, argv,1)) // Valida parámetros de ejecución
- exit(EXIT_FAILURE);
-
- if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion
- exit(EXIT_FAILURE);
- }
- /*--------------------------------------------------------------------------------------------------------
- Carga del catálogo de funciones que procesan las tramas (referencia directa por puntero a función)
- ---------------------------------------------------------------------------------------------------------*/
- int cf = 0;
-
- cf++;
-
-
- /*--------------------------------------------------------------------------------------------------------
- Creación y configuración del socket del servicio
- ---------------------------------------------------------------------------------------------------------*/
- socket_r = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // Crea socket del servicio
- if (socket_r == SOCKET_ERROR) { // Error al crear el socket del servicio
- errorLog(modulo, 13, TRUE);
- exit(EXIT_FAILURE);
- }
-
- local.sin_addr.s_addr = htonl(INADDR_ANY); // Configura el socket del servicio
- local.sin_family = AF_INET;
- local.sin_port = htons(atoi(puerto));
-
- if (bind(socket_r, (struct sockaddr *) &local, sizeof(local))== SOCKET_ERROR) { // Enlaza socket
- errorLog(modulo, 14, TRUE);
- exit(EXIT_FAILURE);
- }
-
- listen(socket_r, 250); // Pone a escuchar al socket
- iAddrSize = sizeof(cliente);
- /*--------------------------------------------------------------------------------------------------------
- Bucle para acceptar conexiones
- ---------------------------------------------------------------------------------------------------------*/
- infoLog(1); // Inicio de sesión
- while(TRUE) {
- socket_c = accept(socket_r, (struct sockaddr *) &cliente, &iAddrSize);
- if (socket_c == INVALID_SOCKET) {
- errorLog(modulo, 15, TRUE);
- exit(EXIT_FAILURE);
- }
- if(!gestionaTrama(&socket_c)){
- errorLog(modulo, 39, TRUE);
- break;
- }
- close(socket_c);
- }
- /*--------------------------------------------------------------------------------------------------------
- Fin del servicio
- ---------------------------------------------------------------------------------------------------------*/
- close(socket_r);
- exit(EXIT_SUCCESS);
-}
diff --git a/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h b/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h
deleted file mode 100644
index 8051f3f6..00000000
--- a/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// ********************************************************************************************************
-// Servicio: ogAdmRepo
-// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
-// Fecha Creación: Marzo-2010
-// Fecha Última modificación: Marzo-2010
-// Nombre del fichero: ogAdmRepo.h
-// Descripción: Este fichero implementa el servicio de repositorio de imágenes
-// ********************************************************************************************************
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include "ogAdmLib.h"
-// ________________________________________________________________________________________________________
-// Variables globales
-// ________________________________________________________________________________________________________
-char iplocal[LONPRM]; // Dirección IP del servidor de administración
-char puerto[LONPRM]; // Puerto de comunicación
-
-char servidoradm[LONIP]; // IP del servidor
-
-typedef struct{ // Estructura usada para referenciar las funciones que procesan las tramas
- char nf[LONFUN]; // Nombre de la función
- BOOLEAN (*fptr)(SOCKET*,TRAMA*); // Puntero a la función que procesa la trama
-}MSGFUN;
-
-MSGFUN tbfuncionesRepo[MAXIMAS_FUNCIONES];
-
-// ________________________________________________________________________________________________________
-// Prototipo de funciones
-// ________________________________________________________________________________________________________
-BOOLEAN tomaConfiguracion(char*);
-BOOLEAN gestionaTrama(SOCKET*);
-BOOLEAN tomaConfiguracion(char*);
diff --git a/admin/Sources/Services/opengnsys.default b/admin/Sources/Services/opengnsys.default
index 644f516a..9af83e29 100644
--- a/admin/Sources/Services/opengnsys.default
+++ b/admin/Sources/Services/opengnsys.default
@@ -1,7 +1,8 @@
-# RUN_OGADMSERVER run OpenGnsys Admin service.
-# RUN_OGADMREPO run OpenGnsys Repository Manager service.
+# RUN_OGADMSERVER defined as OpenGnsys Admin Server
+# RUN_OGADMREPO defined as OpenGnsys Repository Manager
+# RUN_OGADMAGENT run task scheduler service
# RUN_BTTRACKER run Bittorrent Tracker
-# RUN_BTSEEDER starts seeding of selected torrent files
+# RUN_BTSEEDER start seeding of selected torrent files
# RUN_CRON run Cron script to check started processes
RUN_OGADMSERVER="yes"
RUN_OGADMREPO="yes"
diff --git a/admin/Sources/Services/opengnsys.init b/admin/Sources/Services/opengnsys.init
index 548843fa..ae27593b 100755
--- a/admin/Sources/Services/opengnsys.init
+++ b/admin/Sources/Services/opengnsys.init
@@ -30,11 +30,6 @@ SERVERDAEMON_OPTIONS="-f $SERVERCFG -l $SERVERLOG"
#
# Servidor de Repositorio
#
-REPONAME=ogAdmRepo
-REPODAEMON=$BASEDIR/sbin/$REPONAME
-REPOCFG=$BASEDIR/etc/$REPONAME.cfg
-REPOLOG=$BASEDIR/log/$REPONAME.log
-REPODAEMON_OPTIONS="-f $REPOCFG -l $REPOLOG"
############## ADV
REPOAUXNAME=ogAdmRepoAux
REPOAUXDAEMON=$BASEDIR/sbin/$REPOAUXNAME
@@ -155,17 +150,14 @@ arranca_demonios() {
faucet $SERVERAUXPORT --daemon --in bash -c "$SERVERAUXDAEMON" # NUEVO
[ $? = 0 ] && $SUCCESSMSG || $FAILMSG
fi
- if [ $RUN_OGADMSERVER = "yes" ] && [ $RUN_OGADMREPO = "yes" ]; then
- sleep 5 # Damos tiempo a que ogAdmServer este funcionando
- fi
if [ $RUN_OGADMREPO = "yes" ]; then
- $ACTIONMSG "Iniciando demonio: $REPONAME"
- $DAEMONSTART $REPODAEMON $EXTRAOPTS $REPODAEMON_OPTIONS $ENDOPTS
- [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
$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
@@ -200,9 +192,6 @@ para_demonios() {
$ACTIONMSG "Parando demonio: $AGENTNAME"
$DAEMONSTOP $AGENTNAME
[ $? = 0 ] && $SUCCESSMSG || $FAILMSG
- $ACTIONMSG "Parando demonio: $REPONAME"
- $DAEMONSTOP $REPONAME
- [ $? = 0 ] && $SUCCESSMSG || $FAILMSG
$ACTIONMSG "Parando demonio: $REPOAUXNAME"
pkill faucet
[ $? -le 1 ] && $SUCCESSMSG || $FAILMSG
diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh
index 2ad18cb8..0da6c226 100755
--- a/installer/opengnsys_installer.sh
+++ b/installer/opengnsys_installer.sh
@@ -1342,15 +1342,6 @@ function servicesCompilation ()
hayErrores=1
fi
popd
- # Compilar OpenGnsys Repository Manager
- echoAndLog "${FUNCNAME}(): Compiling OpenGnsys Repository Manager"
- pushd $WORKDIR/opengnsys/admin/Sources/Services/ogAdmRepo
- make && mv ogAdmRepo $INSTALL_TARGET/sbin
- if [ $? -ne 0 ]; then
- echoAndLog "${FUNCNAME}(): error while compiling OpenGnsys Repository Manager"
- hayErrores=1
- fi
- popd
# Compilar OpenGnsys Agent
echoAndLog "${FUNCNAME}(): Compiling OpenGnsys Agent"
pushd $WORKDIR/opengnsys/admin/Sources/Services/ogAdmAgent
@@ -1502,7 +1493,7 @@ function openGnsysConfigure()
$WORKDIR/opengnsys/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg > $INSTALL_TARGET/etc/ogAdmServer-$dev.cfg
sed -e "s/SERVERIP/${SERVERIP[i]}/g" \
-e "s/REPOKEY/$OPENGNSYS_REPOKEY/g" \
- $WORKDIR/opengnsys/admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg > $INSTALL_TARGET/etc/ogAdmRepo-$dev.cfg
+ $WORKDIR/opengnsys/repoman/etc/ogAdmRepo.cfg.tmpl > $INSTALL_TARGET/etc/ogAdmRepo-$dev.cfg
sed -e "s/SERVERIP/${SERVERIP[i]}/g" \
-e "s/DBUSER/$OPENGNSYS_DB_USER/g" \
-e "s/DBPASSWORD/$OPENGNSYS_DB_PASSWD/g" \
diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh
index 7943d4e2..91505c75 100755
--- a/installer/opengnsys_update.sh
+++ b/installer/opengnsys_update.sh
@@ -937,16 +937,8 @@ function compileServices()
hayErrores=1
fi
popd
- # Compilar OpenGnsys Repository Manager
- echoAndLog "${FUNCNAME}(): Recompiling OpenGnsys Repository Manager"
- pushd $WORKDIR/opengnsys/admin/Sources/Services/ogAdmRepo
- make && moveNewService ogAdmRepo $INSTALL_TARGET/sbin
- if [ $? -ne 0 ]; then
- echoAndLog "${FUNCNAME}(): error while compiling OpenGnsys Repository Manager"
- hayErrores=1
- fi
- popd
- # Actualizar o insertar clave de acceso REST en el fichero de configuración del repositorio.
+ # Parar antiguo servicio de repositorio y añadir clave de acceso REST en su fichero de configuración.
+ pgrep ogAdmRepo > /dev/null && service="ogAdmRepo" $STOPSERVICE
grep -q '^ApiToken=' $INSTALL_TARGET/etc/ogAdmRepo.cfg && \
sed -i "s/^ApiToken=.*$/ApiToken=$REPOKEY/" $INSTALL_TARGET/etc/ogAdmRepo.cfg || \
sed -i "$ a\ApiToken=$REPOKEY/" $INSTALL_TARGET/etc/ogAdmRepo.cfg
diff --git a/repoman/bin/opengnsys.cron b/repoman/bin/opengnsys.cron
index 78f01db5..32c6f493 100755
--- a/repoman/bin/opengnsys.cron
+++ b/repoman/bin/opengnsys.cron
@@ -31,9 +31,4 @@ if [ "$RUN_OGADMSERVER" == "yes" ]; then
/etc/init.d/opengnsys restart
fi
fi
-# Reiniciar servicios si es repositorio y proceso ogAdmRepo está caído.
-if [ "$RUN_OGADMREPO" == "yes" -a $(pgrep ogAdmRepo | wc -w) == 0 ]; then
- date +"%d/%m/%Y %H:%M ERROR: El servicio ogAdmRepo estaba caido, se reinicia" >> $LOGDIR/ogAdmRepo.log
- /etc/init.d/opengnsys restart
-fi
diff --git a/repoman/etc/logrotate.tmpl b/repoman/etc/logrotate.tmpl
index f2dfcf4b..62cdbaf0 100644
--- a/repoman/etc/logrotate.tmpl
+++ b/repoman/etc/logrotate.tmpl
@@ -3,7 +3,7 @@
# Las copias se comprimen
# Los registros de las transferencias multicast se guardan una semana (repo).
# El resto de los registros se comprueban diariamente que no excedan 100k. Se mantienen los últimos 5.
-# Con esta condición de los servicios ogAdmServer y ogAdmRepo conservan datos de más de un mes.
+# Con esta condición los servicios de OpenGnsys Repository conservan datos de más de un mes.
copytruncate
compress
diff --git a/admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg b/repoman/etc/ogAdmRepo.cfg.tmpl
index 1a8f289d..ed68ea60 100644
--- a/admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg
+++ b/repoman/etc/ogAdmRepo.cfg.tmpl
@@ -1,3 +1,2 @@
IPlocal=SERVERIP
-Puerto=2002
ApiToken=REPOKEY
diff --git a/server/etc/logrotate.tmpl b/server/etc/logrotate.tmpl
index d487fcff..233efc57 100644
--- a/server/etc/logrotate.tmpl
+++ b/server/etc/logrotate.tmpl
@@ -3,7 +3,7 @@
# Las copias se comprimen
# Los registros de las transferencias multicast se guardan una semana (repo).
# El resto de los registros se comprueban diariamente que no excedan 100k. Se mantienen los últimos 5.
-# Con esta condición de los servicios ogAdmServer y ogAdmRepo conservan datos de más de un mes.
+# Con esta condición los servicios de OpenGnsys Server conservan datos de más de un mes.
copytruncate
compress
diff --git a/server/lib/security-config b/server/lib/security-config
index eb8bf5cf..ddba161f 100755
--- a/server/lib/security-config
+++ b/server/lib/security-config
@@ -42,16 +42,11 @@ s=ios.Service()
s.short = 'OpenGnsys Server'
s.name = 'ogAdmServer'
s.ports = [('2008', 'tcp')]
-ios.service_writer(s, '/etc/firewalld/services')
-s.short = 'OpenGnsys Repository'
-s.name = 'ogAdmRepo'
-s.ports = [('2002', 'tcp')]
ios.service_writer(s, '/etc/firewalld/services')"
# Adding active services.
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=mysql --zone internal
- firewall-cmd --permanent --add-service=ogAdmRepo
firewall-cmd --permanent --add-service=ogAdmServer
# Ubuntu 14.04 does not define "rsyncd" service.
firewall-cmd --permanent --add-service=rsyncd || \