@@ -483,7 +483,9 @@ Baton AdminClient::CreatePartitions(
483
483
484
484
Baton AdminClient::ListGroups (
485
485
bool is_match_states_set,
486
- std::vector<rd_kafka_consumer_group_state_t > &match_states, int timeout_ms,
486
+ std::vector<rd_kafka_consumer_group_state_t > &match_states,
487
+ bool is_match_types_set,
488
+ std::vector<rd_kafka_consumer_group_type_t > &match_types, int timeout_ms,
487
489
/* out */ rd_kafka_event_t **event_response) {
488
490
if (!IsConnected ()) {
489
491
return Baton (RdKafka::ERR__STATE);
@@ -515,6 +517,15 @@ Baton AdminClient::ListGroups(
515
517
}
516
518
}
517
519
520
+ if (is_match_types_set) {
521
+ rd_kafka_error_t *error =
522
+ rd_kafka_AdminOptions_set_match_consumer_group_types (
523
+ options, &match_types[0 ], match_types.size ());
524
+ if (error) {
525
+ return Baton::BatonFromErrorAndDestroy (error);
526
+ }
527
+ }
528
+
518
529
// Create queue just for this operation.
519
530
rd_kafka_queue_t *rkqu = rd_kafka_queue_new (m_client->c_ptr ());
520
531
@@ -1195,9 +1206,25 @@ NAN_METHOD(AdminClient::NodeListGroups) {
1195
1206
}
1196
1207
}
1197
1208
1209
+ std::vector<rd_kafka_consumer_group_type_t > match_types;
1210
+ v8::Local<v8::String> match_consumer_group_types_key =
1211
+ Nan::New (" matchConsumerGroupTypes" ).ToLocalChecked ();
1212
+ bool is_match_types_set =
1213
+ Nan::Has (config, match_consumer_group_types_key).FromMaybe (false );
1214
+ v8::Local<v8::Array> match_types_array = Nan::New<v8::Array>();
1215
+
1216
+ if (is_match_types_set) {
1217
+ match_types_array = GetParameter<v8::Local<v8::Array>>(
1218
+ config, " matchConsumerGroupTypes" , match_types_array);
1219
+ if (match_types_array->Length ()) {
1220
+ match_types = Conversion::Admin::FromV8GroupTypeArray (
1221
+ match_types_array);
1222
+ }
1223
+ }
1224
+
1198
1225
// Queue the work.
1199
1226
Nan::AsyncQueueWorker (new Workers::AdminClientListGroups (
1200
- callback, client, is_match_states_set, match_states, timeout_ms));
1227
+ callback, client, is_match_states_set, match_states, is_match_types_set, match_types, timeout_ms));
1201
1228
}
1202
1229
1203
1230
/* *
0 commit comments