feat: Update resource deletion job to allow configurable options through API
This commit is contained in:
@@ -1269,23 +1269,17 @@ class ApplicationsController extends Controller
|
|||||||
new OA\Parameter(
|
new OA\Parameter(
|
||||||
name: 'uuid',
|
name: 'uuid',
|
||||||
in: 'path',
|
in: 'path',
|
||||||
description: 'UUID of the application.',
|
description: 'UUID of the database.',
|
||||||
required: true,
|
required: true,
|
||||||
schema: new OA\Schema(
|
schema: new OA\Schema(
|
||||||
type: 'string',
|
type: 'string',
|
||||||
format: 'uuid',
|
format: 'uuid',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
new OA\Parameter(
|
new OA\Parameter(name: 'delete_configurations', in: 'query', required: false, description: 'Delete configurations.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
name: 'cleanup',
|
new OA\Parameter(name: 'delete_volumes', in: 'query', required: false, description: 'Delete volumes.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
in: 'query',
|
new OA\Parameter(name: 'docker_cleanup', in: 'query', required: false, description: 'Run docker cleanup.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
description: 'Delete configurations and volumes.',
|
new OA\Parameter(name: 'delete_connected_networks', in: 'query', required: false, description: 'Delete connected networks.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
required: false,
|
|
||||||
schema: new OA\Schema(
|
|
||||||
type: 'boolean',
|
|
||||||
default: true,
|
|
||||||
)
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
responses: [
|
responses: [
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
@@ -1333,10 +1327,14 @@ class ApplicationsController extends Controller
|
|||||||
'message' => 'Application not found',
|
'message' => 'Application not found',
|
||||||
], 404);
|
], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteResourceJob::dispatch(
|
DeleteResourceJob::dispatch(
|
||||||
resource: $application,
|
resource: $application,
|
||||||
deleteConfigurations: $cleanup,
|
deleteConfigurations: $request->query->get('delete_configurations', true),
|
||||||
deleteVolumes: $cleanup);
|
deleteVolumes: $request->query->get('delete_volumes', true),
|
||||||
|
dockerCleanup: $request->query->get('docker_cleanup', true),
|
||||||
|
deleteConnectedNetworks: $request->query->get('delete_connected_networks', true)
|
||||||
|
);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Application deletion request queued.',
|
'message' => 'Application deletion request queued.',
|
||||||
|
|||||||
@@ -1541,16 +1541,10 @@ class DatabasesController extends Controller
|
|||||||
format: 'uuid',
|
format: 'uuid',
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
new OA\Parameter(
|
new OA\Parameter(name: 'delete_configurations', in: 'query', required: false, description: 'Delete configurations.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
name: 'cleanup',
|
new OA\Parameter(name: 'delete_volumes', in: 'query', required: false, description: 'Delete volumes.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
in: 'query',
|
new OA\Parameter(name: 'docker_cleanup', in: 'query', required: false, description: 'Run docker cleanup.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
description: 'Delete configurations and volumes.',
|
new OA\Parameter(name: 'delete_connected_networks', in: 'query', required: false, description: 'Delete connected networks.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
required: false,
|
|
||||||
schema: new OA\Schema(
|
|
||||||
type: 'boolean',
|
|
||||||
default: true,
|
|
||||||
)
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
responses: [
|
responses: [
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
@@ -1595,10 +1589,14 @@ class DatabasesController extends Controller
|
|||||||
if (! $database) {
|
if (! $database) {
|
||||||
return response()->json(['message' => 'Database not found.'], 404);
|
return response()->json(['message' => 'Database not found.'], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteResourceJob::dispatch(
|
DeleteResourceJob::dispatch(
|
||||||
resource: $database,
|
resource: $database,
|
||||||
deleteConfigurations: $cleanup,
|
deleteConfigurations: $request->query->get('delete_configurations', true),
|
||||||
deleteVolumes: $cleanup);
|
deleteVolumes: $request->query->get('delete_volumes', true),
|
||||||
|
dockerCleanup: $request->query->get('docker_cleanup', true),
|
||||||
|
deleteConnectedNetworks: $request->query->get('delete_connected_networks', true)
|
||||||
|
);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Database deletion request queued.',
|
'message' => 'Database deletion request queued.',
|
||||||
|
|||||||
@@ -432,6 +432,10 @@ class ServicesController extends Controller
|
|||||||
tags: ['Services'],
|
tags: ['Services'],
|
||||||
parameters: [
|
parameters: [
|
||||||
new OA\Parameter(name: 'uuid', in: 'path', required: true, description: 'Service UUID', schema: new OA\Schema(type: 'string')),
|
new OA\Parameter(name: 'uuid', in: 'path', required: true, description: 'Service UUID', schema: new OA\Schema(type: 'string')),
|
||||||
|
new OA\Parameter(name: 'delete_configurations', in: 'query', required: false, description: 'Delete configurations.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
|
new OA\Parameter(name: 'delete_volumes', in: 'query', required: false, description: 'Delete volumes.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
|
new OA\Parameter(name: 'docker_cleanup', in: 'query', required: false, description: 'Run docker cleanup.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
|
new OA\Parameter(name: 'delete_connected_networks', in: 'query', required: false, description: 'Delete connected networks.', schema: new OA\Schema(type: 'boolean', default: true)),
|
||||||
],
|
],
|
||||||
responses: [
|
responses: [
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
@@ -476,7 +480,14 @@ class ServicesController extends Controller
|
|||||||
if (! $service) {
|
if (! $service) {
|
||||||
return response()->json(['message' => 'Service not found.'], 404);
|
return response()->json(['message' => 'Service not found.'], 404);
|
||||||
}
|
}
|
||||||
DeleteResourceJob::dispatch($service);
|
|
||||||
|
DeleteResourceJob::dispatch(
|
||||||
|
resource: $service,
|
||||||
|
deleteConfigurations: $request->query->get('delete_configurations', true),
|
||||||
|
deleteVolumes: $request->query->get('delete_volumes', true),
|
||||||
|
dockerCleanup: $request->query->get('docker_cleanup', true),
|
||||||
|
deleteConnectedNetworks: $request->query->get('delete_connected_networks', true)
|
||||||
|
);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Service deletion request queued.',
|
'message' => 'Service deletion request queued.',
|
||||||
@@ -516,7 +527,8 @@ class ServicesController extends Controller
|
|||||||
items: new OA\Items(ref: '#/components/schemas/EnvironmentVariable')
|
items: new OA\Items(ref: '#/components/schemas/EnvironmentVariable')
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
@@ -619,7 +631,8 @@ class ServicesController extends Controller
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
@@ -738,7 +751,8 @@ class ServicesController extends Controller
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
@@ -853,7 +867,8 @@ class ServicesController extends Controller
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
@@ -953,7 +968,8 @@ class ServicesController extends Controller
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
@@ -1025,9 +1041,11 @@ class ServicesController extends Controller
|
|||||||
type: 'object',
|
type: 'object',
|
||||||
properties: [
|
properties: [
|
||||||
'message' => ['type' => 'string', 'example' => 'Service starting request queued.'],
|
'message' => ['type' => 'string', 'example' => 'Service starting request queued.'],
|
||||||
])
|
]
|
||||||
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
@@ -1101,9 +1119,11 @@ class ServicesController extends Controller
|
|||||||
type: 'object',
|
type: 'object',
|
||||||
properties: [
|
properties: [
|
||||||
'message' => ['type' => 'string', 'example' => 'Service stopping request queued.'],
|
'message' => ['type' => 'string', 'example' => 'Service stopping request queued.'],
|
||||||
])
|
]
|
||||||
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
@@ -1177,9 +1197,11 @@ class ServicesController extends Controller
|
|||||||
type: 'object',
|
type: 'object',
|
||||||
properties: [
|
properties: [
|
||||||
'message' => ['type' => 'string', 'example' => 'Service restaring request queued.'],
|
'message' => ['type' => 'string', 'example' => 'Service restaring request queued.'],
|
||||||
])
|
]
|
||||||
|
)
|
||||||
),
|
),
|
||||||
]),
|
]
|
||||||
|
),
|
||||||
new OA\Response(
|
new OA\Response(
|
||||||
response: 401,
|
response: 401,
|
||||||
ref: '#/components/responses/401',
|
ref: '#/components/responses/401',
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ class DeleteResourceJob implements ShouldBeEncrypted, ShouldQueue
|
|||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
public Application|Service|StandalonePostgresql|StandaloneRedis|StandaloneMongodb|StandaloneMysql|StandaloneMariadb|StandaloneKeydb|StandaloneDragonfly|StandaloneClickhouse $resource,
|
public Application|Service|StandalonePostgresql|StandaloneRedis|StandaloneMongodb|StandaloneMysql|StandaloneMariadb|StandaloneKeydb|StandaloneDragonfly|StandaloneClickhouse $resource,
|
||||||
public bool $deleteConfigurations,
|
public bool $deleteConfigurations = true,
|
||||||
public bool $deleteVolumes,
|
public bool $deleteVolumes = true,
|
||||||
public bool $dockerCleanup,
|
public bool $dockerCleanup = true,
|
||||||
public bool $deleteConnectedNetworks
|
public bool $deleteConnectedNetworks = true
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
public function handle()
|
public function handle()
|
||||||
|
|||||||
Reference in New Issue
Block a user