From b296108e5bb8ca7c9d57bb92c7a0bbb10d512dc2 Mon Sep 17 00:00:00 2001 From: Roman Zabaluev Date: Wed, 21 Jul 2021 15:54:31 +0300 Subject: [PATCH] Forward schema registry errors to API (#693) * Forward schema registry errors to API * Fix pr checks job --- .../ui/model/schemaregistry/ErrorResponse.java | 14 ++++++++++++++ .../kafka/ui/service/SchemaRegistryService.java | 7 +++++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/schemaregistry/ErrorResponse.java diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/schemaregistry/ErrorResponse.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/schemaregistry/ErrorResponse.java new file mode 100644 index 0000000000..a7c86b01f1 --- /dev/null +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/schemaregistry/ErrorResponse.java @@ -0,0 +1,14 @@ +package com.provectus.kafka.ui.model.schemaregistry; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class ErrorResponse { + + @JsonProperty("error_code") + private int errorCode; + + private String message; + +} diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/SchemaRegistryService.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/SchemaRegistryService.java index 3f05ddb186..41374120b8 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/SchemaRegistryService.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/SchemaRegistryService.java @@ -14,6 +14,7 @@ import com.provectus.kafka.ui.model.KafkaCluster; import com.provectus.kafka.ui.model.NewSchemaSubject; import com.provectus.kafka.ui.model.SchemaSubject; import com.provectus.kafka.ui.model.SchemaType; +import com.provectus.kafka.ui.model.schemaregistry.ErrorResponse; import com.provectus.kafka.ui.model.schemaregistry.InternalCompatibilityCheck; import com.provectus.kafka.ui.model.schemaregistry.InternalCompatibilityLevel; import com.provectus.kafka.ui.model.schemaregistry.InternalNewSchema; @@ -195,7 +196,8 @@ public class SchemaRegistryService { .body(BodyInserters.fromPublisher(newSchemaSubject, InternalNewSchema.class)) .retrieve() .onStatus(UNPROCESSABLE_ENTITY::equals, - r -> Mono.error(new UnprocessableEntityException("Invalid params"))) + r -> r.bodyToMono(ErrorResponse.class) + .flatMap(x -> Mono.error(new UnprocessableEntityException(x.getMessage())))) .bodyToMono(SubjectIdResponse.class); } @@ -210,7 +212,8 @@ public class SchemaRegistryService { .retrieve() .onStatus(NOT_FOUND::equals, res -> Mono.empty()) .onStatus(UNPROCESSABLE_ENTITY::equals, - r -> Mono.error(new UnprocessableEntityException("Invalid params"))) + r -> r.bodyToMono(ErrorResponse.class) + .flatMap(x -> Mono.error(new UnprocessableEntityException(x.getMessage())))) .bodyToMono(SchemaSubject.class) .filter(s -> Objects.isNull(s.getId())) .switchIfEmpty(Mono.error(new DuplicateEntityException("Such schema already exists")));