mirror of https://github.com/halo-dev/halo
fix: extension resources weren't deleted as expected on initialization (#5859)
#### What type of PR is this? /kind improvement /area core /milestone 2.16.x #### What this PR does / why we need it: 修复初始化时未按预期删除自定义资源 #### Does this PR introduce a user-facing change? ```release-note 修复初始化时未按预期删除自定义资源 ```pull/5803/head
parent
fa286f74ee
commit
9b3f00dab0
|
@ -15,6 +15,7 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import reactor.core.publisher.Flux;
|
import reactor.core.publisher.Flux;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
import run.halo.app.extension.ExtensionUtil;
|
||||||
import run.halo.app.extension.ReactiveExtensionClient;
|
import run.halo.app.extension.ReactiveExtensionClient;
|
||||||
import run.halo.app.extension.Unstructured;
|
import run.halo.app.extension.Unstructured;
|
||||||
import run.halo.app.infra.properties.HaloProperties;
|
import run.halo.app.infra.properties.HaloProperties;
|
||||||
|
@ -96,7 +97,13 @@ public class ExtensionResourceInitializer implements ApplicationListener<Applica
|
||||||
extension.getMetadata().setVersion(existingExt.getMetadata().getVersion());
|
extension.getMetadata().setVersion(existingExt.getMetadata().getVersion());
|
||||||
return extensionClient.update(extension);
|
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) {
|
private List<Resource> listResources(String location) {
|
||||||
|
|
Loading…
Reference in New Issue