2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * Copyright (C) 2017 Amdocs
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
23 package org.openecomp.appc.licmgr.impl;
25 import javax.sql.rowset.CachedRowSet;
27 import org.openecomp.appc.licmgr.Constants;
28 import org.openecomp.appc.licmgr.LicenseDataAccessService;
29 import org.openecomp.appc.licmgr.exception.DataAccessException;
30 import com.att.eelf.configuration.EELFLogger;
31 import com.att.eelf.configuration.EELFManager;
32 import org.openecomp.sdnc.sli.resource.dblib.DbLibService;
34 import static org.openecomp.appc.licmgr.Constants.ASDC_ARTIFACTS_FIELDS;
36 import java.sql.SQLException;
37 import java.util.ArrayList;
38 import java.util.HashMap;
42 @SuppressWarnings("JavaDoc")
43 public class LicenseDataAccessServiceImpl implements LicenseDataAccessService {
45 private static EELFLogger logger = EELFManager.getInstance().getLogger(LicenseDataAccessServiceImpl.class);
47 public void setSchema(String schema) {
51 private String schema;
53 public void setDbLibService(DbLibService dbLibService) {
54 this.dbLibService = dbLibService;
57 private DbLibService dbLibService;
63 public LicenseDataAccessServiceImpl(){}
66 public Map<String,String> retrieveLicenseModelData(String vnfType, String vnfVersion, String... fields) throws
69 Map<String,String> result = new HashMap<>();
70 if (null == fields || 0 == fields.length) fields = new String[]{ASDC_ARTIFACTS_FIELDS.ARTIFACT_CONTENT.name()};
72 String queryString = buildQueryStatement();
74 ArrayList<String> argList = new ArrayList<>();
76 argList.add(vnfVersion);
77 argList.add(Constants.VF_LICENSE);
81 final CachedRowSet data = dbLibService.getData(queryString, argList, Constants.NETCONF_SCHEMA);
84 for (String field : fields) {
85 result.put(field, data.getString(field));
88 String msg = "Missing license model for VNF_TYPE: " + vnfType + " and VNF_VERSION: " + vnfVersion + " in table " + Constants.ASDC_ARTIFACTS_TABLE_NAME;
91 } catch (SQLException e) {
92 logger.error("Error Accessing Database " + e);
93 throw new DataAccessException(e);
99 private String buildQueryStatement() {
100 return "select * " + "from " + Constants.ASDC_ARTIFACTS_TABLE_NAME + " " +
101 "where " + ASDC_ARTIFACTS_FIELDS.RESOURCE_NAME.name() + " = ?" +
102 " AND " + ASDC_ARTIFACTS_FIELDS.RESOURCE_VERSION.name() + " = ?" +
103 " AND " + ASDC_ARTIFACTS_FIELDS.ARTIFACT_TYPE.name() + " = ?";
107 * Implementation of storeArtifactPayload()
108 * @see LicenseDataAccessService
111 public void storeArtifactPayload(Map<String, String> parameters) throws RuntimeException {
113 if(parameters == null || parameters.isEmpty()) {
114 throw new RuntimeException("No parameters for insert are provided");
117 String insertStr = "INSERT INTO " + Constants.ASDC_ARTIFACTS_TABLE_NAME + "(";
118 String valuesStr = "VALUES(";
119 String insertStatementStr;
121 ArrayList<String> params = new ArrayList<>();
122 boolean firstTime = true;
123 for(Map.Entry<String, String> entry : parameters.entrySet()) {
131 insertStr += entry.getKey();
134 params.add(entry.getValue());
139 insertStatementStr = insertStr + " " + valuesStr;
141 executeStoreArtifactPayload(insertStatementStr, params);
145 * Exexutes insert statement for artifact payload
146 * @param insertStatementStr
148 * @throws RuntimeException
150 private void executeStoreArtifactPayload(String insertStatementStr, ArrayList<String> params) throws RuntimeException {
153 logger.info("used schema=" + this.schema);
154 logger.info("insert statement=" + insertStatementStr);
156 dbLibService.writeData(insertStatementStr, params, this.schema);
158 logger.info("finished to execute insert");
160 } catch (SQLException e) {
161 logger.error("Storing Artifact payload failed - " + insertStatementStr);
162 throw new RuntimeException("Storing Artifact payload failed - " + insertStatementStr);