Skip to content

Commit c8b4c17

Browse files
authored
Ensure disabled config is propagated (#209)
* Ensure disabled config is propagated * Fix test * Minor fix
1 parent 6a7b16a commit c8b4c17

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

schemaregistry/rest-service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, CreateAxiosDef
22
import { OAuthClient } from './oauth/oauth-client';
33
import { RestError } from './rest-error';
44
import axiosRetry from "axios-retry";
5-
import { fullJitter, isRetriable } from './retry-helper';
5+
import { fullJitter, isRetriable, isSuccess } from './retry-helper';
66
/*
77
* Confluent-Schema-Registry-TypeScript - Node.js wrapper for Confluent Schema Registry
88
*
@@ -181,7 +181,7 @@ export class RestService {
181181
})
182182
return response;
183183
} catch (error) {
184-
if (axios.isAxiosError(error) && error.response && (error.response.status < 200 || error.response.status > 299)) {
184+
if (axios.isAxiosError(error) && error.response && !isSuccess(error.response.status)) {
185185
const data = error.response.data;
186186
if (data.error_code && data.message) {
187187
error = new RestError(data.message, error.response.status, data.error_code);

schemaregistry/retry-helper.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,13 @@ function fullJitter(baseDelayMs: number, maxDelayMs: number, retriesAttempted: n
44
return Math.random() * Math.min(maxDelayMs, baseDelayMs * 2 ** retriesAttempted)
55
}
66

7+
function isSuccess(statusCode: number): boolean {
8+
return statusCode >= 200 && statusCode <= 299
9+
}
10+
711
function isRetriable(statusCode: number): boolean {
812
return statusCode == 408 || statusCode == 429
913
|| statusCode == 500 || statusCode == 502 || statusCode == 503 || statusCode == 504;
1014
}
1115

12-
export { sleep, fullJitter, isRetriable };
16+
export { sleep, fullJitter, isSuccess, isRetriable };

schemaregistry/serde/serde.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export abstract class Serde {
111111
}
112112
for (let i = 0; i < rules.length; i++ ) {
113113
let rule = rules[i]
114-
if (rule.disabled) {
114+
if (this.isDisabled(rule)) {
115115
continue
116116
}
117117
let mode = rule.mode

schemaregistry/test/serde/avro.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -664,16 +664,16 @@ describe('AvroSerializer', () => {
664664
registry.registerOverride({type: 'ENCRYPT', disabled: true})
665665
deser = new AvroDeserializer(client, SerdeType.VALUE, deserConfig, registry)
666666
obj2 = await deser.deserialize(topic, bytes)
667-
expect(obj2.stringField).not.toEqual(obj.stringField);
668-
expect(obj2.bytesField).not.toEqual(obj.bytesField);
667+
expect(obj2.stringField).not.toEqual("hi");
668+
expect(obj2.bytesField).not.toEqual(Buffer.from([1, 2]));
669669

670670
clearKmsClients()
671671
registry = new RuleRegistry()
672672
registry.registerExecutor(new FieldEncryptionExecutor())
673673
deser = new AvroDeserializer(client, SerdeType.VALUE, {}, registry)
674674
obj2 = await deser.deserialize(topic, bytes)
675-
expect(obj2.stringField).not.toEqual(obj.stringField);
676-
expect(obj2.bytesField).not.toEqual(obj.bytesField);
675+
expect(obj2.stringField).not.toEqual("hi");
676+
expect(obj2.bytesField).not.toEqual(Buffer.from([1, 2]));
677677
})
678678
it('basic encryption with logical type', async () => {
679679
let conf: ClientConfig = {

0 commit comments

Comments
 (0)