8882a8b68e187d81b524fb0d4a2798c6558edc56
[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.frankfurt;
23
24 import java.io.IOException;
25 import java.util.HashMap;
26 import java.util.Map;
27 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
28 import org.onap.ccsdk.features.sdnr.wt.common.database.requests.ClusterSettingsRequest;
29 import org.onap.ccsdk.features.sdnr.wt.common.database.responses.ClusterSettingsResponse;
30 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.SqlDBClient;
31 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.ReleaseInformation;
32 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.data.ComponentName;
33 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.data.DatabaseInfo;
34 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.data.DatabaseInfo7;
35 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.data.Release;
36 import org.onap.ccsdk.features.sdnr.wt.dataprovider.setup.data.SearchHitConverter;
37 import org.slf4j.Logger;
38 import org.slf4j.LoggerFactory;
39
40 public class FrankfurtReleaseInformationR2 extends ReleaseInformation {
41
42     private final Logger LOG = LoggerFactory.getLogger(FrankfurtReleaseInformationR2.class);
43     private final Map<Release, Map<ComponentName, SearchHitConverter>> converters = new HashMap<>();
44
45     public FrankfurtReleaseInformationR2() {
46         super(Release.FRANKFURT_R2, createDBMap());
47     }
48
49     public static Map<ComponentName, DatabaseInfo> createDBMap() {
50         Map<ComponentName, DatabaseInfo> map = new HashMap<>();
51         map.put(ComponentName.CONNECTIONLOG, new DatabaseInfo7("connectionlog", "connectionlog",
52                 "{\"node-id\": {\"type\": \"keyword\"},\"timestamp\": {\"type\": \"date\"},\"status\": {\"type\": \"keyword\"}}"));
53         map.put(ComponentName.EVENTLOG, new DatabaseInfo7("eventlog", "eventlog",
54                 "{\"node-id\": {\"type\": \"keyword\"},\"source-type\": {\"type\": \"keyword\"},\"timestamp\": {\"type\": \"date\"},\"new-value\": {\"type\": \"keyword\"},\"attribute-name\": {\"type\": \"keyword\"},\"counter\": {\"type\": \"long\"},\"object-id\": {\"type\": \"keyword\"}}"));
55         map.put(ComponentName.FAULTCURRENT, new DatabaseInfo7("faultcurrent", "faultcurrent",
56                 "{\"node-id\": {\"type\": \"keyword\"},\"severity\": {\"type\": \"keyword\"},\"timestamp\": {\"type\": \"date\"},\"problem\": {\"type\": \"keyword\"},\"counter\": {\"type\": \"long\"},\"object-id\":{\"type\": \"keyword\"}}"));
57         map.put(ComponentName.FAULTLOG, new DatabaseInfo7("faultlog", "faultlog",
58                 "{\"node-id\": {\"type\": \"keyword\"},\"severity\": {\"type\": \"keyword\"},\"timestamp\": {\"type\": \"date\"},\"problem\": {\"type\": \"keyword\"},\"counter\": {\"type\": \"long\"},\"object-id\":{\"type\": \"keyword\"},\"source-type\":{\"type\": \"keyword\"}}"));
59         map.put(ComponentName.INVENTORY, new DatabaseInfo7("inventoryequipment", "inventoryequipment",
60                 "{\"date\": {\"type\": \"keyword\"},\"model-identifier\": {\"type\": \"keyword\"},\"manufacturer-identifier\": {\"type\": \"keyword\"},\"type-name\": {\"type\": \"keyword\"},\"description\": {\"type\": \"keyword\"},\"uuid\": {\"type\": \"keyword\"},\"version\": {\"type\": \"keyword\"},\"parent-uuid\": {\"type\": \"keyword\"},\"contained-holder\": {\"type\": \"keyword\"},\"node-id\": {\"type\": \"keyword\"},\"tree-level\": {\"type\": \"long\"},\"part-type-id\": {\"type\": \"keyword\"},\"serial\": {\"type\": \"keyword\"}}"));
61         map.put(ComponentName.HISTORICAL_PERFORMANCE_15M, new DatabaseInfo7("historicalperformance15min",
62                 "historicalperformance15min",
63                 "{\"node-name\":{\"type\": \"keyword\"},\"time-stamp\":{\"type\": \"date\"},\"suspect-interval-flag\":{\"type\":\"boolean\"},\"scanner-id\":{\"type\": \"keyword\"},\"uuid-interface\":{\"type\": \"keyword\"},\"layer-protocol-name\":{\"type\": \"keyword\"},\"granularity-period\":{\"type\": \"keyword\"},\"radio-signal-id\":{\"type\": \"keyword\"}}"));
64         map.put(ComponentName.HISTORICAL_PERFORMANCE_24H, new DatabaseInfo7("historicalperformance24h",
65                 "historicalperformance24h",
66                 "{\"node-name\":{\"type\": \"keyword\"},\"time-stamp\":{\"type\": \"date\"},\"suspect-interval-flag\":{\"type\":\"boolean\"},\"scanner-id\":{\"type\": \"keyword\"},\"uuid-interface\":{\"type\": \"keyword\"},\"layer-protocol-name\":{\"type\": \"keyword\"},\"granularity-period\":{\"type\": \"keyword\"},\"radio-signal-id\":{\"type\": \"keyword\"}}"));
67         map.put(ComponentName.REQUIRED_NETWORKELEMENT, new DatabaseInfo7("networkelement-connection",
68                 "networkelement-connection",
69                 "{\"node-id\": {\"type\": \"keyword\"},\"host\": {\"type\": \"keyword\"},\"port\": {\"type\": \"long\"},\"username\": {\"type\": \"keyword\"},\"password\": {\"type\": \"keyword\"},\"core-model-capability\": {\"type\": \"keyword\"},\"device-type\": {\"type\": \"keyword\"},\"is-required\": {\"type\": \"boolean\"},\"status\": {\"type\": \"keyword\"}}"));
70         map.put(ComponentName.MEDIATOR_SERVER, new DatabaseInfo7("mediator-server", "mediator-server",
71                 "{\"url\":{\"type\": \"keyword\"},\"name\":{\"type\": \"keyword\"}}"));
72         map.put(ComponentName.MAINTENANCE, new DatabaseInfo7("maintenancemode", "maintenancemode",
73                 "{\"node-id\": {\"type\": \"keyword\"},\"start\": {\"type\": \"date\"},\"end\": {\"type\": \"date\"},\"description\": {\"type\": \"keyword\"},\"active\": {\"type\": \"boolean\"}},\"date_detection\":false}}"));
74         return map;
75     }
76
77     @Override
78     public SearchHitConverter getConverter(Release dst, ComponentName comp) {
79         SearchHitConverter c = this.converters.containsKey(dst) ? this.converters.get(dst).get(comp) : null;
80         if (c == null) {
81             c = super.getConverter(dst, comp);
82         }
83         return c;
84     }
85
86     @Override
87     public boolean runPreInitCommands(HtDatabaseClient dbClient) {
88
89         ClusterSettingsResponse response = null;
90         try {
91             response = dbClient.setupClusterSettings(new ClusterSettingsRequest(false).maxCompilationsPerMinute(400));
92         } catch (IOException e) {
93             LOG.warn("problem setting up cluster: {}", e);
94         }
95         return response == null ? false : response.isAcknowledged();
96     }
97
98     @Override
99     public boolean runPostInitCommands(HtDatabaseClient dbClient) {
100         return true;
101     }
102
103     @Override
104     public boolean runPreInitCommands(SqlDBClient dbClient) {
105         return false;
106     }
107
108     @Override
109     public boolean runPostInitCommands(SqlDBClient dbClient) {
110         return false;
111     }
112
113 }