Skip to content
Open
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
15 changes: 15 additions & 0 deletions src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Original file line number Diff line number Diff line change
Expand Up @@ -3201,6 +3201,21 @@ public static void setDynamicBadnessThreshold(double dynamicBadnessThreshold)
conf.dynamic_snitch_badness_threshold = dynamicBadnessThreshold;
}

public static boolean isDynamicSnitch()
{
return conf.dynamic_snitch;
}

public static void setDynamicSnitch(boolean enabled)
{
conf.dynamic_snitch = enabled;
}

public static void setEndpointSnitchClassName(String endpointSnitch)
{
conf.endpoint_snitch = endpointSnitch;
}

public static EncryptionOptions.ServerEncryptionOptions getInternodeMessagingEncyptionOptions()
{
return conf.server_encryption_options;
Expand Down
20 changes: 20 additions & 0 deletions src/java/org/apache/cassandra/service/StorageService.java
Original file line number Diff line number Diff line change
Expand Up @@ -5963,10 +5963,14 @@ public void updateSnitch(String epSnitchClassName, Boolean dynamic, Integer dyna

// point snitch references to the new instance
DatabaseDescriptor.setEndpointSnitch(newSnitch);
DatabaseDescriptor.setEndpointSnitchClassName(epSnitchClassName);
for (String ks : Schema.instance.getKeyspaces())
{
Keyspace.open(ks).getReplicationStrategy().snitch = newSnitch;
}

if (dynamic != null)
DatabaseDescriptor.setDynamicSnitch(dynamic);
}
else
{
Expand Down Expand Up @@ -6458,6 +6462,10 @@ public void clearConnectionHistory()
public void disableAuditLog()
{
AuditLogManager.instance.disableAuditLog();
AuditLogOptions disabledOptions = new AuditLogOptions.Builder(DatabaseDescriptor.getAuditLoggingOptions())
.withEnabled(false)
.build();
DatabaseDescriptor.setAuditLoggingOptions(disabledOptions);
logger.info("Auditlog is disabled");
}

Expand Down Expand Up @@ -6511,6 +6519,7 @@ public void enableAuditLog(String loggerName, Map<String, String> parameters, St
.build();

AuditLogManager.instance.enable(options);
DatabaseDescriptor.setAuditLoggingOptions(options);
logger.info("AuditLog is enabled with configuration: {}", options);
}

Expand Down Expand Up @@ -6633,6 +6642,17 @@ public void enableFullQueryLogger(String path, String rollCycle, Boolean blockin

Preconditions.checkNotNull(path, "cassandra.yaml did not set log_dir and not set as parameter");
FullQueryLogger.instance.enableWithoutClean(File.getPath(path), rollCycle, blocking, maxQueueWeight, maxLogSize, archiveCommand, maxArchiveRetries);

FullQueryLoggerOptions updatedOptions = new FullQueryLoggerOptions();
updatedOptions.log_dir = path;
updatedOptions.roll_cycle = rollCycle;
updatedOptions.block = blocking;
updatedOptions.max_queue_weight = maxQueueWeight;
updatedOptions.max_log_size = maxLogSize;
updatedOptions.archive_command = archiveCommand;
updatedOptions.max_archive_retries = maxArchiveRetries;
updatedOptions.allow_nodetool_archive_command = fqlOptions.allow_nodetool_archive_command;
DatabaseDescriptor.setFullQueryLogOptions(updatedOptions);
}

@Override
Expand Down
18 changes: 18 additions & 0 deletions test/unit/org/apache/cassandra/fql/FullQueryLoggerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -675,6 +675,24 @@ public void testLogQueryNegativeTime() throws Exception
logQuery("", QueryOptions.DEFAULT, queryState(), -1);
}

@Test
public void testEnableFullQueryLoggerUpdatesConfig() throws IOException
{
FullQueryLoggerOptions options = new FullQueryLoggerOptions();
Path tmpDir = Files.createTempDirectory("FullQueryLoggerTest");
options.log_dir = tmpDir.toString();
DatabaseDescriptor.setFullQueryLogOptions(options);

StorageService.instance.enableFullQueryLogger(options.log_dir, "TEST_SECONDLY", true, 5000, 50000, null, 0);

FullQueryLoggerOptions updated = DatabaseDescriptor.getFullQueryLogOptions();
assertEquals("TEST_SECONDLY", updated.roll_cycle);
assertTrue(updated.block);
assertEquals(5000, updated.max_queue_weight);

FullQueryLogger.instance.stop();
}

@Test
public void testJMXArchiveCommand() throws IOException
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.junit.Test;

import org.apache.cassandra.audit.AuditLogManager;
import org.apache.cassandra.audit.AuditLogOptions;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.Keyspace;
import org.apache.cassandra.db.commitlog.CommitLog;
Expand Down Expand Up @@ -659,4 +660,32 @@ public void isReplacingSameHostAddressAndHostIdTest() throws UnknownHostExceptio
System.clearProperty("cassandra.replace_address");
}
}

@Test
public void testAuditLogJmxUpdatesConfig() throws Exception
{
AuditLogOptions baseOptions = new AuditLogOptions.Builder(DatabaseDescriptor.getAuditLoggingOptions())
.withEnabled(false)
.build();
DatabaseDescriptor.setAuditLoggingOptions(baseOptions);

StorageService.instance.enableAuditLog(null, null, null, null, null, null, null);
Assert.assertTrue(DatabaseDescriptor.getAuditLoggingOptions().enabled);

StorageService.instance.disableAuditLog();
Assert.assertFalse(DatabaseDescriptor.getAuditLoggingOptions().enabled);
}

@Test
public void testSnitchSettersUpdateConfig()
{
DatabaseDescriptor.setDynamicSnitch(false);
Assert.assertFalse(DatabaseDescriptor.isDynamicSnitch());
DatabaseDescriptor.setDynamicSnitch(true);
Assert.assertTrue(DatabaseDescriptor.isDynamicSnitch());

DatabaseDescriptor.setEndpointSnitchClassName("org.apache.cassandra.locator.SimpleSnitch");
Assert.assertEquals("org.apache.cassandra.locator.SimpleSnitch",
DatabaseDescriptor.getRawConfig().endpoint_snitch);
}
}