466a3e290fb1d8da28acceb28e4cd3015329545b
[ccsdk/features.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP : ccsdk features
4  * ================================================================================
5  * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
6  * All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *     http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  *
21  */
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.setup;
23
24 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.SdnrDbType;
25 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.data.DataMigrationReport;
26 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.data.Release;
27 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.database.ElasticsearchDataMigrationProvider;
28 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.database.MariaDbDataMigrationProvider;
29
30 public class DataMigrationProviderImpl implements DataMigrationProviderService {
31
32     private final DataMigrationProviderService dbProvider;
33
34     public DataMigrationProviderImpl(SdnrDbType type, String url, String username, String password, boolean trustAll,
35             long timeoutms) throws Exception {
36         if (type == SdnrDbType.ELASTICSEARCH) {
37             dbProvider = new ElasticsearchDataMigrationProvider(url, username, password, trustAll, timeoutms);
38         } else {
39             dbProvider = new MariaDbDataMigrationProvider(url, username, password, trustAll, timeoutms);
40         }
41     }
42
43     @Override
44     public DataMigrationReport importData(String filename, boolean dryrun) throws Exception {
45         return this.dbProvider.importData(filename, dryrun, Release.CURRENT_RELEASE);
46     }
47
48     @Override
49     public DataMigrationReport importData(String filename, boolean dryrun, Release forRelease) throws Exception {
50         return this.dbProvider.importData(filename, dryrun, forRelease);
51     }
52
53
54     /**
55      * export data if file exists .1 (.n) will be created
56      *
57      */
58     @Override
59     public DataMigrationReport exportData(String filename) {
60         return this.dbProvider.exportData(filename);
61     }
62
63     @Override
64     public Release getCurrentVersion() {
65         return Release.CURRENT_RELEASE;
66     }
67
68
69     @Override
70     public Release autoDetectRelease() {
71         return this.dbProvider.autoDetectRelease();
72     }
73
74     @Override
75     public boolean initDatabase(Release release, int numShards, int numReplicas, String dbPrefix, boolean forceRecreate,
76             long timeoutms) {
77         return this.dbProvider.initDatabase(release, numShards, numReplicas, dbPrefix, forceRecreate, timeoutms);
78     }
79
80     @Override
81     public boolean clearDatabase(Release release, String dbPrefix, long timeoutms) {
82         return this.dbProvider.clearDatabase(release, dbPrefix, timeoutms);
83     }
84
85     /**
86      * @param timeoutms
87      * @return
88      */
89     public boolean clearCompleteDatabase(long timeoutms) {
90         return this.clearCompleteDatabase(timeoutms);
91     }
92 }