Bug 53043

Summary: Некорректно отрабатывает delaytime при настройки конфигурации отправки данных на сервер glpi
Product: Sisyphus Reporter: Владислав Елисеев <eliseevva>
Component: glpi-agentAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: cas
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Владислав Елисеев 2025-02-12 16:40:57 MSK
Версия пакета:
glpi-agent-1.12-alt2

Платформы обновленные до Sisyphus:
Alt Education 11.0-x86-64-kde
Alt Education 11.0-x86-64-xfce
Alt Workstation K 11.0-x86-64
Alt Workstation 11.0-x86-64

Условия: Настроить сервер glpi
1) Чтобы избежать ошибок удалить все версии php
    # apt-get remove php-base
2) Создать БД:
    # apt-get install mariadb-server -y && systemctl enable --now mysqld && sleep 5 && mysql -u root -e "CREATE DATABASE glpi;" ; mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO glpi@localhost IDENTIFIED BY '12345678';" && echo OK || echo FAIL
3) Указать версию php и установить php:
    # VERSION=8.2 && apt-get install glpi glpi-agent glpi-apache2 glpi-php${VERSION} apache2-mod_php${VERSION} apache2-mod_ssl
4) # a2enmod ssl && a2enport https && a2ensite default_https && a2enmod mod_php${VERSION}
5) systemctl restart httpd2 && sleep 5; systemctl status httpd2
6) # sed -i -e '/session.cookie_secure/s/^.*.$/session.cookie_secure = on/' -e '/session.cookie_httponly/s/^.*.$/session.cookie_httponly = on/' /etc/php/*/apache2-mod_php/php.ini && systemctl restart httpd2 && sleep 5; systemctl status httpd2
7) Открыть страницу glpi в браузере
    # echo "https://$(hostname -i)/glpi"
8) Выбрать язык - ОК
   Принять лицензию
   Убедится что все проверки пройдены - Продолжить
9) Установка соединения с БД:\
    Сервер - localhost
    Пользователь - glpi
    Пароль - 12345678
    Продолжить
10) В списке БД выбрать glpi - Продолжить
11) Следующие шаги оставить по-умолчанию. Запустить GLPI
12) Войти в систему. После входа будет висеть плашка, что требуется сменить пароли для пользователей. Для начала поменять пароль для пользователя glpi, перелогиниться и поменять пароли для остальных пользователей.
13) Удалить или переместить файл /var/www/webapps/glpi/install/install.php
    После этого перезагрузить страницу. Плашка должна пропасть.
14) # wget https://github.com/glpi-project/glpi-inventory-plugin/releases/download/1.4.0/glpi-glpiinventory-1.4.0.tar.bz2
15) # mv glpi-glpiinventory-1.4.0.tar.bz2  /var/www/webapps/glpi/plugins && cd /var/www/webapps/glpi/plugins && tar -xvf glpi-glpiinventory-1.4.0.tar.bz2
16) chown -R _php_fpm:_php_fpm /var/www/webapps/glpi/plugins/glpiinventory/
17) Перезагрузить страницу
18) На странице выполнить:
    Настройки - Плагины - GLPI inventory - Нажать на пиктограмму папки с плюсом - Затем включить чекбокс запуска плагина. Должно появится уведомление что плагин запущен.
19) Перейти:
    Администрирование - Оборудование - Включить инвентаризацию - Сохранить.
=================================
Шаги к воспроизведению:
1) На клиенте: # apt-get install glpi-agent
2) # glpi-agent  --server=https://IP_сервера/glpi/plugins/glpiinventory --no-ssl-check --logger=stderr
3) Зайти на веб-страницу:
    Активы - Компьютеры
4) Активы > Компьютеры -> Отметить добавленную систему ->  Действие -> Удалить в корзину -> Отправить -> Отметить чекбокс "Показать корзину" -> Выбрать систему ->  Действие -> Удалить навсегда и удалить устройства -> Отправить
5) Изменить конфигурацию агента:
    # GLPI_SERVER=<ip-сервера>
    # sed -i "s|#server = http://server.domain.com/glpi/marketplace/glpiinventory/|server = 'https://$GLPI_SERVER/glpi/plugins/glpiinventory'|g" /etc/glpi-agent/agent.cfg && sed -i "s|no-ssl-check = 0|no-ssl-check = 1|g" /etc/glpi-agent/agent.cfg && sed -i "s|delaytime = 3600|delaytime = 120|g" /etc/glpi-agent/agent.cfg && sed -i "s|#tasks|tasks|g" /etc/glpi-agent/agent.cfg
6) Проверить работу:
    # systemctl enable --now glpi-agent.service && sleep 5; systemctl status glpi-agent.service
7) Проверить информацию на странице агента:
    # curl http://$(hostname -i):62354/
===================================
Ожидаемый результат: Отправка данных на сервер осуществиться через 120 секунд. Как мы и указали в шаге 5 в delaytime. В статусе и в информации на странице агента указана ближайшая отправка данных на сервер (1-2 минуты)
Реальный результат: После выполнения шага 6, в статусе сервиса будет написано, что следующая отправка будет не через 120 секунд. В моем случае были то сутки, то часы.
===================================
Дополнительная информация: 
Если Пропустить шаг 2 и перейти сразу к шагу 5, то отправка данных осуществляется как и написано в конфигурации - через 120 секунд. В статусе и в информации на странице клиента тоже отображается ближайшая дата отправки данных (1-2 минуты)
---
Воспроизводится в p10.