Vm.php 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\App\Http\Client;
  3. use ModulesGarden\ProxmoxAddon\App\Services\ApiService;
  4. use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService;
  5. use ModulesGarden\Servers\ProxmoxCloudVps\App\Helpers\AppParams;
  6. use ModulesGarden\Servers\ProxmoxCloudVps\App\Helpers\ProxmoxAddonValidator;
  7. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Graph\Pages\ServiceCpuGraph;
  8. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Graph\Pages\VmSmallGraphs;
  9. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Home\Pages\AccountSummary;
  10. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Home\Pages\AccountSummaryBars;
  11. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Home\Pages\ServiceActions;
  12. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Home\Pages\ServiceDetails;
  13. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Vm\Pages\VmTabs;
  14. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmCreate\Forms\VmCreateForm;
  15. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmUpdate\Forms\VmUpdateForm;
  16. use ModulesGarden\Servers\ProxmoxCloudVps\Core\Http\AbstractClientController;
  17. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Traits\WhmcsParams;
  18. use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ResourceManager;
  19. use function ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\sl;
  20. use function ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\view;
  21. class Vm extends AbstractClientController
  22. {
  23. use WhmcsParams;
  24. use ProductService;
  25. use BaseClientController;
  26. use ApiService;
  27. /**
  28. * details
  29. */
  30. public function index()
  31. {
  32. // $resurceManager = new ResourceManager();
  33. //deaktivate createVM Button in case of lack of ressources
  34. /* if($resurceManager->disk()->free() < $resurceManager->disk()->getMin() || $resurceManager->vcpus()->free() < $resurceManager->vcpus()->getMin() || $resurceManager->memory()->free() < $resurceManager->memory()->getMin()) {
  35. $createButton->addHtmlAttribute("disabled",true);
  36. //delete sidebar button
  37. sl("sidebar")->getSidebar("virtualMachinesProxmoxCloudVps")->getChild("vmcreate")->delete();
  38. } */
  39. if ($this->getWhmcsParamByKey('status') != 'Active')
  40. {
  41. return;
  42. }
  43. $this->initVm();
  44. (new AppParams())->initFromWhmcsParams();
  45. $this->api();
  46. if (!ProxmoxAddonValidator::isInstalled())
  47. {
  48. ProxmoxAddonValidator::isInstalledOrFail();
  49. }
  50. else
  51. {
  52. if (!$this->isVmCreated(\ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->getVmModel()))
  53. {
  54. return $this->onVpsBuild();
  55. }
  56. }
  57. $view = view();
  58. $view->initCustomAssetFiles();
  59. $view->addElement(ServiceDetails::class);
  60. $view->addElement(ServiceActions::class);
  61. $view->addElement(VmTabs::class);
  62. return $view;
  63. }
  64. public function create()
  65. {
  66. sl("sidebar")->getSidebar("virtualMachinesProxmoxCloudVps")->getChild("vmcreate")->setActive(true);
  67. (new AppParams())->initFromWhmcsParams();
  68. $view = view();
  69. $view->initCustomAssetFiles();
  70. /**
  71. * @deprecated
  72. * $view->addElement(\ModulesGarden\Servers\ProxmoxCloudVps\App\UI\VmCreate\Sections\AccountSummary::class);
  73. */
  74. return $view->addElement(VmCreateForm::class);
  75. }
  76. public function update()
  77. {
  78. // sl("sidebar")->getSidebar("virtualMachinesProxmoxCloudVps")->getChild("vmupdate")->setActive(true);
  79. $this->initVm();
  80. (new AppParams())->initFromWhmcsParams();
  81. $this->api();
  82. return view()->addElement(VmUpdateForm::class);
  83. }
  84. }