initParams(); $this->initServices(); $this->setHostingId($this->getWhmcsParamByKey("serviceid")); $this->initVm(); $this->highAvailabilityClusterService = new HighAvailabilityClusterService(); //shutdown if (!$this->getModelData()['shutdown'] && sl('Vm')->getVm()->isRunning()) { $this->highAvailabilityClusterService->delete(); $taskId = sl('Vm')->getVm()->shutdown(); //save task id $this->putModelDataAndSave(["taskId" => $taskId, "node" => sl('Vm')->getVm()->getNode(), "shutdown" => true]); $this->log->info(sprintf("VM %s - Shutdown", sl('Vm')->getVm()->getVmid())); //sleep $this->sleep(20); return false; } else { if ($this->getModelData()['shutdown']) { //start if ($this->isDone() && !sl('Vm')->getVm()->isRunning()) { return true; } else { if ($this->getTask()->getStatus() == "running") { //sleep $this->sleep(20); return false; } else { if ($this->getTask()->isFalied() && $this->configuration()->isLoadBalancerStopOnUpgrade()) { $taskId = sl('Vm')->getVm()->stop(); $this->putModelDataAndSave(["taskId" => $taskId, "node" => sl('Vm')->getVm()->getNode(), "shutdown" => true]); $this->log->info(sprintf("VM %s - Stop", sl('Vm')->getVm()->getVmid())); $this->sleep(20); return false; } } } } } return true; } }