refactor(clone): integrate preview cloning logic directly into application cloning function for improved clarity and maintainability
This commit is contained in:
@@ -238,7 +238,28 @@ function clone_application(Application $source, $destination, array $overrides =
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Clone previews with FQDN regeneration
|
// Clone previews with FQDN regeneration
|
||||||
clone_application_previews($source, $newApplication);
|
$applicationPreviews = $source->previews()->get();
|
||||||
|
foreach ($applicationPreviews as $preview) {
|
||||||
|
$newPreview = $preview->replicate([
|
||||||
|
'id',
|
||||||
|
'created_at',
|
||||||
|
'updated_at',
|
||||||
|
])->fill([
|
||||||
|
'uuid' => (string) new Cuid2,
|
||||||
|
'application_id' => $newApplication->id,
|
||||||
|
'status' => 'exited',
|
||||||
|
'fqdn' => null,
|
||||||
|
'docker_compose_domains' => null,
|
||||||
|
]);
|
||||||
|
$newPreview->save();
|
||||||
|
|
||||||
|
// Regenerate FQDN for the cloned preview
|
||||||
|
if ($newApplication->build_pack === 'dockercompose') {
|
||||||
|
$newPreview->generate_preview_fqdn_compose();
|
||||||
|
} else {
|
||||||
|
$newPreview->generate_preview_fqdn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Clone persistent volumes
|
// Clone persistent volumes
|
||||||
$persistentVolumes = $source->persistentStorages()->get();
|
$persistentVolumes = $source->persistentStorages()->get();
|
||||||
@@ -312,29 +333,3 @@ function clone_application(Application $source, $destination, array $overrides =
|
|||||||
|
|
||||||
return $newApplication;
|
return $newApplication;
|
||||||
}
|
}
|
||||||
|
|
||||||
function clone_application_previews(Application $sourceApplication, Application $targetApplication): void
|
|
||||||
{
|
|
||||||
$applicationPreviews = $sourceApplication->previews()->get();
|
|
||||||
foreach ($applicationPreviews as $preview) {
|
|
||||||
$newPreview = $preview->replicate([
|
|
||||||
'id',
|
|
||||||
'created_at',
|
|
||||||
'updated_at',
|
|
||||||
])->fill([
|
|
||||||
'uuid' => (string) new Cuid2,
|
|
||||||
'application_id' => $targetApplication->id,
|
|
||||||
'status' => 'exited',
|
|
||||||
'fqdn' => null,
|
|
||||||
'docker_compose_domains' => null,
|
|
||||||
]);
|
|
||||||
$newPreview->save();
|
|
||||||
|
|
||||||
// Regenerate FQDN for the cloned preview
|
|
||||||
if ($targetApplication->build_pack === 'dockercompose') {
|
|
||||||
$newPreview->generate_preview_fqdn_compose();
|
|
||||||
} else {
|
|
||||||
$newPreview->generate_preview_fqdn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user