From 30c20fa11f7cd56da5b402ce745ab58f9f4d7edb Mon Sep 17 00:00:00 2001 From: SourceDoctor Date: Sun, 3 Oct 2021 01:03:24 +0200 Subject: [PATCH] hrsystem write fix (#13314) --- app/Models/Device.php | 5 +++-- app/Models/HrSystem.php | 2 +- includes/polling/hr-mib.inc.php | 13 ++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/Models/Device.php b/app/Models/Device.php index ed1536aeb3..fdc5c3842e 100644 --- a/app/Models/Device.php +++ b/app/Models/Device.php @@ -10,6 +10,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasManyThrough; +use Illuminate\Database\Eloquent\Relations\HasOne; use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Database\Query\JoinClause; use Illuminate\Support\Str; @@ -631,9 +632,9 @@ class Device extends BaseModel return $this->hasMany(HrDevice::class, 'device_id'); } - public function hostResourceValues(): HasMany + public function hostResourceValues(): HasOne { - return $this->hasMany(HrSystem::class, 'device_id'); + return $this->hasOne(HrSystem::class, 'device_id'); } public function entityPhysical(): HasMany diff --git a/app/Models/HrSystem.php b/app/Models/HrSystem.php index 86d5c58a48..52bcc36c36 100644 --- a/app/Models/HrSystem.php +++ b/app/Models/HrSystem.php @@ -6,7 +6,7 @@ class HrSystem extends DeviceRelatedModel { public $timestamps = false; protected $table = 'hrSystem'; - protected $fillable = ['hrSystemNumUsers', 'hrSystemProcesses', 'hrSystemMaxProcesses']; + protected $fillable = ['device_id', 'hrSystemNumUsers', 'hrSystemProcesses', 'hrSystemMaxProcesses']; protected $primaryKey = 'hrSystem_id'; } diff --git a/includes/polling/hr-mib.inc.php b/includes/polling/hr-mib.inc.php index 21a2087839..01a530152b 100644 --- a/includes/polling/hr-mib.inc.php +++ b/includes/polling/hr-mib.inc.php @@ -3,14 +3,12 @@ // HOST-RESOURCES-MIB // Generic System Statistics -use App\Models\Device; +use App\Models\HrSystem; use LibreNMS\RRD\RrdDefinition; $oid_list = ['hrSystemMaxProcesses.0', 'hrSystemProcesses.0', 'hrSystemNumUsers.0']; $hrSystem = snmp_get_multi($device, $oid_list, '-OUQs', 'HOST-RESOURCES-MIB'); -$current_device = Device::find($device['device_id']); - if (is_numeric($hrSystem[0]['hrSystemProcesses'])) { $tags = [ 'rrd_def' => RrdDefinition::make()->addDataset('procs', 'GAUGE', 0), @@ -35,10 +33,11 @@ if (is_numeric($hrSystem[0]['hrSystemNumUsers'])) { data_update($device, 'hr_users', $tags, $fields); - $current_device->hostResourceValues()->updateOrCreate(['device_id' => $current_device->id, 'key' => 'num_users'], - ['hrSystemNumUsers' => $hrSystem[0]['hrSystemNumUsers'], - 'hrSystemProcesses' => $hrSystem[0]['hrSystemProcesses'], - 'hrSystemMaxProcesses' => $hrSystem[0]['hrSystemMaxProcesses'], ]); + HrSystem::updateOrCreate(['device_id' => $device['device_id']], + ['hrSystemNumUsers' => $hrSystem[0]['hrSystemNumUsers'], + 'hrSystemProcesses' => $hrSystem[0]['hrSystemProcesses'], + 'hrSystemMaxProcesses' => $hrSystem[0]['hrSystemMaxProcesses'], ]); + $os->enableGraph('hr_users'); echo ' Users'; }