librenms/app/Observers/VminfoObserver.php
Tony Murray 087d588102
Vmware vminfo modernize (#15008)
* Vmware vminfo
Remove legacy file and migrate to OS discovery

* tighter

* ios_stp-vlans working correctly now

* Make vmwVmGuestOS nullable

* Discover os info too

* VM Info module

* Apply fixes from StyleCI

* Fix log severity

* Fix log severity (more)

* VM Info module

* Poll with ESXi too because it is lightweight
add test data

* poller data now too

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-05 19:49:26 -05:00

68 lines
1.6 KiB
PHP

<?php
namespace App\Observers;
use App\Models\Eventlog;
use App\Models\Vminfo;
use LibreNMS\Enum\Severity;
class VminfoObserver
{
/**
* Handle the Vminfo "created" event.
*
* @param \App\Models\Vminfo $vminfo
* @return void
*/
public function created(Vminfo $vminfo)
{
Eventlog::log('Virtual Machine added: ' . $vminfo->vmwVmDisplayName . " ($vminfo->vmwVmMemSize GB / $vminfo->vmwVmCpus vCPU)", $vminfo->device_id, 'vm', Severity::Notice, $vminfo->vmwVmVMID);
}
/**
* Handle the Vminfo "updated" event.
*
* @param \App\Models\Vminfo $vminfo
* @return void
*/
public function updating(Vminfo $vminfo)
{
foreach ($vminfo->getDirty() as $field => $value) {
Eventlog::log($vminfo->vmwVmDisplayName . ' (' . preg_replace('/^vmwVm/', '', $field) . ') -> ' . $value, $vminfo->device_id, 'vm');
}
}
/**
* Handle the Vminfo "deleted" event.
*
* @param \App\Models\Vminfo $vminfo
* @return void
*/
public function deleted(Vminfo $vminfo)
{
Eventlog::log('Virtual Machine removed: ' . $vminfo->vmwVmDisplayName, $vminfo->device_id, 'vm', Severity::Warning, $vminfo->vmwVmVMID);
}
/**
* Handle the Vminfo "restored" event.
*
* @param \App\Models\Vminfo $vminfo
* @return void
*/
public function restored(Vminfo $vminfo)
{
//
}
/**
* Handle the Vminfo "force deleted" event.
*
* @param \App\Models\Vminfo $vminfo
* @return void
*/
public function forceDeleted(Vminfo $vminfo)
{
//
}
}