/** * Test hardware stats property */ public function testStatsProp() { $entity = new HardwareServerEntity(); $stats = new HardwareServerStatsEntity(); $stats->setOSVersion('test_OS'); $this->assertSame($entity, $entity->setStats($stats)); $this->assertInstanceOf(HardwareServerStatsEntity::class, $entity->getStats()); $this->assertSame($stats, $entity->getStats()); }
/** * @param int $id * * @return HardwareServerStatsEntity */ private function getHardwareServerStatsById($id) { $response = $this->makeRequest(sprintf('hardware-servers/get_stats?id=%d&_dc=%s', $id, time()), 'json'); $diskString = 'Disk usage, partition '; $diskUsageStat = new DiskUsageStatEntity(); $stats = new HardwareServerStatsEntity(); $stats->setDiskUsage($diskUsageStat); foreach ($response->data as $property) { switch ($property->parameter) { case 'OS version': if ($property->value !== '-') { $stats->setOSVersion(str_replace(["\n", "\r"], '', $property->value)); } break; case 'CPU load average': if ($property->value !== '-') { $stats->setCPULoadAverage(array_map('floatval', explode(' ', $property->value))); } break; case strpos($property->parameter, $diskString) !== false: $stat = MemoryParser::parse($property->value->text); $diskMount = new DiskUsageMountEntity(); $diskMount->setMountPoint(str_replace($diskString, '', $property->parameter))->setUsagePercent($stat['percent'])->setTotalSize($stat['total'])->setFreeSize($stat['free'])->setUsedSize($stat['used']); $diskUsageStat->addMountPoint($diskMount); break; case 'Memory usage': $stat = MemoryParser::parse($property->value->text); $ramUsage = new RamUsageStatEntity(); $ramUsage->setUsagePercent($stat['percent'])->setTotalSize($stat['total'])->setFreeSize($stat['free'])->setUsedSize($stat['used']); $stats->setRamUsage($ramUsage); break; default: throw new InvalidArgumentException(sprintf('Unknown property "%s"'), $property->parameter); } } return $stats; }