Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
public class MemberDescription {
private final String memberId;
private final Optional<String> groupInstanceId;
private final Optional<String> rackId;
private final String clientId;
private final String host;
private final MemberAssignment assignment;
Expand All @@ -38,6 +39,7 @@ public class MemberDescription {
public MemberDescription(
String memberId,
Optional<String> groupInstanceId,
Optional<String> rackId,
String clientId,
String host,
MemberAssignment assignment,
Expand All @@ -47,6 +49,7 @@ public MemberDescription(
) {
this.memberId = memberId == null ? "" : memberId;
this.groupInstanceId = groupInstanceId;
this.rackId = rackId;
this.clientId = clientId == null ? "" : clientId;
this.host = host == null ? "" : host;
this.assignment = assignment == null ?
Expand All @@ -57,9 +60,36 @@ public MemberDescription(
}

/**
* @deprecated Since 4.0. Use {@link #MemberDescription(String, Optional, String, String, MemberAssignment, Optional, Optional, Optional)} instead.
* @deprecated Since 4.2. Use {@link #MemberDescription(String, Optional, Optional, String, String, MemberAssignment, Optional, Optional, Optional)} instead.
*/
@Deprecated
@Deprecated(since = "4.2", forRemoval = true)
public MemberDescription(
String memberId,
Optional<String> groupInstanceId,
String clientId,
String host,
MemberAssignment assignment,
Optional<MemberAssignment> targetAssignment,
Optional<Integer> memberEpoch,
Optional<Boolean> upgraded
) {
this(
memberId,
groupInstanceId,
Optional.empty(),
clientId,
host,
assignment,
targetAssignment,
memberEpoch,
upgraded
);
}

/**
* @deprecated Since 4.0. Use {@link #MemberDescription(String, Optional, Optional, String, String, MemberAssignment, Optional, Optional, Optional)} instead.
*/
@Deprecated(since = "4.0", forRemoval = true)
public MemberDescription(
String memberId,
Optional<String> groupInstanceId,
Expand All @@ -81,9 +111,9 @@ public MemberDescription(
}

/**
* @deprecated Since 4.0. Use {@link #MemberDescription(String, Optional, String, String, MemberAssignment, Optional, Optional, Optional)} instead.
* @deprecated Since 4.0. Use {@link #MemberDescription(String, Optional, Optional, String, String, MemberAssignment, Optional, Optional, Optional)} instead.
*/
@Deprecated
@Deprecated(since = "4.0", forRemoval = true)
public MemberDescription(
String memberId,
Optional<String> groupInstanceId,
Expand All @@ -102,9 +132,9 @@ public MemberDescription(
}

/**
* @deprecated Since 4.0. Use {@link #MemberDescription(String, Optional, String, String, MemberAssignment, Optional, Optional, Optional)} instead.
* @deprecated Since 4.0. Use {@link #MemberDescription(String, Optional, Optional, String, String, MemberAssignment, Optional, Optional, Optional)} instead.
*/
@Deprecated
@Deprecated(since = "4.0", forRemoval = true)
public MemberDescription(String memberId,
String clientId,
String host,
Expand All @@ -119,6 +149,7 @@ public boolean equals(Object o) {
MemberDescription that = (MemberDescription) o;
return memberId.equals(that.memberId) &&
groupInstanceId.equals(that.groupInstanceId) &&
rackId.equals(that.rackId) &&
clientId.equals(that.clientId) &&
host.equals(that.host) &&
assignment.equals(that.assignment) &&
Expand All @@ -129,7 +160,7 @@ public boolean equals(Object o) {

@Override
public int hashCode() {
return Objects.hash(memberId, groupInstanceId, clientId, host, assignment, targetAssignment, memberEpoch, upgraded);
return Objects.hash(memberId, groupInstanceId, rackId, clientId, host, assignment, targetAssignment, memberEpoch, upgraded);
}

/**
Expand All @@ -146,6 +177,17 @@ public Optional<String> groupInstanceId() {
return groupInstanceId;
}

/**
* The rack id of the group member.
* <p>
* It is only available for consumer groups using the new consumer group protocol
* ({@code group.protocol=consumer}).
* <p>
*/
public Optional<String> rackId() {
return rackId;
}

/**
* The client id of the group member.
*/
Expand Down Expand Up @@ -197,6 +239,7 @@ public Optional<Boolean> upgraded() {
public String toString() {
return "(memberId=" + memberId +
", groupInstanceId=" + groupInstanceId.orElse("null") +
", rackId=" + rackId.orElse("null") +
", clientId=" + clientId +
", host=" + host +
", assignment=" + assignment +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,30 @@

import java.util.Collections;
import java.util.Objects;
import java.util.Optional;

/**
* A detailed description of a single share group member in the cluster.
*/
@InterfaceStability.Evolving
public class ShareMemberDescription {
private final String memberId;
private final Optional<String> rackId;
private final String clientId;
private final String host;
private final ShareMemberAssignment assignment;
private final int memberEpoch;

public ShareMemberDescription(
String memberId,
Optional<String> rackId,
String clientId,
String host,
ShareMemberAssignment assignment,
int memberEpoch
) {
this.memberId = memberId == null ? "" : memberId;
this.rackId = rackId;
this.clientId = clientId == null ? "" : clientId;
this.host = host == null ? "" : host;
this.assignment = assignment == null ?
Expand All @@ -53,6 +57,7 @@ public boolean equals(Object o) {
if (o == null || getClass() != o.getClass()) return false;
ShareMemberDescription that = (ShareMemberDescription) o;
return memberId.equals(that.memberId) &&
rackId.equals(that.rackId) &&
clientId.equals(that.clientId) &&
host.equals(that.host) &&
assignment.equals(that.assignment) &&
Expand All @@ -61,7 +66,7 @@ public boolean equals(Object o) {

@Override
public int hashCode() {
return Objects.hash(memberId, clientId, host, assignment, memberEpoch);
return Objects.hash(memberId, rackId, clientId, host, assignment, memberEpoch);
}

/**
Expand All @@ -71,6 +76,13 @@ public String consumerId() {
return memberId;
}

/**
* The rack id of the group member.
*/
public Optional<String> rackId() {
return rackId;
}

/**
* The client id of the group member.
*/
Expand Down Expand Up @@ -102,6 +114,7 @@ public int memberEpoch() {
@Override
public String toString() {
return "(memberId=" + memberId +
", rackId=" + rackId.orElse("null") +
", clientId=" + clientId +
", host=" + host +
", assignment=" + assignment +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ public ApiResult<CoordinatorKey, ClassicGroupDescription> handleResponse(
memberDescriptions.add(new MemberDescription(
groupMember.memberId(),
Optional.ofNullable(groupMember.groupInstanceId()),
Optional.empty(),
groupMember.clientId(),
groupMember.clientHost(),
new MemberAssignment(partitions),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ private ApiResult<CoordinatorKey, ConsumerGroupDescription> handledConsumerGroup
memberDescriptions.add(new MemberDescription(
groupMember.memberId(),
Optional.ofNullable(groupMember.instanceId()),
Optional.ofNullable(groupMember.rackId()),
groupMember.clientId(),
groupMember.clientHost(),
new MemberAssignment(convertAssignment(groupMember.assignment())),
Expand Down Expand Up @@ -283,6 +284,7 @@ private ApiResult<CoordinatorKey, ConsumerGroupDescription> handledClassicGroupR
memberDescriptions.add(new MemberDescription(
groupMember.memberId(),
Optional.ofNullable(groupMember.groupInstanceId()),
Optional.empty(),
groupMember.clientId(),
groupMember.clientHost(),
new MemberAssignment(partitions),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -119,6 +120,7 @@ public ApiResult<CoordinatorKey, ShareGroupDescription> handleResponse(
describedGroup.members().forEach(groupMember ->
memberDescriptions.add(new ShareMemberDescription(
groupMember.memberId(),
Optional.ofNullable(groupMember.rackId()),
groupMember.clientId(),
groupMember.clientHost(),
new ShareMemberAssignment(convertAssignment(groupMember.assignment())),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4694,7 +4694,7 @@ public void testDescribeOldAndNewConsumerGroups() throws Exception {
.setClientHost("host")
.setClientId("clientId")
.setMemberEpoch(10)
.setRackId("rackid")
.setRackId("rackId")
.setSubscribedTopicNames(singletonList("foo"))
.setSubscribedTopicRegex("regex")
.setAssignment(new ConsumerGroupDescribeResponseData.Assignment()
Expand Down Expand Up @@ -4758,6 +4758,7 @@ public void testDescribeOldAndNewConsumerGroups() throws Exception {
new MemberDescription(
"memberId",
Optional.of("instanceId"),
Optional.of("rackId"),
"clientId",
"host",
new MemberAssignment(
Expand Down Expand Up @@ -4785,6 +4786,7 @@ public void testDescribeOldAndNewConsumerGroups() throws Exception {
new MemberDescription(
"0",
Optional.empty(),
Optional.empty(),
"clientId0",
"clientHost",
new MemberAssignment(
Expand Down Expand Up @@ -10673,6 +10675,7 @@ private static MemberDescription convertToMemberDescriptions(DescribedGroupMembe
MemberAssignment assignment) {
return new MemberDescription(member.memberId(),
Optional.ofNullable(member.groupInstanceId()),
Optional.empty(),
member.clientId(),
member.clientHost(),
assignment,
Expand All @@ -10684,6 +10687,7 @@ private static MemberDescription convertToMemberDescriptions(DescribedGroupMembe
private static ShareMemberDescription convertToShareMemberDescriptions(ShareGroupDescribeResponseData.Member member,
ShareMemberAssignment assignment) {
return new ShareMemberDescription(member.memberId(),
Optional.ofNullable(member.rackId()),
member.clientId(),
member.clientHost(),
assignment,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public class MemberDescriptionTest {

private static final String MEMBER_ID = "member_id";
private static final Optional<String> INSTANCE_ID = Optional.of("instanceId");
private static final Optional<String> RACK_ID = Optional.of("rackId");
private static final String CLIENT_ID = "client_id";
private static final String HOST = "host";
private static final MemberAssignment ASSIGNMENT;
Expand All @@ -39,6 +40,7 @@ public class MemberDescriptionTest {
ASSIGNMENT = new MemberAssignment(Collections.singleton(new TopicPartition("topic", 1)));
STATIC_MEMBER_DESCRIPTION = new MemberDescription(MEMBER_ID,
INSTANCE_ID,
RACK_ID,
CLIENT_ID,
HOST,
ASSIGNMENT,
Expand All @@ -50,6 +52,7 @@ public class MemberDescriptionTest {
@Test
public void testEqualsWithoutGroupInstanceId() {
MemberDescription dynamicMemberDescription = new MemberDescription(MEMBER_ID,
Optional.empty(),
Optional.empty(),
CLIENT_ID,
HOST,
Expand All @@ -59,6 +62,7 @@ public void testEqualsWithoutGroupInstanceId() {
Optional.empty());

MemberDescription identityDescription = new MemberDescription(MEMBER_ID,
Optional.empty(),
Optional.empty(),
CLIENT_ID,
HOST,
Expand All @@ -83,6 +87,7 @@ public void testEqualsWithGroupInstanceId() {

MemberDescription identityDescription = new MemberDescription(MEMBER_ID,
INSTANCE_ID,
RACK_ID,
CLIENT_ID,
HOST,
ASSIGNMENT,
Expand All @@ -98,6 +103,7 @@ public void testEqualsWithGroupInstanceId() {
public void testNonEqual() {
MemberDescription newMemberDescription = new MemberDescription("new_member",
INSTANCE_ID,
RACK_ID,
CLIENT_ID,
HOST,
ASSIGNMENT,
Expand All @@ -110,6 +116,7 @@ public void testNonEqual() {

MemberDescription newInstanceDescription = new MemberDescription(MEMBER_ID,
Optional.of("new_instance"),
RACK_ID,
CLIENT_ID,
HOST,
ASSIGNMENT,
Expand All @@ -122,6 +129,7 @@ public void testNonEqual() {

MemberDescription newTargetAssignmentDescription = new MemberDescription(MEMBER_ID,
INSTANCE_ID,
RACK_ID,
CLIENT_ID,
HOST,
ASSIGNMENT,
Expand All @@ -133,6 +141,7 @@ public void testNonEqual() {

MemberDescription newMemberEpochDescription = new MemberDescription(MEMBER_ID,
INSTANCE_ID,
RACK_ID,
CLIENT_ID,
HOST,
ASSIGNMENT,
Expand All @@ -144,6 +153,7 @@ public void testNonEqual() {

MemberDescription newIsClassicDescription = new MemberDescription(MEMBER_ID,
INSTANCE_ID,
RACK_ID,
CLIENT_ID,
HOST,
ASSIGNMENT,
Expand Down
Loading