Don't trigger a 500 error due to unchecked data being inserted; closes #2087
This also clears up allowed values for the disk input and normalizes the messaging between edit and create screens.
This commit is contained in:
parent
497f73d820
commit
4a0627d182
|
@ -15,9 +15,11 @@ use Pterodactyl\Models\Server;
|
||||||
use Prologue\Alerts\AlertsMessageBag;
|
use Prologue\Alerts\AlertsMessageBag;
|
||||||
use Pterodactyl\Exceptions\DisplayException;
|
use Pterodactyl\Exceptions\DisplayException;
|
||||||
use Pterodactyl\Http\Controllers\Controller;
|
use Pterodactyl\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Validation\ValidationException;
|
||||||
use Pterodactyl\Services\Servers\SuspensionService;
|
use Pterodactyl\Services\Servers\SuspensionService;
|
||||||
use Pterodactyl\Services\Servers\ServerDeletionService;
|
use Pterodactyl\Services\Servers\ServerDeletionService;
|
||||||
use Pterodactyl\Services\Servers\ReinstallServerService;
|
use Pterodactyl\Services\Servers\ReinstallServerService;
|
||||||
|
use Pterodactyl\Exceptions\Model\DataValidationException;
|
||||||
use Pterodactyl\Services\Servers\BuildModificationService;
|
use Pterodactyl\Services\Servers\BuildModificationService;
|
||||||
use Pterodactyl\Services\Databases\DatabasePasswordService;
|
use Pterodactyl\Services\Databases\DatabasePasswordService;
|
||||||
use Pterodactyl\Services\Servers\DetailsModificationService;
|
use Pterodactyl\Services\Servers\DetailsModificationService;
|
||||||
|
@ -255,16 +257,21 @@ class ServersController extends Controller
|
||||||
* @return \Illuminate\Http\RedirectResponse
|
* @return \Illuminate\Http\RedirectResponse
|
||||||
*
|
*
|
||||||
* @throws \Pterodactyl\Exceptions\DisplayException
|
* @throws \Pterodactyl\Exceptions\DisplayException
|
||||||
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
|
||||||
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
||||||
|
* @throws \Illuminate\Validation\ValidationException
|
||||||
*/
|
*/
|
||||||
public function updateBuild(Request $request, Server $server)
|
public function updateBuild(Request $request, Server $server)
|
||||||
{
|
{
|
||||||
$this->buildModificationService->handle($server, $request->only([
|
try {
|
||||||
'allocation_id', 'add_allocations', 'remove_allocations',
|
$this->buildModificationService->handle($server, $request->only([
|
||||||
'memory', 'swap', 'io', 'cpu', 'threads', 'disk',
|
'allocation_id', 'add_allocations', 'remove_allocations',
|
||||||
'database_limit', 'allocation_limit', 'backup_limit', 'oom_disabled',
|
'memory', 'swap', 'io', 'cpu', 'threads', 'disk',
|
||||||
]));
|
'database_limit', 'allocation_limit', 'backup_limit', 'oom_disabled',
|
||||||
|
]));
|
||||||
|
} catch (DataValidationException $exception) {
|
||||||
|
throw new ValidationException($exception->validator);
|
||||||
|
}
|
||||||
|
|
||||||
$this->alert->success(trans('admin/server.alerts.build_updated'))->flash();
|
$this->alert->success(trans('admin/server.alerts.build_updated'))->flash();
|
||||||
|
|
||||||
return redirect()->route('admin.servers.view.build', $server->id);
|
return redirect()->route('admin.servers.view.build', $server->id);
|
||||||
|
|
|
@ -71,8 +71,8 @@ class BuildModificationService
|
||||||
* @return \Pterodactyl\Models\Server
|
* @return \Pterodactyl\Models\Server
|
||||||
*
|
*
|
||||||
* @throws \Pterodactyl\Exceptions\DisplayException
|
* @throws \Pterodactyl\Exceptions\DisplayException
|
||||||
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
|
||||||
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
||||||
|
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
||||||
*/
|
*/
|
||||||
public function handle(Server $server, array $data)
|
public function handle(Server $server, array $data)
|
||||||
{
|
{
|
||||||
|
@ -91,7 +91,7 @@ class BuildModificationService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var \Pterodactyl\Models\Server $server */
|
/* @var \Pterodactyl\Models\Server $server */
|
||||||
$server = $this->repository->withFreshModel()->update($server->id, [
|
$server = $this->repository->withFreshModel()->update($server->id, [
|
||||||
'oom_disabled' => array_get($data, 'oom_disabled'),
|
'oom_disabled' => array_get($data, 'oom_disabled'),
|
||||||
'memory' => array_get($data, 'memory'),
|
'memory' => array_get($data, 'memory'),
|
||||||
|
|
|
@ -176,6 +176,8 @@
|
||||||
<input type="text" id="pMemory" name="memory" class="form-control" value="{{ old('memory') }}" />
|
<input type="text" id="pMemory" name="memory" class="form-control" value="{{ old('memory') }}" />
|
||||||
<span class="input-group-addon">MB</span>
|
<span class="input-group-addon">MB</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p class="text-muted small">The maximum amount of memory allowed for this container. Setting this to <code>0</code> will allow unlimited memory in a container.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group col-xs-6">
|
<div class="form-group col-xs-6">
|
||||||
|
@ -185,21 +187,18 @@
|
||||||
<input type="text" id="pSwap" name="swap" class="form-control" value="{{ old('swap', 0) }}" />
|
<input type="text" id="pSwap" name="swap" class="form-control" value="{{ old('swap', 0) }}" />
|
||||||
<span class="input-group-addon">MB</span>
|
<span class="input-group-addon">MB</span>
|
||||||
</div>
|
</div>
|
||||||
|
<p class="text-muted small">Setting this to <code>0</code> will disable swap space on this server. Setting to <code>-1</code> will allow unlimited swap.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="box-footer no-border no-pad-top no-pad-bottom">
|
|
||||||
<p class="text-muted small">If you do not want to assign swap space to a server, simply put <code>0</code> for the value, or <code>-1</code> to allow unlimited swap space. If you want to disable memory limiting on a server, simply enter <code>0</code> into the memory field.<p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="box-body row">
|
<div class="box-body row">
|
||||||
<div class="form-group col-xs-6">
|
<div class="form-group col-xs-6">
|
||||||
<label for="pDisk">Disk Space</label>
|
<label for="pDisk">Disk Space</label>
|
||||||
|
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" id="pDisk" name="disk" class="form-control" value="{{ old('disk') }}" />
|
<input type="text" id="pDisk" name="disk" class="form-control" value="{{ old('disk') }}" />
|
||||||
<span class="input-group-addon">MB</span>
|
<span class="input-group-addon">MB</span>
|
||||||
</div>
|
</div>
|
||||||
|
<p class="text-muted small">This server will not be allowed to boot if it is using more than this amount of space. If a server goes over this limit while running it will be safely stopped and locked until enough space is available. Set to <code>0</code> to allow unlimited disk usage.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group col-xs-6">
|
<div class="form-group col-xs-6">
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<input type="text" name="disk" class="form-control" value="{{ old('disk', $server->disk) }}"/>
|
<input type="text" name="disk" class="form-control" value="{{ old('disk', $server->disk) }}"/>
|
||||||
<span class="input-group-addon">MB</span>
|
<span class="input-group-addon">MB</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-muted small">This server will not be allowed to boot if it is using more than this amount of space. If a server goes over this limit while running it will be safely stopped and locked until enough space is available.</p>
|
<p class="text-muted small">This server will not be allowed to boot if it is using more than this amount of space. If a server goes over this limit while running it will be safely stopped and locked until enough space is available. Set to <code>0</code> to allow unlimited disk usage.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="io" class="control-label">Block IO Proportion</label>
|
<label for="io" class="control-label">Block IO Proportion</label>
|
||||||
|
|
Loading…
Reference in New Issue