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>
This commit is contained in:
Tony Murray
2023-10-05 19:49:26 -05:00
committed by GitHub
parent bec7a9f449
commit 087d588102
38 changed files with 990 additions and 446 deletions

View File

@@ -0,0 +1,67 @@
<?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)
{
//
}
}