blob: b4c5a10540ca5ecc547bea137325703c3207320f [file] [log] [blame]
Aharoni, Pavel (pa0916)ca3cb012018-10-22 15:29:57 +03001/*-
2 * ============LICENSE_START=======================================================
3 * OSAM
4 * ================================================================================
5 * Copyright (C) 2018 AT&T
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
19 */
20
21
22
23package org.onap.osam.services;
24
25import com.fasterxml.jackson.core.JsonParseException;
26import com.fasterxml.jackson.databind.ObjectMapper;
27import org.apache.commons.lang3.StringUtils;
28import org.onap.osam.exceptions.GenericUncheckedException;
29import org.springframework.stereotype.Service;
30
31import javax.inject.Inject;
32import java.io.IOException;
33import java.util.UUID;
34
35
36@Service
37public class AuditServiceImpl implements IAuditService {
38
39 @Inject
40 private IAsyncInstantiationBusinessLogic asyncInstantiationBL;
41
42 @Override
43 public void setFailedAuditStatusFromMso(UUID jobUuid, String requestId, int statusCode, String msoResponse){
44 final String failedMsoRequestStatus = "FAILED";
45 String additionalInfo = formatExceptionAdditionalInfo(statusCode, msoResponse);
46 asyncInstantiationBL.auditMsoStatus(jobUuid, failedMsoRequestStatus, requestId, additionalInfo);
47 }
48
49 private String formatExceptionAdditionalInfo(int statusCode, String msoResponse) {
50 String errorMsg = "Http Code:" + statusCode;
51 if (!StringUtils.isEmpty(msoResponse)) {
52 String filteredJson;
53 try {
54 ObjectMapper objectMapper = new ObjectMapper();
55 filteredJson = StringUtils.defaultIfEmpty(
56 objectMapper.readTree(msoResponse).path("serviceException").toString().replaceAll("[\\{\\}]","") ,
57 msoResponse
58 );
59 } catch (JsonParseException e) {
60 filteredJson = msoResponse;
61 } catch (IOException e) {
62 throw new GenericUncheckedException(e);
63 }
64
65 errorMsg = errorMsg + ", " + filteredJson;
66 }
67 return errorMsg;
68 }
69}