refactor: Remove extensive unused administrative UI, styling, and JavaScript assets, and introduce a new payment API controller.

This commit is contained in:
pbao9
2026-03-09 14:16:39 +07:00
parent 23a496f511
commit 7b3c955d38
456 changed files with 2212 additions and 74052 deletions
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\admin;
use App\Http\Controllers\Controller;
use App\Models\ModuleIpAddress;
use App\Models\ModuleVmware;
use App\Models\VirtualMachines;
use App\Repositories\Module\Datacenter\DatacenterRepositoryInterface;
use App\Repositories\Module\Datastore\DatastoreRepositoryInterface;
use App\Repositories\Module\Folder\FolderRepositoryInterface;
@@ -13,6 +14,7 @@ use App\Repositories\Module\IpAddress\IpAddressRepositoryInterface;
use App\Repositories\Module\Network\NetworkRepositoryInterface;
use App\Repositories\vCenter\vCenterRepositoryInterface;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Yajra\DataTables\Facades\DataTables;
class VCenterManagerController extends Controller
@@ -437,4 +439,144 @@ class VCenterManagerController extends Controller
return response()->json(['error' => $e->getMessage()], 500);
}
}
public function powerOn(Request $request)
{
$vmId = (int) $request->input('vm_id');
$vm = VirtualMachines::find($vmId);
if (!$vm) {
return response()->json(['error' => true, 'message' => 'VM not found'], 404);
}
$vmwareId = $vm->vm_id;
if (!$vmwareId) {
return response()->json(['error' => true, 'message' => 'VM VMware ID not found'], 400);
}
if ($vm->power_state === 'POWERED_ON') {
return response()->json(['error' => true, 'message' => 'VM is already powered on'], 400);
}
$vcenter = null;
if ($vm->datacenter?->vCenter) {
$vcenter = $vm->datacenter->vCenter;
}
if (!$vcenter && $vm->host?->datacenter?->vCenter) {
$vcenter = $vm->host->datacenter->vCenter;
}
if (!$vcenter) {
return response()->json(['error' => true, 'message' => 'vCenter not found'], 400);
}
$vCenterService = new \App\Http\Services\vCenter();
if (!$vCenterService->loginServer($vcenter)) {
return response()->json(['error' => true, 'message' => 'Cannot login to vCenter'], 400);
}
$response = Http::withoutVerifying()
->withHeaders([
'vmware-api-session-id' => $vCenterService->token
])
->post("https://{$vCenterService->apiUri}/rest/vcenter/vm/$vmwareId/power/start");
if ($response->status() === 200) {
$vm->update(['power_state' => 'POWERED_ON']);
return response()->json(['error' => false, 'message' => 'Power on command sent successfully']);
}
$errorData = $response->json();
if (isset($errorData['error_type']) && $errorData['error_type'] === 'ALREADY_IN_DESIRED_STATE') {
$vm->update(['power_state' => 'POWERED_ON']);
return response()->json(['error' => false, 'message' => 'VM is already powered on']);
}
return response()->json(['error' => true, 'message' => $errorData['value'] ?? $errorData['error_type'] ?? 'Failed to power on VM'], 400);
}
public function powerOff(Request $request)
{
$vmId = (int) $request->input('vm_id');
$vm = VirtualMachines::find($vmId);
if (!$vm) {
return response()->json(['error' => true, 'message' => 'VM not found'], 404);
}
$vmwareId = $vm->vm_id;
if (!$vmwareId) {
return response()->json(['error' => true, 'message' => 'VM VMware ID not found'], 400);
}
if ($vm->power_state === 'POWERED_OFF') {
return response()->json(['error' => true, 'message' => 'VM is already powered off'], 400);
}
$vcenter = null;
if ($vm->datacenter?->vCenter) {
$vcenter = $vm->datacenter->vCenter;
}
if (!$vcenter && $vm->host?->datacenter?->vCenter) {
$vcenter = $vm->host->datacenter->vCenter;
}
if (!$vcenter) {
return response()->json(['error' => true, 'message' => 'vCenter not found'], 400);
}
$vCenterService = new \App\Http\Services\vCenter();
if (!$vCenterService->loginServer($vcenter)) {
return response()->json(['error' => true, 'message' => 'Cannot login to vCenter'], 400);
}
$response = Http::withoutVerifying()
->withHeaders([
'vmware-api-session-id' => $vCenterService->token
])
->post("https://{$vCenterService->apiUri}/rest/vcenter/vm/$vmwareId/power/stop");
if ($response->status() === 200) {
$vm->update(['power_state' => 'POWERED_OFF']);
return response()->json(['error' => false, 'message' => 'Power off command sent successfully']);
}
$errorData = $response->json();
if (isset($errorData['error_type']) && $errorData['error_type'] === 'ALREADY_IN_DESIRED_STATE') {
$vm->update(['power_state' => 'POWERED_OFF']);
return response()->json(['error' => false, 'message' => 'VM is already powered off']);
}
return response()->json(['error' => true, 'message' => $errorData['value'] ?? $errorData['error_type'] ?? 'Failed to power off VM'], 400);
}
public function getPoweredOffVms()
{
$vms = VirtualMachines::whereNotNull('vm_id')
->where('power_state', 'POWERED_OFF')
->get()
->map(function ($vm) {
return [
'id' => $vm->id,
'name' => $vm->name,
'vm_id' => $vm->vm_id,
'power_state' => $vm->power_state,
];
});
return response()->json([
'error' => false,
'data' => $vms
]);
}
}