[release-2.15] fix: extension resources weren't deleted as expected on initialization (#5860)

This is an automated cherry-pick of #5859

/assign guqing

```release-note
修复初始化时未按预期删除自定义资源
```
This commit is contained in:
Halo Dev Bot 2024-05-06 16:41:02 +08:00 committed by GitHub
parent 2178bd8b80
commit a324609dff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 1 deletions

View File

@ -15,6 +15,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import run.halo.app.extension.ExtensionUtil;
import run.halo.app.extension.ReactiveExtensionClient;
import run.halo.app.extension.Unstructured;
import run.halo.app.infra.properties.HaloProperties;
@ -96,7 +97,13 @@ public class ExtensionResourceInitializer implements ApplicationListener<Applica
extension.getMetadata().setVersion(existingExt.getMetadata().getVersion());
return extensionClient.update(extension);
})
.switchIfEmpty(Mono.defer(() -> extensionClient.create(extension)));
.switchIfEmpty(Mono.defer(() -> {
if (ExtensionUtil.isDeleted(extension)) {
// skip deleted extension
return Mono.empty();
}
return extensionClient.create(extension);
}));
}
private List<Resource> listResources(String location) {