Skip to content

Commit 1d77126

Browse files
author
Vihas Splunk
committed
chore: record errors in Config
1 parent 0d009fc commit 1d77126

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

src/main/java/com/splunk/kafka/connect/SplunkSinkConnector.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,17 @@ private void validateSplunkConfigurations(final Map<String, String> configs) thr
149149
if (configs.containsKey(DISABLE_VALIDATION) && Boolean.parseBoolean(configs.get(DISABLE_VALIDATION))) {
150150
return;
151151
}
152+
if (configs.getOrDefault(TOKEN_CONF,"").equals("")
153+
|| configs.getOrDefault(URI_CONF,"").equals("")) {
154+
String errorMessage = String.format(
155+
"Either one of '%s' or '%s' must be set for Splunk validation check.",
156+
TOKEN_CONF,
157+
URI_CONF
158+
);
159+
addErrorMessage(TOKEN_CONF, errorMessage);
160+
addErrorMessage(URI_CONF, errorMessage);
161+
return;
162+
}
152163
SplunkSinkConnectorConfig connectorConfig = new SplunkSinkConnectorConfig(configs);
153164
String[] indexes = split(connectorConfig.indexes, ",");
154165
if(indexes == null || indexes.length == 0) {

src/test/java/com/splunk/kafka/connect/SplunkSinkConnecterTest.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,19 @@ public void config() {
7272
ConfigDef config = connector.config();
7373
Assert.assertNotNull(config);
7474
}
75-
75+
@Test
76+
public void testErrorWithoutUriConf() {
77+
final Map<String, String> configs = new HashMap<>();
78+
SinkConnector connector = new SplunkSinkConnector();
79+
configs.put("topics", "b");
80+
configs.put("splunk.indexes", "b");
81+
MockHecClientWrapper clientInstance = new MockHecClientWrapper();
82+
((SplunkSinkConnector) connector).setHecInstance(clientInstance);
83+
Config result = connector.validate(configs);
84+
assertHasErrorMessage(result, URI_CONF, "Either one of 'splunk.hec.token' or 'splunk.hec.uri' must be set for Splunk validation check.", 1);
85+
assertHasErrorMessage(result, TOKEN_CONF, "Either one of 'splunk.hec.token' or 'splunk.hec.uri' must be set for Splunk validation check.", 1);
86+
}
87+
7688
@Test
7789
public void testValidKerberosBothEmpty() {
7890
final Map<String, String> configs = new HashMap<>();
@@ -304,12 +316,15 @@ private void addNecessaryConfigs(Map<String, String> configs) {
304316
configs.put(URI_CONF, TEST_URI);
305317
configs.put(TOKEN_CONF, "blah");
306318
}
307-
308319
private void assertHasErrorMessage(Config config, String property, String msg) {
320+
assertHasErrorMessage(config, property, msg, 0);
321+
}
322+
private void assertHasErrorMessage(Config config, String property, String msg, int idx) {
309323
for (ConfigValue configValue : config.configValues()) {
310324
if (configValue.name().equals(property)) {
325+
System.out.print(configValue.errorMessages());
311326
assertFalse(configValue.errorMessages().isEmpty());
312-
assertTrue(configValue.errorMessages().get(0).contains(msg));
327+
assertTrue(configValue.errorMessages().get(idx).contains(msg));
313328
}
314329
}
315330
}

0 commit comments

Comments
 (0)