X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=datafilecollector%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdcaegen2%2Fcollectors%2Fdatafile%2Fdatastore%2FDataStore.java;fp=datafilecollector%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdcaegen2%2Fcollectors%2Fdatafile%2Fdatastore%2FDataStore.java;h=af0512e609d49412b3f6024ffe395b57237d1ef7;hb=a363dc5ca8922b41768aad60f418647ea1e4e5fe;hp=0000000000000000000000000000000000000000;hpb=7c434fcb459c84543cdb0ad14aa59391c60d16d4;p=nonrtric%2Fplt%2Franpm.git diff --git a/datafilecollector/src/main/java/org/onap/dcaegen2/collectors/datafile/datastore/DataStore.java b/datafilecollector/src/main/java/org/onap/dcaegen2/collectors/datafile/datastore/DataStore.java new file mode 100644 index 0000000..af0512e --- /dev/null +++ b/datafilecollector/src/main/java/org/onap/dcaegen2/collectors/datafile/datastore/DataStore.java @@ -0,0 +1,57 @@ +/*- + * ========================LICENSE_START================================= + * O-RAN-SC + * %% + * Copyright (C) 2021 Nordix Foundation + * %% + * Licensed 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. + * ========================LICENSE_END=================================== + */ + +package org.onap.dcaegen2.collectors.datafile.datastore; + +import java.nio.file.Path; + +import org.onap.dcaegen2.collectors.datafile.configuration.AppConfig; + +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +public interface DataStore { + public enum Bucket { + FILES, LOCKS + } + + public Flux listObjects(Bucket bucket, String prefix); + + public Mono readObject(Bucket bucket, String name); + + public Mono createLock(String name); + + public Mono deleteLock(String name); + + public Mono deleteObject(Bucket bucket, String name); + + public Mono copyFileTo(Path from, String to); + + public Mono create(DataStore.Bucket bucket); + + public Mono deleteBucket(Bucket bucket); + + public Mono fileExists(Bucket bucket, String key); + + public static DataStore create(AppConfig config) { + return config.isS3Enabled() ? new S3ObjectStore(config) : new FileStore(config); + } + +}