All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.playtika.testcontainer.storage.StorageResourcesGenerator Maven / Gradle / Ivy

The newest version!
package com.playtika.testcontainer.storage;

import com.google.cloud.NoCredentials;
import com.google.cloud.storage.BucketInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import com.playtika.testcontainer.storage.StorageProperties.BucketProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;

import java.util.Collection;

@Slf4j
public class StorageResourcesGenerator implements InitializingBean {

    private final Storage storage;
    private final Collection buckets;


    StorageResourcesGenerator(String storageHostUrl, StorageProperties storageProperties) {
        this.storage = buildStorageService(storageHostUrl, storageProperties.getProjectId());
        this.buckets = storageProperties.getBuckets();
    }

    private Storage buildStorageService(String storageHostUrl, String projectId) {
        return StorageOptions.newBuilder()
            .setHost(storageHostUrl)
            .setProjectId(projectId)
            .setCredentials(NoCredentials.getInstance())
            .build()
            .getService();
    }

    @Override
    public void afterPropertiesSet() {
        log.info("Creating buckets.");
        buckets.forEach(this::createBucket);
        log.info("Creating buckets done.");
    }

    private void createBucket(BucketProperties bucket) {
        storage.create(BucketInfo.newBuilder(bucket.name).build());

        log.info("bucket {} created", bucket.name);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy