Check for Node allocations
This commit is contained in:
parent
6bbbfa041e
commit
c32d6f5e2e
|
@ -101,9 +101,31 @@ class ServerController extends Controller
|
||||||
return redirect()->route('servers.index')->with('error', __('Server limit reached!'));
|
return redirect()->route('servers.index')->with('error', __('Server limit reached!'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// minimum credits
|
// minimum credits && Check for Allocation
|
||||||
if (FacadesRequest::has("product")) {
|
if (FacadesRequest::has("product")) {
|
||||||
$product = Product::findOrFail(FacadesRequest::input("product"));
|
$product = Product::findOrFail(FacadesRequest::input("product"));
|
||||||
|
// Can we allocate the node? If not then error lol(I don't like overallocation)
|
||||||
|
$node = Pterodactyl::getNode(FacadesRequest::input('node'));
|
||||||
|
$nodeMem = $node['memory'];
|
||||||
|
$nodeDisk = $node['disk'];
|
||||||
|
$nodeName = $node['name'];
|
||||||
|
$currServers = Auth::user()->servers();
|
||||||
|
$currMem = 0;
|
||||||
|
$currDisk = 0;
|
||||||
|
foreach($currServers as $currServer) {
|
||||||
|
$pteroServer = $currServer->getPterodactylServer();
|
||||||
|
$psvAttr = $pteroServer['attributes'];
|
||||||
|
if($psvAttr['node'] != $node['id'])
|
||||||
|
continue;
|
||||||
|
$currMem += $psvAttr['limits']['memory'];
|
||||||
|
$currDisk += $psvAttr['limits']['disk'];
|
||||||
|
}
|
||||||
|
$currMem += $product->memory;
|
||||||
|
$currDisk += $product->disk;
|
||||||
|
if($currMem > $nodeMem || $currDisk > $nodeDisk)
|
||||||
|
return redirect()->route('servers.index')->with('error', "The node '" . $nodeName . "' doesn't have the required memory or disk left to allocate this product.");
|
||||||
|
|
||||||
|
// Min. Credits
|
||||||
if (
|
if (
|
||||||
Auth::user()->credits <
|
Auth::user()->credits <
|
||||||
($product->minimum_credits == -1
|
($product->minimum_credits == -1
|
||||||
|
|
Loading…
Reference in a new issue