mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 14:36:17 +00:00
tests
This commit is contained in:
@ -57,6 +57,15 @@ class Queue extends AbstractModel
|
||||
QueueStatus::STOPPED => 'gray',
|
||||
];
|
||||
|
||||
public static function boot(): void
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::deleting(function (Queue $queue) {
|
||||
$queue->server->processManager()->handler()->delete($queue->id, $queue->site_id);
|
||||
});
|
||||
}
|
||||
|
||||
public function getServerIdAttribute(int $value): int
|
||||
{
|
||||
if (! $value) {
|
||||
|
@ -18,6 +18,7 @@
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphToMany;
|
||||
use Illuminate\Filesystem\FilesystemAdapter;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Str;
|
||||
@ -117,26 +118,33 @@ public static function boot(): void
|
||||
parent::boot();
|
||||
|
||||
static::deleting(function (Server $server) {
|
||||
$server->sites()->each(function (Site $site) {
|
||||
$site->delete();
|
||||
});
|
||||
$server->provider()->delete();
|
||||
$server->logs()->each(function (ServerLog $log) {
|
||||
$log->delete();
|
||||
});
|
||||
$server->services()->delete();
|
||||
$server->databases()->delete();
|
||||
$server->databaseUsers()->delete();
|
||||
$server->firewallRules()->delete();
|
||||
$server->cronJobs()->delete();
|
||||
$server->queues()->delete();
|
||||
$server->daemons()->delete();
|
||||
$server->sshKeys()->detach();
|
||||
if (File::exists($server->sshKey()['public_key_path'])) {
|
||||
File::delete($server->sshKey()['public_key_path']);
|
||||
}
|
||||
if (File::exists($server->sshKey()['private_key_path'])) {
|
||||
File::delete($server->sshKey()['private_key_path']);
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$server->sites()->each(function (Site $site) {
|
||||
$site->delete();
|
||||
});
|
||||
$server->logs()->each(function (ServerLog $log) {
|
||||
$log->delete();
|
||||
});
|
||||
$server->services()->delete();
|
||||
$server->databases()->delete();
|
||||
$server->databaseUsers()->delete();
|
||||
$server->firewallRules()->delete();
|
||||
$server->cronJobs()->delete();
|
||||
$server->queues()->delete();
|
||||
$server->daemons()->delete();
|
||||
$server->sshKeys()->detach();
|
||||
if (File::exists($server->sshKey()['public_key_path'])) {
|
||||
File::delete($server->sshKey()['public_key_path']);
|
||||
}
|
||||
if (File::exists($server->sshKey()['private_key_path'])) {
|
||||
File::delete($server->sshKey()['private_key_path']);
|
||||
}
|
||||
$server->provider()->delete();
|
||||
DB::commit();
|
||||
} catch (\Throwable $e) {
|
||||
DB::rollBack();
|
||||
throw $e;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -5,7 +5,11 @@
|
||||
use App\Actions\Service\Manage;
|
||||
use App\Enums\ServiceStatus;
|
||||
use App\Exceptions\ServiceInstallationFailed;
|
||||
use App\SSH\Services\Database\Database as DatabaseAlias;
|
||||
use App\SSH\Services\PHP\PHP as PHPAlias;
|
||||
use App\SSH\Services\ProcessManager\ProcessManager;
|
||||
use App\SSH\Services\ServiceInterface;
|
||||
use App\SSH\Services\WebServer\WebServer as WebServerAlias;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Support\Str;
|
||||
@ -76,6 +80,9 @@ public function server(): BelongsTo
|
||||
return $this->belongsTo(Server::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ProcessManager|DatabaseAlias|PHPAlias|WebServerAlias
|
||||
*/
|
||||
public function handler(): ServiceInterface
|
||||
{
|
||||
$handler = config('core.service_handlers')[$this->name];
|
||||
|
@ -88,7 +88,7 @@ public static function boot(): void
|
||||
parent::boot();
|
||||
|
||||
static::deleting(function (Site $site) {
|
||||
$site->queues()->delete();
|
||||
$site->queues()->each(fn (Queue $queue) => $queue->delete());
|
||||
$site->ssls()->delete();
|
||||
$site->deployments()->delete();
|
||||
$site->deploymentScript()->delete();
|
||||
|
Reference in New Issue
Block a user