in src/testFixtures/java/org/apache/cassandra/sidecar/snapshots/AbstractSnapshotPathBuilderTest.java [77:155]
protected void setup() throws IOException
{
ValidationConfiguration validationConfiguration = new TestValidationConfiguration();
validator = new CassandraInputValidator(validationConfiguration);
Guice.createInjector(new AbstractModule()
{
protected void configure()
{
bind(ValidationConfiguration.class).toInstance(validationConfiguration);
}
});
InstancesConfig mockInstancesConfig = mock(InstancesConfig.class);
InstanceMetadata mockInstanceMeta = mock(InstanceMetadata.class);
InstanceMetadata mockInvalidDataDirInstanceMeta = mock(InstanceMetadata.class);
InstanceMetadata mockEmptyDataDirInstanceMeta = mock(InstanceMetadata.class);
when(mockInstancesConfig.instanceFromHost("localhost")).thenReturn(mockInstanceMeta);
when(mockInstanceMeta.dataDirs()).thenReturn(Arrays.asList(dataDir0.getAbsolutePath(),
dataDir1.getAbsolutePath()));
when(mockInstancesConfig.instanceFromHost("invalidDataDirInstance")).thenReturn(mockInvalidDataDirInstanceMeta);
String invalidDirPath = dataDir0.getParentFile().getAbsolutePath() + "/invalid-data-dir";
when(mockInvalidDataDirInstanceMeta.dataDirs()).thenReturn(Collections.singletonList(invalidDirPath));
when(mockInstancesConfig.instanceFromHost("emptyDataDirInstance")).thenReturn(mockEmptyDataDirInstanceMeta);
when(mockEmptyDataDirInstanceMeta.dataDirs()).thenReturn(Collections.emptyList());
// Create some files and directories
new File(dataDir0, "not_a_keyspace_dir").createNewFile();
new File(dataDir0, "ks1/table1/snapshots/backup.2022-03-17-04-PDT/not_a_file.db").mkdirs();
new File(dataDir0, "ks1/not_a_table_dir").createNewFile();
new File(dataDir0, "ks1/table1/snapshots/not_a_snapshot_dir").createNewFile();
new File(dataDir0, "data/ks2/table2/snapshots/ea823202-a62c-4603-bb6a-4e15d79091cd").mkdirs();
new File(dataDir1, "ks3/table3/snapshots/snapshot1").mkdirs();
// this is a different table with the same "table4" prefix
new File(dataDir1, "data/ks4/table4abc-a72c8740a57611ec935db766a70c44a1" +
"/snapshots/this_is_a_valid_snapshot_name_i_❤_u").mkdirs();
// table && table-<TABLE_UUID>
new File(dataDir0, "ks1/a_table/snapshots/a_snapshot/").mkdirs();
new File(dataDir0, "ks1/a_table-a72c8740a57611ec935db766a70c44a1/snapshots/a_snapshot/").mkdirs();
// create some files inside snapshot backup.2022-03-17-04-PDT
new File(dataDir0, "ks1/table1/snapshots/backup.2022-03-17-04-PDT/data.db").createNewFile();
new File(dataDir0, "ks1/table1/snapshots/backup.2022-03-17-04-PDT/index.db").createNewFile();
new File(dataDir0, "ks1/table1/snapshots/backup.2022-03-17-04-PDT/nb-203-big-TOC.txt").createNewFile();
// create some files inside snapshot ea823202-a62c-4603-bb6a-4e15d79091cd
new File(dataDir0, "data/ks2/table2/snapshots/ea823202-a62c-4603-bb6a-4e15d79091cd/data.db")
.createNewFile();
new File(dataDir0, "data/ks2/table2/snapshots/ea823202-a62c-4603-bb6a-4e15d79091cd/index.db")
.createNewFile();
new File(dataDir0, "data/ks2/table2/snapshots/ea823202-a62c-4603-bb6a-4e15d79091cd/nb-203-big-TOC.txt")
.createNewFile();
// create some files inside snapshot snapshot1 in dataDir1
new File(dataDir1, "ks3/table3/snapshots/snapshot1/data.db").createNewFile();
new File(dataDir1, "ks3/table3/snapshots/snapshot1/index.db").createNewFile();
new File(dataDir1, "ks3/table3/snapshots/snapshot1/nb-203-big-TOC.txt").createNewFile();
new File(dataDir1, "data/ks4/table4abc-a72c8740a57611ec935db766a70c44a1" +
"/snapshots/this_is_a_valid_snapshot_name_i_❤_u/data.db").createNewFile();
new File(dataDir1, "data/ks4/table4abc-a72c8740a57611ec935db766a70c44a1" +
"/snapshots/this_is_a_valid_snapshot_name_i_❤_u/index.db").createNewFile();
new File(dataDir1, "data/ks4/table4abc-a72c8740a57611ec935db766a70c44a1" +
"/snapshots/this_is_a_valid_snapshot_name_i_❤_u/nb-203-big-TOC.txt").createNewFile();
vertx = Vertx.vertx();
Configuration configuration = mock(Configuration.class);
WorkerPoolConfiguration workerPoolConf = new WorkerPoolConfiguration("test-pool", 10,
TimeUnit.SECONDS.toMillis(30));
when(configuration.serverWorkerPoolConfiguration()).thenReturn(workerPoolConf);
when(configuration.serverInternalWorkerPoolConfiguration()).thenReturn(workerPoolConf);
executorPools = new ExecutorPools(vertx, configuration);
instance = initialize(vertx, mockInstancesConfig, executorPools);
}