UpdateSnippet.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\App\Jobs\Vps;
  3. use ModulesGarden\ProxmoxAddon\App\Enum\Vps\ConfigurableOption;
  4. use ModulesGarden\ProxmoxAddon\App\Factory\Ssh2Factory;
  5. use ModulesGarden\ProxmoxAddon\App\Jobs\Vps\BaseJob;
  6. use ModulesGarden\ProxmoxAddon\App\Models\CloudInitScript;
  7. use ModulesGarden\ProxmoxAddon\App\Providers\SnippetProvider;
  8. use ModulesGarden\ProxmoxAddon\App\Repositories\ServerConfigurationRepository;
  9. use ModulesGarden\ProxmoxAddon\App\Services\CloudInitScriptConveter;
  10. use ModulesGarden\ProxmoxAddon\App\Services\Vps\ProductService;
  11. class UpdateSnippet extends CreateSnippet
  12. {
  13. use ProductService;
  14. public function handle($text)
  15. {
  16. $this->initParams();
  17. $this->initServices();
  18. $this->setHostingId($this->getWhmcsParamByKey("serviceid"));
  19. //Get cloud init script
  20. if($this->isWhmcsConfigOption(ConfigurableOption::CLOUD_INIT_SCRIPT) &&
  21. $this->getWhmcsConfigOption(ConfigurableOption::CLOUD_INIT_SCRIPT) !=0 ){
  22. $id = $this->getWhmcsConfigOption(ConfigurableOption::CLOUD_INIT_SCRIPT);
  23. }else{
  24. $id = $this->configuration()->getCloudInitScript();
  25. }
  26. $serverConfiguration = new ServerConfigurationRepository($this->getWhmcsParamByKey('serverid'));
  27. $ssh = (new Ssh2Factory())->fromServerConfiguration( $serverConfiguration);
  28. $cloudInitScript = CloudInitScript::findOrFail($id);
  29. $conveter = new CloudInitScriptConveter($cloudInitScript, $serverConfiguration);
  30. $snippetProvider = new SnippetProvider($ssh);
  31. $this->params['password'] = decrypt($this->getModelData()['password']);
  32. foreach ($conveter->convert() as $snippet ){
  33. $snippetProvider->update($snippet);
  34. }
  35. }
  36. }