|
@@ -104,27 +104,15 @@ class ServerController extends Controller
|
|
|
// minimum credits && Check for Allocation
|
|
|
if (FacadesRequest::has("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.");
|
|
|
-
|
|
|
+
|
|
|
+ // Get node resource allocation info
|
|
|
+ $node = $product->nodes()->findOrFail(FacadesRequest::input('node'));
|
|
|
+ $nodeName = $node->name;
|
|
|
+
|
|
|
+ // Check if node has enough memory and disk space
|
|
|
+ $checkResponse = Pterodactyl::checkNodeResources($node, $product->memory, $product->disk);
|
|
|
+ if ($checkResponse == False) 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 (
|
|
|
Auth::user()->credits <
|