Skip to content

Commit 68c707d

Browse files
committed
KAFKA-19298: Move RuntimeLoggerManager to server module
1 parent 5c93ec9 commit 68c707d

4 files changed

Lines changed: 40 additions & 10 deletions

File tree

core/src/main/scala/kafka/server/ConfigAdminManager.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
*/
1717
package kafka.server
1818

19-
import kafka.server.logger.RuntimeLoggerManager
20-
2119
import java.util
2220
import java.util.Properties
2321
import kafka.utils._
@@ -37,6 +35,7 @@ import org.apache.kafka.common.requests.ApiError
3735
import org.apache.kafka.common.resource.{Resource, ResourceType}
3836
import org.apache.kafka.metadata.ConfigRepository
3937
import org.apache.kafka.server.config.AbstractKafkaConfig
38+
import org.apache.kafka.server.logger.RuntimeLoggerManager
4039
import org.slf4j.{Logger, LoggerFactory}
4140

4241
import scala.collection.{Map, Seq}

core/src/main/scala/kafka/server/ControllerApis.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import java.util.concurrent.CompletableFuture
2525
import java.util.function.Consumer
2626
import kafka.network.RequestChannel
2727
import kafka.server.QuotaFactory.QuotaManagers
28-
import kafka.server.logger.RuntimeLoggerManager
2928
import kafka.utils.Logging
3029
import org.apache.kafka.clients.admin.{AlterConfigOp, EndpointType}
3130
import org.apache.kafka.common.Uuid.ZERO_UUID
@@ -58,6 +57,7 @@ import org.apache.kafka.security.DelegationTokenManager
5857
import org.apache.kafka.server.{ApiVersionManager, ProcessRole}
5958
import org.apache.kafka.server.authorizer.Authorizer
6059
import org.apache.kafka.server.common.{ApiMessageAndVersion, RequestLocal}
60+
import org.apache.kafka.server.logger.RuntimeLoggerManager
6161
import org.apache.kafka.server.quota.ControllerMutationQuota
6262

6363
import scala.jdk.CollectionConverters._

core/src/main/java/kafka/server/logger/RuntimeLoggerManager.java renamed to server/src/main/java/org/apache/kafka/server/logger/RuntimeLoggerManager.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
package kafka.server.logger;
18+
package org.apache.kafka.server.logger;
1919

2020
import org.apache.kafka.clients.admin.AlterConfigOp.OpType;
2121
import org.apache.kafka.common.config.LogLevelConfig;
@@ -25,7 +25,6 @@
2525
import org.apache.kafka.common.message.IncrementalAlterConfigsRequestData.AlterConfigsResource;
2626
import org.apache.kafka.common.message.IncrementalAlterConfigsRequestData.AlterableConfig;
2727
import org.apache.kafka.common.protocol.Errors;
28-
import org.apache.kafka.server.logger.LoggingController;
2928

3029
import org.slf4j.Logger;
3130

@@ -49,7 +48,7 @@ public class RuntimeLoggerManager {
4948
private final int nodeId;
5049
private final Logger log;
5150

52-
public RuntimeLoggerManager(int nodeId, Logger log) {
51+
public RuntimeLoggerManager(int nodeId, Logger log) {
5352
this.nodeId = nodeId;
5453
this.log = log;
5554
}
@@ -73,7 +72,12 @@ void alterLogLevelConfigs(Collection<AlterableConfig> ops) {
7372
ops.forEach(op -> {
7473
String loggerName = op.name();
7574
String logLevel = op.value();
76-
switch (OpType.forId(op.configOperation())) {
75+
OpType opType = OpType.forId(op.configOperation());
76+
if (opType == null) {
77+
throw new IllegalArgumentException(
78+
"Invalid log4j configOperation: " + op.configOperation());
79+
}
80+
switch (opType) {
7781
case SET:
7882
if (LoggingController.logLevel(loggerName, logLevel)) {
7983
log.warn("Updated the log level of {} to {}", loggerName, logLevel);
@@ -118,7 +122,13 @@ void validateLoggerNameExists(String loggerName) {
118122
void validateLogLevelConfigs(Collection<AlterableConfig> ops) {
119123
ops.forEach(op -> {
120124
String loggerName = op.name();
121-
switch (OpType.forId(op.configOperation())) {
125+
OpType opType = OpType.forId(op.configOperation());
126+
if (opType == null) {
127+
throw new InvalidRequestException("Unknown operation type " +
128+
(int) op.configOperation() + " is not allowed for the " +
129+
BROKER_LOGGER + " resource");
130+
}
131+
switch (opType) {
122132
case SET:
123133
validateLoggerNameExists(loggerName);
124134
String logLevel = op.value();

core/src/test/java/kafka/server/logger/RuntimeLoggerManagerTest.java renamed to server/src/test/java/org/apache/kafka/server/logger/RuntimeLoggerManagerTest.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
package kafka.server.logger;
17+
package org.apache.kafka.server.logger;
1818

1919
import org.apache.kafka.clients.admin.AlterConfigOp;
2020
import org.apache.kafka.clients.admin.AlterConfigOp.OpType;
2121
import org.apache.kafka.common.errors.InvalidConfigurationException;
2222
import org.apache.kafka.common.errors.InvalidRequestException;
2323
import org.apache.kafka.common.message.IncrementalAlterConfigsRequestData.AlterableConfig;
24-
import org.apache.kafka.server.logger.LoggingController;
2524

2625
import org.junit.jupiter.api.Assertions;
2726
import org.junit.jupiter.api.Test;
@@ -67,6 +66,28 @@ public void testOperationNotAllowed(byte id) {
6766
setValue("TRACE")))).getMessage());
6867
}
6968

69+
@Test
70+
public void testUnknownOperationNotAllowed() {
71+
byte unknownOperation = 99;
72+
assertEquals("Unknown operation type 99 is not allowed for the BROKER_LOGGER resource",
73+
Assertions.assertThrows(InvalidRequestException.class,
74+
() -> MANAGER.validateLogLevelConfigs(List.of(new AlterableConfig().
75+
setName(LOG.getName()).
76+
setConfigOperation(unknownOperation).
77+
setValue("TRACE")))).getMessage());
78+
}
79+
80+
@Test
81+
public void testAlterUnknownOperationNotAllowed() {
82+
byte unknownOperation = 99;
83+
assertEquals("Invalid log4j configOperation: 99",
84+
Assertions.assertThrows(IllegalArgumentException.class,
85+
() -> MANAGER.alterLogLevelConfigs(List.of(new AlterableConfig().
86+
setName(LOG.getName()).
87+
setConfigOperation(unknownOperation).
88+
setValue("TRACE")))).getMessage());
89+
}
90+
7091
@Test
7192
public void testValidateBogusLogLevelNameNotAllowed() {
7293
assertEquals("Cannot set the log level of " + LOG.getName() + " to BOGUS as it is not " +

0 commit comments

Comments
 (0)