BaseClientController.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\App\Http\Client;
  3. use MGProvision\Proxmox\v2\VmFactory;
  4. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\CloneQemuJob;
  5. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\CreateLxcJob;
  6. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\CreateQemuJob;
  7. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\LoadBalancer\UpgradeVmJob;
  8. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\MigrateVmJob;
  9. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\Reinstall\CreateVmJob;
  10. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\RestoreVm;
  11. use ModulesGarden\ProxmoxAddon\App\Models\Job;
  12. use ModulesGarden\ProxmoxAddon\App\Models\VmModel;
  13. use ModulesGarden\Servers\ProxmoxCloudVps\App\Factory\VmModelFactory;
  14. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Home\Pages\VmBuild;
  15. use function ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\view;
  16. trait BaseClientController
  17. {
  18. public function isVmCreated( VmModel $vmModel)
  19. {
  20. $jobs = [
  21. CloneQemuJob::class,
  22. CreateQemuJob::class,
  23. CreateLxcJob::class,
  24. MigrateVmJob::class,
  25. RestoreVm::class,
  26. \ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\Reinstall\RestoreVm::class,
  27. UpgradeVmJob::class,
  28. CreateVmJob::class
  29. ];
  30. if (!$vmModel->vmid || $vmModel->vmid == 0 ){
  31. return false;
  32. }
  33. if(Job::waiting()->ofHostingId($this->getWhmcsParamByKey("serviceid"))->ofJobs($jobs)->ofCustomId($vmModel->id)->count() > 0){
  34. return false;
  35. }
  36. return true;
  37. }
  38. /**
  39. * @return \ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\View|object|null
  40. * @todo
  41. */
  42. public function onVpsBuild()
  43. {
  44. return view()->addElement(VmBuild::class);
  45. }
  46. protected function initVm(){
  47. $vmModel = (new VmModelFactory)->fromRequest();
  48. \ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->setVmModel($vmModel);
  49. if($vmModel->vmid==0){
  50. return;
  51. }
  52. \ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->setVm((new VmFactory())->fromVmModel($vmModel));
  53. }
  54. }