This is an automated email from the ASF dual-hosted git repository. frankgh pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git
The following commit(s) were added to refs/heads/trunk by this push: new 93bfdc7b CASSSIDECAR-171: Fixed cdc dir path in InstanceMetadata (#157) 93bfdc7b is described below commit 93bfdc7b0615cbfcdf6e7849735df101e37eb4ee Author: N V Harikrishna <n.v.harikrishna.apa...@gmail.com> AuthorDate: Tue Dec 10 22:48:17 2024 +0530 CASSSIDECAR-171: Fixed cdc dir path in InstanceMetadata (#157) Patch by Venkata Harikrishna Nukala; reviewed by Bernardo Botella, Francisco Guerrero, Yifan Cai for CASSANDRASC-171 --- CHANGES.txt | 1 + .../cluster/instance/InstanceMetadataImpl.java | 2 +- .../cluster/instance/InstanceMetadataImplTest.java | 90 ++++++++++++++++++++++ 3 files changed, 92 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 9ae24873..6cc3016f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 1.0.0 ----- + * CDC directory not initialized properly in InstanceMetadata (CASSSIDECAR-171) * yaml configuration defaults to a file that doesn't exist (CASSSIDECAR-122) * Add advanced driver settings to allow taking in password or certificates for Cassandra connection (CASSSIDECAR-159) * Add metric to report consistency check duration (CASSSIDECAR-165) diff --git a/server/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadataImpl.java b/server/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadataImpl.java index c3cded7e..8ab09b20 100644 --- a/server/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadataImpl.java +++ b/server/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadataImpl.java @@ -56,7 +56,7 @@ public class InstanceMetadataImpl implements InstanceMetadata .map(FileUtils::maybeResolveHomeDirectory) .collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList)); stagingDir = FileUtils.maybeResolveHomeDirectory(builder.stagingDir); - cdcDir = builder().cdcDir; + cdcDir = FileUtils.maybeResolveHomeDirectory(builder.cdcDir); delegate = builder.delegate; metrics = builder.metrics; } diff --git a/server/src/test/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadataImplTest.java b/server/src/test/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadataImplTest.java new file mode 100644 index 00000000..a2ee13d3 --- /dev/null +++ b/server/src/test/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadataImplTest.java @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.cassandra.sidecar.cluster.instance; + +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import com.codahale.metrics.MetricRegistry; + +import static org.assertj.core.api.Assertions.assertThat; + +class InstanceMetadataImplTest +{ + + private static final int ID = 123; + private static final String HOST = "testhost"; + private static final int PORT = 12345; + private static final String DATA_DIR_1 = "test/data/data1"; + private static final String DATA_DIR_2 = "test/data/data2"; + private static final String CDC_DIR = "cdc_dir"; + private static final String STAGING_DIR = "staging_dir"; + private static final MetricRegistry METRIC_REGISTRY = new MetricRegistry(); + + @TempDir + Path tempDir; + + @Test + void testConstructor() + { + String rootDir = tempDir.toString(); + + InstanceMetadataImpl metadata = getInstanceMetadataBuilder(rootDir).build(); + + assertThat(metadata.id()).isEqualTo(ID); + assertThat(metadata.host()).isEqualTo(HOST); + assertThat(metadata.port()).isEqualTo(PORT); + assertThat(metadata.dataDirs()).contains(rootDir + "/" + DATA_DIR_1, rootDir + "/" + DATA_DIR_2); + assertThat(metadata.cdcDir()).isEqualTo(rootDir + "/" + CDC_DIR); + assertThat(metadata.stagingDir()).isEqualTo(rootDir + "/" + STAGING_DIR); + } + + @Test + void testConstructorWithHomeDirPaths() + { + String rootDir = "~"; + String homeDir = System.getProperty("user.home"); + + InstanceMetadataImpl metadata = getInstanceMetadataBuilder(rootDir).build(); + + assertThat(metadata.dataDirs()).contains(homeDir + "/" + DATA_DIR_1, homeDir + "/" + DATA_DIR_2); + assertThat(metadata.cdcDir()).isEqualTo(homeDir + "/" + CDC_DIR); + assertThat(metadata.stagingDir()).isEqualTo(homeDir + "/" + STAGING_DIR); + } + + InstanceMetadataImpl.Builder getInstanceMetadataBuilder(String rootDir) + { + List<String> dataDirs = new ArrayList<>(); + dataDirs.add(rootDir + "/" + DATA_DIR_1); + dataDirs.add(rootDir + "/" + DATA_DIR_2); + + return InstanceMetadataImpl.builder() + .id(ID) + .host(HOST) + .port(PORT) + .dataDirs(dataDirs) + .cdcDir(rootDir + "/" + CDC_DIR) + .stagingDir(rootDir + "/" + STAGING_DIR) + .metricRegistry(METRIC_REGISTRY); + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org