• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Проблема с исчезновением компонентов ПК в случае, если они не были найдены
#1
Добрый вечер! Я совсем новичок в использовании связк GLPI+Fusion, строго не судите) 
имеется проблема:
Часть инвентаризации мы ведем вручную, часть - через агентов. Существует проблема, то железо, которое было импортировано автоматически, если оно было убрано на склад (и не обнаружено при повторной инвентаризации), исчезнет.
Тестил на своем компе - принудительно запустил агента, получил инфу в GLPI. Ребутнулся, вытащил второй хард, запустил еще раз агента - изъятый хард пропал. Причем в GLPI в ручном режиме никто не мешает просто отвязать девайс. Можно ли настроить систему так, чтобы вместо удаления она просто разрывала связь, и все "не найденные" элементы все-таки оставались в базе без связей?
  Reply
#2
Доброго времени суток.
Я уже года два-три ковыряю систему и всё еще чувствую себя новичком, она настолько огромная, что не успеваю все проверить.

Не могу сказать точно, но в разделе Настройки-компоненты-жесткие диски у меня числится куча устройств, как подключенных так и свободных. Вручную почти ничего не заношу. Но я так понимаю, что в этом разделе находятся типы устройств, а не конкретные устройства. Если есть несколько жестких дисков одной модели, то запись будет одна и внутри нее можно добавить количество не подключенных устройств(на складе). Вот тут опять тест нужен. Если создать вручную такой жесткий, вбить его информацию(серийник) и потом физически подключить его к компу, провести инвенту, то возникнет вопрос, подключится он автоматически в системе или появится новая запись. И что будет, если его вынуть и провести инвентаризацию.

Вот... еще можно посмотреть настройки GLPI-активы, внизу есть поведение при отключении устройств. Т.к. у данных устройств нет статуса, то можно поставить плашки "не удалять" и "изменить статус" на другой, например "в резерв". Но это работает для устройст, а для компонентов может не сработать.
  Reply
#3
С компонентами, увы не сработало)
  Reply
#4
(2020-01-24, 11:11:13)Okeu Wrote: С компонентами, увы не сработало)
Попробую на днях сымитировать ситуацию, может найду подходящее решение. На зарубежных форумах не нашел информации.
  Reply
#5
(2020-01-24, 15:16:35)maxwal41 Wrote:
(2020-01-24, 11:11:13)Okeu Wrote: С компонентами, увы не сработало)
Попробую на днях сымитировать ситуацию, может найду подходящее решение. На зарубежных форумах не нашел информации.

Благодарю, я тоже пока не нашел. Дело в том, что мне необходимо вести именно фактический учет, и если данный кейс на текущем этапе не решаем без вмешательства в код, то я использую агенты единожды, а фактический жизненный цикл запчастей буду проводить вручную (в случаях апгрейда и т.д.)
Ибо компоненты, которые заводятся с агента - отлично переживают разрыв связи с компом в ручном режиме. А так же если в комп вручную добавить компонент, то после автоматической инвентаризации он не исчезает, и вообще, видимо Fusion игнорирует его (либо нет прав удалять то, что вносится пользователем)
Ну либо мы будем использовать гибридный подход - вся та техника (старая) которая уже есть - будет доживать свои дни с агентами, а вся новая техника, где можно вычислить поставщиков/счета и т.д. будет заводиться вручную - ибо приоритет именно в этом)
Я пытался поиграться с правилами, в настройках Fusion но они судя по всему, относятся только к устройствам (не компонентам)
  Reply
#6
В общем что я нарыл....
Да, действительно компоненты удаляются. У меня удалился бесследно ДВД, я еще не проверял все варианты тестов, которые были в голове, такие как изменить статус компонента или включить финансовую информацию. Скорее всего это не поможет.

Я немного порылся в коде PHP, в котором я почти совсем не разбираюсь и в файле fusioninventory/inc/inventorycomputerlib.class.php нашел описание всех действий при инвенте ПК.
Так вот, там есть такие строки

PHP Code:
if (count($db_bios) != 0) {
            // Delete BIOS in DB
            foreach ($db_bios as $idtmp => $data) {
               $item_DeviceBios->delete(['id'=>$idtmp], 1);
            }
         
Это функция обработки компонента БИОС, и аналогичные есть по каждому типу компонентов. Тут и ребенку понятно, что происходит "штатное" удаление компонента и повлиять на это через веб интерфейс мы не можем.  в теории надо функцию
PHP Code:
delete(['id'=>$idtmp], 1
поменять на функцию, которая убирает связь. Но тут мои познания закончились и я не нашел такую, и даже не нашел описание этой функции. Тут нужен PHPшник.


Quote:Ну либо мы будем использовать гибридный подход
Вот тут, опять чисто теоретически.... Если в этом файле закомментировать или удалить эти строки, то компоненты удаляться не будут, но и от компьютера открепляться не будут, надо будет делать это руками. Но при этом они будут автоматически добавляться и обновляться.



Quote:А так же если в комп вручную добавить компонент, то после автоматической инвентаризации он не исчезает, и вообще, видимо Fusion игнорирует его (либо нет прав удалять то, что вносится пользователем)
У компонентов и других активов есть показатель "автоматическая инвентаризация", именно его проверяет FI4GLPI и не трогает то, где указано "нет". Руками эта запись не меняется. Интересен другой тест: FI добавил компонент(жесткий) к ПК, мы его руками отвязали, потом вытащили из компьютера и вставили например в другой компьютер, или в тот же, но после инвенты. Интересно как FI отреагирует. Удалить из компьютера он его не может, т.к. его нет, будет ли он создавать новый жесткий или вернет старый, потому что серийник соответствует. Тогда при комментировании строк задача вернется только к возвращению компонентов на склад в интерфейсе.


Второй момент.

Это действительно косяк и очень большое упущение разработчиков. Если есть желание видеть корректный функционал в интерфейсе, то первый шаг уже сделан. На гитхабе уже есть тема с такой проблемой. Если поднять там обсуждение, то может разработчики обратят на это внимание.

https://github.com/fusioninventory/fusioninventory-for-glpi/issues/2861 

Как там написал человек, без этого функционала инвентаризация только на 50% инвентаризация.
[url=https://github.com/fusioninventory/fusioninventory-for-glpi/issues/2861][/url]
  Reply
#7
(2020-01-24, 20:58:38)maxwal41 Wrote: Интересен другой тест: FI добавил компонент(жесткий) к ПК, мы его руками отвязали, потом вытащили из компьютера и вставили например в другой компьютер, или в тот же, но после инвенты. Интересно как FI отреагирует. Удалить из компьютера он его не может, т.к. его нет, будет ли он создавать новый жесткий или вернет старый, потому что серийник соответствует. Тогда при комментировании строк задача вернется только к возвращению компонентов на склад в интерфейсе.

Если разорвать связь руками, то при следующей инвентаризации ( с отключенным девайсом ) он ничего не удалил. Подключил снова, запустил агента, в системе создался новый девайс с тем же серийником)
На самом деле даже это куда меньшая проблема, т.к. в данном случае ошибку учета можно исключить всего-лишь чуть более сложным чеклистом. А вот исчезновение из системы, уже чревато тем, что можно пропустить этот момент, да и хвосты потом ловить тяжело (особенно если подгружались инвойсы, назначался инвентарник и т.д.
(2020-01-24, 20:58:38)maxwal41 Wrote: Это действительно косяк и очень большое упущение разработчиков. Если есть желание видеть корректный функционал в интерфейсе, то первый шаг уже сделан. На гитхабе уже есть тема с такой проблемой. Если поднять там обсуждение, то может разработчики обратят на это внимание.

https://github.com/fusioninventory/fusio...ssues/2861
Как там написал человек, без этого функционала инвентаризация только на 50% инвентаризация.
Благодарю!) Подписался на тред
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)