diff options
8 files changed, 60 insertions, 17 deletions
diff --git a/admin/WebConsole/comandos/gestores/gestor_Comandos.php b/admin/WebConsole/comandos/gestores/gestor_Comandos.php index e2a25a6f..dd06022d 100644 --- a/admin/WebConsole/comandos/gestores/gestor_Comandos.php +++ b/admin/WebConsole/comandos/gestores/gestor_Comandos.php @@ -28,6 +28,7 @@ $sw_mkprocedimiento=""; $nombreprocedimiento=""; $idprocedimiento=""; $ordprocedimiento=0; +$avisoRepo=false; $sw_mktarea=""; $nombretarea=""; @@ -274,7 +275,11 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ } else{ echo '<SCRIPT language="javascript">'.chr(13); - echo 'resultado_comando(2);'.chr(13); + if ($avisoRepo) { + echo 'resultado_comando(17);'.chr(13); + } else { + echo 'resultado_comando(2);'.chr(13); + } echo '</SCRIPT>'.chr(13); } } diff --git a/admin/WebConsole/comandos/gestores/wakeonlan_repo.php b/admin/WebConsole/comandos/gestores/wakeonlan_repo.php index 8711f5a5..b2929d48 100644 --- a/admin/WebConsole/comandos/gestores/wakeonlan_repo.php +++ b/admin/WebConsole/comandos/gestores/wakeonlan_repo.php @@ -1,6 +1,6 @@ -<? +<?php // Fichero con funciones para trabajar con el webservice -include_once("../../rest/util.php"); +include_once("../../includes/restfunctions.php"); /** En este punto disponemos de tres variables indicando las ips, las macs y las ids de los @@ -50,19 +50,26 @@ foreach($reposAndMacs as $repo => $macs){ if($macs["apikey"] !== ""){ $apiKeyRepo = $macs["apikey"]; unset($macs["apikey"]); - // Componer objeto JSON y llamar a la función REST. - $rest[0]['url'] = "https://$repo/opengnsys/rest/repository/poweron"; - $rest[0]['header'] = array('Authorization: '. $apiKeyRepo); - $rest[0]['post'] = '{"macs": ["' . implode('","', $macs) . '"]}'; - $result = multiRequest($rest); - if (empty($result)) - echo "Error de acceso al webservice del repositorio"; + // Componer datos de conexión para el repositorio. + $urls[$repo]['url'] = "https://$repo/opengnsys/rest/repository/poweron"; + $urls[$repo]['header'] = array('Authorization: '. $apiKeyRepo); + $urls[$repo]['post'] = '{"macs": ["' . implode('","', $macs) . '"]}'; } else{ - echo "No hacemos nada, el repositorio no tiene el webservice activo"; - + $avisoRepo = true; } } +// Enviar petición múltiple a los repositorios afectados. +if (isset($urls)) { + $result = multiRequest($urls); + // Comprobar respuesta. + foreach ($result as $repo => $res) { + if ($res['code'] != 200) { + $avisoRepo = true; + } + } +} + function existREPO($repo, $repos){ $found=false; diff --git a/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js b/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js index 337bd952..2f30b70f 100644 --- a/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js +++ b/admin/WebConsole/idiomas/javascripts/cat/comandos/comunescomandos_cat.js @@ -22,3 +22,4 @@ CTbMsg[13]="ATENCIÓN.- Debe elegir un modo de inclusión en tarea ejecutable, d CTbMsg[14]="ATENCIÓN.- Debe especificar el nombre de la nueva tarea ejecutable que se creará y a la que se añadirá este comando"; CTbMsg[15]="ATENCIÓN.- Debe elegir la tarea a la que se añadirá este comando"; CTbMsg[16]="AVISO: si el código incluye reinicio o apagado, puede provocar que el cliente no inicie correctamente"; +CTbMsg[17]="El comando se ha enviado correctamente, pero han habido errores de conexión con la API REST de repositorio"; diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js index a5023c96..3f13b558 100644 --- a/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js +++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js @@ -22,3 +22,4 @@ CTbMsg[13]="WARNING: You must choose a way of inclusion this command on task exe CTbMsg[14]="WARNING: You must specify the name of the new task where this command will be added"; CTbMsg[15]="WARNING: You must choose the task that will add this command"; CTbMsg[16]="AVISO: si el código incluye reinicio o apagado, puede provocar que el cliente no inicie correctamente"; +CTbMsg[17]="The command has been successfully registered, but there was some problems connecting repository REST API"; diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js index 152c3787..d0c826bf 100644 --- a/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js +++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js @@ -22,3 +22,4 @@ CTbMsg[13]="ATENCIÓN.- Debe elegir un modo de inclusión en tarea ejecutable, d CTbMsg[14]="ATENCIÓN.- Debe especificar el nombre de la nueva tarea ejecutable que se creará y a la que se añadirá este comando"; CTbMsg[15]="ATENCIÓN.- Debe elegir la tarea a la que se añadirá este comando"; CTbMsg[16]="AVISO: si el código incluye reinicio o apagado, puede provocar que el cliente no inicie correctamente"; +CTbMsg[17]="El comando se ha enviado correctamente, pero han habido errores de conexión con la API REST de repositorio"; diff --git a/admin/WebConsole/rest/opengnsys-api.yml b/admin/WebConsole/rest/opengnsys-api.yml index dc41ef9f..81325af6 100644 --- a/admin/WebConsole/rest/opengnsys-api.yml +++ b/admin/WebConsole/rest/opengnsys-api.yml @@ -1017,7 +1017,35 @@ paths: tags: - repository - image - #/repository/poweron + /repository/poweron: + post: + description: send Wake-On-Lan notification to many clients + parameters: + - in: body + name: data + description: Operation data + required: true + schema: + type: object + properties: + macs: + type: array + items: + description: MAC (Ethernet) address + type: string + responses: + "200": + description: Successful response + schema: + type: object + properties: + output: + type: string + security: + - apikey: [] + tags: + - repository + - client /ogagent/started: post: description: Process push notification when OGAgent is started diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh index 14ad5d32..8570d36b 100755 --- a/installer/opengnsys_installer.sh +++ b/installer/opengnsys_installer.sh @@ -167,7 +167,7 @@ OSVERSION="${OSVERSION%%.*}" # Configuración según la distribución GNU/Linux (usar minúsculas). case "$OSDISTRIB" in ubuntu|debian|linuxmint) - DEPENDENCIES=( subversion apache2 php5 php5-ldap libapache2-mod-php5 mysql-server php5-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa xinetd build-essential g++-multilib libmysqlclient15-dev wget curl doxygen graphviz bittornado ctorrent samba rsync unzip netpipes debootstrap schroot squashfs-tools btrfs-tools procps arp-scan realpath php5-curl gettext moreutils jq ) + DEPENDENCIES=( subversion apache2 php5 php5-ldap libapache2-mod-php5 mysql-server php5-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa xinetd build-essential g++-multilib libmysqlclient15-dev wget curl doxygen graphviz bittornado ctorrent samba rsync unzip netpipes debootstrap schroot squashfs-tools btrfs-tools procps arp-scan realpath php5-curl gettext moreutils jq wakeonlan ) UPDATEPKGLIST="apt-get update" INSTALLPKG="apt-get -y install --force-yes" CHECKPKG="dpkg -s \$package 2>/dev/null | grep Status | grep -qw install" @@ -204,7 +204,7 @@ case "$OSDISTRIB" in TFTPCFGDIR=/var/lib/tftpboot ;; fedora|centos) - DEPENDENCIES=( subversion httpd mod_ssl php php-ldap mysql-server mysql-devel mysql-devel.i686 php-mysql dhcp tftp-server tftp xinetd binutils gcc gcc-c++ glibc-devel glibc-devel.i686 glibc-static glibc-static.i686 libstdc++ libstdc++.i686 libstdc++-devel.i686 make wget curl doxygen graphviz ctorrent samba samba-client rsync unzip debootstrap schroot squashfs-tools python-crypto arp-scan gettext moreutils jq ) + DEPENDENCIES=( subversion httpd mod_ssl php php-ldap mysql-server mysql-devel mysql-devel.i686 php-mysql dhcp tftp-server tftp xinetd binutils gcc gcc-c++ glibc-devel glibc-devel.i686 glibc-static glibc-static.i686 libstdc++ libstdc++.i686 libstdc++-devel.i686 make wget curl doxygen graphviz ctorrent samba samba-client rsync unzip debootstrap schroot squashfs-tools python-crypto arp-scan gettext moreutils jq wakeonlan ) INSTALLEXTRADEPS=( 'rpm -Uv ftp://ftp.altlinux.org/pub/distributions/ALTLinux/5.1/branch/files/i586/RPMS/netpipes-4.2-alt1.i586.rpm' 'pushd /tmp; wget -t3 http://download.bittornado.com/download/BitTornado-0.3.18.tar.gz && tar xvzf BitTornado-0.3.18.tar.gz && cd BitTornado-CVS && python setup.py install && ln -fs btlaunchmany.py /usr/bin/btlaunchmany && ln -fs bttrack.py /usr/bin/bttrack; popd' ) if [ "$OSDISTRIB" == "centos" ]; then diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh index 262dedfe..d6a238c7 100755 --- a/installer/opengnsys_update.sh +++ b/installer/opengnsys_update.sh @@ -113,7 +113,7 @@ OSVERSION="${OSVERSION%%.*}" # Configuración según la distribución de Linux. case "$OSDISTRIB" in ubuntu|debian|linuxmint) - DEPENDENCIES=( php5-ldap xinetd curl rsync btrfs-tools procps arp-scan realpath php5-curl gettext moreutils jq ) + DEPENDENCIES=( curl rsync btrfs-tools procps arp-scan realpath php5-curl gettext moreutils jq wakeonlan ) UPDATEPKGLIST="apt-get update" INSTALLPKGS="apt-get -y install --force-yes" CHECKPKG="dpkg -s \$package 2>/dev/null | grep -q \"Status: install ok\"" @@ -130,7 +130,7 @@ case "$OSDISTRIB" in INETDCFGDIR=/etc/xinetd.d ;; fedora|centos) - DEPENDENCIES=( php-ldap xinetd curl rsync btrfs-progs procps-ng arp-scan gettext moreutils jq ) + DEPENDENCIES=( curl rsync btrfs-progs procps-ng arp-scan gettext moreutils jq wakeonlan ) # En CentOS 7 instalar arp-scan de CentOS 6. [ "$OSDISTRIB$OSVERSION" == "centos7" ] && DEPENDENCIES=( ${DEPENDENCIES[*]/arp-scan/http://dag.wieers.com/redhat/el6/en/$(arch)/dag/RPMS/arp-scan-1.9-1.el6.rf.$(arch).rpm} ) INSTALLPKGS="yum install -y" |