VmBuild.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Home\Pages;
  3. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\CloneQemuJob;
  4. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\CreateLxcJob;
  5. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\CreateQemuJob;
  6. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\LoadBalancer\UpgradeVmJob;
  7. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\MigrateVmJob;
  8. use ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\Reinstall\CreateVmJob;
  9. use ModulesGarden\ProxmoxAddon\App\Models\Job;
  10. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Builder\BaseContainer;
  11. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\AdminArea;
  12. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
  13. use function ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\sl;
  14. /**
  15. * Class VmBuild
  16. * @package ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Home\Pages
  17. * @todo
  18. */
  19. class VmBuild extends BaseContainer implements ClientArea, AdminArea
  20. {
  21. public function initContent()
  22. {
  23. if ($this->isVmCreate())
  24. {
  25. $this->customTplVars['warning'] = sl("lang")->abtr('The process of Virtual Machine creation is in progress.');
  26. }
  27. else if ($this->isVmReinstall()) {
  28. $this->customTplVars['warning'] = sl("lang")->abtr('Rebuild VM in progress. Please try again later.');
  29. } else if ($this->isVmUpgrade()){
  30. $this->customTplVars['warning'] = sl("lang")->abtr('Upgrading VM in progress. Please try again later.');
  31. }else {
  32. $this->customTplVars['warning'] = sl("lang")->abtr('Unknown error.');
  33. }
  34. }
  35. private function isVmCreate()
  36. {
  37. $jobs = [
  38. CloneQemuJob::class,
  39. CreateQemuJob::class,
  40. CreateLxcJob::class,
  41. ];
  42. return Job::waiting()->ofHostingId($this->getWhmcsParamByKey("serviceid"))->ofJobs($jobs)->count();
  43. }
  44. private function isVmReinstall()
  45. {
  46. $jobs = [
  47. CreateVmJob::class
  48. ];
  49. return Job::waiting()->ofHostingId($this->getWhmcsParamByKey("serviceid"))->ofJobs($jobs)->count();
  50. }
  51. private function isVmUpgrade()
  52. {
  53. $jobs = [
  54. MigrateVmJob::class,
  55. \ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\RestoreVm::class,
  56. UpgradeVmJob::class
  57. ];
  58. return Job::waiting()->ofHostingId($this->getWhmcsParamByKey("serviceid"))->ofJobs($jobs)->count();
  59. }
  60. }