Skip to content

Commit 9f7340f

Browse files
committed
fix: #237 minor bugs to support chatwoot configuration
1 parent 6f27f7a commit 9f7340f

File tree

5 files changed

+53
-19
lines changed

5 files changed

+53
-19
lines changed

Diff for: app/Models/DeploymentData/Process.php

-9
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,6 @@ public function asNodeTasks(Deployment $deployment): array
117117
}
118118

119119
foreach ($this->configFiles as $configFile) {
120-
$previousConfig = $previous?->findConfigFile($configFile->path);
121-
if ($previousConfig && $configFile->sameAs($previousConfig)) {
122-
$configFile->dockerName = $previousConfig->dockerName;
123-
124-
continue;
125-
}
126-
127120
$configFile->dockerName = $this->makeResourceName('dpl_'.$deployment->id.'_cfg_'.$configFile->path);
128121

129122
$tasks[] = [
@@ -157,8 +150,6 @@ public function asNodeTasks(Deployment $deployment): array
157150
$previousSecret = $previous?->findSecretFile($secretFile->path);
158151
if ($secretFile->sameAs($previousSecret)) {
159152
$secretFile->content = $previousSecret->content;
160-
161-
continue;
162153
}
163154

164155
$secretFile->dockerName = $this->makeResourceName('dpl_'.$deployment->id.'_secret_'.$secretFile->path);

Diff for: app/Models/Service.php

+11-8
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use App\Actions\Nodes\RebuildCaddy;
66
use App\Models\DeploymentData\Process;
7+
use App\Models\DeploymentData\Worker;
78
use App\Models\NodeTasks\DeleteService\DeleteServiceMeta;
89
use App\Traits\HasOwningTeam;
910
use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -62,14 +63,16 @@ protected static function booted()
6263
'invoker_id' => auth()->id(),
6364
]);
6465

65-
$deleteProcessesTasks = collect($service->latestDeployment->data->processes)->map(function (Process $process) use ($service) {
66-
return [
67-
'type' => NodeTaskType::DeleteService,
68-
'meta' => new DeleteServiceMeta($service->id, $process->name, $service->name),
69-
'payload' => [
70-
'ServiceName' => $process->dockerName,
71-
],
72-
];
66+
$deleteProcessesTasks = collect($service->latestDeployment->data->processes)->flatMap(function (Process $process) use ($service) {
67+
return collect($process->workers)->map(function (Worker $worker) use ($service) {
68+
return [
69+
'type' => NodeTaskType::DeleteService,
70+
'meta' => new DeleteServiceMeta($service->id, $worker->name, $service->name),
71+
'payload' => [
72+
'ServiceName' => $worker->dockerName,
73+
],
74+
];
75+
});
7376
})->toArray();
7477

7578
$taskGroup->tasks()->createMany($deleteProcessesTasks);

Diff for: resources/js/Pages/Services/Create.vue

+23
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,29 @@ const applyTemplate = (template) => {
5959
const processes = template.deploymentData.processes.map((process) => {
6060
return {
6161
...process,
62+
workers: process.workers.map((worker) => {
63+
const backupCreate =
64+
worker.launchMode === "backup_create"
65+
? {
66+
...worker.backupCreate,
67+
archive: {
68+
format:
69+
worker.backupCreate?.archive?.format ||
70+
"tar.gz",
71+
},
72+
s3StorageId: props.s3Storages[0]?.id,
73+
}
74+
: null;
75+
76+
const crontab =
77+
worker.launchMode === "backup_create" ? "0 0 * * *" : null;
78+
79+
return {
80+
crontab,
81+
...worker,
82+
backupCreate,
83+
};
84+
}),
6285
placementNodeId:
6386
process.volumes.length > 0 && props.nodes.length === 1
6487
? props.nodes[0].id

Diff for: resources/js/Pages/Services/Partials/DeploymentData/WorkerForm.vue

+5-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,11 @@ const commandPlaceholder = computed(() => {
280280
281281
<Select
282282
v-model="model.backupCreate.s3StorageId"
283-
placeholder="No S3 Storages found"
283+
:placeholder="
284+
s3Storages.length > 0
285+
? 'Select S3 Storage'
286+
: 'No S3 Storages found'
287+
"
284288
>
285289
<option v-for="storage in s3Storages" :value="storage.id">
286290
{{ storage.name }}

Diff for: resources/js/Pages/Services/Partials/TemplatePicker.vue

+14-1
Original file line numberDiff line numberDiff line change
@@ -149,16 +149,29 @@ const mapProcessTemplate = (formData, templateSlug, process, newIndex) => {
149149
};
150150
}) || [];
151151
152+
const configFiles = process.data.configFiles
153+
? process.data.configFiles.map((configFile) => {
154+
return {
155+
...configFile,
156+
content: fillPlaceholders(
157+
formData,
158+
templateSlug,
159+
configFile.content,
160+
),
161+
};
162+
})
163+
: [];
164+
152165
return {
153166
id: makeId("process"),
154167
name: "process_" + newIndex,
155168
placementNodeId: null,
156-
configFiles: [],
157169
secretFiles: [],
158170
ports: [],
159171
redirectRules: [],
160172
fastCgi: null,
161173
...process.data,
174+
configFiles,
162175
workers: process.data.workers.map((worker, idx) => {
163176
return {
164177
id: makeId("worker"),

0 commit comments

Comments
 (0)