2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 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.policy.clamp.controlloop.participant.dcae.httpclient;
23 import org.apache.http.HttpStatus;
24 import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
25 import org.onap.policy.clamp.controlloop.participant.dcae.model.ExternalComponent;
26 import org.onap.policy.clamp.controlloop.participant.dcae.model.Loop;
27 import org.springframework.stereotype.Component;
30 public class ClampHttpClient extends AbstractHttpClient {
32 private static final String STATUS = "/restservices/clds/v2/loop/getstatus/";
33 private static final String CREATE = "/restservices/clds/v2/loop/create/%s?templateName=%s";
34 private static final String DEPLOY = "/restservices/clds/v2/loop/deploy/";
35 private static final String STOP = "/restservices/clds/v2/loop/stop/";
36 private static final String DELETE = "/restservices/clds/v2/loop/delete/";
37 private static final String UNDEPLOY = "/restservices/clds/v2/loop/undeploy/";
38 public static final String STATUS_NOT_FOUND = "STATUS_NOT_FOUND";
39 public static final String POLICY_NOT_FOUND = "POLICY_NOT_FOUND";
44 public ClampHttpClient(ParticipantDcaeParameters parameters) {
45 super(parameters.getClampClientParameters());
51 * @param loopName the loopName
52 * @param templateName the templateName
53 * @return the Loop object or null if error occurred
55 public Loop create(String loopName, String templateName) {
56 return executePost(String.format(CREATE, loopName, templateName), HttpStatus.SC_OK);
62 * @param loopName the loopName
65 public boolean deploy(String loopName) {
66 return executePut(DEPLOY + loopName, HttpStatus.SC_ACCEPTED);
72 * @param loopName the loopName
73 * @return the Loop object or null if error occurred
75 public Loop getstatus(String loopName) {
76 return executeGet(STATUS + loopName, HttpStatus.SC_OK);
82 * @param loopName the loopName
85 public boolean undeploy(String loopName) {
86 return executePut(UNDEPLOY + loopName, HttpStatus.SC_ACCEPTED);
92 * @param loopName the loopName
95 public boolean stop(String loopName) {
96 return executePut(STOP + loopName, HttpStatus.SC_OK);
102 * @param loopName the loopName
105 public boolean delete(String loopName) {
106 return executePut(DELETE + loopName, HttpStatus.SC_OK);
110 * return status from Loop object.
115 public static String getStatusCode(Loop loop) {
116 if (loop == null || loop.getComponents() == null || loop.getComponents().isEmpty()) {
117 return STATUS_NOT_FOUND;
119 ExternalComponent externalComponent = loop.getComponents().get("DCAE");
120 if (externalComponent == null || externalComponent.getComponentState() == null) {
121 return STATUS_NOT_FOUND;
124 return externalComponent.getComponentState().getStateName();