Skip to content

Commit d77184a

Browse files
authored
Merge pull request pterodactyl#1882 from Sir3lit/cputhreads
Add CPU Thread assignments
2 parents 7d45379 + 78d6e59 commit d77184a

File tree

11 files changed

+30
-2
lines changed

11 files changed

+30
-2
lines changed

app/Http/Controllers/Admin/ServersController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ public function updateBuild(Request $request, Server $server)
262262
{
263263
$this->buildModificationService->handle($server, $request->only([
264264
'allocation_id', 'add_allocations', 'remove_allocations',
265-
'memory', 'swap', 'io', 'cpu', 'disk',
265+
'memory', 'swap', 'io', 'cpu', 'threads', 'disk',
266266
'database_limit', 'allocation_limit', 'oom_disabled',
267267
]));
268268
$this->alert->success(trans('admin/server.alerts.build_updated'))->flash();

app/Http/Requests/Api/Application/Servers/StoreServerRequest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public function rules(): array
4949
'limits.swap' => $rules['swap'],
5050
'limits.disk' => $rules['disk'],
5151
'limits.io' => $rules['io'],
52+
'limits.threads' => $rules['threads'],
5253
'limits.cpu' => $rules['cpu'],
5354

5455
// Application Resource Limits
@@ -96,6 +97,7 @@ public function validated()
9697
'disk' => array_get($data, 'limits.disk'),
9798
'io' => array_get($data, 'limits.io'),
9899
'cpu' => array_get($data, 'limits.cpu'),
100+
'threads' => array_get($data, 'limits.threads'),
99101
'skip_scripts' => array_get($data, 'skip_scripts', false),
100102
'allocation_id' => array_get($data, 'allocation.default'),
101103
'allocation_additional' => array_get($data, 'allocation.additional'),

app/Http/Requests/Api/Application/Servers/UpdateServerBuildConfigurationRequest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public function rules(): array
2525
'limits.swap' => $this->requiredToOptional('swap', $rules['swap'], true),
2626
'limits.io' => $this->requiredToOptional('io', $rules['io'], true),
2727
'limits.cpu' => $this->requiredToOptional('cpu', $rules['cpu'], true),
28+
'limits.threads' => $this->requiredToOptional('threads', $rules['threads'], true),
2829
'limits.disk' => $this->requiredToOptional('disk', $rules['disk'], true),
2930

3031
// Legacy rules to maintain backwards compatable API support without requiring
@@ -35,6 +36,7 @@ public function rules(): array
3536
'swap' => $this->requiredToOptional('swap', $rules['swap']),
3637
'io' => $this->requiredToOptional('io', $rules['io']),
3738
'cpu' => $this->requiredToOptional('cpu', $rules['cpu']),
39+
'threads' => $this->requiredToOptional('threads', $rules['threads']),
3840
'disk' => $this->requiredToOptional('disk', $rules['disk']),
3941

4042
'add_allocations' => 'bail|array',

app/Services/Servers/BuildModificationService.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ public function handle(Server $server, array $data)
9898
'swap' => array_get($data, 'swap'),
9999
'io' => array_get($data, 'io'),
100100
'cpu' => array_get($data, 'cpu'),
101+
'threads' => array_get($data, 'threads'),
101102
'disk' => array_get($data, 'disk'),
102103
'allocation_id' => array_get($data, 'allocation_id'),
103104
'database_limit' => array_get($data, 'database_limit'),

app/Services/Servers/ServerConfigurationStructureService.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ protected function returnCurrentFormat(Server $server)
8181
'swap' => $server->swap,
8282
'io_weight' => $server->io,
8383
'cpu_limit' => $server->cpu,
84+
'threads' => $server->threads,
8485
'disk_space' => $server->disk,
8586
],
8687
'service' => [
@@ -130,6 +131,7 @@ protected function returnLegacyFormat(Server $server)
130131
'swap' => (int) $server->swap,
131132
'io' => (int) $server->io,
132133
'cpu' => (int) $server->cpu,
134+
'threads' => $server->threads,
133135
'disk' => (int) $server->disk,
134136
'image' => $server->image,
135137
],

app/Services/Servers/ServerCreationService.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ private function createModel(array $data): Server
242242
'disk' => Arr::get($data, 'disk'),
243243
'io' => Arr::get($data, 'io'),
244244
'cpu' => Arr::get($data, 'cpu'),
245+
'threads' => Arr::get($data, 'threads'),
245246
'oom_disabled' => Arr::get($data, 'oom_disabled', true),
246247
'allocation_id' => Arr::get($data, 'allocation_id'),
247248
'nest_id' => Arr::get($data, 'nest_id'),

app/Transformers/Api/Application/ServerTransformer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public function transform(Server $server): array
7575
'disk' => $server->disk,
7676
'io' => $server->io,
7777
'cpu' => $server->cpu,
78+
'threads' => $server->threads,
7879
],
7980
'feature_limits' => [
8081
'databases' => $server->database_limit,

resources/scripts/api/server/getServer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export interface Server {
2424
disk: number;
2525
io: number;
2626
cpu: number;
27+
threads: string;
2728
};
2829
featureLimits: {
2930
databases: number;

resources/views/admin/servers/new.blade.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,13 @@
160160
<span class="input-group-addon">%</span>
161161
</div>
162162
</div>
163+
<div class="form-group col-sm-4">
164+
<label for="pThreads">CPU Threads</label>
165+
<div class="input-group">
166+
<input type="text" class="form-control" value="{{ old('threads') }}" name="threads" id="pThreads" />
167+
<span class="input-group-addon"></span>
168+
</div>
169+
</div>
163170
<div class="form-group col-sm-4">
164171
<label for="pIO">Block IO Weight</label>
165172
<div class="input-group">

resources/views/admin/servers/view/build.blade.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<div class="col-sm-5">
2727
<div class="box">
2828
<div class="box-header with-border">
29-
<h3 class="box-title">System Resources</h3>
29+
<h3 class="box-title">Resource Management</h3>
3030
</div>
3131
<div class="box-body">
3232
<div class="form-group">
@@ -53,6 +53,13 @@
5353
</div>
5454
<p class="text-muted small">Each <em>physical</em> core on the system is considered to be <code>100%</code>. Setting this value to <code>0</code> will allow a server to use CPU time without restrictions.</p>
5555
</div>
56+
<div class="form-group">
57+
<label for="threads" class="control-label">CPU Threads</label>
58+
<div class="input-group">
59+
<input type="text" name="threads" class="form-control" value="{{ old('threads', $server->threads) }}"/>
60+
<span class="input-group-addon"></span>
61+
</div>
62+
</div>
5663
<div class="form-group">
5764
<label for="io" class="control-label">Block IO Proportion</label>
5865
<div>

0 commit comments

Comments
 (0)