Skip to content

Commit 7fb178a

Browse files
authored
MINOR: Displaying default entity name in MetadataShell (apache#12053)
When debugging some bugs related to configs, I find we are unable to show default broker/topic entity name since the resourceName="". Changed it to similar to how we trait default client quotas. Reviewers: Luke Chen <[email protected]>
1 parent 2d5871d commit 7fb178a

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

shell/src/main/java/org/apache/kafka/shell/MetadataNodeManager.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ void handleMessage(ApiMessage message) {
215215
}
216216

217217
private void handleCommitImpl(MetadataRecordType type, ApiMessage message)
218-
throws Exception {
218+
throws Exception {
219219
switch (type) {
220220
case REGISTER_BROKER_RECORD: {
221221
DirectoryNode brokersNode = data.root.mkdirs("brokers");
@@ -268,7 +268,7 @@ private void handleCommitImpl(MetadataRecordType type, ApiMessage message)
268268
"Can't handle ConfigResource.Type " + record.resourceType());
269269
}
270270
DirectoryNode configDirectory = data.root.mkdirs("configs").
271-
mkdirs(typeString).mkdirs(record.resourceName());
271+
mkdirs(typeString).mkdirs(record.resourceName().isEmpty() ? "<default>" : record.resourceName());
272272
if (record.value() == null) {
273273
configDirectory.rmrf(record.name());
274274
} else {

shell/src/test/java/org/apache/kafka/shell/MetadataNodeManagerTest.java

+12-6
Original file line numberDiff line numberDiff line change
@@ -138,26 +138,32 @@ public void testPartitionRecord() {
138138

139139
@Test
140140
public void testValidConfigRecord() {
141-
checkValidConfigRecord(ConfigResource.Type.BROKER.id(), "broker");
142-
checkValidConfigRecord(ConfigResource.Type.TOPIC.id(), "topic");
141+
checkValidConfigRecord(ConfigResource.Type.BROKER.id(), "broker", "0", "0");
142+
checkValidConfigRecord(ConfigResource.Type.TOPIC.id(), "topic", "0", "0");
143143
}
144144

145-
private void checkValidConfigRecord(byte resourceType, String typeString) {
145+
@Test
146+
public void testDefaultBrokerRecord() {
147+
checkValidConfigRecord(ConfigResource.Type.BROKER.id(), "broker", "", "<default>");
148+
// Default topic resources are not allowed, so we don't test it.
149+
}
150+
151+
private void checkValidConfigRecord(byte resourceType, String typeString, String resourceName, String resourceNameKey) {
146152
ConfigRecord configRecord = new ConfigRecord()
147153
.setResourceType(resourceType)
148-
.setResourceName("0")
154+
.setResourceName(resourceName)
149155
.setName("name")
150156
.setValue("kraft");
151157

152158
metadataNodeManager.handleMessage(configRecord);
153159
assertEquals("kraft",
154-
metadataNodeManager.getData().root().directory("configs", typeString, "0").file("name").contents());
160+
metadataNodeManager.getData().root().directory("configs", typeString, resourceNameKey).file("name").contents());
155161

156162
// null value indicates delete
157163
configRecord.setValue(null);
158164
metadataNodeManager.handleMessage(configRecord);
159165
assertFalse(
160-
metadataNodeManager.getData().root().directory("configs", typeString, "0").children().containsKey("name"));
166+
metadataNodeManager.getData().root().directory("configs", typeString, resourceNameKey).children().containsKey("name"));
161167
}
162168

163169
@Test

0 commit comments

Comments
 (0)