AdditionalMountPointService.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\App\Services\Cloud;
  3. use MGProvision\Proxmox\v2\models\MountPoint;
  4. use ModulesGarden\ProxmoxAddon\App\Services\ApiService;
  5. use ModulesGarden\ProxmoxAddon\App\Services\Utility;
  6. use ModulesGarden\ProxmoxAddon\Core\UI\Traits\WhmcsParams;
  7. use function ModulesGarden\ProxmoxAddon\Core\Helper\sl;
  8. class AdditionalMountPointService
  9. {
  10. use WhmcsParams;
  11. use ApiService;
  12. use ProductService;
  13. public function hasMountPoint(){
  14. foreach (sl('Vm')->getVm()->getMounPoints()->fetch() as $mounPoint){
  15. if($mounPoint->isMaster()){
  16. continue;
  17. }
  18. return true;
  19. }
  20. return false;
  21. }
  22. public function create($config){
  23. for ($i=1; $i<=10; $i++){
  24. $size = (int) $config['additionalDiskSize'.$i];
  25. if(!$size){
  26. continue;
  27. }
  28. $storage = $this->configuration()->getMountPointStorage();
  29. $mountPointRepository = sl('Vm')->getVm()->getMounPoints();
  30. $hdd = new MountPoint($mountPointRepository->nextId());
  31. $hdd->setLocation($storage . ":" . $size )
  32. ->setAcl($this->configuration()->getMountPointAcl() == "default" ? null : $this->configuration()->getMountPointAcl())
  33. ->setRo($this->configuration()->isMountPointRo() ? 1 : null)
  34. ->setQuota($this->configuration()->isMountPointQuota() ? 1 : null)
  35. ->setBackup($config['additionalDiskBackup'.$i]== "on" ? 1 : null)
  36. ->setReplicate($this->configuration()->isMountPointReplicate() ? '0' : null)
  37. ->setMp($config['additionalDiskMp'.$i]? $config['additionalDiskMp'.$i] :'/additional')
  38. ->setPath(sl('Vm')->getVm()->getPath() . '/config')
  39. ->setApi($this->api())
  40. ->create();
  41. }
  42. }
  43. }