74ea8e9873d73a3529dbba8e4cc30f7edf8bd952
[appc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * APPC
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
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  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  */
22
23 package org.openecomp.appc.licmgr.impl;
24
25 import static org.openecomp.appc.licmgr.Constants.ASDC_ARTIFACTS_FIELDS.ARTIFACT_CONTENT;
26
27 import java.util.Map;
28
29 import org.openecomp.appc.licmgr.LicenseDataAccessService;
30 import org.openecomp.appc.licmgr.LicenseManager;
31 import org.openecomp.appc.licmgr.exception.DataAccessException;
32 import org.openecomp.appc.licmgr.objects.LicenseModel;
33
34
35 @SuppressWarnings("all")
36 public class LicenseManagerImpl implements LicenseManager {
37
38     private LicenseDataAccessService DAService;
39
40     public void setDAService(LicenseDataAccessService daSrv){
41         DAService = daSrv;
42     }
43
44     public LicenseManagerImpl() {
45     }
46
47     @Override
48     public LicenseModel retrieveLicenseModel(String vnfType, String vnfVersion) throws DataAccessException {
49
50         LicenseModel licenseModel;
51         try {
52             Map<String,String> resultMap = DAService.retrieveLicenseModelData(vnfType, vnfVersion);
53             if (resultMap.isEmpty()) {
54                 throw new DataAccessException(String.format("License model not found for vnfType='%s' and vnfVersion='%s'", vnfType, vnfVersion));
55             }
56             String licenseModelXML = resultMap.get(ARTIFACT_CONTENT.name());
57             licenseModel = convert(licenseModelXML);  // JAXBUtil.<VfLicenseModel>toObject(licenseModelXML, VfLicenseModel.class);
58         } catch (DataAccessException le) {
59             throw le;
60         } catch (Exception e) {
61             throw new DataAccessException(e);
62         }
63         return licenseModel;
64     }
65
66     @Override
67     public Map<String, String> retrieveLicenseModelData(String vnfType, String vnfVersion, String... fields)  throws DataAccessException {
68
69         Map<String,String> resultMap = DAService.retrieveLicenseModelData(vnfType, vnfVersion, fields);
70         return resultMap;
71     }
72
73     @Override
74     public void storeArtifactPayload(Map<String, String> parameters) throws RuntimeException {
75
76         DAService.storeArtifactPayload(parameters);
77     }
78
79     private static LicenseModel convert(String xml) {
80
81         LicenseModel licenseModel = new LicenseModel();
82
83         int posEntitlementStart = xml.indexOf("<entitlement-pool-uuid>");
84         int posEntitlementEnd = xml.indexOf("</entitlement-pool-uuid>", posEntitlementStart);
85         if (-1 != posEntitlementStart) {
86             licenseModel.setEntitlementPoolUuid(xml.substring(posEntitlementStart + "<entitlement-pool-uuid>".length(), posEntitlementEnd));
87         }
88
89         int posLicenseStart = xml.indexOf("<license-key-group-uuid>");
90         int posLicenseEnd = xml.indexOf("</license-key-group-uuid>", posEntitlementStart);
91         if (-1 != posLicenseStart) {
92             licenseModel.setLicenseKeyGroupUuid(xml.substring(posLicenseStart + "<license-key-group-uuid>".length(), posLicenseEnd));
93         }
94
95         return licenseModel;
96     }
97
98 }