diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl old mode 100644 new mode 100755 diff --git a/tests/.gitignore b/tests/.gitignore index 0d20b6487c..82b9d47a72 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1 +1,3 @@ *.pyc +geckodriver.log +wmic diff --git a/tests/Dockerfile b/tests/Dockerfile index e09f39c301..a0c8c78fd4 100644 --- a/tests/Dockerfile +++ b/tests/Dockerfile @@ -1,109 +1,86 @@ -FROM centos:centos6 -MAINTAINER Pandora FMS Team +FROM centos:centos7 RUN { \ - echo '[EPEL]'; \ - echo 'name = CentOS Epel'; \ - echo 'baseurl = http://dl.fedoraproject.org/pub/epel/6/x86_64'; \ - echo 'enabled=1'; \ + echo '[artica_pandorafms]'; \ + echo 'name=CentOS7 - PandoraFMS official repo'; \ + echo 'baseurl=http://firefly.artica.es/centos7'; \ echo 'gpgcheck=0'; \ - echo ''; \ - echo '[remi-php72]'; \ - echo 'name=Remi php72'; \ - echo 'baseurl=http://rpms.remirepo.net/enterprise/6/php72/x86_64/'; \ echo 'enabled=1'; \ - echo 'gpgcheck=0'; \ - echo ''; \ - echo '[remi-safe]'; \ - echo 'name=Safe Remis RPM repository'; \ - echo 'mirrorlist=http://cdn.remirepo.net/enterprise/$releasever/safe/mirror'; \ - echo 'enabled=1'; \ - echo 'gpgcheck=0'; \ - echo ''; \ -} > /etc/yum.repos.d/extra_repos.repo + } > /etc/yum.repos.d/pandorafms.repo -RUN { \ - echo '[artica_pandorafms]'; \ - echo 'name=CentOS6 - PandoraFMS official repo'; \ - echo 'baseurl=http://artica.es/centos6'; \ - echo 'gpgcheck=0'; \ - echo 'enabled=1'; \ -} > /etc/yum.repos.d/pandorafms.repo - -RUN yum -y update; yum clean all; - -RUN yum --disablerepo=updates install -y firefox - -# Generic dependencies -RUN yum install -y \ +# Pandora FMS dependencies. +RUN yum install -y epel-release vim wget bzip2 curl && \ + yum install yum-utils && \ + yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm && \ + yum-config-manager --disable mysql80-community && \ + yum-config-manager --enable mysql57-community && \ + yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm && \ + yum-config-manager --enable remi-php74 && \ + yum install -y gtk3 python-pip \ python-pip \ - xorg-x11-server-Xvfb; yum clean all; -RUN pip install pyvirtualdisplay -RUN pip install 'selenium==2.53.0' -RUN pip install unittest2 -RUN pip install testtools - -# Pandora FMS Console dependencies -RUN yum install -y \ - git \ + firefox \ + xorg-x11-server-Xvfb \ + x11vnc && \ + wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz && \ + tar xvzf geckodriver-v0.26.0-linux64.tar.gz && \ + mv geckodriver /usr/bin/ && rm geckodriver-v0.26.0-linux64.tar.gz && \ + pip install pyvirtualdisplay && \ + pip install "selenium==3.141" && \ + pip install unittest2 && \ + pip install testtools && \ + yum install -y git \ httpd \ cronie \ ntp \ openldap \ nfdump \ - wget \ - curl \ openldap \ plymouth \ xterm \ - php \ - php-gd \ - graphviz \ - php-mysql \ - php-pear-DB \ + php \ + php-gd \ + graphviz \ + php-mysqlnd \ + php-pear-DB \ php-pear \ php-pdo \ - php-mbstring \ - php-ldap \ - php-snmp \ - php-ldap \ - php-common \ - php-zip \ - php-xmlrpc \ + php-mbstring \ + php-ldap \ + php-snmp \ + php-ldap \ + php-common \ + php-zip \ + php-xmlrpc \ nmap \ xprobe2 \ mysql-server \ - mysql; yum clean all; - -# Pandora FMS Server dependencies -RUN yum install -y \ + mysql \ ntp \ - vim \ htop \ nano \ postfix \ - wmic \ - perl-HTML-Tree \ - perl-DBI \ - perl-DBD-mysql \ - perl-libwww-perl \ - perl-XML-Simple \ - perl-XML-SAX \ - perl-NetAddr-IP \ + perl-HTML-Tree \ + perl-DBI \ + perl-DBD-mysql \ + perl-libwww-perl \ + perl-XML-Simple \ + perl-XML-SAX \ + perl-NetAddr-IP \ perl-Scope-Guard \ - net-snmp \ - net-tools \ - perl-IO-Socket-INET6 \ - perl-Socket6 \ - nmap \ - sudo \ - xprobe2 \ - make \ - perl-CPAN \ - perl-JSON \ - net-snmp-perl \ - perl-Time-HiRes \ - perl-XML-Twig \ + net-snmp \ + net-tools \ + perl-IO-Socket-INET6 \ + perl-Socket6 \ + perl-Sys-Syslog \ + nmap \ + sudo \ + xprobe2 \ + make \ + perl-CPAN \ + perl-JSON \ + net-snmp-perl \ + perl-Time-HiRes \ + perl-XML-Twig \ perl-Encode-Locale \ net-snmp-utils \ fontconfig \ @@ -111,20 +88,19 @@ RUN yum install -y \ freetype-devel \ fontconfig-devel \ libstdc++ \ - perl-Test-Simple; yum clean all; + gettext \ + cpanminus && \ + cpanm Geo::IP && \ + mkdir -p /opt/phantomjs/bin && cd /opt/phantomjs/bin && \ + wget https://netcologne.dl.sourceforge.net/project/pandora/Tools%20and%20dependencies%20%28All%20versions%29/DEB%20Debian%2C%20Ubuntu/phantomjs && \ + chmod +x phantomjs && \ + ln -s /opt/phantomjs/bin/phantomjs /usr/bin/ && \ + yum update -y && \ + echo -e '#!/bin/bash\nhttpd -k $1\n' > /etc/init.d/httpd && \ + chmod +x /etc/init.d/httpd && \ + yum clean all -RUN wget http://rpmfind.net/linux/centos/6.9/os/i386/Packages/gettext-0.17-18.el6.i686.rpm; \ - yum localinstall -y gettext-0.17-18.el6.i686.rpm; \ - rm -rf gettext-0.17-18.el6.i686.rpm; \ - wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/perl-Geo-IP-1.38-1.el6.rf.x86_64.rpm; \ - yum localinstall -y perl-Geo-IP-1.38-1.el6.rf.x86_64.rpm; \ - rm -rf perl-Geo-IP-1.38-1.el6.rf.x86_64.rpm; - -#Install phantomjs required for export graph pdf. -RUN mkdir -p /opt/phantomjs/bin && cd /opt/phantomjs/bin; \ - wget https://netcologne.dl.sourceforge.net/project/pandora/Tools%20and%20dependencies%20%28All%20versions%29/DEB%20Debian%2C%20Ubuntu/phantomjs; \ - chmod +x phantomjs; \ - ln -s /opt/phantomjs/bin/phantomjs /usr/bin/; +ADD wmic /usr/bin/ # Install debugg dependencies. RUN yum install -y \ @@ -133,6 +109,7 @@ RUN yum install -y \ gcc \ gcc-c++ \ autoconf \ + file \ automake && \ pecl install Xdebug && \ git clone https://github.com/tideways/php-xhprof-extension && \ @@ -142,7 +119,8 @@ RUN yum install -y \ make && \ make install && \ cd .. && \ - rm -rf php-xhprof-extension + rm -rf php-xhprof-extension && \ + yum clean all #Exposing ports for: HTTP, SNMP Traps, Tentacle protocol EXPOSE 80 162/udp 41121 diff --git a/tests/install_console.py b/tests/install_console.py index 54ab91e518..ca594bf17e 100755 --- a/tests/install_console.py +++ b/tests/install_console.py @@ -10,7 +10,7 @@ if ('DISPLAY' not in os.environ): display.start() # Go to the installation page. -browser = webdriver.Firefox() +browser = webdriver.Firefox(timeout=15) browser.implicitly_wait(5) browser.get('http://localhost/pandora_console/install.php') assert("Pandora FMS - Installation Wizard" in browser.title)