Skip to content

Commit e4efe15

Browse files
committed
Fix to use default credential providers
1 parent 4110cdb commit e4efe15

File tree

10 files changed

+13
-83
lines changed

10 files changed

+13
-83
lines changed

.github/workflows/object-storage-adapter-check.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ jobs:
9191
run: |
9292
container_id=$(docker create "container-registry.oracle.com/java/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}")
9393
docker cp -L "$container_id:/usr/java/default" /usr/lib/jvm/oracle-jdk && docker rm "$container_id"
94+
9495
- name: Setup Gradle
9596
uses: gradle/actions/setup-gradle@v5
9697

@@ -145,11 +146,17 @@ jobs:
145146
run: |
146147
container_id=$(docker create "container-registry.oracle.com/java/jdk:${{ env.INT_TEST_JAVA_RUNTIME_VERSION }}")
147148
docker cp -L "$container_id:/usr/java/default" /usr/lib/jvm/oracle-jdk && docker rm "$container_id"
149+
148150
- name: Setup Gradle
149151
uses: gradle/actions/setup-gradle@v5
150152

153+
- name: Prepare Google Cloud Credentials
154+
run: |
155+
echo '${{ env.CLOUD_STORAGE_SERVICE_ACCOUNT_KEY }}' > $HOME/gcloud_service_account.json
156+
export GOOGLE_APPLICATION_CREDENTIALS=$HOME/gcloud_service_account.json
157+
151158
- name: Execute Gradle 'integrationTestObjectStorage' task
152-
run: ./gradlew integrationTestObjectStorage -Dscalardb.object_storage.storage=cloud-storage -Dscalardb.object_storage.endpoint=scalardb-test-bucket -Dscalardb.object_storage.username=${{ env.CLOUD_STORAGE_PROJECT_ID }} -Dscalardb.object_storage.password=${{ env.CLOUD_STORAGE_SERVICE_ACCOUNT_KEY }} ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }}
159+
run: ./gradlew integrationTestObjectStorage -Dscalardb.object_storage.storage=cloud-storage -Dscalardb.object_storage.endpoint=scalardb-test-bucket -Dscalardb.object_storage.username=${{ env.CLOUD_STORAGE_PROJECT_ID }} ${{ matrix.mode.group_commit_enabled && env.INT_TEST_GRADLE_OPTIONS_FOR_GROUP_COMMIT || '' }}
153160

154161
- name: Upload Gradle test reports
155162
if: always()

core/src/main/java/com/scalar/db/common/CoreError.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -931,18 +931,6 @@ public enum CoreError implements ScalarDbError {
931931
"Conditions on indexed columns in cross-partition scan operations are not allowed in the SERIALIZABLE isolation level",
932932
"",
933933
""),
934-
OBJECT_STORAGE_CLOUD_STORAGE_SERVICE_ACCOUNT_KEY_NOT_FOUND(
935-
Category.USER_ERROR,
936-
"0263",
937-
"The service account key for Cloud Storage was not found.",
938-
"",
939-
""),
940-
OBJECT_STORAGE_CLOUD_STORAGE_SERVICE_ACCOUNT_KEY_LOAD_FAILED(
941-
Category.USER_ERROR,
942-
"0264",
943-
"Failed to load the service account key for Cloud Storage.",
944-
"",
945-
""),
946934

947935
//
948936
// Errors for the concurrency error category

core/src/main/java/com/scalar/db/storage/objectstorage/ObjectStorageConfig.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,6 @@ public interface ObjectStorageConfig {
99
*/
1010
String getStorageName();
1111

12-
/**
13-
* Returns the password for authentication.
14-
*
15-
* @return the password
16-
*/
17-
String getPassword();
18-
1912
/**
2013
* Returns the bucket name.
2114
*

core/src/main/java/com/scalar/db/storage/objectstorage/blobstorage/BlobStorageConfig.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ public String getStorageName() {
7878
return STORAGE_NAME;
7979
}
8080

81-
@Override
82-
public String getPassword() {
83-
return password;
84-
}
85-
8681
@Override
8782
public String getBucket() {
8883
return bucket;
@@ -101,6 +96,10 @@ public String getUsername() {
10196
return username;
10297
}
10398

99+
public String getPassword() {
100+
return password;
101+
}
102+
104103
public Optional<Long> getParallelUploadBlockSizeInBytes() {
105104
return Optional.ofNullable(parallelUploadBlockSizeInBytes);
106105
}

core/src/main/java/com/scalar/db/storage/objectstorage/cloudstorage/CloudStorageConfig.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,8 @@
22

33
import static com.scalar.db.config.ConfigUtils.getInt;
44

5-
import com.google.auth.Credentials;
6-
import com.google.auth.oauth2.ServiceAccountCredentials;
7-
import com.scalar.db.common.CoreError;
85
import com.scalar.db.config.DatabaseConfig;
96
import com.scalar.db.storage.objectstorage.ObjectStorageConfig;
10-
import java.io.ByteArrayInputStream;
11-
import java.io.IOException;
12-
import java.nio.charset.StandardCharsets;
137
import java.util.Optional;
148
import org.slf4j.Logger;
159
import org.slf4j.LoggerFactory;
@@ -22,7 +16,6 @@ public class CloudStorageConfig implements ObjectStorageConfig {
2216
PREFIX + "parallel_upload_block_size_in_bytes";
2317

2418
private static final Logger logger = LoggerFactory.getLogger(CloudStorageConfig.class);
25-
private final String password;
2619
private final String bucket;
2720
private final String metadataNamespace;
2821
private final String projectId;
@@ -39,7 +32,6 @@ public CloudStorageConfig(DatabaseConfig databaseConfig) {
3932
}
4033
bucket = databaseConfig.getContactPoints().get(0);
4134
projectId = databaseConfig.getUsername().orElse(null);
42-
password = databaseConfig.getPassword().orElse(null);
4335
metadataNamespace = databaseConfig.getSystemNamespaceName();
4436

4537
if (databaseConfig.getScanFetchSize() != DatabaseConfig.DEFAULT_SCAN_FETCH_SIZE) {
@@ -58,11 +50,6 @@ public String getStorageName() {
5850
return STORAGE_NAME;
5951
}
6052

61-
@Override
62-
public String getPassword() {
63-
return password;
64-
}
65-
6653
@Override
6754
public String getBucket() {
6855
return bucket;
@@ -77,21 +64,6 @@ public String getProjectId() {
7764
return projectId;
7865
}
7966

80-
public Credentials getCredentials() {
81-
String serviceAccountJson = getPassword();
82-
if (serviceAccountJson == null) {
83-
throw new IllegalArgumentException(
84-
CoreError.OBJECT_STORAGE_CLOUD_STORAGE_SERVICE_ACCOUNT_KEY_NOT_FOUND.buildMessage());
85-
}
86-
try (ByteArrayInputStream keyStream =
87-
new ByteArrayInputStream(serviceAccountJson.getBytes(StandardCharsets.UTF_8))) {
88-
return ServiceAccountCredentials.fromStream(keyStream);
89-
} catch (IOException e) {
90-
throw new IllegalArgumentException(
91-
CoreError.OBJECT_STORAGE_CLOUD_STORAGE_SERVICE_ACCOUNT_KEY_LOAD_FAILED.buildMessage());
92-
}
93-
}
94-
9567
public Optional<Integer> getParallelUploadBlockSizeInBytes() {
9668
return Optional.ofNullable(parallelUploadBlockSizeInBytes);
9769
}

core/src/main/java/com/scalar/db/storage/objectstorage/cloudstorage/CloudStorageWrapper.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,7 @@ public class CloudStorageWrapper implements ObjectStorageWrapper {
3434
private final Integer parallelUploadBlockSizeInBytes;
3535

3636
public CloudStorageWrapper(CloudStorageConfig config) {
37-
storage =
38-
StorageOptions.newBuilder()
39-
.setProjectId(config.getProjectId())
40-
.setCredentials(config.getCredentials())
41-
.build()
42-
.getService();
37+
storage = StorageOptions.newBuilder().setProjectId(config.getProjectId()).build().getService();
4338
bucket = config.getBucket();
4439
parallelUploadBlockSizeInBytes = config.getParallelUploadBlockSizeInBytes().orElse(null);
4540
}

core/src/main/java/com/scalar/db/storage/objectstorage/s3/S3Config.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ public class S3Config implements ObjectStorageConfig {
2525
public static final String REQUEST_TIMEOUT_IN_SECONDS = PREFIX + "request_timeout_in_seconds";
2626

2727
private static final Logger logger = LoggerFactory.getLogger(S3Config.class);
28-
private final String username;
29-
private final String password;
3028
private final String bucket;
3129
private final String metadataNamespace;
3230
private final String region;
@@ -56,8 +54,6 @@ public S3Config(DatabaseConfig databaseConfig) {
5654
throw new IllegalArgumentException(
5755
"Invalid contact points format. Expected: S3_REGION/BUCKET_NAME");
5856
}
59-
username = databaseConfig.getUsername().orElse(null);
60-
password = databaseConfig.getPassword().orElse(null);
6157
metadataNamespace = databaseConfig.getSystemNamespaceName();
6258

6359
if (databaseConfig.getScanFetchSize() != DatabaseConfig.DEFAULT_SCAN_FETCH_SIZE) {
@@ -82,11 +78,6 @@ public String getStorageName() {
8278
return STORAGE_NAME;
8379
}
8480

85-
@Override
86-
public String getPassword() {
87-
return password;
88-
}
89-
9081
@Override
9182
public String getBucket() {
9283
return bucket;
@@ -101,10 +92,6 @@ public String getRegion() {
10192
return region;
10293
}
10394

104-
public String getUsername() {
105-
return username;
106-
}
107-
10895
public Optional<Long> getParallelUploadBlockSizeInBytes() {
10996
return Optional.ofNullable(parallelUploadBlockSizeInBytes);
11097
}

core/src/main/java/com/scalar/db/storage/objectstorage/s3/S3Wrapper.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
import java.util.Optional;
1414
import java.util.Set;
1515
import javax.annotation.concurrent.ThreadSafe;
16-
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
17-
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
1816
import software.amazon.awssdk.core.ResponseBytes;
1917
import software.amazon.awssdk.core.async.AsyncRequestBody;
2018
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
@@ -61,9 +59,6 @@ public S3Wrapper(S3Config config) {
6159
this.client =
6260
S3AsyncClient.builder()
6361
.region(Region.of(config.getRegion()))
64-
.credentialsProvider(
65-
StaticCredentialsProvider.create(
66-
AwsBasicCredentials.create(config.getUsername(), config.getPassword())))
6762
.httpClientBuilder(httpClientBuilder)
6863
.multipartConfiguration(multipartConfigBuilder.build())
6964
.overrideConfiguration(overrideConfigBuilder.build())

core/src/test/java/com/scalar/db/storage/objectstorage/cloudstorage/CloudStorageConfigTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public void constructor_AllPropertiesGiven_ShouldLoadProperly() {
3535
// Assert
3636
assertThat(config.getProjectId()).isEqualTo(ANY_PROJECT_ID);
3737
assertThat(config.getBucket()).isEqualTo(ANY_BUCKET);
38-
assertThat(config.getPassword()).isEqualTo(ANY_PASSWORD);
3938
assertThat(config.getMetadataNamespace()).isEqualTo(ANY_TABLE_METADATA_NAMESPACE);
4039
assertThat(config.getParallelUploadBlockSizeInBytes()).isNotEmpty();
4140
assertThat(config.getParallelUploadBlockSizeInBytes().get()).isEqualTo(5242880);
@@ -56,7 +55,6 @@ public void constructor_PropertiesWithoutNonMandatoryOptionsGiven_ShouldLoadProp
5655
// Assert
5756
assertThat(config.getProjectId()).isEqualTo(ANY_PROJECT_ID);
5857
assertThat(config.getBucket()).isEqualTo(ANY_BUCKET);
59-
assertThat(config.getPassword()).isEqualTo(ANY_PASSWORD);
6058
assertThat(config.getMetadataNamespace())
6159
.isEqualTo(DatabaseConfig.DEFAULT_SYSTEM_NAMESPACE_NAME);
6260
assertThat(config.getParallelUploadBlockSizeInBytes()).isEmpty();

core/src/test/java/com/scalar/db/storage/objectstorage/s3/S3ConfigTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ public void constructor_AllPropertiesGiven_ShouldLoadProperly() {
4343
// Assert
4444
assertThat(config.getRegion()).isEqualTo(ANY_REGION);
4545
assertThat(config.getBucket()).isEqualTo(ANY_BUCKET);
46-
assertThat(config.getUsername()).isEqualTo(ANY_USERNAME);
47-
assertThat(config.getPassword()).isEqualTo(ANY_PASSWORD);
4846
assertThat(config.getMetadataNamespace()).isEqualTo(ANY_TABLE_METADATA_NAMESPACE);
4947
assertThat(config.getParallelUploadBlockSizeInBytes()).isNotEmpty();
5048
assertThat(config.getParallelUploadBlockSizeInBytes().get()).isEqualTo(5242880);
@@ -71,8 +69,6 @@ public void constructor_PropertiesWithoutNonMandatoryOptionsGiven_ShouldLoadProp
7169
// Assert
7270
assertThat(config.getRegion()).isEqualTo(ANY_REGION);
7371
assertThat(config.getBucket()).isEqualTo(ANY_BUCKET);
74-
assertThat(config.getUsername()).isEqualTo(ANY_USERNAME);
75-
assertThat(config.getPassword()).isEqualTo(ANY_PASSWORD);
7672
assertThat(config.getMetadataNamespace())
7773
.isEqualTo(DatabaseConfig.DEFAULT_SYSTEM_NAMESPACE_NAME);
7874
assertThat(config.getParallelUploadBlockSizeInBytes()).isEmpty();

0 commit comments

Comments
 (0)