/
itp_practice
/
itp_backend
Обзор
Документация
Войти
/
itp_practice
/
itp_backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
app/Http/Controllers/Admin/ProcessManagerController.php
161 строка
4 KB
vivanenko
taps manager
27 май 2025, 23:38
27 май 2025, 23:38
348792e
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Services\ProcessManager\SupervisorService; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; class ProcessManagerController extends Controller { private SupervisorService $supervisorService; public function __construct(SupervisorService $supervisorService) { $this->supervisorService = $supervisorService; } /** * Start a tap process */ public function startTap(Request $request): JsonResponse { $request->validate([ 'tap_id' => 'required|integer|min:1' ]); $success = $this->supervisorService->startTapProcess($request->tap_id); return response()->json([ 'success' => $success, 'message' => $success ? 'Tap process started' : 'Failed to start tap process', 'tap_id' => $request->tap_id ]); } /** * Stop a tap process */ public function stopTap(Request $request): JsonResponse { $request->validate([ 'tap_id' => 'required|integer|min:1' ]); $success = $this->supervisorService->stopTapProcess($request->tap_id); return response()->json([ 'success' => $success, 'message' => $success ? 'Tap process stopped' : 'Failed to stop tap process', 'tap_id' => $request->tap_id ]); } /** * Get tap process status */ public function getTapStatus(int $tapId): JsonResponse { $status = $this->supervisorService->getTapProcessStatus($tapId); if (!$status) { return response()->json([ 'success' => false, 'message' => 'Tap process not found', 'tap_id' => $tapId ], 404); } return response()->json([ 'success' => true, 'data' => $status, 'tap_id' => $tapId ]); } /** * Get all tap processes */ public function getAllTaps(): JsonResponse { $processes = $this->supervisorService->getAllTapProcesses(); return response()->json([ 'success' => true, 'data' => $processes, 'count' => count($processes) ]); } /** * Restart a tap process */ public function restartTap(Request $request): JsonResponse { $request->validate([ 'tap_id' => 'required|integer|min:1' ]); $processName = "tap_process_{$request->tap_id}"; $success = $this->supervisorService->restartProcess($processName); return response()->json([ 'success' => $success, 'message' => $success ? 'Tap process restarted' : 'Failed to restart tap process', 'tap_id' => $request->tap_id ]); } /** * Get tap process logs */ public function getTapLogs(int $tapId, Request $request): JsonResponse { $request->validate([ 'offset' => 'integer|min:0', 'length' => 'integer|min:1|max:10000' ]); $logs = $this->supervisorService->readTapProcessLog( $tapId, $request->get('offset', 0), $request->get('length', 1000) ); return response()->json([ 'success' => true, 'data' => [ 'logs' => $logs, 'lines' => $logs ? count(explode("\n", $logs)) : 0 ], 'tap_id' => $tapId ]); } /** * Get all processes (including non-tap processes) */ public function getAllProcesses(): JsonResponse { $processes = $this->supervisorService->getAllProcessInfo(); return response()->json([ 'success' => true, 'data' => $processes ]); } /** * Reload supervisor configuration */ public function reloadConfig(): JsonResponse { $success = $this->supervisorService->reloadConfig(); return response()->json([ 'success' => $success, 'message' => $success ? 'Configuration reloaded' : 'Failed to reload configuration' ]); } }