cloudInitScript = $cloudInitScript; $this->serverConfiguration = $serverConfiguration; $this->vmModel = $vmModel; } /** * @return Snippet */ public function convert(){ if(!$this->serverConfiguration->snippetDirectory){ throw new \InvalidArgumentException("Snippet Directory is empty"); } $script = html_entity_decode($this->cloudInitScript->script, ENT_QUOTES); $params = sl('whmcsParams')->getWhmcsParams(); $params['passwordHash'] = Utility::passwordHash($params['password']); if($this->vmModel instanceof VmModel){ //load ip addresses $this->vmModel->ipv4Addresses; $this->vmModel->ipv6Addresses; $params['vm'] = $this->vmModel->toArray(); //password decode $params['vm']['password'] = $this->vmModel->getPassword(); $params['vm']['passwordHash'] = Utility::passwordHash($params['vm']['password']); $filename = sprintf("userconfig-%s-%s.yaml",$this->getWhmcsParamByKey('serviceid'), $this->vmModel->id); }else{//vps $filename = sprintf("userconfig-%s.yaml",$this->getWhmcsParamByKey('serviceid')); } $content = $this->getSmarty()->fetchString($script, $params); return new Snippet($this->serverConfiguration->snippetDirectory,$filename, $content); } }