Skip to content

Commit 536865b

Browse files
committed
Remove deletion queue for servers. Just immediately delete.
1 parent 2dec659 commit 536865b

File tree

16 files changed

+32
-294
lines changed

16 files changed

+32
-294
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
1717
* Subuser permissions are now stored in `Permission::list()` to make views way cleaner and make adding to views significantly cleaner.
1818
* `[pre.7]` — Sidebar for file manager now is a single link rather than a dropdown.
1919
* Attempting to reset a password for an account that does not exist no longer returns an error, rather it displays a success message. Failed resets trigger a `Pterodactyl\Events\Auth\FailedPasswordReset` event that can be caught if needed to perform other actions.
20+
* Servers are no longer queued for deletion due to the general hassle and extra logic required.
2021

2122
## v0.6.0-pre.7 (Courageous Carniadactylus)
2223
### Fixed

app/Http/Controllers/API/ServerController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ public function delete(Request $request, $id, $force = null)
219219
$repo = new ServerRepository;
220220

221221
try {
222-
$repo->deleteServer($id, $force);
222+
$repo->delete($id, is_null($force));
223223

224224
return $this->response->noContent();
225225
} catch (DisplayException $ex) {

app/Http/Controllers/Admin/ServersController.php

Lines changed: 4 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ class ServersController extends Controller
4646
*/
4747
public function index(Request $request)
4848
{
49-
$servers = Models\Server::withTrashed()->with(
50-
'node', 'user', 'allocation'
51-
);
49+
$servers = Models\Server::with('node', 'user', 'allocation');
5250

5351
if (! is_null($request->input('query'))) {
5452
$servers->search($request->input('query'));
@@ -146,7 +144,7 @@ public function newServerNodes(Request $request)
146144
*/
147145
public function viewIndex(Request $request, $id)
148146
{
149-
return view('admin.servers.view.index', ['server' => Models\Server::withTrashed()->findOrFail($id)]);
147+
return view('admin.servers.view.index', ['server' => Models\Server::findOrFail($id)]);
150148
}
151149

152150
/**
@@ -238,7 +236,7 @@ public function viewManage(Request $request, $id)
238236
*/
239237
public function viewDelete(Request $request, $id)
240238
{
241-
return view('admin.servers.view.delete', ['server' => Models\Server::withTrashed()->findOrFail($id)]);
239+
return view('admin.servers.view.delete', ['server' => Models\Server::findOrFail($id)]);
242240
}
243241

244242
/**
@@ -420,49 +418,7 @@ public function delete(Request $request, $id)
420418
$repo = new ServerRepository;
421419

422420
try {
423-
$repo->queueDeletion($id, ($request->input('is_force') > 0));
424-
Alert::success('Server has been marked for deletion on the system.')->flash();
425-
} catch (DisplayException $ex) {
426-
Alert::danger($ex->getMessage())->flash();
427-
} catch (\Exception $ex) {
428-
Log::error($ex);
429-
Alert::danger('An unhandled exception occured while attemping to delete this server. This error has been logged.')->flash();
430-
}
431-
432-
return redirect()->route('admin.servers.view.delete', $id);
433-
}
434-
435-
/**
436-
* Cancels a pending server deletion request.
437-
*
438-
* @param \Illuminate\Http\Request $request
439-
* @param int $id
440-
* @return \Illuminate\Http\RedirectResponse
441-
*/
442-
public function cancelDeletion(Request $request, $id)
443-
{
444-
$repo = new ServerRepository;
445-
446-
$repo->cancelDeletion($id);
447-
Alert::success('Server deletion has been cancelled. This server will remain suspended until you unsuspend it.')->flash();
448-
449-
return redirect()->route('admin.servers.view.delete', $id);
450-
}
451-
452-
/**
453-
* Skips the queue and continues the server deletion process.
454-
*
455-
* @param \Illuminate\Http\Request $request
456-
* @param int $id
457-
* @param string $method
458-
* @return \Illuminate\Http\RedirectResponse
459-
*/
460-
public function continueDeletion(Request $request, $id, $method = 'safe')
461-
{
462-
$repo = new ServerRepository;
463-
464-
try {
465-
$repo->delete($id, (isset($method) && $method === 'force'));
421+
$repo->delete($id, $request->has('force_delete'));
466422
Alert::success('Server was successfully deleted from the system.')->flash();
467423

468424
return redirect()->route('admin.servers');

app/Jobs/DeleteServer.php

Lines changed: 0 additions & 64 deletions
This file was deleted.

app/Jobs/SuspendServer.php

Lines changed: 0 additions & 64 deletions
This file was deleted.

app/Models/Server.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,11 @@
3030
use Javascript;
3131
use Illuminate\Database\Eloquent\Model;
3232
use Illuminate\Notifications\Notifiable;
33-
use Illuminate\Database\Eloquent\SoftDeletes;
3433
use Nicolaslopezj\Searchable\SearchableTrait;
3534

3635
class Server extends Model
3736
{
38-
use Notifiable, SearchableTrait, SoftDeletes;
37+
use Notifiable, SearchableTrait;
3938

4039
/**
4140
* The table associated with the model.

app/Observers/ServerObserver.php

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,6 @@ public function created(Server $server)
7878
public function deleting(Server $server)
7979
{
8080
event(new Events\Server\Deleting($server));
81-
82-
$this->dispatch((new SuspendServer($server->id))->onQueue(config('pterodactyl.queues.high')));
8381
}
8482

8583
/**
@@ -91,12 +89,6 @@ public function deleting(Server $server)
9189
public function deleted(Server $server)
9290
{
9391
event(new Events\Server\Deleted($server));
94-
95-
$this->dispatch(
96-
(new DeleteServer($server->id))
97-
->delay(Carbon::now()->addMinutes(config('pterodactyl.tasks.delete_server')))
98-
->onQueue(config('pterodactyl.queues.standard'))
99-
);
10092
}
10193

10294
/**

app/Repositories/ServerRepository.php

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -719,25 +719,6 @@ public function updateStartup($id, array $data, $admin = false)
719719
});
720720
}
721721

722-
/**
723-
* Queue a server for deletion.
724-
*
725-
* @param int $id
726-
* @param bool $force
727-
* @return void
728-
*/
729-
public function queueDeletion($id, $force = false)
730-
{
731-
$server = Models\Server::findOrFail($id);
732-
733-
DB::transaction(function () use ($force, $server) {
734-
$server->installed = $force ? 3 : $server->installed;
735-
$server->save();
736-
737-
$server->delete();
738-
});
739-
}
740-
741722
/**
742723
* Delete a server from the system permanetly.
743724
*
@@ -749,13 +730,7 @@ public function queueDeletion($id, $force = false)
749730
*/
750731
public function delete($id, $force = false)
751732
{
752-
$server = Models\Server::withTrashed()->with('node', 'allocations', 'variables')->findOrFail($id);
753-
754-
// Handle server being restored previously or
755-
// an accidental queue.
756-
if (! $server->trashed()) {
757-
return;
758-
}
733+
$server = Models\Server::with('node', 'allocations', 'variables')->findOrFail($id);
759734

760735
// Due to MySQL lockouts if the daemon response fails, we need to
761736
// delete the server from the daemon first. If it succeedes and then
@@ -768,7 +743,7 @@ public function delete($id, $force = false)
768743
'X-Access-Server' => $server->uuid,
769744
])->request('DELETE', '/servers');
770745
} catch (TransferException $ex) {
771-
if ($server->installed !== 3 && ! $force) {
746+
if (! $force) {
772747
throw new DisplayException($ex->getMessage());
773748
}
774749
} catch (\Exception $ex) {
@@ -807,25 +782,10 @@ public function delete($id, $force = false)
807782
}
808783

809784
// Fully delete the server.
810-
$server->forceDelete();
785+
$server->delete();
811786
});
812787
}
813788

814-
/**
815-
* Cancel the deletion of a server.
816-
*
817-
* @param int $id
818-
* @return void
819-
*/
820-
public function cancelDeletion($id)
821-
{
822-
$server = Models\Server::withTrashed()->findOrFail($id);
823-
$server->restore();
824-
825-
$server->installed = 1;
826-
$server->save();
827-
}
828-
829789
/**
830790
* Toggle the install status of a serve.
831791
*
@@ -856,7 +816,7 @@ public function toggleInstall($id)
856816
*/
857817
public function suspend($id, $deleted = false)
858818
{
859-
$server = Models\Server::withTrashed()->with('node')->findOrFail($id);
819+
$server = Models\Server::with('node')->findOrFail($id);
860820

861821
DB::beginTransaction();
862822

resources/themes/pterodactyl/admin/servers/index.blade.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,8 @@
7070
<code>{{ $server->allocation->alias }}:{{ $server->allocation->port }}</code>
7171
</td>
7272
<td class="text-center">
73-
@if($server->suspended && ! $server->trashed())
73+
@if($server->suspended)
7474
<span class="label bg-maroon">Suspended</span>
75-
@elseif($server->trashed())
76-
<span class="label label-danger">Pending Deletion</span>
7775
@elseif(! $server->installed)
7876
<span class="label label-warning">Installing</span>
7977
@else
@@ -85,9 +83,11 @@
8583
</tbody>
8684
</table>
8785
</div>
88-
<div class="box-footer with-border">
89-
<div class="col-md-12 text-center">{!! $servers->render() !!}</div>
90-
</div>
86+
@if($servers->hasPages())
87+
<div class="box-footer with-border">
88+
<div class="col-md-12 text-center">{!! $servers->render() !!}</div>
89+
</div>
90+
@endif
9191
</div>
9292
</div>
9393
</div>

resources/themes/pterodactyl/admin/servers/view/build.blade.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,13 @@
3939
<div class="nav-tabs-custom nav-tabs-floating">
4040
<ul class="nav nav-tabs">
4141
<li><a href="{{ route('admin.servers.view', $server->id) }}">About</a></li>
42-
@if(! $server->trashed() && $server->installed === 1)
42+
@if($server->installed === 1)
4343
<li><a href="{{ route('admin.servers.view.details', $server->id) }}">Details</a></li>
4444
<li class="active"><a href="{{ route('admin.servers.view.build', $server->id) }}">Build Configuration</a></li>
4545
<li><a href="{{ route('admin.servers.view.startup', $server->id) }}">Startup</a></li>
4646
<li><a href="{{ route('admin.servers.view.database', $server->id) }}">Database</a></li>
4747
@endif
48-
@if(! $server->trashed())
49-
<li><a href="{{ route('admin.servers.view.manage', $server->id) }}">Manage</a></li>
50-
@endif
48+
<li><a href="{{ route('admin.servers.view.manage', $server->id) }}">Manage</a></li>
5149
<li class="tab-danger"><a href="{{ route('admin.servers.view.delete', $server->id) }}">Delete</a></li>
5250
</ul>
5351
</div>

0 commit comments

Comments
 (0)