Skip to content

Commit 826ac27

Browse files
committed
Remaining ResourceType and ConfigResourceType enum values
1 parent af1cd3b commit 826ac27

File tree

4 files changed

+87
-10
lines changed

4 files changed

+87
-10
lines changed

examples/incremental_alter_configs.c

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,31 @@ static void print_alter_configs_result(
146146
}
147147
}
148148

149+
/**
150+
* @brief Parse a ConfigResourceType string and return the corresponding enum
151+
* value.
152+
*
153+
* @param restype_id The resource type string, e.g., "TOPIC", "BROKER", etc.
154+
* @return The corresponding rd_kafka_ResourceType_t enum value, or
155+
* RD_KAFKA_RESOURCE_UNKNOWN if the string is invalid.
156+
*/
157+
static rd_kafka_ResourceType_t
158+
parse_ConfigResourceType(const char *restype_id) {
159+
size_t i;
160+
static const char *restype_ids[] = {"TOPIC", "BROKER", "GROUP",
161+
"BROKER_LOGGER", "CLIENT_METRICS"};
162+
static const rd_kafka_ResourceType_t restype_values[] = {
163+
RD_KAFKA_RESOURCE_TOPIC, RD_KAFKA_RESOURCE_BROKER,
164+
RD_KAFKA_RESOURCE_GROUP, RD_KAFKA_RESOURCE_BROKER_LOGGER,
165+
RD_KAFKA_RESOURCE_CLIENT_METRICS};
166+
167+
for (i = 0; i < sizeof(restype_ids) / sizeof(restype_ids[0]); i++) {
168+
if (!strcmp(restype_id, restype_ids[i])) {
169+
return restype_values[i];
170+
}
171+
}
172+
return RD_KAFKA_RESOURCE_UNKNOWN;
173+
}
149174

150175
/**
151176
* @brief Call rd_kafka_IncrementalAlterConfigs() with a list of
@@ -183,10 +208,7 @@ cmd_incremental_alter_configs(rd_kafka_conf_t *conf, int argc, char **argv) {
183208
rd_kafka_ConfigResource_t *config;
184209
rd_kafka_AlterConfigOpType_t op_type;
185210
rd_kafka_ResourceType_t restype =
186-
!strcmp(restype_s, "TOPIC") ? RD_KAFKA_RESOURCE_TOPIC
187-
: !strcmp(restype_s, "BROKER") ? RD_KAFKA_RESOURCE_BROKER
188-
: !strcmp(restype_s, "GROUP") ? RD_KAFKA_RESOURCE_GROUP
189-
: RD_KAFKA_RESOURCE_UNKNOWN;
211+
parse_ConfigResourceType(restype_s);
190212

191213
if (restype == RD_KAFKA_RESOURCE_UNKNOWN) {
192214
usage("Invalid resource type: %s", restype_s);

src/rdkafka.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7883,7 +7883,15 @@ typedef enum rd_kafka_ResourceType_t {
78837883
RD_KAFKA_RESOURCE_GROUP = 3, /**< Group */
78847884
RD_KAFKA_RESOURCE_BROKER = 4, /**< Broker */
78857885
RD_KAFKA_RESOURCE_TRANSACTIONAL_ID = 5, /**< Transactional ID */
7886+
RD_KAFKA_RESOURCE_DELEGATION_TOKEN = 6, /**< Delegation Token */
7887+
RD_KAFKA_RESOURCE_USER = 7, /**< User */
78867888
RD_KAFKA_RESOURCE__CNT, /**< Number of resource types defined */
7889+
7890+
/* FIXME: Split into two enums in next major version. */
7891+
#define RD_KAFKA_RESOURCE_CONFIG_RESOURCE__START RD_KAFKA_RESOURCE_BROKER_LOGGER
7892+
RD_KAFKA_RESOURCE_BROKER_LOGGER = 1000008,
7893+
RD_KAFKA_RESOURCE_CLIENT_METRICS = 1000016,
7894+
RD_KAFKA_RESOURCE_CONFIG_RESOURCE__END,
78877895
} rd_kafka_ResourceType_t;
78887896

78897897
/**

src/rdkafka_admin.c

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2911,8 +2911,19 @@ const char *rd_kafka_ResourcePatternType_name(
29112911
}
29122912

29132913
const char *rd_kafka_ResourceType_name(rd_kafka_ResourceType_t restype) {
2914-
static const char *names[] = {"UNKNOWN", "ANY", "TOPIC",
2915-
"GROUP", "BROKER", "TRANSACTIONAL_ID"};
2914+
static const char *names[] = {"UNKNOWN",
2915+
"ANY",
2916+
"TOPIC",
2917+
"GROUP",
2918+
"BROKER",
2919+
"TRANSACTIONAL_ID",
2920+
"DELEGATION_TOKEN",
2921+
"USER"};
2922+
2923+
if ((unsigned int)restype >= RD_KAFKA_RESOURCE_CONFIG_RESOURCE__START &&
2924+
(unsigned int)restype < RD_KAFKA_RESOURCE_CONFIG_RESOURCE__END)
2925+
return rd_kafka_ConfigResourceType_name(
2926+
rd_kafka_ResourceType_to_ConfigResourceType(restype));
29162927

29172928
if ((unsigned int)restype >= (unsigned int)RD_KAFKA_RESOURCE__CNT)
29182929
return "UNSUPPORTED";
@@ -2928,6 +2939,10 @@ rd_kafka_ResourceType_to_ConfigResourceType(rd_kafka_ResourceType_t restype) {
29282939
return RD_KAFKA_CONFIG_RESOURCE_TOPIC;
29292940
case RD_KAFKA_RESOURCE_BROKER:
29302941
return RD_KAFKA_CONFIG_RESOURCE_BROKER;
2942+
case RD_KAFKA_RESOURCE_BROKER_LOGGER:
2943+
return RD_KAFKA_CONFIG_RESOURCE_BROKER_LOGGER;
2944+
case RD_KAFKA_RESOURCE_CLIENT_METRICS:
2945+
return RD_KAFKA_CONFIG_RESOURCE_CLIENT_METRICS;
29312946
case RD_KAFKA_RESOURCE_GROUP:
29322947
return RD_KAFKA_CONFIG_RESOURCE_GROUP;
29332948
default:
@@ -2942,12 +2957,38 @@ rd_kafka_ResourceType_t rd_kafka_ConfigResourceType_to_ResourceType(
29422957
return RD_KAFKA_RESOURCE_TOPIC;
29432958
case RD_KAFKA_CONFIG_RESOURCE_BROKER:
29442959
return RD_KAFKA_RESOURCE_BROKER;
2960+
case RD_KAFKA_CONFIG_RESOURCE_BROKER_LOGGER:
2961+
return RD_KAFKA_RESOURCE_BROKER_LOGGER;
2962+
case RD_KAFKA_CONFIG_RESOURCE_CLIENT_METRICS:
2963+
return RD_KAFKA_RESOURCE_CLIENT_METRICS;
29452964
case RD_KAFKA_CONFIG_RESOURCE_GROUP:
29462965
return RD_KAFKA_RESOURCE_GROUP;
29472966
default:
29482967
return RD_KAFKA_RESOURCE_UNKNOWN;
29492968
}
29502969
}
2970+
/**
2971+
* @brief Get the name of a ConfigResourceType_t.
2972+
*/
2973+
const char *rd_kafka_ConfigResourceType_name(
2974+
rd_kafka_ConfigResourceType_t config_resource_type) {
2975+
switch (config_resource_type) {
2976+
case RD_KAFKA_CONFIG_RESOURCE_UNKNOWN:
2977+
return "UNKNOWN";
2978+
case RD_KAFKA_CONFIG_RESOURCE_TOPIC:
2979+
return "TOPIC";
2980+
case RD_KAFKA_CONFIG_RESOURCE_BROKER:
2981+
return "BROKER";
2982+
case RD_KAFKA_CONFIG_RESOURCE_BROKER_LOGGER:
2983+
return "BROKER_LOGGER";
2984+
case RD_KAFKA_CONFIG_RESOURCE_CLIENT_METRICS:
2985+
return "CLIENT_METRICS";
2986+
case RD_KAFKA_CONFIG_RESOURCE_GROUP:
2987+
return "GROUP";
2988+
default:
2989+
return "UNSUPPORTED";
2990+
}
2991+
}
29512992

29522993

29532994
rd_kafka_ConfigResource_t *

src/rdkafka_admin.h

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,13 @@ struct rd_kafka_ConfigResource_result_s {
287287
* @brief Resource type specific to config apis.
288288
*/
289289
typedef enum rd_kafka_ConfigResourceType_t {
290-
RD_KAFKA_CONFIG_RESOURCE_UNKNOWN = 0,
291-
RD_KAFKA_CONFIG_RESOURCE_TOPIC = 2,
292-
RD_KAFKA_CONFIG_RESOURCE_BROKER = 4,
293-
RD_KAFKA_CONFIG_RESOURCE_GROUP = 32,
290+
RD_KAFKA_CONFIG_RESOURCE_UNKNOWN = 0,
291+
RD_KAFKA_CONFIG_RESOURCE_TOPIC = 2,
292+
RD_KAFKA_CONFIG_RESOURCE_BROKER = 4,
293+
RD_KAFKA_CONFIG_RESOURCE_BROKER_LOGGER = 8,
294+
RD_KAFKA_CONFIG_RESOURCE_CLIENT_METRICS = 16,
295+
RD_KAFKA_CONFIG_RESOURCE_GROUP = 32,
296+
RD_KAFKA_CONFIG_RESOURCE__END,
294297
} rd_kafka_ConfigResourceType_t;
295298

296299
/**
@@ -315,6 +318,9 @@ rd_kafka_ResourceType_t rd_kafka_ConfigResourceType_to_ResourceType(
315318
rd_kafka_ConfigResourceType_t config_resource_type);
316319

317320

321+
const char *rd_kafka_ConfigResourceType_name(
322+
rd_kafka_ConfigResourceType_t config_resource_type);
323+
318324
/**@}*/
319325

320326

0 commit comments

Comments
 (0)