<?php namespace Pterodactyl\Http\Controllers\Admin\Nodes; use Illuminate\Support\Str; use Illuminate\Http\Request; use Pterodactyl\Models\Node; use Illuminate\Http\JsonResponse; use Pterodactyl\Http\Controllers\Controller; use Pterodactyl\Repositories\Wings\DaemonConfigurationRepository; class SystemInformationController extends Controller { /** * @var \Pterodactyl\Repositories\Wings\DaemonConfigurationRepository */ private $repository; /** * SystemInformationController constructor. * * @param \Pterodactyl\Repositories\Wings\DaemonConfigurationRepository $repository */ public function __construct(DaemonConfigurationRepository $repository) { $this->repository = $repository; } /** * Returns system information from the Daemon. * * @param \Illuminate\Http\Request $request * @param \Pterodactyl\Models\Node $node * @return \Illuminate\Http\JsonResponse * * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException */ public function __invoke(Request $request, Node $node) { $data = $this->repository->setNode($node)->getSystemInformation(); return JsonResponse::create([ 'version' => $data['version'] ?? '', 'system' => [ 'type' => Str::title($data['os'] ?? 'Unknown'), 'arch' => $data['architecture'] ?? '--', 'release' => $data['kernel_version'] ?? '--', 'cpus' => $data['cpu_count'] ?? 0, ], ]); } }