CluPilotCloud/app/Provisioning/Steps/Customer/RegisterBackup.php

39 lines
885 B
PHP

<?php
namespace App\Provisioning\Steps\Customer;
use App\Models\ProvisioningRun;
use App\Provisioning\StepResult;
class RegisterBackup extends CustomerStep
{
public function key(): string
{
return 'register_backup';
}
public function maxDuration(): int
{
return 120;
}
public function execute(ProvisioningRun $run): StepResult
{
if ($this->hasResource($run, 'backup_job_id')) {
return StepResult::advance();
}
$instance = $this->instance($run);
$jobId = 'vzdump-'.$instance->vmid.'-daily';
$instance->backups()->create([
'external_job_id' => $jobId,
'schedule' => 'daily 02:00',
'status' => 'scheduled',
]);
$this->recordResource($run, $instance->host, 'backup_job_id', $jobId);
return StepResult::advance();
}
}