Add base support for definining the number of backups that can be created for a server

This commit is contained in:
Dane Everitt 2020-04-26 12:12:29 -07:00
parent bed51b5871
commit f1c3762f4d
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
10 changed files with 65 additions and 23 deletions

View file

@ -263,7 +263,7 @@ class ServersController extends Controller
$this->buildModificationService->handle($server, $request->only([
'allocation_id', 'add_allocations', 'remove_allocations',
'memory', 'swap', 'io', 'cpu', 'threads', 'disk',
'database_limit', 'allocation_limit', 'oom_disabled',
'database_limit', 'allocation_limit', 'backup_limit', 'oom_disabled',
]));
$this->alert->success(trans('admin/server.alerts.build_updated'))->flash();

View file

@ -2,7 +2,6 @@
namespace Pterodactyl\Models;
use Schema;
use Illuminate\Notifications\Notifiable;
use Pterodactyl\Models\Traits\Searchable;
use Znck\Eloquent\Traits\BelongsToThrough;
@ -34,6 +33,7 @@ use Znck\Eloquent\Traits\BelongsToThrough;
* @property int $installed
* @property int $allocation_limit
* @property int $database_limit
* @property int $backup_limit
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
*
@ -127,6 +127,7 @@ class Server extends Model
'installed' => 'in:0,1,2',
'database_limit' => 'present|nullable|integer|min:0',
'allocation_limit' => 'sometimes|nullable|integer|min:0',
'backup_limit' => 'present|nullable|integer|min:0',
];
/**
@ -152,6 +153,7 @@ class Server extends Model
'installed' => 'integer',
'database_limit' => 'integer',
'allocation_limit' => 'integer',
'backup_limit' => 'integer',
];
/**
@ -170,16 +172,6 @@ class Server extends Model
'pack.name' => 10,
];
/**
* Return the columns available for this table.
*
* @return array
*/
public function getTableColumns()
{
return Schema::getColumnListing($this->getTable());
}
/**
* Returns the format for server allocations when communicating with the Daemon.
*

View file

@ -101,8 +101,9 @@ class BuildModificationService
'threads' => array_get($data, 'threads'),
'disk' => array_get($data, 'disk'),
'allocation_id' => array_get($data, 'allocation_id'),
'database_limit' => array_get($data, 'database_limit'),
'allocation_limit' => array_get($data, 'allocation_limit'),
'database_limit' => array_get($data, 'database_limit', 0),
'allocation_limit' => array_get($data, 'allocation_limit', 0),
'backup_limit' => array_get($data, 'backup_limit', 0),
]);
$updateData = $this->structureService->handle($server);

View file

@ -249,8 +249,9 @@ class ServerCreationService
'pack_id' => empty($data['pack_id']) ? null : $data['pack_id'],
'startup' => Arr::get($data, 'startup'),
'image' => Arr::get($data, 'image'),
'database_limit' => Arr::get($data, 'database_limit'),
'allocation_limit' => Arr::get($data, 'allocation_limit'),
'database_limit' => Arr::get($data, 'database_limit', 0),
'allocation_limit' => Arr::get($data, 'allocation_limit', 0),
'backup_limit' => Arr::get($data, 'backup_limit', 0),
]);
return $model;

View file

@ -80,6 +80,7 @@ class ServerTransformer extends BaseTransformer
'feature_limits' => [
'databases' => $server->database_limit,
'allocations' => $server->allocation_limit,
'backups' => $server->backup_limit,
],
'user' => $server->owner_id,
'node' => $server->node_id,

View file

@ -55,6 +55,7 @@ class ServerTransformer extends BaseClientTransformer
'feature_limits' => [
'databases' => $server->database_limit,
'allocations' => $server->allocation_limit,
'backups' => $server->backup_limit,
],
'is_suspended' => $server->suspended !== 0,
'is_installing' => $server->installed !== 1,