ChangePasswordJob.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\App\Jobs\Cloud\Agent;
  3. use MGProvision\Proxmox\v2\ProxmoxApiException;
  4. use ModulesGarden\ProxmoxAddon\App\Jobs\BaseJob;
  5. use ModulesGarden\ProxmoxAddon\App\Services\Cloud\AgentService;
  6. use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService;
  7. use function ModulesGarden\ProxmoxAddon\Core\Helper\sl;
  8. class ChangePasswordJob extends BaseJob
  9. {
  10. use ProductService;
  11. protected function initServices()
  12. {
  13. $this->agentService = new AgentService();
  14. }
  15. public function handle($text = null)
  16. {
  17. $this->initParams();
  18. $this->initServices();
  19. $this->setHostingId($this->getWhmcsParamByKey("serviceid"));
  20. $this->initVm();
  21. $this->api();
  22. try{
  23. if(!sl('Vm')->getVm()->isRunning()){
  24. $this->log->info(sprintf("VM %s - Start", sl('Vm')->getVm()->getVmid()));
  25. sl('Vm')->getVm()->start();
  26. $this->sleep(40);
  27. return false;
  28. }
  29. sl('Vm')->getVm()->agent()->ping();
  30. $this->agentService->passwordUpdate();
  31. }catch (ProxmoxApiException $ex){
  32. if(preg_match("/not running/", $ex->getMessage())){
  33. $this->log->info($ex->getMessage());
  34. }else{
  35. $this->log->error($ex->getMessage());
  36. }
  37. //sleep
  38. $this->sleep(30);
  39. return false;
  40. }
  41. }
  42. }