From 2565deba4f92eb8377c17589bb1ff5a10d73d19a Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Mon, 16 Dec 2024 10:25:56 +0100 Subject: [PATCH] fix: resource clone name + volume name generation --- app/Livewire/Project/Shared/ResourceOperations.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/Livewire/Project/Shared/ResourceOperations.php b/app/Livewire/Project/Shared/ResourceOperations.php index e67df6aa9..de7bb3c05 100644 --- a/app/Livewire/Project/Shared/ResourceOperations.php +++ b/app/Livewire/Project/Shared/ResourceOperations.php @@ -42,9 +42,11 @@ class ResourceOperations extends Component $uuid = (string) new Cuid2; $server = $new_destination->server; if ($this->resource->getMorphClass() === \App\Models\Application::class) { + $name = 'clone-of-'.str($this->resource->name)->limit(20).'-'.$uuid; + $new_resource = $this->resource->replicate()->fill([ 'uuid' => $uuid, - 'name' => $this->resource->name.'-clone-'.$uuid, + 'name' => $name, 'fqdn' => generateFqdn($server, $uuid), 'status' => 'exited', 'destination_id' => $new_destination->id, @@ -64,8 +66,12 @@ class ResourceOperations extends Component } $persistentVolumes = $this->resource->persistentStorages()->get(); foreach ($persistentVolumes as $volume) { + $volumeName = str($volume->name)->replace($this->resource->uuid, $new_resource->uuid)->value(); + if ($volumeName === $volume->name) { + $volumeName = $new_resource->uuid.'-'.str($volume->name)->afterLast('-'); + } $newPersistentVolume = $volume->replicate()->fill([ - 'name' => $new_resource->uuid.'-'.str($volume->name)->afterLast('-'), + 'name' => $volumeName, 'resource_id' => $new_resource->id, ]); $newPersistentVolume->save();