@Override void handleResponse(AbstractResponse abstractResponse) { DescribeConfigsResponse response = (DescribeConfigsResponse) abstractResponse; for (Map.Entry<ConfigResource, KafkaFutureImpl<Config>> entry : unifiedRequestFutures.entrySet()) { ConfigResource configResource = entry.getKey(); KafkaFutureImpl<Config> future = entry.getValue(); DescribeConfigsResponse.Config config = response.config(configResource); if (config == null) { future.completeExceptionally(new UnknownServerException( "Malformed broker response: missing config for " + configResource)); continue; } if (config.error().isFailure()) { future.completeExceptionally(config.error().exception()); continue; } List<ConfigEntry> configEntries = new ArrayList<>(); for (DescribeConfigsResponse.ConfigEntry configEntry : config.entries()) { configEntries.add(new ConfigEntry(configEntry.name(), configEntry.value(), configSource(configEntry.source()), configEntry.isSensitive(), configEntry.isReadOnly(), configSynonyms(configEntry))); } future.complete(new Config(configEntries)); } }
private void verifyDescribeConfigsResponse(DescribeConfigsResponse expected, DescribeConfigsResponse actual, int version) throws Exception { for (ConfigResource resource : expected.configs().keySet()) { Collection<DescribeConfigsResponse.ConfigEntry> deserializedEntries1 = actual.config(resource).entries(); Iterator<DescribeConfigsResponse.ConfigEntry> expectedEntries = expected.config(resource).entries().iterator(); for (DescribeConfigsResponse.ConfigEntry entry : deserializedEntries1) { DescribeConfigsResponse.ConfigEntry expectedEntry = expectedEntries.next(); assertEquals(expectedEntry.name(), entry.name()); assertEquals(expectedEntry.value(), entry.value()); assertEquals(expectedEntry.isReadOnly(), entry.isReadOnly()); assertEquals(expectedEntry.isSensitive(), entry.isSensitive()); if (version == 1 || (expectedEntry.source() != DescribeConfigsResponse.ConfigSource.DYNAMIC_BROKER_CONFIG && expectedEntry.source() != DescribeConfigsResponse.ConfigSource.DYNAMIC_DEFAULT_BROKER_CONFIG)) assertEquals(expectedEntry.source(), entry.source()); else assertEquals(DescribeConfigsResponse.ConfigSource.STATIC_BROKER_CONFIG, entry.source()); } } }