Files
supervisor-ui/app/api/supervisor/groups/[name]/restart/route.ts

36 lines
1.0 KiB
TypeScript
Raw Normal View History

import { NextRequest, NextResponse } from 'next/server';
import { createSupervisorClient } from '@/lib/supervisor/client';
interface RouteParams {
params: Promise<{ name: string }>;
}
// POST - Restart all processes in a group (stop then start)
export async function POST(request: NextRequest, { params }: RouteParams) {
try {
const { name } = await params;
const body = await request.json().catch(() => ({}));
const wait = body.wait ?? true;
const client = createSupervisorClient();
// Stop all processes in the group first
await client.stopProcessGroup(name, wait);
// Then start them
const results = await client.startProcessGroup(name, wait);
return NextResponse.json({
success: true,
message: `Restarted process group: ${name}`,
results,
});
} catch (error: any) {
console.error('Supervisor restart process group error:', error);
return NextResponse.json(
{ error: error.message || 'Failed to restart process group' },
{ status: 500 }
);
}
}