/**
  * 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());
 }
Exemple #2
0
 /**
  * @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;
 }