2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2020 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.ccsdk.features.a1.adapter;
23 import java.util.Properties;
24 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
25 import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
26 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
27 import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.DeleteA1PolicyOutputBuilder;
28 import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyOutputBuilder;
29 import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyStatusOutputBuilder;
30 import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyTypeOutputBuilder;
31 import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.PutA1PolicyOutputBuilder;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
35 public class A1AdapterClient {
37 private static final String PARAMETERS_PASSED_TO_SLI = "Parameters passed to SLI";
38 private static final String PARAMETERS_RETURNED_BY_SLI = "Parameters returned by SLI";
40 private static final Logger LOG = LoggerFactory.getLogger(A1AdapterClient.class);
42 private SvcLogicService svcLogicService = null;
44 public A1AdapterClient(final SvcLogicService svcLogicService) {
45 this.svcLogicService = svcLogicService;
48 public boolean hasGraph(String module, String rpc, String version, String mode) throws SvcLogicException {
49 return svcLogicService.hasGraph(module, rpc, version, mode);
52 public Properties execute(String module, String rpc, String version, String mode,
53 GetA1PolicyTypeOutputBuilder serviceData, Properties parms) throws SvcLogicException {
55 localProp = MdsalHelper.toProperties(parms, serviceData);
56 if (LOG.isDebugEnabled()) {
57 logParameters(PARAMETERS_PASSED_TO_SLI, localProp);
59 Properties respProps = svcLogicService.execute(module, rpc, version, mode, localProp);
60 if (LOG.isDebugEnabled()) {
61 logParameters(PARAMETERS_RETURNED_BY_SLI, localProp);
63 if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
66 MdsalHelper.toBuilder(respProps, serviceData);
70 public Properties execute(String module, String rpc, String version, String mode,
71 GetA1PolicyStatusOutputBuilder serviceData, Properties parms) throws SvcLogicException {
73 localProp = MdsalHelper.toProperties(parms, serviceData);
74 if (LOG.isDebugEnabled()) {
75 logParameters(PARAMETERS_PASSED_TO_SLI, localProp);
77 Properties respProps = svcLogicService.execute(module, rpc, version, mode, localProp);
78 if (LOG.isDebugEnabled()) {
79 logParameters(PARAMETERS_RETURNED_BY_SLI, localProp);
81 if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
84 MdsalHelper.toBuilder(respProps, serviceData);
88 public Properties execute(String module, String rpc, String version, String mode,
89 GetA1PolicyOutputBuilder serviceData, Properties parms) throws SvcLogicException {
91 localProp = MdsalHelper.toProperties(parms, serviceData);
92 if (LOG.isDebugEnabled()) {
93 logParameters(PARAMETERS_PASSED_TO_SLI, localProp);
95 Properties respProps = svcLogicService.execute(module, rpc, version, mode, localProp);
96 if (LOG.isDebugEnabled()) {
97 logParameters(PARAMETERS_RETURNED_BY_SLI, localProp);
99 if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
102 MdsalHelper.toBuilder(respProps, serviceData);
106 public Properties execute(String module, String rpc, String version, String mode,
107 DeleteA1PolicyOutputBuilder serviceData, Properties parms) throws SvcLogicException {
108 Properties localProp;
109 localProp = MdsalHelper.toProperties(parms, serviceData);
110 if (LOG.isDebugEnabled()) {
111 logParameters(PARAMETERS_PASSED_TO_SLI, localProp);
113 Properties respProps = svcLogicService.execute(module, rpc, version, mode, localProp);
114 if (LOG.isDebugEnabled()) {
115 logParameters(PARAMETERS_RETURNED_BY_SLI, localProp);
117 if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
120 MdsalHelper.toBuilder(respProps, serviceData);
124 public Properties execute(String module, String rpc, String version, String mode,
125 PutA1PolicyOutputBuilder serviceData, Properties parms) throws SvcLogicException {
126 Properties localProp;
127 localProp = MdsalHelper.toProperties(parms, serviceData);
128 if (LOG.isDebugEnabled()) {
129 logParameters(PARAMETERS_PASSED_TO_SLI, localProp);
131 Properties respProps = svcLogicService.execute(module, rpc, version, mode, localProp);
132 if (LOG.isDebugEnabled()) {
133 logParameters(PARAMETERS_RETURNED_BY_SLI, localProp);
135 if ("failure".equalsIgnoreCase(respProps.getProperty("SvcLogic.status"))) {
138 MdsalHelper.toBuilder(respProps, serviceData);
142 private void logParameters(String message, Properties localProp) {
145 for (Object key : localProp.keySet()) {
146 String parmName = (String) key;
147 String parmValue = localProp.getProperty(parmName);
149 LOG.debug("{}={}", parmName, parmValue);