summaryrefslogtreecommitdiffstats
path: root/participant/participant-impl/participant-impl-dcae
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2021-05-26 11:02:07 +0100
committerliamfallon <liam.fallon@est.tech>2021-05-26 11:02:11 +0100
commit20c7487f77d0728d270b2bed34c2c798d17cc12d (patch)
treebb20d003255fab584ac64968967fbc6e1f205232 /participant/participant-impl/participant-impl-dcae
parentf83411a86e2277adae69e780e8511913d61a0f17 (diff)
Transfer tosca-poc onto master
This is the third if three commits, this commit makes the content of the master branch the same as the tosca-poc branch. This commit adds the "src" files for TOSCA control loops to the modules in master. Difference between this commit and the current master: ------------------------------------------------------ diff -qr clamp clamp-master |diff_filter.sh Only in clamp/common: src Only in clamp/models: src Files clamp/participant/participant-impl/participant-impl-dcae/pom.xml and clamp-master/participant/participant-impl/participant-impl-dcae/pom.xml differ Only in clamp/participant/participant-impl/participant-impl-dcae: src Only in clamp/participant/participant-impl/participant-impl-policy: src Only in clamp/participant/participant-impl/participant-impl-simulator: src Files clamp/participant/participant-impl/pom.xml and clamp-master/participant/participant-impl/pom.xml differ Only in clamp/participant/participant-intermediary: src Files clamp/participant/pom.xml and clamp-master/participant/pom.xml differ Files clamp/pom.xml and clamp-master/pom.xml differ Files clamp/runtime/pom.xml and clamp-master/runtime/pom.xml differ Only in clamp: runtime-controlloop Difference between this commit and the current tosca-poc branch: ---------------------------------------------------------------- diff -qr clamp clamp-tp |diff_filter.sh Files clamp/INFO.yaml and clamp-tp/INFO.yaml differ Only in clamp/releases: 6.0.1-container.yaml Only in clamp/releases: 6.0.1.yaml Only in clamp/releases: 6.0.2-container.yaml Only in clamp/releases: 6.0.2.yaml Only in clamp/releases: 6.1.0-container.yaml Only in clamp/releases: 6.1.0.yaml Only in clamp/releases: 6.1.1-container.yaml Only in clamp/releases: 6.1.1.yaml Files clamp/runtime/src/main/resources/META-INF/resources/swagger.html and clamp-tp/runtime/src/main/resources/META-INF/resources/swagger.html differ Issue-ID: POLICY-3215 Change-Id: Ica1aa3fe5d6110df2396ea856703102e800fa770 Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'participant/participant-impl/participant-impl-dcae')
-rw-r--r--participant/participant-impl/participant-impl-dcae/pom.xml19
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java154
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java140
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java46
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java197
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeHandler.java82
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeProvider.java133
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameterHandler.java78
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameters.java93
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/Main.java151
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeActivator.java58
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeCommandLineArguments.java151
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponent.java35
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponentState.java34
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/Loop.java36
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/resources/config/DCAEParticipantConfig.json71
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/main/resources/version.txt4
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClientTest.java128
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java294
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameterHandler.java102
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameters.java90
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/rest/TestListenerUtils.java255
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestMain.java151
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestParticipantDcaeActivator.java94
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/InvalidParameters.json3
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/MinimumParametersH2.json61
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/NoParameters.json2
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestCLParams.json160
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParameters.json71
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParametersStd.json71
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/Unreadable.json81
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/logback-test.xml42
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/rest/servicetemplates/pm_control_loop_tosca.yaml452
-rw-r--r--participant/participant-impl/participant-impl-dcae/src/test/resources/rest/status.json3918
34 files changed, 7457 insertions, 0 deletions
diff --git a/participant/participant-impl/participant-impl-dcae/pom.xml b/participant/participant-impl/participant-impl-dcae/pom.xml
index 6186ced61..308084255 100644
--- a/participant/participant-impl/participant-impl-dcae/pom.xml
+++ b/participant/participant-impl/participant-impl-dcae/pom.xml
@@ -31,4 +31,23 @@
<artifactId>policy-clamp-participant-impl-dcae</artifactId>
<name>${project.artifactId}</name>
<description>DCAE participant, that allows DCAE to partake in control loops</description>
+
+ <properties>
+ <mockserver.version>5.11.2</mockserver.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.mock-server</groupId>
+ <artifactId>mockserver-netty</artifactId>
+ <version>${mockserver.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mock-server</groupId>
+ <artifactId>mockserver-client-java</artifactId>
+ <version>${mockserver.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java
new file mode 100644
index 000000000..b2d0b61d0
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/AbstractHttpClient.java
@@ -0,0 +1,154 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.httpclient;
+
+import java.io.Closeable;
+import java.io.IOException;
+import javax.ws.rs.core.Response.Status;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
+import org.apache.http.ParseException;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthCache;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.ssl.SSLContextBuilder;
+import org.apache.http.util.EntityUtils;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
+import org.onap.policy.clamp.controlloop.participant.dcae.model.Loop;
+import org.onap.policy.common.endpoints.parameters.RestServerParameters;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class AbstractHttpClient implements Closeable {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(AbstractHttpClient.class);
+ private final HttpClientContext localContext;
+ private final CloseableHttpClient httpclient;
+ private final HttpHost target;
+ public static final Coder CODER = new StandardCoder();
+
+ /**
+ * Constructor.
+ */
+ protected AbstractHttpClient(RestServerParameters restServerParameters) {
+ try {
+ final String scheme = restServerParameters.isHttps() ? "https" : "http";
+ target = new HttpHost(restServerParameters.getHost(), restServerParameters.getPort(), scheme);
+
+ CredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(new AuthScope(target.getHostName(), target.getPort()),
+ new UsernamePasswordCredentials(restServerParameters.getUserName(),
+ restServerParameters.getPassword()));
+
+ AuthCache authCache = new BasicAuthCache();
+ BasicScheme basicAuth = new BasicScheme();
+ authCache.put(target, basicAuth);
+ localContext = HttpClientContext.create();
+ localContext.setAuthCache(authCache);
+
+ HttpClientBuilder builder = HttpClients.custom().setDefaultCredentialsProvider(credsProvider);
+ if (restServerParameters.isHttps()) {
+ final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(new SSLContextBuilder()
+ .loadTrustMaterial(null, new TrustSelfSignedStrategy()).setProtocol("TLSv1.2").build(),
+ new NoopHostnameVerifier());
+ builder.setSSLSocketFactory(sslsf);
+ }
+ httpclient = builder.build();
+
+ } catch (final Exception e) {
+ throw new ControlLoopRuntimeException(Status.INTERNAL_SERVER_ERROR,
+ restServerParameters.getName() + " Client failed to start", e);
+ }
+ }
+
+ CloseableHttpResponse execute(HttpRequest request) throws IOException {
+ return httpclient.execute(target, request, localContext);
+ }
+
+ protected boolean executePut(String path, int statusCode) {
+ try (CloseableHttpResponse response = execute(new HttpPut(path))) {
+ return response.getStatusLine().getStatusCode() == statusCode;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ protected Loop executePost(String path, int statusCode) {
+ try (CloseableHttpResponse response = execute(new HttpPost(path))) {
+ if (response.getStatusLine().getStatusCode() != statusCode) {
+ return null;
+ }
+ return entityToMap(response.getEntity());
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ protected Loop executeGet(String path, int statusCode) {
+ try (CloseableHttpResponse response = execute(new HttpGet(path))) {
+ if (response.getStatusLine().getStatusCode() != statusCode) {
+ return null;
+ }
+ return entityToMap(response.getEntity());
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ private Loop entityToMap(HttpEntity httpEntity) {
+ if (httpEntity == null) {
+ return new Loop();
+ }
+ try {
+ return CODER.convert(EntityUtils.toString(httpEntity), Loop.class);
+ } catch (ParseException | IOException e) {
+ LOGGER.error("error reading Entity", e);
+ return new Loop();
+ } catch (CoderException e) {
+ LOGGER.error("cannot convert to Loop Object", e);
+ return new Loop();
+ }
+ }
+
+ @Override
+ public void close() throws IOException {
+ httpclient.close();
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java
new file mode 100644
index 000000000..eb805054d
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClient.java
@@ -0,0 +1,140 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.httpclient;
+
+import org.apache.http.HttpStatus;
+import org.onap.policy.clamp.controlloop.participant.dcae.model.ExternalComponent;
+import org.onap.policy.clamp.controlloop.participant.dcae.model.Loop;
+import org.onap.policy.common.endpoints.parameters.RestServerParameters;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ClampHttpClient extends AbstractHttpClient {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ClampHttpClient.class);
+
+ private static final String STATUS = "/restservices/clds/v2/loop/getstatus/";
+ private static final String CREATE = "/restservices/clds/v2/loop/create/%s?templateName=%s";
+ private static final String UPDATE = "/restservices/clds/v2/loop/updateMicroservicePolicy/";
+ private static final String DEPLOY = "/restservices/clds/v2/loop/deploy/";
+ private static final String STOP = "/restservices/clds/v2/loop/stop/";
+ private static final String DELETE = "/restservices/clds/v2/loop/delete/";
+ private static final String UNDEPLOY = "/restservices/clds/v2/loop/undeploy/";
+ public static final String STATUS_NOT_FOUND = "STATUS_NOT_FOUND";
+ public static final String POLICY_NOT_FOUND = "POLICY_NOT_FOUND";
+
+ /**
+ * Constructor.
+ */
+ public ClampHttpClient(RestServerParameters restServerParameters) {
+ super(restServerParameters);
+ }
+
+ /**
+ * Create.
+ *
+ * @param loopName the loopName
+ * @param templateName the templateName
+ * @return the Loop object or null if error occurred
+ */
+ public Loop create(String loopName, String templateName) {
+ return executePost(String.format(CREATE, loopName, templateName), HttpStatus.SC_OK);
+ }
+
+ /**
+ * Update.
+ *
+ * @param loopName the loopName
+ * @param jsonEntity the Json entity
+ * @return true
+ */
+ public boolean update(String loopName, String jsonEntity) {
+ return executePost(UPDATE + loopName, HttpStatus.SC_OK) != null;
+ }
+
+ /**
+ * Deploy.
+ *
+ * @param loopName the loopName
+ * @return true
+ */
+ public boolean deploy(String loopName) { // DCAE
+ return executePut(DEPLOY + loopName, HttpStatus.SC_ACCEPTED);
+ }
+
+ /**
+ * Get Status.
+ *
+ * @param loopName the loopName
+ * @return the Loop object or null if error occurred
+ */
+ public Loop getstatus(String loopName) {
+ return executeGet(STATUS + loopName, HttpStatus.SC_OK);
+ }
+
+ /**
+ * Undeploy.
+ *
+ * @param loopName the loopName
+ * @return true
+ */
+ public boolean undeploy(String loopName) {
+ return executePut(UNDEPLOY + loopName, HttpStatus.SC_ACCEPTED);
+ }
+
+ /**
+ * Stop.
+ *
+ * @param loopName the loopName
+ * @return true
+ */
+ public boolean stop(String loopName) {
+ return executePut(STOP + loopName, HttpStatus.SC_OK);
+ }
+
+ /**
+ * Delete.
+ *
+ * @param loopName the loopName
+ * @return true
+ */
+ public boolean delete(String loopName) {
+ return executePut(DELETE + loopName, HttpStatus.SC_OK);
+ }
+
+ /**
+ * return status from Loop object.
+ *
+ * @param loop Loop
+ * @return status
+ */
+ public static String getStatusCode(Loop loop) {
+ if (loop == null || loop.getComponents() == null || loop.getComponents().isEmpty()) {
+ return STATUS_NOT_FOUND;
+ }
+ ExternalComponent externalComponent = loop.getComponents().get("DCAE");
+ if (externalComponent == null || externalComponent.getComponentState() == null) {
+ return STATUS_NOT_FOUND;
+ }
+
+ return externalComponent.getComponentState().getStateName();
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java
new file mode 100644
index 000000000..cd84a2feb
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ConsulDcaeHttpClient.java
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.httpclient;
+
+import org.apache.http.HttpStatus;
+import org.onap.policy.common.endpoints.parameters.RestServerParameters;
+
+public class ConsulDcaeHttpClient extends AbstractHttpClient {
+
+ private static final String DEPLOY = "/v1/kv/dcae-pmsh:policy";
+
+ /**
+ * constructor.
+ */
+ public ConsulDcaeHttpClient(RestServerParameters restServerParameters) {
+ super(restServerParameters);
+ }
+
+ /**
+ * call consult.
+ *
+ * @param jsonEntity the Entity
+ * @return true
+ */
+ public boolean deploy(String jsonEntity) {
+ return executePut(DEPLOY + jsonEntity, HttpStatus.SC_ACCEPTED);
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java
new file mode 100644
index 000000000..96677f320
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/ControlLoopElementHandler.java
@@ -0,0 +1,197 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.handler;
+
+import java.io.Closeable;
+import java.io.IOException;
+import java.time.Instant;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
+import org.onap.policy.clamp.controlloop.participant.dcae.httpclient.ClampHttpClient;
+import org.onap.policy.clamp.controlloop.participant.dcae.httpclient.ConsulDcaeHttpClient;
+import org.onap.policy.clamp.controlloop.participant.dcae.model.Loop;
+import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener;
+import org.onap.policy.common.endpoints.parameters.RestServerParameters;
+import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This class handles implementation of controlLoopElement updates.
+ */
+public class ControlLoopElementHandler implements ControlLoopElementListener, Closeable {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ControlLoopElementHandler.class);
+ private final ClampHttpClient clampClient;
+ private final ConsulDcaeHttpClient consulClient;
+
+ private static final String LOOP = "pmsh_loop";
+ private static final String TEMPLATE = "LOOP_TEMPLATE_k8s_pmsh";
+
+ private static final String BLUEPRINT_DEPLOYED = "BLUEPRINT_DEPLOYED";
+ private static final String MICROSERVICE_INSTALLED_SUCCESSFULLY = "MICROSERVICE_INSTALLED_SUCCESSFULLY";
+ private static final int CHECK_COUNT = 10;
+
+ private static final String BODY_CONSUL =
+ "{ \"subscription\": { \"subscriptionName\": \"subscriptiona\", \"administrativeState\": \"UNLOCKED\", "
+ + "\"fileBasedGP\": 15, \"fileLocation\": \"/pm/pm.xml\", \"nfFilter\": "
+ + "{ \"nfNames\": [ \"^pnf1.*\" ], \"modelInvariantIDs\": "
+ + "[ \"5845y423-g654-6fju-po78-8n53154532k6\", \"7129e420-d396-4efb-af02-6b83499b12f8\" ], "
+ + "\"modelVersionIDs\": [ \"e80a6ae3-cafd-4d24-850d-e14c084a5ca9\" ] }, \"measurementGroups\": "
+ + "[ { \"measurementGroup\": { \"measurementTypes\": [ { \"measurementType\": \"countera\" }, "
+ + "{ \"measurementType\": \"counterb\" } ], \"managedObjectDNsBasic\": [ { \"DN\": \"dna\" }, "
+ + "{ \"DN\": \"dnb\" } ] } }, { \"measurementGroup\": { \"measurementTypes\": "
+ + "[ { \"measurementType\": \"counterc\" }, { \"measurementType\": \"counterd\" } ], "
+ + "\"managedObjectDNsBasic\": " + "[ { \"DN\": \"dnc\" }, { \"DN\": \"dnd\" } ] } } ] } }";
+
+ /**
+ * Constructor.
+ */
+ public ControlLoopElementHandler(RestServerParameters clampParameters, RestServerParameters consulParameters) {
+ clampClient = new ClampHttpClient(clampParameters);
+ consulClient = new ConsulDcaeHttpClient(consulParameters);
+ }
+
+ /**
+ * Callback method to handle a control loop element state change.
+ *
+ * @param controlLoopElementId the ID of the control loop element
+ * @param currentState the current state of the control loop element
+ * @param newState the state to which the control loop element is changing to
+ */
+ @Override
+ public void controlLoopElementStateChange(UUID controlLoopElementId, ControlLoopState currentState,
+ ControlLoopOrderedState newState) {
+ switch (newState) {
+ case UNINITIALISED:
+ Loop loop = clampClient.getstatus(LOOP);
+ if (loop != null) {
+ clampClient.undeploy(LOOP);
+ DcaeHandler.getInstance().getDcaeProvider().getIntermediaryApi()
+ .updateControlLoopElementState(controlLoopElementId, newState, ControlLoopState.UNINITIALISED);
+ }
+ break;
+ case PASSIVE:
+ DcaeHandler.getInstance().getDcaeProvider().getIntermediaryApi()
+ .updateControlLoopElementState(controlLoopElementId, newState, ControlLoopState.PASSIVE);
+ break;
+ case RUNNING:
+ DcaeHandler.getInstance().getDcaeProvider().getIntermediaryApi()
+ .updateControlLoopElementState(controlLoopElementId, newState, ControlLoopState.RUNNING);
+ break;
+ default:
+ LOGGER.debug("Unknown orderedstate {}", newState);
+ break;
+ }
+ }
+
+ private Loop getStatus() throws PfModelException {
+ Loop loop = clampClient.getstatus(LOOP);
+ if (loop == null) {
+ loop = clampClient.create(LOOP, TEMPLATE);
+ }
+ if (loop == null) {
+ throw new PfModelException(null, "");
+ }
+ return loop;
+ }
+
+ private void deploy() throws PfModelException {
+ if (!consulClient.deploy(BODY_CONSUL)) {
+ throw new PfModelException(null, "deploy to consul failed");
+ }
+ if (!clampClient.deploy(LOOP)) {
+ throw new PfModelException(null, "deploy failed");
+ }
+ }
+
+ /**
+ * Callback method to handle an update on a control loop element.
+ *
+ * @param element the information on the control loop element
+ * @param controlLoopDefinition toscaServiceTemplate
+ * @throws PfModelException in case of an exception
+ */
+ @Override
+ public void controlLoopElementUpdate(ControlLoopElement element, ToscaServiceTemplate controlLoopDefinition)
+ throws PfModelException {
+ try {
+ Loop loop = getStatus();
+
+ if (BLUEPRINT_DEPLOYED.equals(ClampHttpClient.getStatusCode(loop))) {
+ deploy();
+ boolean deployedFlag = false;
+ for (int i = 0; i < CHECK_COUNT; i++) {
+ //sleep 10 seconds
+ TimeUnit.SECONDS.sleep(CHECK_COUNT);
+ loop = getStatus();
+ String status = ClampHttpClient.getStatusCode(loop);
+ if (MICROSERVICE_INSTALLED_SUCCESSFULLY.equals(status)) {
+ DcaeHandler.getInstance().getDcaeProvider().getIntermediaryApi()
+ .updateControlLoopElementState(element.getId(), element.getOrderedState(),
+ ControlLoopState.PASSIVE);
+ deployedFlag = true;
+ break;
+ }
+ }
+ if (!deployedFlag) {
+ LOGGER.warn("DCAE is not deployed properly, ClElement state will be UNINITIALISED2PASSIVE");
+ DcaeHandler.getInstance().getDcaeProvider().getIntermediaryApi()
+ .updateControlLoopElementState(element.getId(), element.getOrderedState(),
+ ControlLoopState.UNINITIALISED2PASSIVE);
+ }
+ }
+ } catch (PfModelException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new PfModelException(null, e.getMessage(), e);
+ }
+ }
+
+ /**
+ * Handle controlLoopElement statistics.
+ *
+ * @param controlLoopElementId controlloop element id
+ */
+ @Override
+ public void handleStatistics(UUID controlLoopElementId) {
+ ControlLoopElement clElement = DcaeHandler.getInstance().getDcaeProvider()
+ .getIntermediaryApi().getControlLoopElement(controlLoopElementId);
+ if (clElement != null) {
+ ClElementStatistics clElementStatistics = new ClElementStatistics();
+ clElementStatistics.setControlLoopState(clElement.getState());
+ clElementStatistics.setTimeStamp(Instant.now());
+ DcaeHandler.getInstance().getDcaeProvider().getIntermediaryApi()
+ .updateControlLoopElementStatistics(controlLoopElementId, clElementStatistics);
+ }
+ }
+
+ @Override
+ public void close() throws IOException {
+ clampClient.close();
+ consulClient.close();
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeHandler.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeHandler.java
new file mode 100644
index 000000000..1963e38b1
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeHandler.java
@@ -0,0 +1,82 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.handler;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import javax.ws.rs.core.Response;
+import lombok.Getter;
+import org.onap.policy.clamp.controlloop.common.handler.ControlLoopHandler;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.common.endpoints.event.comm.TopicSink;
+import org.onap.policy.common.endpoints.listeners.MessageTypeDispatcher;
+import org.onap.policy.common.utils.services.Registry;
+import org.onap.policy.models.base.PfModelRuntimeException;
+
+/**
+ * This class handles dcae of participants and control loop elements.
+ *
+ * </p>
+ * It is effectively a singleton that is started at system start.
+ */
+public class DcaeHandler extends ControlLoopHandler {
+
+ private final ParticipantDcaeParameters parameters;
+ @Getter
+ private DcaeProvider dcaeProvider;
+
+ /**
+ * Create a handler.
+ *
+ * @param parameters the parameters for access to the database
+ */
+ public DcaeHandler(ParticipantDcaeParameters parameters) {
+ super(parameters.getDatabaseProviderParameters());
+ this.parameters = parameters;
+ }
+
+ public static DcaeHandler getInstance() {
+ return Registry.get(DcaeHandler.class.getName());
+ }
+
+ @Override
+ public Set<Class<?>> getProviderClasses() {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public void startProviders() {
+ dcaeProvider = new DcaeProvider(parameters);
+ }
+
+ @Override
+ public void stopProviders() {
+ try {
+ dcaeProvider.close();
+ } catch (IOException e) {
+ throw new PfModelRuntimeException(Response.Status.INTERNAL_SERVER_ERROR, e.getMessage());
+ } finally {
+ dcaeProvider = null;
+ }
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeProvider.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeProvider.java
new file mode 100644
index 000000000..afaf1c754
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/handler/DcaeProvider.java
@@ -0,0 +1,133 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.handler;
+
+import java.io.Closeable;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import lombok.Getter;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant;
+import org.onap.policy.clamp.controlloop.models.messages.rest.TypedSimpleResponse;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryApi;
+import org.onap.policy.clamp.controlloop.participant.intermediary.api.ParticipantIntermediaryFactory;
+
+/**
+ * This provider class dcae of participants and control loop elements.
+ */
+public class DcaeProvider implements Closeable {
+ @Getter
+ private final ParticipantIntermediaryApi intermediaryApi;
+
+ private final ControlLoopElementHandler clElementHandler;
+
+ /**
+ * Create a participant dcae provider.
+ *
+ * @throws ControlLoopRuntimeException on errors creating the provider
+ */
+ public DcaeProvider(ParticipantDcaeParameters parameters) throws ControlLoopRuntimeException {
+ intermediaryApi = new ParticipantIntermediaryFactory().createApiImplementation();
+ intermediaryApi.init(parameters.getIntermediaryParameters());
+ clElementHandler = new ControlLoopElementHandler(parameters.getClampClientParameters(),
+ parameters.getConsulClientParameters());
+ intermediaryApi.registerControlLoopElementListener(clElementHandler);
+ }
+
+ @Override
+ public void close() throws IOException {
+ intermediaryApi.close();
+ clElementHandler.close();
+ }
+
+ /**
+ * Get the control loops.
+ *
+ * @param name the controlLoop, null to get all
+ * @param version the controlLoop, null to get all
+ * @return the control loops
+ * @throws ControlLoopException on errors getting the control loops
+ */
+ public ControlLoops getControlLoops(String name, String version) throws ControlLoopException {
+ return intermediaryApi.getControlLoops(name, version);
+ }
+
+ /**
+ * Get the dcae control loop elements.
+ *
+ * @param name the controlLoopElement, null to get all
+ * @param version the controlLoopElement, null to get all
+ * @return the control loop elements
+ * @throws ControlLoopException on errors getting the control loop elements
+ */
+ public Map<UUID, ControlLoopElement> getControlLoopElements(String name, String version)
+ throws ControlLoopException {
+ return intermediaryApi.getControlLoopElements(name, version);
+ }
+
+ /**
+ * Update the given control loop element in the dcae.
+ *
+ * @param element the control loop element to update
+ * @return response simple response returned
+ * @throws ControlLoopException on errors updating the control loop element
+ */
+ public TypedSimpleResponse<ControlLoopElement> updateControlLoopElement(ControlLoopElement element)
+ throws ControlLoopException {
+ TypedSimpleResponse<ControlLoopElement> response = new TypedSimpleResponse<>();
+ response.setResponse(intermediaryApi.updateControlLoopElementState(element.getId(),
+ element.getOrderedState(), element.getState()));
+ return response;
+ }
+
+ /**
+ * Get the current dcae participants.
+ *
+ * @param name the participant, null to get all
+ * @param version the participant, null to get all
+ * @return the list of participants
+ * @throws ControlLoopException on errors getting the participants
+ */
+ public List<Participant> getParticipants(String name, String version) throws ControlLoopException {
+ return intermediaryApi.getParticipants(name, version);
+ }
+
+ /**
+ * Update a dcae participant.
+ *
+ * @param participant the participant to update
+ * @return TypedSimpleResponse simple response
+ * @throws ControlLoopException on errors updating the participant
+ */
+
+ public TypedSimpleResponse<Participant> updateParticipant(Participant participant) throws ControlLoopException {
+ TypedSimpleResponse<Participant> response = new TypedSimpleResponse<>();
+ response.setResponse(
+ intermediaryApi.updateParticipantState(participant.getDefinition(), participant.getParticipantState()));
+ return response;
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameterHandler.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameterHandler.java
new file mode 100644
index 000000000..8d9bef98c
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameterHandler.java
@@ -0,0 +1,78 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.parameters;
+
+import java.io.File;
+import javax.ws.rs.core.Response;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.startstop.ParticipantDcaeCommandLineArguments;
+import org.onap.policy.common.parameters.ValidationResult;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+
+/**
+ * This class handles reading, parsing and validating of control loop runtime parameters from JSON files.
+ */
+public class ParticipantDcaeParameterHandler {
+
+ private static final Coder CODER = new StandardCoder();
+
+ /**
+ * Read the parameters from the parameter file.
+ *
+ * @param arguments the arguments passed to dcae
+ * @return the parameters read from the configuration file
+ * @throws ControlLoopException on parameter exceptions
+ */
+ public ParticipantDcaeParameters getParameters(final ParticipantDcaeCommandLineArguments arguments)
+ throws ControlLoopException {
+ ParticipantDcaeParameters parameters = null;
+
+ // Read the parameters
+ try {
+ // Read the parameters from JSON
+ File file = new File(arguments.getFullConfigurationFilePath());
+ parameters = CODER.decode(file, ParticipantDcaeParameters.class);
+ } catch (final CoderException e) {
+ final String errorMessage = "error reading parameters from \"" + arguments.getConfigurationFilePath()
+ + "\"\n" + "(" + e.getClass().getSimpleName() + ")";
+ throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE, errorMessage, e);
+ }
+
+ // The JSON processing returns null if there is an empty file
+ if (parameters == null) {
+ final String errorMessage = "no parameters found in \"" + arguments.getConfigurationFilePath() + "\"";
+ throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE, errorMessage);
+ }
+
+ // validate the parameters
+ final ValidationResult validationResult = parameters.validate();
+ if (!validationResult.isValid()) {
+ String returnMessage =
+ "validation error(s) on parameters from \"" + arguments.getConfigurationFilePath() + "\"\n";
+ returnMessage += validationResult.getResult();
+ throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE, returnMessage);
+ }
+
+ return parameters;
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameters.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameters.java
new file mode 100644
index 000000000..beb273086
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/ParticipantDcaeParameters.java
@@ -0,0 +1,93 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.parameters;
+
+import javax.validation.constraints.NotBlank;
+import lombok.Getter;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.common.endpoints.parameters.RestServerParameters;
+import org.onap.policy.common.parameters.BeanValidationResult;
+import org.onap.policy.common.parameters.ParameterGroupImpl;
+import org.onap.policy.common.parameters.ValidationStatus;
+import org.onap.policy.common.parameters.annotations.NotNull;
+import org.onap.policy.common.parameters.annotations.Valid;
+import org.onap.policy.models.provider.PolicyModelsProviderParameters;
+
+/**
+ * Class to hold all parameters needed for the participant dcae.
+ *
+ */
+@NotNull
+@NotBlank
+@Getter
+public class ParticipantDcaeParameters extends ParameterGroupImpl {
+ @Valid
+ private RestServerParameters clampClientParameters;
+
+ @Valid
+ private RestServerParameters consulClientParameters;
+
+ private ParticipantIntermediaryParameters intermediaryParameters;
+ private PolicyModelsProviderParameters databaseProviderParameters;
+
+ /**
+ * Create the participant dcae parameter group.
+ *
+ * @param name the parameter group name
+ */
+ public ParticipantDcaeParameters(final String name) {
+ super(name);
+ }
+
+ /**
+ * {@inheritDoc}.
+ */
+ @Override
+ public BeanValidationResult validate() {
+ BeanValidationResult result = super.validate();
+ if (result.isValid()) {
+ result.addResult(checkMissingMandatoryParams(clampClientParameters));
+ result.addResult(checkMissingMandatoryParams(consulClientParameters));
+ }
+ return result;
+ }
+
+ private BeanValidationResult checkMissingMandatoryParams(RestServerParameters clientParameters) {
+ BeanValidationResult result = new BeanValidationResult(clientParameters.getName(), clientParameters);
+ if (StringUtils.isBlank(clientParameters.getHost())) {
+ result.addResult("Host", clientParameters.getHost(), ValidationStatus.INVALID, "is blank");
+ }
+ if (StringUtils.isBlank(clientParameters.getName())) {
+ result.addResult("Name", clientParameters.getName(), ValidationStatus.INVALID, "is blank");
+ }
+ if (StringUtils.isBlank(clientParameters.getPassword())) {
+ result.addResult("Password", clientParameters.getPassword(), ValidationStatus.INVALID, "is blank");
+ }
+ if (StringUtils.isBlank(clientParameters.getUserName())) {
+ result.addResult("UserName", clientParameters.getUserName(), ValidationStatus.INVALID, "is blank");
+ }
+ if (clientParameters.getPort() <= 0 || clientParameters.getPort() >= 65535) {
+ result.addResult("Port", clientParameters.getPort(), ValidationStatus.INVALID, "is not valid");
+ }
+ return result;
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/Main.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/Main.java
new file mode 100644
index 000000000..2b47a2c13
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/Main.java
@@ -0,0 +1,151 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.startstop;
+
+import java.util.Arrays;
+import javax.ws.rs.core.Response;
+import lombok.Getter;
+import org.onap.policy.clamp.controlloop.common.ControlLoopConstants;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameterHandler;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.common.utils.resources.MessageConstants;
+import org.onap.policy.common.utils.services.Registry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This class initiates ONAP Policy Framework Control Loop participant component.
+ */
+public class Main {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
+
+ private ParticipantDcaeActivator activator;
+
+ @Getter
+ private ParticipantDcaeParameters parameterGroup;
+
+ /**
+ * Instantiates the control loop participant service.
+ *
+ * @param args the command line arguments
+ */
+ public Main(final String[] args) {
+ final String argumentString = Arrays.toString(args);
+ LOGGER.info("Starting the control loop participant service with arguments - {}", argumentString);
+
+ // Check the arguments
+ final ParticipantDcaeCommandLineArguments arguments = new ParticipantDcaeCommandLineArguments();
+ try {
+ // The arguments return a string if there is a message to print and we should exit
+ final String argumentMessage = arguments.parse(args);
+ if (argumentMessage != null) {
+ LOGGER.info(argumentMessage);
+ return;
+ }
+ // Validate that the arguments are sane
+ arguments.validate();
+
+ // Read the parameters
+ parameterGroup = new ParticipantDcaeParameterHandler().getParameters(arguments);
+
+ // Now, create the activator for the service
+ activator = new ParticipantDcaeActivator(parameterGroup);
+ Registry.register(ControlLoopConstants.REG_CLRUNTIME_ACTIVATOR, activator);
+
+ // Start the activator
+ activator.start();
+ } catch (Exception exp) {
+ if (null != activator) {
+ Registry.unregister(ControlLoopConstants.REG_CLRUNTIME_ACTIVATOR);
+ }
+ throw new ControlLoopRuntimeException(Response.Status.BAD_REQUEST,
+ String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_CLAMP), exp);
+ }
+
+ // Add a shutdown hook to shut everything down in an orderly manner
+ Runtime.getRuntime().addShutdownHook(new ClRuntimeShutdownHookClass());
+ String successMsg = String.format(MessageConstants.START_SUCCESS_MSG, MessageConstants.POLICY_CLAMP);
+ LOGGER.info(successMsg);
+ }
+
+ /**
+ * Check if main is running.
+ */
+ public boolean isRunning() {
+ return activator != null && activator.isAlive();
+ }
+
+ /**
+ * Shut down Execution.
+ *
+ * @throws ControlLoopException on shutdown errors
+ */
+ public void shutdown() throws ControlLoopException {
+ // clear the parameterGroup variable
+ parameterGroup = null;
+
+ // clear the cl participant activator
+ if (activator != null) {
+ activator.stop();
+ }
+ }
+
+ /**
+ * The Class ClRuntimeShutdownHookClass terminates the control loop participant service
+ * when its run method is called.
+ */
+ private class ClRuntimeShutdownHookClass extends Thread {
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Runnable#run()
+ */
+ @Override
+ public void run() {
+ if (!activator.isAlive()) {
+ return;
+ }
+
+ try {
+ // Shutdown the control loop participant service and wait for everything to stop
+ activator.stop();
+ } catch (final RuntimeException e) {
+ LOGGER.warn("error occured during shut down of the control loop participant service", e);
+ }
+ }
+ }
+
+ /**
+ * The main method.
+ *
+ * @param args the arguments
+ */
+ public static void main(final String[] args) { // NOSONAR
+ /*
+ * NOTE: arguments are validated by the constructor, thus sonar is disabled.
+ */
+
+ new Main(args);
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeActivator.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeActivator.java
new file mode 100644
index 000000000..d485895cf
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeActivator.java
@@ -0,0 +1,58 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.startstop;
+
+import java.util.concurrent.atomic.AtomicReference;
+import lombok.Getter;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.handler.DcaeHandler;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.common.utils.services.ServiceManagerContainer;
+
+/**
+ * This class activates the control loop runtime component as a complete service together with all its controllers,
+ * listeners & handlers.
+ */
+public class ParticipantDcaeActivator extends ServiceManagerContainer {
+ @Getter
+ private final ParticipantDcaeParameters parameters;
+
+ /**
+ * Instantiate the activator for the dcae as a complete service.
+ *
+ * @param parameters the parameters for the control loop runtime service
+ */
+ public ParticipantDcaeActivator(final ParticipantDcaeParameters parameters) {
+ this.parameters = parameters;
+
+ final AtomicReference<DcaeHandler> dcaeHandler = new AtomicReference<>();
+
+ // @formatter:off
+ addAction("Dcae Handler",
+ () -> dcaeHandler.set(new DcaeHandler(parameters)),
+ () -> dcaeHandler.get().close());
+
+ addAction("Dcae Providers",
+ () -> dcaeHandler.get().startProviders(),
+ () -> dcaeHandler.get().stopProviders());
+
+ // @formatter:on
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeCommandLineArguments.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeCommandLineArguments.java
new file mode 100644
index 000000000..0bf382ab1
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/ParticipantDcaeCommandLineArguments.java
@@ -0,0 +1,151 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.startstop;
+
+import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.URL;
+import java.util.Arrays;
+import javax.ws.rs.core.Response;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.DefaultParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
+import org.onap.policy.clamp.controlloop.common.startstop.CommonCommandLineArguments;
+import org.onap.policy.common.utils.resources.ResourceUtils;
+
+/**
+ * This class reads and handles command line parameters for the control loop runtime service.
+ *
+ */
+public class ParticipantDcaeCommandLineArguments {
+ private static final String FILE_MESSAGE_PREAMBLE = " file \"";
+ private static final int HELP_LINE_LENGTH = 120;
+
+ private final Options options;
+ private final CommonCommandLineArguments commonCommandLineArguments;
+
+ @Getter()
+ @Setter()
+ private String configurationFilePath = null;
+
+ /**
+ * Construct the options for the dcae participant.
+ */
+ public ParticipantDcaeCommandLineArguments() {
+ options = new Options();
+ commonCommandLineArguments = new CommonCommandLineArguments(options);
+ }
+
+ /**
+ * Construct the options for the CLI editor and parse in the given arguments.
+ *
+ * @param args The command line arguments
+ */
+ public ParticipantDcaeCommandLineArguments(final String[] args) {
+ // Set up the options with the default constructor
+ this();
+
+ // Parse the arguments
+ try {
+ parse(args);
+ } catch (final ControlLoopException e) {
+ throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE,
+ "parse error on dcae participant parameters", e);
+ }
+ }
+
+ /**
+ * Parse the command line options.
+ *
+ * @param args The command line arguments
+ * @return a string with a message for help and version, or null if there is no message
+ * @throws ControlLoopException on command argument errors
+ */
+ public String parse(final String[] args) throws ControlLoopException {
+ // Clear all our arguments
+ setConfigurationFilePath(null);
+ CommandLine commandLine = null;
+ try {
+ commandLine = new DefaultParser().parse(options, args);
+ } catch (final ParseException e) {
+ throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE,
+ "invalid command line arguments specified : " + e.getMessage());
+ }
+
+ // Arguments left over after Commons CLI does its stuff
+ final String[] remainingArgs = commandLine.getArgs();
+
+ if (remainingArgs.length > 0) {
+ throw new ControlLoopException(Response.Status.NOT_ACCEPTABLE,
+ "too many command line arguments specified : " + Arrays.toString(args));
+ }
+
+ if (commandLine.hasOption('h')) {
+ return commonCommandLineArguments.help(Main.class.getName(), options);
+ }
+
+ if (commandLine.hasOption('v')) {
+ return commonCommandLineArguments.version();
+ }
+
+ if (commandLine.hasOption('c')) {
+ setConfigurationFilePath(commandLine.getOptionValue('c'));
+ }
+
+ return null;
+ }
+
+ /**
+ * Validate the command line options.
+ *
+ * @throws ControlLoopException on command argument validation errors
+ */
+ public void validate() throws ControlLoopException {
+ commonCommandLineArguments.validate(configurationFilePath);
+ }
+
+ /**
+ * Gets the full expanded configuration file path.
+ *
+ * @return the configuration file path
+ */
+ public String getFullConfigurationFilePath() {
+ return ResourceUtils.getFilePath4Resource(getConfigurationFilePath());
+ }
+
+ /**
+ * Check set configuration file path.
+ *
+ * @return true, if check set configuration file path
+ */
+ public boolean checkSetConfigurationFilePath() {
+ return !StringUtils.isEmpty(configurationFilePath);
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponent.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponent.java
new file mode 100644
index 000000000..01a514f43
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponent.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.model;
+
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ExternalComponent implements Serializable {
+
+ private static final long serialVersionUID = -10;
+
+ private ExternalComponentState componentState;
+
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponentState.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponentState.java
new file mode 100644
index 000000000..da7360a9b
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/ExternalComponentState.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.model;
+
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ExternalComponentState implements Serializable {
+
+ private static final long serialVersionUID = -10;
+
+ private String stateName;
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/Loop.java b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/Loop.java
new file mode 100644
index 000000000..d84270500
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/java/org/onap/policy/clamp/controlloop/participant/dcae/model/Loop.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.model;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class Loop implements Serializable {
+
+ private static final long serialVersionUID = -10;
+
+ private Map<String, ExternalComponent> components = new HashMap<>();
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/resources/config/DCAEParticipantConfig.json b/participant/participant-impl/participant-impl-dcae/src/main/resources/config/DCAEParticipantConfig.json
new file mode 100644
index 000000000..863c135d5
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/resources/config/DCAEParticipantConfig.json
@@ -0,0 +1,71 @@
+{
+ "name": "ControlLoopParticipantDcae",
+ "clampClientParameters": {
+ "name": "Clamp",
+ "host": "0.0.0.0",
+ "port": 8443,
+ "userName": "admin",
+ "password": "password",
+ "https": true,
+ "aaf": false
+ },
+ "consulClientParameters": {
+ "name": "Consul",
+ "host": "consul",
+ "port": 31321,
+ "userName": "admin",
+ "password": "password",
+ "https": false,
+ "aaf": false
+ },
+ "intermediaryParameters": {
+ "name": "Participant parameters",
+ "reportingTimeInterval": 120000,
+ "description": "Participant Description",
+ "participantId": {
+ "name": "DCAEParticipant0",
+ "version": "1.0.0"
+ },
+ "participantType": {
+ "name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
+ "version": "2.3.4"
+ },
+ "clampControlLoopTopics": {
+ "topicSources": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap",
+ "fetchTimeout": 15000
+ }
+ ],
+ "topicSinks": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ },
+ {
+ "topic": "POLICY-NOTIFICATION",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ }
+ ]
+ }
+ },
+ "databaseProviderParameters": {
+ "name": "PolicyProviderParameterGroup",
+ "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+ "databaseDriver": "org.h2.Driver",
+ "databaseUrl": "jdbc:h2:mem:testdb",
+ "databaseUser": "policy",
+ "databasePassword": "P01icY",
+ "persistenceUnit": "ToscaConceptTest"
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/main/resources/version.txt b/participant/participant-impl/participant-impl-dcae/src/main/resources/version.txt
new file mode 100644
index 000000000..dbd67585f
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/main/resources/version.txt
@@ -0,0 +1,4 @@
+ONAP Tosca defined control loop Participant
+Version: ${project.version}
+Built (UTC): ${maven.build.timestamp}
+ONAP https://wiki.onap.org
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClientTest.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClientTest.java
new file mode 100644
index 000000000..040b33f5e
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/httpclient/ClampHttpClientTest.java
@@ -0,0 +1,128 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.httpclient;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.fail;
+import static org.junit.Assert.assertTrue;
+import static org.mockserver.model.HttpRequest.request;
+import static org.mockserver.model.HttpResponse.response;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockserver.integration.ClientAndServer;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.CommonTestData;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.clamp.controlloop.participant.dcae.model.Loop;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.StandardCoder;
+
+/**
+ * Class to perform unit test of {@link ClampHttpClient}.
+ *
+ */
+public class ClampHttpClientTest {
+
+ private static final String LOOP = "pmsh_loop";
+ private static final String BLUEPRINT_DEPLOYED = "BLUEPRINT_DEPLOYED";
+
+ private static ClientAndServer mockServer;
+ private static ParticipantDcaeParameters parameters;
+ public static final Coder CODER = new StandardCoder();
+
+ /**
+ * Set up.
+ */
+ @BeforeClass
+ public static void setUp() {
+ CommonTestData commonTestData = new CommonTestData();
+
+ parameters = commonTestData.toObject(
+ commonTestData.getParticipantParameterGroupMap(CommonTestData.PARTICIPANT_GROUP_NAME),
+ ParticipantDcaeParameters.class);
+
+ mockServer = ClientAndServer.startClientAndServer(parameters.getClampClientParameters().getPort());
+
+ mockServer.when(request().withMethod("GET").withPath("/restservices/clds/v2/loop/getstatus/" + LOOP))
+ .respond(response().withBody(CommonTestData.createJsonStatus(BLUEPRINT_DEPLOYED)).withStatusCode(200));
+
+ mockServer.when(request().withMethod("PUT").withPath("/restservices/clds/v2/loop/deploy/" + LOOP))
+ .respond(response().withStatusCode(202));
+
+ mockServer.when(request().withMethod("PUT").withPath("/restservices/clds/v2/loop/undeploy/" + LOOP))
+ .respond(response().withStatusCode(202));
+ }
+
+ @AfterClass
+ public static void stopServer() {
+ mockServer.stop();
+ mockServer = null;
+ }
+
+ @Test
+ public void test_getstatus() throws Exception {
+ try (ClampHttpClient client = new ClampHttpClient(parameters.getClampClientParameters())) {
+
+ Loop status = client.getstatus(LOOP);
+
+ String json = CommonTestData.createJsonStatus(BLUEPRINT_DEPLOYED);
+ Loop loop = CODER.convert(json, Loop.class);
+
+ assertThat(ClampHttpClient.getStatusCode(status)).isEqualTo(ClampHttpClient.getStatusCode(loop));
+
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void test_deploy() throws Exception {
+ try (ClampHttpClient client = new ClampHttpClient(parameters.getClampClientParameters())) {
+
+ assertTrue(client.deploy(LOOP));
+
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void test_undeploy() throws Exception {
+ try (ClampHttpClient client = new ClampHttpClient(parameters.getClampClientParameters())) {
+
+ assertTrue(client.undeploy(LOOP));
+
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void test_getStatusCodeNull() {
+ assertThat(ClampHttpClient.getStatusCode(null)).isEqualTo(ClampHttpClient.STATUS_NOT_FOUND);
+ }
+
+ @Test
+ public void test_getStatusEmptyMap() {
+ assertThat(ClampHttpClient.getStatusCode(new Loop())).isEqualTo(ClampHttpClient.STATUS_NOT_FOUND);
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java
new file mode 100644
index 000000000..bcfaf8bb9
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/CommonTestData.java
@@ -0,0 +1,294 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.parameters;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import javax.ws.rs.core.Response;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
+import org.onap.policy.common.endpoints.parameters.TopicParameters;
+import org.onap.policy.common.parameters.ParameterGroup;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+
+/**
+ * Class to hold/create all parameters for test cases.
+ */
+public class CommonTestData {
+ public static final String PARTICIPANT_GROUP_NAME = "ControlLoopParticipantGroup";
+ public static final String DESCRIPTION = "Participant description";
+ public static final long TIME_INTERVAL = 2000;
+ public static final List<TopicParameters> TOPIC_PARAMS = Arrays.asList(getTopicParams());
+ private static final String REST_CLIENT_PASSWORD = "password";
+ private static final String REST_CLIENT_USER = "admin";
+ private static final int REST_CLAMP_PORT = 8443;
+ private static final int REST_CONSUL_PORT = 31321;
+ private static final String REST_CLAMP_HOST = "localhost";
+ private static final String REST_CONSUL_HOST = "consul";
+ private static final boolean REST_CLAMP_HTTPS = false;
+ private static final boolean REST_CONSUL_HTTPS = false;
+ private static final boolean REST_CLIENT_AAF = false;
+
+ public static final Coder coder = new StandardCoder();
+
+ /**
+ * Converts the contents of a map to a parameter class.
+ *
+ * @param source property map
+ * @param clazz class of object to be created from the map
+ * @return a new object represented by the map
+ */
+ public <T extends ParameterGroup> T toObject(final Map<String, Object> source, final Class<T> clazz) {
+ try {
+ return coder.convert(source, clazz);
+
+ } catch (final CoderException e) {
+ throw new RuntimeException("cannot create " + clazz.getName() + " from map", e);
+ }
+ }
+
+ /**
+ * Returns a property map for a ApexStarterParameterGroup map for test cases.
+ *
+ * @param name name of the parameters
+ *
+ * @return a property map suitable for constructing an object
+ */
+ public Map<String, Object> getParticipantParameterGroupMap(final String name) {
+ final Map<String, Object> map = new TreeMap<>();
+
+ map.put("name", name);
+ map.put("clampClientParameters", getClampClientParametersMap(false));
+ map.put("consulClientParameters", getConsulClientParametersMap(false));
+ map.put("intermediaryParameters", getIntermediaryParametersMap(false));
+ map.put("databaseProviderParameters", getDatabaseProviderParametersMap(false));
+ return map;
+ }
+
+ /**
+ * Returns a property map for a RestServerParameters map for test cases.
+ *
+ * @param isEmpty boolean value to represent that object created should be empty or not
+ * @return a property map suitable for constructing an object
+ */
+ public Map<String, Object> getClampClientParametersMap(final boolean isEmpty) {
+ final Map<String, Object> map = new TreeMap<>();
+ map.put("https", REST_CLAMP_HTTPS);
+ map.put("aaf", REST_CLIENT_AAF);
+
+ if (!isEmpty) {
+ map.put("host", REST_CLAMP_HOST);
+ map.put("port", REST_CLAMP_PORT);
+ map.put("userName", REST_CLIENT_USER);
+ map.put("password", REST_CLIENT_PASSWORD);
+ }
+
+ return map;
+ }
+
+ /**
+ * Returns a property map for a RestServerParameters map for test cases.
+ *
+ * @param isEmpty boolean value to represent that object created should be empty or not
+ * @return a property map suitable for constructing an object
+ */
+ public Map<String, Object> getConsulClientParametersMap(final boolean isEmpty) {
+ final Map<String, Object> map = new TreeMap<>();
+ map.put("https", REST_CONSUL_HTTPS);
+ map.put("aaf", REST_CLIENT_AAF);
+
+ if (!isEmpty) {
+ map.put("host", REST_CONSUL_HOST);
+ map.put("port", REST_CONSUL_PORT);
+ map.put("userName", REST_CLIENT_USER);
+ map.put("password", REST_CLIENT_PASSWORD);
+ }
+
+ return map;
+ }
+
+ /**
+ * Returns a property map for a databaseProviderParameters map for test cases.
+ *
+ * @param isEmpty boolean value to represent that object created should be empty or not
+ * @return a property map suitable for constructing an object
+ */
+ public Map<String, Object> getDatabaseProviderParametersMap(final boolean isEmpty) {
+ final Map<String, Object> map = new TreeMap<>();
+ if (!isEmpty) {
+ map.put("name", "PolicyProviderParameterGroup");
+ map.put("implementation", "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl");
+ map.put("databaseDriver", "org.h2.Driver");
+ map.put("databaseUrl", "jdbc:h2:mem:testdb");
+ map.put("databaseUser", "policy");
+ map.put("databasePassword", "P01icY");
+ map.put("persistenceUnit", "ToscaConceptTest");
+ }
+
+ return map;
+ }
+
+ /**
+ * Returns a property map for a intermediaryParameters map for test cases.
+ *
+ * @param isEmpty boolean value to represent that object created should be empty or not
+ * @return a property map suitable for constructing an object
+ */
+ public Map<String, Object> getIntermediaryParametersMap(final boolean isEmpty) {
+ final Map<String, Object> map = new TreeMap<>();
+ if (!isEmpty) {
+ map.put("name", "Participant parameters");
+ map.put("reportingTimeInterval", TIME_INTERVAL);
+ map.put("description", DESCRIPTION);
+ map.put("participantId", getParticipantId());
+ map.put("participantType", getParticipantId());
+ map.put("clampControlLoopTopics", getTopicParametersMap(false));
+ }
+
+ return map;
+ }
+
+ /**
+ * Returns a property map for a TopicParameters map for test cases.
+ *
+ * @param isEmpty boolean value to represent that object created should be empty or not
+ * @return a property map suitable for constructing an object
+ */
+ public Map<String, Object> getTopicParametersMap(final boolean isEmpty) {
+ final Map<String, Object> map = new TreeMap<>();
+ if (!isEmpty) {
+ map.put("topicSources", TOPIC_PARAMS);
+ map.put("topicSinks", TOPIC_PARAMS);
+ }
+ return map;
+ }
+
+ /**
+ * Returns topic parameters for test cases.
+ *
+ * @return topic parameters
+ */
+ public static TopicParameters getTopicParams() {
+ final TopicParameters topicParams = new TopicParameters();
+ topicParams.setTopic("POLICY-CLRUNTIME-PARTICIPANT");
+ topicParams.setTopicCommInfrastructure("dmaap");
+ topicParams.setServers(Arrays.asList("localhost"));
+ return topicParams;
+ }
+
+ /**
+ * Returns participantId for test cases.
+ *
+ * @return participant Id
+ */
+ public static ToscaConceptIdentifier getParticipantId() {
+ final ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
+ participantId.setName("CDSParticipant0");
+ participantId.setVersion("1.0.0");
+ return participantId;
+ }
+
+ /**
+ * Gets the standard participant parameters.
+ *
+ * @param port port to be inserted into the parameters
+ * @return the standard participant parameters
+ */
+ public ParticipantDcaeParameters getParticipantParameterGroup(int port) {
+ try {
+ return coder.decode(getParticipantParameterGroupAsString(port), ParticipantDcaeParameters.class);
+
+ } catch (CoderException e) {
+ throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE, "cannot read participant parameters",
+ e);
+ }
+ }
+
+ /**
+ * Gets the standard participant parameters, as a String.
+ *
+ * @param port port to be inserted into the parameters
+ * @return the standard participant parameters
+ */
+ public static String getParticipantParameterGroupAsString(int port) {
+
+ try {
+ File file = new File(getParamFile());
+ String json = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8);
+
+ json = json.replace("${port}", String.valueOf(port));
+ json = json.replace("${dbName}", "jdbc:h2:mem:testdb");
+
+ return json;
+
+ } catch (IOException e) {
+ throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE, "cannot read participant parameters",
+ e);
+
+ }
+ }
+
+ /**
+ * Gets the full path to the parameter file, which may vary depending on whether or
+ * not this is an end-to-end test.
+ *
+ * @return the parameter file name
+ */
+ private static String getParamFile() {
+ return "src/test/resources/parameters/TestParametersStd.json";
+ }
+
+ /**
+ * Nulls out a field within a JSON string.
+ *
+ * @param json JSON string
+ * @param field field to be nulled out
+ * @return a new JSON string with the field nulled out
+ */
+ public String nullifyField(String json, String field) {
+ return json.replace(field + "\"", field + "\":null, \"" + field + "Xxx\"");
+ }
+
+ /**
+ * create Json response from getstatus call.
+ *
+ * @param status the status of Partecipant
+ * @return the JSON
+ */
+ public static String createJsonStatus(String status) {
+ try {
+ File file = new File("src/test/resources/rest/status.json");
+ String json = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8);
+ return json.replace("${status}", status);
+
+ } catch (IOException e) {
+ throw new ControlLoopRuntimeException(Response.Status.NOT_ACCEPTABLE, "cannot read json file", e);
+ }
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameterHandler.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameterHandler.java
new file mode 100644
index 000000000..058a3dae4
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameterHandler.java
@@ -0,0 +1,102 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.parameters;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.FileNotFoundException;
+import org.junit.Test;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopException;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameterHandler;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.startstop.ParticipantDcaeCommandLineArguments;
+import org.onap.policy.common.utils.coder.CoderException;
+
+/**
+ * Class to perform unit test of {@link ParticipantParameterHandler}.
+ *
+ */
+public class TestParticipantDcaeParameterHandler {
+
+ @Test
+ public void testParameterHandlerNoParameterFile() throws ControlLoopException {
+ final String[] emptyArgumentString = { "-c", "src/test/resources/parameters/NoParametersFile.json" };
+
+ final ParticipantDcaeCommandLineArguments emptyArguments = new ParticipantDcaeCommandLineArguments();
+ emptyArguments.parse(emptyArgumentString);
+
+ assertThatThrownBy(() -> new ParticipantDcaeParameterHandler().getParameters(emptyArguments))
+ .hasCauseInstanceOf(CoderException.class)
+ .hasRootCauseInstanceOf(FileNotFoundException.class);
+ }
+
+ @Test
+ public void testParameterHandlerInvalidParameters() throws ControlLoopException {
+ final String[] invalidArgumentString = { "-c", "src/test/resources/parameters/InvalidParameters.json" };
+
+ final ParticipantDcaeCommandLineArguments invalidArguments =
+ new ParticipantDcaeCommandLineArguments();
+ invalidArguments.parse(invalidArgumentString);
+
+ assertThatThrownBy(() -> new ParticipantDcaeParameterHandler().getParameters(invalidArguments))
+ .hasMessageStartingWith("error reading parameters from")
+ .hasCauseInstanceOf(CoderException.class);
+ }
+
+ @Test
+ public void testParticipantParameterGroup() throws ControlLoopException {
+ final String[] participantConfigParameters = { "-c", "src/test/resources/parameters/TestParameters.json" };
+
+ final ParticipantDcaeCommandLineArguments arguments = new ParticipantDcaeCommandLineArguments();
+ arguments.parse(participantConfigParameters);
+
+ final ParticipantDcaeParameters parGroup = new ParticipantDcaeParameterHandler()
+ .getParameters(arguments);
+ assertTrue(arguments.checkSetConfigurationFilePath());
+ assertEquals(CommonTestData.PARTICIPANT_GROUP_NAME, parGroup.getName());
+ }
+
+ @Test
+ public void testParticipantVersion() throws ControlLoopException {
+ final String[] participantConfigParameters = { "-v" };
+ final ParticipantDcaeCommandLineArguments arguments = new ParticipantDcaeCommandLineArguments();
+ assertThat(arguments.parse(participantConfigParameters)).startsWith(
+ "ONAP Tosca defined control loop Participant");
+ }
+
+ @Test
+ public void testParticipantHelp() throws ControlLoopException {
+ final String[] participantConfigParameters = { "-h" };
+ final ParticipantDcaeCommandLineArguments arguments = new ParticipantDcaeCommandLineArguments();
+ assertThat(arguments.parse(participantConfigParameters)).startsWith("usage:");
+ }
+
+ @Test
+ public void testParticipantInvalidOption() throws ControlLoopException {
+ final String[] participantConfigParameters = { "-d" };
+ final ParticipantDcaeCommandLineArguments arguments = new ParticipantDcaeCommandLineArguments();
+ assertThatThrownBy(() -> arguments.parse(participantConfigParameters))
+ .hasMessageStartingWith("invalid command line arguments specified");
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameters.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameters.java
new file mode 100644
index 000000000..edb429322
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/parameters/TestParticipantDcaeParameters.java
@@ -0,0 +1,90 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.parameters;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Map;
+import org.junit.Test;
+import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters;
+import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
+import org.onap.policy.common.parameters.ValidationResult;
+
+/**
+ * Class to perform unit test of {@link ParticipantParameterGroup}.
+ *
+ */
+public class TestParticipantDcaeParameters {
+ CommonTestData commonTestData = new CommonTestData();
+
+ @Test
+ public void testParticipantParameterGroup_Named() {
+ final ParticipantDcaeParameters participantParameters = new ParticipantDcaeParameters("my-name");
+ assertEquals("my-name", participantParameters.getName());
+ }
+
+ @Test
+ public void testParticipantParameterGroup() {
+ final ParticipantDcaeParameters participantParameters = commonTestData.toObject(
+ commonTestData.getParticipantParameterGroupMap(CommonTestData.PARTICIPANT_GROUP_NAME),
+ ParticipantDcaeParameters.class);
+ final ParticipantIntermediaryParameters participantIntermediaryParameters = participantParameters
+ .getIntermediaryParameters();
+ final TopicParameterGroup topicParameterGroup = participantParameters.getIntermediaryParameters()
+ .getClampControlLoopTopics();
+ final ValidationResult validationResult = participantParameters.validate();
+ assertTrue(validationResult.isValid());
+ assertEquals(CommonTestData.PARTICIPANT_GROUP_NAME, participantParameters.getName());
+ assertEquals(CommonTestData.TIME_INTERVAL, participantIntermediaryParameters.getReportingTimeInterval());
+ assertEquals(CommonTestData.DESCRIPTION, participantIntermediaryParameters.getDescription());
+ assertEquals(CommonTestData.TOPIC_PARAMS, topicParameterGroup.getTopicSinks());
+ assertEquals(CommonTestData.TOPIC_PARAMS, topicParameterGroup.getTopicSources());
+ }
+
+ @Test
+ public void testParticipantParameterGroup_EmptyParticipantIntermediaryParameters() {
+ final Map<String, Object> map =
+ commonTestData.getParticipantParameterGroupMap(CommonTestData.PARTICIPANT_GROUP_NAME);
+ map.replace("intermediaryParameters", commonTestData.getIntermediaryParametersMap(true));
+ final ParticipantDcaeParameters participantParameters =
+ commonTestData.toObject(map, ParticipantDcaeParameters.class);
+ final ValidationResult validationResult = participantParameters.validate();
+ assertNull(validationResult.getResult());
+ }
+
+ @Test
+ public void testParticipantParameterGroup_EmptyTopicParameters() {
+ final Map<String, Object> map =
+ commonTestData.getParticipantParameterGroupMap(CommonTestData.PARTICIPANT_GROUP_NAME);
+ final Map<String, Object> intermediaryParametersMap = commonTestData.getIntermediaryParametersMap(false);
+ intermediaryParametersMap.put("clampControlLoopTopics", commonTestData.getTopicParametersMap(true));
+ map.replace("intermediaryParameters", intermediaryParametersMap);
+
+ final ParticipantDcaeParameters participantParameters =
+ commonTestData.toObject(map, ParticipantDcaeParameters.class);
+ final ValidationResult validationResult = participantParameters.validate();
+ assertNull(validationResult.getResult());
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/rest/TestListenerUtils.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/rest/TestListenerUtils.java
new file mode 100644
index 000000000..c3cc8b755
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/rest/TestListenerUtils.java
@@ -0,0 +1,255 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.rest;
+
+import java.io.File;
+import java.time.Instant;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.UUID;
+import lombok.Getter;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
+import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantControlLoopStateChange;
+import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantControlLoopUpdate;
+import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantHealthCheck;
+import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStateChange;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.handler.DcaeProvider;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.CommonTestData;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.coder.YamlJsonTranslator;
+import org.onap.policy.common.utils.resources.ResourceUtils;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+
+public class TestListenerUtils {
+
+ private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
+ private static final Coder CODER = new StandardCoder();
+ private static final String TOSCA_TEMPLATE_YAML = "examples/controlloop/PMSubscriptionHandling.yaml";
+ static CommonTestData commonTestData = new CommonTestData();
+
+ @Getter
+ private static ParticipantHandler participantHandler;
+
+ /**
+ * Method to initialize participantHandler.
+ */
+ public static void initParticipantHandler() {
+
+ final ParticipantDcaeParameters parameters = commonTestData.toObject(
+ commonTestData.getParticipantParameterGroupMap(CommonTestData.PARTICIPANT_GROUP_NAME),
+ ParticipantDcaeParameters.class);
+
+ DcaeProvider dcaeProvider = new DcaeProvider(parameters);
+
+ participantHandler = dcaeProvider.getIntermediaryApi().getParticipantHandler();
+ }
+
+ /**
+ * Method to create a controlLoop from a yaml file.
+ *
+ * @return ControlLoop controlloop
+ */
+ public static ControlLoop createControlLoop() {
+ ControlLoop controlLoop = new ControlLoop();
+ Map<UUID, ControlLoopElement> elements = new LinkedHashMap<>();
+ ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
+ Map<String, ToscaNodeTemplate> nodeTemplatesMap =
+ toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+ for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
+ ControlLoopElement clElement = new ControlLoopElement();
+ clElement.setId(UUID.randomUUID());
+
+ ToscaConceptIdentifier clElementParticipantId = new ToscaConceptIdentifier();
+ clElementParticipantId.setName(toscaInputEntry.getKey());
+ clElementParticipantId.setVersion(toscaInputEntry.getValue().getVersion());
+ clElement.setParticipantId(clElementParticipantId);
+
+ clElement.setDefinition(clElementParticipantId);
+ clElement.setState(ControlLoopState.UNINITIALISED);
+ clElement.setDescription(toscaInputEntry.getValue().getDescription());
+ clElement.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
+ elements.put(clElement.getId(), clElement);
+ }
+ controlLoop.setElements(elements);
+ controlLoop.setName("PMSHInstance0");
+ controlLoop.setVersion("1.0.0");
+
+ ToscaConceptIdentifier definition = new ToscaConceptIdentifier();
+ definition.setName("PMSHInstance0");
+ definition.setVersion("1.0.0");
+ controlLoop.setDefinition(definition);
+
+ return controlLoop;
+ }
+
+ /**
+ * Method to create ParticipantStateChange message from the arguments passed.
+ *
+ * @param participantState participant State
+ *
+ * @return ParticipantStateChange message
+ */
+ public static ParticipantStateChange createParticipantStateChangeMsg(final ParticipantState participantState) {
+ final ParticipantStateChange participantStateChangeMsg = new ParticipantStateChange();
+ ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
+ participantId.setName("CDSParticipant0");
+ participantId.setVersion("1.0.0");
+
+ participantStateChangeMsg.setParticipantId(participantId);
+ participantStateChangeMsg.setTimestamp(Instant.now());
+ participantStateChangeMsg.setState(participantState);
+
+ return participantStateChangeMsg;
+ }
+
+ /**
+ * Method to create ControlLoopStateChange message from the arguments passed.
+ *
+ * @param controlLoopOrderedState controlLoopOrderedState
+ *
+ * @return ParticipantControlLoopStateChange message
+ */
+ public static ParticipantControlLoopStateChange createControlLoopStateChangeMsg(
+ final ControlLoopOrderedState controlLoopOrderedState) {
+ final ParticipantControlLoopStateChange participantClStateChangeMsg = new ParticipantControlLoopStateChange();
+
+ ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier();
+ controlLoopId.setName("PMSHInstance0");
+ controlLoopId.setVersion("1.0.0");
+
+ ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
+ participantId.setName("CDSParticipant0");
+ participantId.setVersion("1.0.0");
+
+ participantClStateChangeMsg.setControlLoopId(controlLoopId);
+ participantClStateChangeMsg.setParticipantId(participantId);
+ participantClStateChangeMsg.setTimestamp(Instant.now());
+ participantClStateChangeMsg.setOrderedState(controlLoopOrderedState);
+
+ return participantClStateChangeMsg;
+ }
+
+ /**
+ * Method to create ControlLoopUpdateMsg.
+ *
+ * @return ParticipantControlLoopUpdate message
+ */
+ public static ParticipantControlLoopUpdate createControlLoopUpdateMsg() {
+ final ParticipantControlLoopUpdate clUpdateMsg = new ParticipantControlLoopUpdate();
+ ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier();
+ controlLoopId.setName("PMSHInstance0");
+ controlLoopId.setVersion("1.0.0");
+
+ ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
+ participantId.setName("CDSParticipant0");
+ participantId.setVersion("1.0.0");
+
+ clUpdateMsg.setControlLoopId(controlLoopId);
+ clUpdateMsg.setParticipantId(participantId);
+
+ ControlLoop controlLoop = new ControlLoop();
+ Map<UUID, ControlLoopElement> elements = new LinkedHashMap<>();
+ ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
+ Map<String, ToscaNodeTemplate> nodeTemplatesMap =
+ toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
+ for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
+ ControlLoopElement clElement = new ControlLoopElement();
+ clElement.setId(UUID.randomUUID());
+
+ ToscaConceptIdentifier clElementParticipantId = new ToscaConceptIdentifier();
+ clElementParticipantId.setName(toscaInputEntry.getKey());
+ clElementParticipantId.setVersion(toscaInputEntry.getValue().getVersion());
+ clElement.setParticipantId(clElementParticipantId);
+
+ clElement.setDefinition(clElementParticipantId);
+ clElement.setState(ControlLoopState.UNINITIALISED);
+ clElement.setDescription(toscaInputEntry.getValue().getDescription());
+ clElement.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
+ elements.put(clElement.getId(), clElement);
+ }
+ controlLoop.setElements(elements);
+ controlLoop.setName("PMSHInstance0");
+ controlLoop.setVersion("1.0.0");
+ controlLoop.setDefinition(controlLoopId);
+ clUpdateMsg.setControlLoop(controlLoop);
+ clUpdateMsg.setControlLoopDefinition(toscaServiceTemplate);
+
+ return clUpdateMsg;
+ }
+
+ /**
+ * Method to create ParticipantHealthCheck message.
+ *
+ * @return ParticipantHealthCheck message
+ */
+ public static ParticipantHealthCheck createParticipantHealthCheckMsg() {
+ ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
+ participantId.setName("CDSParticipant0");
+ participantId.setVersion("1.0.0");
+
+ ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier();
+ controlLoopId.setName("PMSHInstance0");
+ controlLoopId.setVersion("1.0.0");
+
+ final ParticipantHealthCheck participantHealthCheckMsg = new ParticipantHealthCheck();
+ participantHealthCheckMsg.setParticipantId(participantId);
+ participantHealthCheckMsg.setControlLoopId(controlLoopId);
+ participantHealthCheckMsg.setTimestamp(Instant.now());
+ participantHealthCheckMsg.setState(ParticipantState.PASSIVE);
+
+ return participantHealthCheckMsg;
+ }
+
+ /**
+ * Method to create ParticipantControlLoopUpdate using the arguments passed.
+ *
+ * @param jsonFilePath the path of the controlloop content
+ *
+ * @return ParticipantControlLoopUpdate message
+ * @throws CoderException exception while reading the file to object
+ */
+ public static ParticipantControlLoopUpdate createParticipantClUpdateMsgFromJson(String jsonFilePath)
+ throws CoderException {
+ ParticipantControlLoopUpdate participantControlLoopUpdateMsg =
+ CODER.decode(new File(jsonFilePath), ParticipantControlLoopUpdate.class);
+ return participantControlLoopUpdateMsg;
+ }
+
+ private static ToscaServiceTemplate testControlLoopRead() {
+ return testControlLoopYamlSerialization(TOSCA_TEMPLATE_YAML);
+ }
+
+ private static ToscaServiceTemplate testControlLoopYamlSerialization(String controlLoopFilePath) {
+ String controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
+ ToscaServiceTemplate serviceTemplate = yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
+ return serviceTemplate;
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestMain.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestMain.java
new file mode 100644
index 000000000..f779f3a57
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestMain.java
@@ -0,0 +1,151 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.startstop;
+
+import static org.assertj.core.api.Assertions.assertThatCode;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.clamp.controlloop.common.ControlLoopConstants;
+import org.onap.policy.clamp.controlloop.common.exception.ControlLoopRuntimeException;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.startstop.Main;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.startstop.ParticipantDcaeActivator;
+import org.onap.policy.common.utils.resources.MessageConstants;
+import org.onap.policy.common.utils.services.Registry;
+
+/**
+ * Class to perform unit test of {@link Main}}.
+ */
+public class TestMain {
+
+ /**
+ * Set up.
+ */
+ @BeforeClass
+ public static void setUp() {
+ Registry.newRegistry();
+ }
+
+ /**
+ * Shuts "main" down.
+ *
+ * @throws Exception if an error occurs
+ */
+ @AfterClass
+ public static void tearDown() throws Exception {
+ // shut down activator
+ final ParticipantDcaeActivator activator =
+ Registry.getOrDefault(ControlLoopConstants.REG_CLRUNTIME_ACTIVATOR,
+ ParticipantDcaeActivator.class, null);
+ if (activator != null && activator.isAlive()) {
+ activator.shutdown();
+ }
+ }
+
+ @Test
+ public void testMain_Help() {
+ final String[] configParameters = {"-h"};
+ Main main = new Main(configParameters);
+ assertFalse(main.isRunning());
+ }
+
+ @Test
+ public void testMain_Version() {
+ final String[] configParameters = {"-v"};
+ Main main = new Main(configParameters);
+ assertFalse(main.isRunning());
+ }
+
+ @Test
+ public void testMain_Valid() {
+ final String[] configParameters = {"-c", "src/test/resources/parameters/TestParameters.json"};
+ Main main = new Main(configParameters);
+ assertTrue(main.isRunning());
+
+ // ensure items were added to the registry
+ assertNotNull(Registry.get(ControlLoopConstants.REG_CLRUNTIME_ACTIVATOR, ParticipantDcaeActivator.class));
+
+ assertThatCode(() -> main.shutdown()).doesNotThrowAnyException();
+
+ assertFalse(main.isRunning());
+ }
+
+ @Test
+ public void testMain_NoParameter() {
+ assertThatConfigParameterThrownException(new String[] {});
+ }
+
+ @Test
+ public void testMain_FilePathNotDefined() {
+ assertThatConfigParameterThrownException(new String[] {"-c"});
+ }
+
+ @Test
+ public void testMain_TooManyCommand() {
+ assertThatConfigParameterThrownException(new String[] {"-h", "d"});
+ }
+
+ @Test
+ public void testMain_WrongParameter() {
+ assertThatConfigParameterThrownException(new String[] {"-d"});
+ }
+
+ private void assertThatConfigParameterThrownException(final String[] configParameters) {
+ assertThatThrownBy(() -> Main.main(configParameters)).isInstanceOf(ControlLoopRuntimeException.class)
+ .hasMessage(String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_CLAMP));
+ }
+
+ @Test
+ public void testParticipant_NoFileWithThisName() {
+ assertThatConfigFileThrownException("src/test/resources/parameters/NoFileWithThisName.json");
+ }
+
+ @Test
+ public void testParticipant_NotValidFile() {
+ assertThatConfigFileThrownException("src/test/resources/parameters");
+ }
+
+ @Test
+ public void testParticipant_NoParameters() {
+ assertThatConfigFileThrownException("src/test/resources/parameters/NoParameters.json");
+ }
+
+ @Test
+ public void testParticipant_InvalidParameters() {
+ assertThatConfigFileThrownException("src/test/resources/parameters/InvalidParameters.json");
+ }
+
+ @Test
+ public void testParticipant_WrongJsonFormat() {
+ assertThatConfigFileThrownException("src/test/resources/parameters/Unreadable.json");
+ }
+
+ private void assertThatConfigFileThrownException(final String configFilePath) {
+ final String[] configParameters = new String[] {"-c", configFilePath};
+ assertThatThrownBy(() -> new Main(configParameters)).isInstanceOf(ControlLoopRuntimeException.class)
+ .hasMessage(String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_CLAMP));
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestParticipantDcaeActivator.java b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestParticipantDcaeActivator.java
new file mode 100644
index 000000000..1903868e2
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/java/org/onap/policy/clamp/controlloop/participant/dcae/main/startstop/TestParticipantDcaeActivator.java
@@ -0,0 +1,94 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.controlloop.participant.dcae.main.startstop;
+
+import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.CommonTestData;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameterHandler;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.parameters.ParticipantDcaeParameters;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.startstop.ParticipantDcaeActivator;
+import org.onap.policy.clamp.controlloop.participant.dcae.main.startstop.ParticipantDcaeCommandLineArguments;
+import org.onap.policy.common.utils.services.Registry;
+
+/**
+ * Class to perform unit test of {@link ParticipantDcaeActivator}}.
+ *
+ */
+public class TestParticipantDcaeActivator {
+
+ private static ParticipantDcaeActivator activator;
+
+ /**
+ * Initializes an activator.
+ *
+ * @throws Exception if an error occurs
+ */
+ @BeforeClass
+ public static void setUp() throws Exception {
+ Registry.newRegistry();
+ final String[] participantConfigParameters = { "-c", "src/test/resources/parameters/TestParameters.json"};
+ final ParticipantDcaeCommandLineArguments arguments =
+ new ParticipantDcaeCommandLineArguments(participantConfigParameters);
+ final ParticipantDcaeParameters parGroup =
+ new ParticipantDcaeParameterHandler().getParameters(arguments);
+ activator = new ParticipantDcaeActivator(parGroup);
+ }
+
+ /**
+ * Method for cleanup after each test.
+ *
+ * @throws Exception if an error occurs
+ */
+ @AfterClass
+ public static void teardown() throws Exception {
+ // shut down activator
+ if (activator != null && activator.isAlive()) {
+ activator.shutdown();
+ }
+ }
+
+ @Test
+ public void testParticipantActivator() {
+ activator.start();
+ assertTrue(activator.isAlive());
+ assertTrue(activator.getParameters().isValid());
+ assertEquals(CommonTestData.PARTICIPANT_GROUP_NAME, activator.getParameters().getName());
+
+ // repeat - should throw an exception
+ assertThatIllegalStateException().isThrownBy(() -> activator.start());
+ assertTrue(activator.isAlive());
+ assertTrue(activator.getParameters().isValid());
+
+ activator.shutdown();
+ assertFalse(activator.isAlive());
+
+ // repeat - should throw an exception
+ assertThatIllegalStateException().isThrownBy(() -> activator.shutdown());
+ assertFalse(activator.isAlive());
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/InvalidParameters.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/InvalidParameters.json
new file mode 100644
index 000000000..1035ccb67
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/InvalidParameters.json
@@ -0,0 +1,3 @@
+{
+ "name": "
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/MinimumParametersH2.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/MinimumParametersH2.json
new file mode 100644
index 000000000..1ee2955b9
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/MinimumParametersH2.json
@@ -0,0 +1,61 @@
+{
+ "name": "ControlLoopParticipantGroup",
+ "restServerParameters": {
+ "host": "0.0.0.0",
+ "port": 6969,
+ "userName": "healthcheck",
+ "password": "zb!XztG34",
+ "https": false,
+ "aaf": false
+ },
+ "intermediaryParameters": {
+ "name": "Participant parameters",
+ "reportingTimeInterval": 120000,
+ "description": "Participant Description",
+ "participantId": {
+ "name": "DCAEParticipant0",
+ "version": "1.0.0"
+ },
+ "participantType": {
+ "name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
+ "version": "2.3.4"
+ },
+ "clampControlLoopTopics": {
+ "topicSources": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap",
+ "fetchTimeout": 15000
+ }
+ ],
+ "topicSinks": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ },
+ {
+ "topic": "POLICY-NOTIFICATION",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ }
+ ]
+ }
+ },
+ "databaseProviderParameters": {
+ "name": "PolicyProviderParameterGroup",
+ "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+ "databaseDriver": "org.h2.Driver",
+ "databaseUrl": "jdbc:h2:mem:testdb",
+ "databaseUser": "policy",
+ "databasePassword": "P01icY",
+ "persistenceUnit": "ToscaConceptTest"
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/NoParameters.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/NoParameters.json
new file mode 100644
index 000000000..7a73a41bf
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/NoParameters.json
@@ -0,0 +1,2 @@
+{
+} \ No newline at end of file
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestCLParams.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestCLParams.json
new file mode 100644
index 000000000..a4258622d
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestCLParams.json
@@ -0,0 +1,160 @@
+tosca_definitions_version: tosca_simple_yaml_1_3
+data_types:
+ onap.datatypes.ToscaConceptIdentifier:
+ derived_from: tosca.datatypes.Root
+ properties:
+ name:
+ type: string
+ required: true
+ version:
+ type: string
+ required: true
+node_types:
+ org.onap.policy.clamp.controlloop.Participant:
+ version: 1.0.1
+ derived_from: tosca.nodetypes.Root
+ properties:
+ provider:
+ type: string
+ requred: false
+ org.onap.policy.clamp.controlloop.ControlLoopElement:
+ version: 1.0.1
+ derived_from: tosca.nodetypes.Root
+ properties:
+ provider:
+ type: string
+ requred: false
+ participant_id:
+ type: onap.datatypes.ToscaConceptIdentifier
+ requred: true
+ org.onap.policy.clamp.controlloop.ControlLoop:
+ version: 1.0.1
+ derived_from: tosca.nodetypes.Root
+ properties:
+ provider:
+ type: string
+ requred: false
+ elements:
+ type: list
+ required: true
+ entry_schema:
+ type: onap.datatypes.ToscaConceptIdentifier
+ org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement:
+ version: 1.0.1
+ derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+ properties:
+ dcae_blueprint_id:
+ type: onap.datatypes.ToscaConceptIdentifier
+ requred: true
+ org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement:
+ version: 1.0.1
+ derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+ properties:
+ policy_type_id:
+ type: onap.datatypes.ToscaConceptIdentifier
+ requred: true
+ org.onap.policy.clamp.controlloop.CDSControlLoopElement:
+ version: 1.0.1
+ derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+ properties:
+ cds_blueprint_id:
+ type: onap.datatypes.ToscaConceptIdentifier
+ requred: true
+topology_template:
+ node_templates:
+ org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant:
+ version: 2.3.4
+ type: org.onap.policy.clamp.controlloop.Participant
+ type_version: 1.0.1
+ description: Participant for DCAE microservices
+ properties:
+ provider: ONAP
+ org.onap.policy.controlloop.MonitoringPolicyControlLoopParticipant:
+ version: 2.3.1
+ type: org.onap.policy.clamp.controlloop.Participant
+ type_version: 1.0.1
+ description: Participant for DCAE microservices
+ properties:
+ provider: ONAP
+ org.onap.policy.controlloop.OperationalPolicyControlLoopParticipant:
+ version: 3.2.1
+ type: org.onap.policy.clamp.controlloop.Participant
+ type_version: 1.0.1
+ description: Participant for DCAE microservices
+ properties:
+ provider: ONAP
+ org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant:
+ version: 2.2.1
+ type: org.onap.policy.clamp.controlloop.Participant
+ type_version: 1.0.1
+ description: Participant for DCAE microservices
+ properties:
+ provider: ONAP
+ org.onap.domain.pmsh.PMSH_DCAEMicroservice:
+ version: 1.2.3
+ type: org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement
+ type_version: 1.0.0
+ description: Control loop element for the DCAE microservice for Performance Management Subscription Handling
+ properties:
+ provider: Ericsson
+ participant_id:
+ name: org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant
+ version: 2.3.4
+ dcae_blueprint_id:
+ name: org.onap.dcae.blueprints.PMSHBlueprint
+ version: 1.0.0
+ org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement:
+ version: 1.2.3
+ type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
+ type_version: 1.0.0
+ description: Control loop element for the monitoring policy for Performance Management Subscription Handling
+ properties:
+ provider: Ericsson
+ participant_id:
+ name: org.onap.policy.controlloop.MonitoringPolicyControlLoopParticipant
+ version: 2.3.1
+ policy_type_id:
+ name: onap.policies.monitoring.pm-subscription-handler
+ version: 1.0.0
+ org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement:
+ version: 1.2.3
+ type: org.onap.policy.clamp.controlloop.PolicyTypeControlLoopElement
+ type_version: 1.0.0
+ description: Control loop element for the operational policy for Performance Management Subscription Handling
+ properties:
+ provider: Ericsson
+ participant_id:
+ name: org.onap.policy.controlloop.OperationalPolicyControlLoopParticipant
+ version: 2.2.1
+ policy_type_id:
+ name: onap.policies.operational.pm-subscription-handler
+ version: 1.0.0
+ org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement:
+ version: 1.2.3
+ type: org.onap.policy.clamp.controlloop.ControlLoopElement
+ type_version: 1.0.0
+ description: Control loop element for CDS for Performance Management Subscription Handling
+ properties:
+ provider: Ericsson
+ participant_Id:
+ name: org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant
+ version: 3.2.1
+ cds_blueprint_id:
+ name: org.onap.ccsdk.cds.PMSHCdsBlueprint
+ version: 1.0.0
+ org.onap.domain.pmsh.PMSHControlLoopDefinition:
+ version: 1.2.3
+ type: org.onap.policy.clamp.controlloop.ControlLoop
+ type_version: 1.0.0
+ description: Control loop for Performance Management Subscription Handling
+ properties:
+ provider: Ericsson
+ elements:
+ - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
+ version: 1.2.3
+ - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement
+ version: 1.2.3
+ - name: org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement
+ version: 1.2.3
+ - name: org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement
+ version: 1.2.3
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParameters.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParameters.json
new file mode 100644
index 000000000..789fc7bbd
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParameters.json
@@ -0,0 +1,71 @@
+{
+ "name": "ControlLoopParticipantGroup",
+ "clampClientParameters": {
+ "name": "Clamp",
+ "host": "0.0.0.0",
+ "port": 8443,
+ "userName": "admin",
+ "password": "password",
+ "https": true,
+ "aaf": false
+ },
+ "consulClientParameters": {
+ "name": "Clamp",
+ "host": "consul",
+ "port": 31321,
+ "userName": "admin",
+ "password": "password",
+ "https": false,
+ "aaf": false
+ },
+ "intermediaryParameters": {
+ "name": "Participant parameters",
+ "reportingTimeInterval": 120000,
+ "description": "Participant Description",
+ "participantId": {
+ "name": "DCAEParticipant0",
+ "version": "1.0.0"
+ },
+ "participantType": {
+ "name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
+ "version": "2.3.4"
+ },
+ "clampControlLoopTopics": {
+ "topicSources": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap",
+ "fetchTimeout": 15000
+ }
+ ],
+ "topicSinks": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ },
+ {
+ "topic": "POLICY-NOTIFICATION",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ }
+ ]
+ }
+ },
+ "databaseProviderParameters": {
+ "name": "PolicyProviderParameterGroup",
+ "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+ "databaseDriver": "org.h2.Driver",
+ "databaseUrl": "jdbc:h2:mem:testdb",
+ "databaseUser": "policy",
+ "databasePassword": "P01icY",
+ "persistenceUnit": "ToscaConceptTest"
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParametersStd.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParametersStd.json
new file mode 100644
index 000000000..789fc7bbd
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/TestParametersStd.json
@@ -0,0 +1,71 @@
+{
+ "name": "ControlLoopParticipantGroup",
+ "clampClientParameters": {
+ "name": "Clamp",
+ "host": "0.0.0.0",
+ "port": 8443,
+ "userName": "admin",
+ "password": "password",
+ "https": true,
+ "aaf": false
+ },
+ "consulClientParameters": {
+ "name": "Clamp",
+ "host": "consul",
+ "port": 31321,
+ "userName": "admin",
+ "password": "password",
+ "https": false,
+ "aaf": false
+ },
+ "intermediaryParameters": {
+ "name": "Participant parameters",
+ "reportingTimeInterval": 120000,
+ "description": "Participant Description",
+ "participantId": {
+ "name": "DCAEParticipant0",
+ "version": "1.0.0"
+ },
+ "participantType": {
+ "name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
+ "version": "2.3.4"
+ },
+ "clampControlLoopTopics": {
+ "topicSources": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap",
+ "fetchTimeout": 15000
+ }
+ ],
+ "topicSinks": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ },
+ {
+ "topic": "POLICY-NOTIFICATION",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ }
+ ]
+ }
+ },
+ "databaseProviderParameters": {
+ "name": "PolicyProviderParameterGroup",
+ "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+ "databaseDriver": "org.h2.Driver",
+ "databaseUrl": "jdbc:h2:mem:testdb",
+ "databaseUser": "policy",
+ "databasePassword": "P01icY",
+ "persistenceUnit": "ToscaConceptTest"
+ }
+}
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/Unreadable.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/Unreadable.json
new file mode 100644
index 000000000..581ce8f4f
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/Unreadable.json
@@ -0,0 +1,81 @@
+{
+ "name": "ControlLoopRuntimeGroup",
+ "restServerParameters": {
+ "host": "0.0.0.0",
+ "port": ${port},
+ "userName": "healthcheck",
+ "password": "zb!XztG34",
+ "https": false,
+ "aaf": false
+ },
+ "participantParameters": {
+ "heartBeatMs": 120000,
+ "updateParameters": {
+ "maxRetryCount": 1,
+ "maxWaitMs": 30000
+ },
+ "stateChangeParameters": {
+ "maxRetryCount": 1,
+ "maxWaitMs": 30000
+ }
+ },
+ "databaseProviderParameters": {
+ "name": "PolicyProviderParameterGroup",
+ "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl",
+ "databaseDriver": "org.h2.Driver",
+ "databaseUrl": "${dbName}",
+ "databaseUser": "policy",
+ "databasePassword": "P01icY",
+ "persistenceUnit": "ToscaConceptTest"
+ },
+ "topicParameterGroup": {
+ "topicSources": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap",
+ "fetchTimeout": 15000
+ }
+ ],
+ "topicSinks": [
+ {
+ "topic": "POLICY-CLRUNTIME-PARTICIPANT",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ },
+ {
+ "topic": "POLICY-NOTIFICATION",
+ "servers": [
+ "localhost"
+ ],
+ "topicCommInfrastructure": "dmaap"
+ }
+ ]
+ },
+ "healthCheckRestClientParameters": [
+ {
+ "clientName": "api",
+ "hostname": "policy-api",
+ "port": 6969,
+ "userName": "healthcheck",
+ "password": "zb!XztG34",
+ "useHttps": true,
+ "basePath": "policy/api/v1/healthcheck"
+ },
+ {
+ "clientName": "distribution",
+ "hostname": "policy-distribution",
+ "port": 6969,
+ "userName": "healthcheck",
+ "password": "zb!XztG34",
+ "useHttps": true,
+ "basePath": "healthcheck"
+ }
+ ]
+}
+
+
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/logback-test.xml b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/logback-test.xml
new file mode 100644
index 000000000..cf6b89eb9
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/parameters/logback-test.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2021 Nordix Foundation.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============LICENSE_END=========================================================
+-->
+
+<configuration>
+
+ <contextName>Participant</contextName>
+ <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
+ <property name="LOG_DIR" value="${java.io.tmpdir}/clamp_logging/" />
+
+ <!-- USE FOR STD OUT ONLY -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <Pattern>%d %contextName [%t] %level %logger{36} - %msg%n</Pattern>
+ </encoder>
+ </appender>
+
+ <root level="info">
+ <appender-ref ref="STDOUT" />
+ </root>
+
+ <logger name="org.onap.policy.clamp.controlloop.participant" level="trace" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+</configuration>
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/rest/servicetemplates/pm_control_loop_tosca.yaml b/participant/participant-impl/participant-impl-dcae/src/test/resources/rest/servicetemplates/pm_control_loop_tosca.yaml
new file mode 100644
index 000000000..01f825fc9
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/rest/servicetemplates/pm_control_loop_tosca.yaml
@@ -0,0 +1,452 @@
+tosca_definitions_version: tosca_simple_yaml_1_3
+capability_types:
+ org.onap.EventProducer:
+ properties:
+ carrier_protocol_type:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - DMAAP_message_router
+ - SOMETHING_ELSE
+ - REST
+ data_format:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - JSON
+ - YAML
+ - JMS
+ event_format:
+ type: string
+ required: true
+ event_format_version:
+ type: string
+ required: false
+ config_keys:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - all valid values should be added here
+ - if not specified, events of any config key may be generated
+ - 'examples for config_key: ves-measurement, ves-syslog, tca_handle_out,
+ etc.'
+ version: 0.0.1
+ derived_from: tosca.capabilities.Root
+ org.onap.EventConsumer:
+ properties:
+ responding_capability:
+ type: string
+ required: false
+ carrier_protocol_type:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - DMAAP_message_router
+ - SOMETHING_ELSE
+ - REST
+ data_format:
+ type: string
+ required: true
+ constraints:
+ - valid_values:
+ - JSON
+ - YAML
+ - JMS
+ - all valid values should be added here
+ event_format:
+ type: string
+ description: 'examples for event_format: Ves_specification, LinkUp, VnfConfigured,
+ etc.'
+ required: true
+ event_format_version:
+ type: string
+ description: 'examples for event_format_version: 5.28.4, 7.30.1, etc.'
+ required: false
+ config_keys:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - all valid values should be added here
+ - if not specified, events of any config key may be generated
+ - 'examples for config_key: ves-measurement, ves-syslog, tca_handle_out,
+ etc.'
+ version: 0.0.1
+ derived_from: tosca.capabilities.Root
+node_types:
+ org.onap.DynamicConfig:
+ properties:
+ application_name:
+ type: string
+ description: Value used to tie the config to an application ? should we be
+ using a relationship here instead?
+ required: true
+ application_version:
+ type: string
+ required: true
+ application_provider:
+ type: string
+ required: false
+ data_types:
+ type: object
+ required: false
+ schema:
+ type: object
+ required: false
+ version: 0.0.1
+ derived_from: tosca.nodes.Root
+ org.onap.APP:
+ properties:
+ application_name:
+ type: string
+ description: Human readable name for the application Product
+ required: false
+ provider:
+ type: string
+ description: Provider of the application and of the descriptor
+ required: true
+ application_version:
+ type: string
+ description: Software version of the application
+ required: true
+ blueprint_id:
+ type: string
+ description: A reference to the app blueprint
+ required: false
+ monitoring_policy:
+ type: string
+ description: A reference to the monitoring policy
+ required: false
+ requirements:
+ - receive:
+ capability: org.onap.EventProducer
+ relationship: org.onap.PropagateEvent
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ - send:
+ capability: org.onap.EventConsumer
+ relationship: org.onap.PropagateEvent
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ version: 0.0.1
+ derived_from: tosca.nodes.Root
+ org.onap.EventRelay:
+ properties:
+ event_format:
+ type: string
+ description: 'examples for event_format: Ves_specification, etc.'
+ required: true
+ event_format_version:
+ type: string
+ description: 'examples for event_format_version: 5.28.4, 7.30.1, etc.'
+ required: true
+ config_keys:
+ type: list
+ required: false
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - all valid values should be added here
+ - if not specified, events of any config key is relayed
+ - 'examples for config_key: ves-measurement, ves-syslog, tca_handle_out,
+ etc.'
+ supported_carrier_protocols:
+ type: map
+ description: 'A map describing supported carrier protocols and translations.
+ The tuples define what protocol combinations are supported on the producer
+ and consumer side: e.g. { REST: REST, DMAAP: REST, DMAAP: DMAAP}'
+ required: true
+ key_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - DMAAP_message_router
+ - SOMETHING_ELSE
+ - REST
+ - all valid values should be added here
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - DMAAP_message_router
+ - SOMETHING_ELSE
+ - REST
+ - all valid values should be added here
+ supported_data_formats:
+ type: map
+ description: 'Is a map describing supported data formats and translation.
+ The tuples define what protocol combinations are supported on the producer
+ and consumer side: e.g. { JSON: JSON, JMS: JSON, YAML:YAML }'
+ required: true
+ key_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - JSON
+ - JMS
+ - YAML
+ - etc
+ - all valid values should be added here
+ entry_schema:
+ type: string
+ constraints:
+ - valid_values:
+ - JSON
+ - JMS
+ - YAML
+ - etc
+ - all valid values should be added here
+ requirements:
+ - receive:
+ capability: org.onap.EventProducer
+ relationship: org.onap.PropagateEvent
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ - send:
+ capability: org.onap.EventConsumer
+ relationship: org.onap.PropagateEvent
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ version: 0.0.1
+ derived_from: tosca.nodes.Root
+relationship_types:
+ org.onap.PropagateEvent:
+ properties:
+ config_keys:
+ type: list
+ description: The relationship type used on requirements to org.onap.EventProducer
+ and org.onap.EventConsumer capabilities. Filters events by specific config_keys
+ to be transferred by this relationship. That is, any event with a specific
+ config_key found in the list is transferred. If list is not defined or is
+ empty, events with all config_keys are transferred.
+ required: false
+ entry_schema:
+ type: string
+ version: 0.0.1
+ derived_from: tosca.relationships.Root
+topology_template:
+ inputs:
+ pm_subscription_topic:
+ type: string
+ pm_subscription_response_topic:
+ type: string
+ pm_subscription_handler_blueprint_id:
+ type: string
+ pm_subscription_operational_policy_id:
+ type: string
+ pm_subscription_cds_blueprint_id:
+ type: string
+ enable_tls:
+ type: string
+ node_templates:
+ org.onap.PM_Subscription_Handler:
+ type: org.onap.APP
+ properties:
+ application_name: PM Subscription Handler
+ provider: Ericsson
+ application_version: 1.0.0
+ artifact_id:
+ get_input: pm_subscription_handler_blueprint_id
+ description: Is this a reference to the DCAE Cloudify Blueprint that is
+ already stored(or will be stored before CL configuration & instatiation)
+ in DCAE Inventory?
+ artifact_config:
+ enable_tls:
+ get_input: enable_tls
+ pmsh_publish_topic_name:
+ get_input: pm_subscription_topic
+ capabilities:
+ pm-subscription-event-publisher:
+ properties:
+ carrier_protocol_type: DMAAP_message_router
+ data_format: JSON
+ event_format: pm-subscription-event-format
+ event_format_version: 1.0.0
+ attributes:
+ type: org.onap.EventProducer
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ pm-subscription-event-receiver:
+ properties:
+ carrier_protocol_type: DMAAP_message_router
+ data_format: JSON
+ event_format: pm-subscription-event-response-format
+ event_format_version: 1.0.0
+ relationships:
+ - type: tosca.relationships.DependsOn
+ - description: any ideas on a better realtionship ? or is it better to
+ just use the root realtionship ?
+ - target: org.onap.PM_Monitoring_Policy
+ attributes:
+ type: org.onap.EventConsumer
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ version: 0.0.0
+ org.onap.PM_Monitoring_Policy:
+ type: org.onap.DynamicConfig
+ properties:
+ application_name: PM Subscription Handler
+ application_version: 1.0.0
+ provider: Ericsson
+ data_types:
+ measurementType:
+ type: string
+ DN:
+ type: string
+ nfFilter:
+ properties:
+ nfNames:
+ type: list
+ entry_schema: string
+ modelInvariantIDs:
+ type: list
+ entry_schema:
+ type: string
+ modelVersionIDs:
+ type: list
+ entry_schema:
+ type: string
+ measurementGroup:
+ properties:
+ masurementTypes:
+ type: list
+ entry_schema:
+ type: measurementType
+ managedObjectDNsBasic:
+ type: list
+ entry_schema:
+ type: DN
+ schema:
+ subscription:
+ subscriptionName:
+ type: string
+ required: true
+ administrativeState:
+ type: string
+ required: true
+ filebasedGP:
+ type: integer
+ required: true
+ fileLocation:
+ type: string
+ required: true
+ nfFilter:
+ type: nfFilter
+ measurementGroups:
+ type: list
+ entry_schema:
+ type: measurementGroup
+ version: 0.0.0
+ description: Should I be showing a dependency between PM Subscription Handler
+ and the PM Monitoring Policy
+ org.onap.PM_Policy:
+ type: org.onap.APP
+ properties:
+ application_name: PM Subscription Operational Policy
+ provider: Ericsson
+ application_version: 1.0.0
+ artifact_id:
+ get_input: pm_subscription_operational_policy_id
+ artifact_config: NOT_DEFINED
+ requirements:
+ - receive_0:
+ capability: pm-subscription-event-publisher
+ node: org.onap.PM_Subscription_Handler
+ relationship: NOT_DEFINED
+ properties:
+ config_keys:
+ - topic_name:
+ get_input: pm_subscription_topic
+ version: 0.0.0
+ - send_0:
+ capability: cds-rest-receive
+ node: org.onap.CDS
+ version: 0.0.0
+ - receive_1:
+ capability: cds-rest-response
+ node: org.onap.CDS
+ version: 0.0.0
+ - send_1:
+ capability: pm-subscription-event-receiver
+ node: org.onap.PM_Subscription_Handler
+ relationship: NOT_DEFINED
+ properties:
+ config_keys:
+ - topic_name:
+ get_input: pm_subscription_response_topic
+ version: 0.0.0
+ capabilities:
+ pm-subscription-response-event-publisher:
+ properties:
+ type: org.onap.EventProducer
+ carrier_protocol_type: DMAAP_message_router
+ data_format: JSON
+ event_format: pm-subscription-event-response-format
+ event_format_version: 1.0.0
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ version: 0.0.0
+ org.onap.PM_CDS_Blueprint:
+ type: org.onap.APP
+ properties:
+ application_name: PM Subscription CDS Blueprint
+ provider: Ericsson
+ application_version: 1.0.0
+ artifact_id:
+ get_input: pm_subscription_cds_blueprint_id
+ capabilities:
+ cds-rest-receive:
+ properties:
+ type: org.onap.EventConsumer
+ protocol_type: REST
+ data_format: JSON
+ event_format: cds_action_format
+ event_format_version: 1.0.0
+ responding_capability: cds-rest-response
+ occurrences:
+ - 0.0
+ - UNBOUNDED
+ version: 0.0.0
+ cds-rest-response:
+ properties:
+ type: org.onap.EventProducer
+ protocol_type: REST
+ data_format: JSON
+ event_format: cds_action_response_format
+ event_format_version: 1.0.0
+ occurrences:
+ - 0.0
+ version: 0.0.0
+ version: 0.0.0
+ org.onap.controlloop0:
+ type: org.onap.APP
+ properties:
+ application_name: Test Control Loop
+ provider: Ericsson
+ application_version: 1.0.0
+ status: NOT_DEPLOYED
+ version: 0.0.0
+version: 0.0.0
diff --git a/participant/participant-impl/participant-impl-dcae/src/test/resources/rest/status.json b/participant/participant-impl/participant-impl-dcae/src/test/resources/rest/status.json
new file mode 100644
index 000000000..143ef635d
--- /dev/null
+++ b/participant/participant-impl/participant-impl-dcae/src/test/resources/rest/status.json
@@ -0,0 +1,3918 @@
+{
+ "name": "pmsh_loop",
+ "globalPropertiesJson": {
+ "dcaeDeployParameters": {
+ "uniqueBlueprintParameters": {
+ "tag_version": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pmsh:1.1.2",
+ "replicas": 1,
+ "operational_policy_name": "pmsh-operational-policy",
+ "control_loop_name": "pmsh-control-loop",
+ "pmsh_publish_topic_name": "unauthenticated.DCAE_CL_OUTPUT",
+ "policy_feedback_topic_name": "unauthenticated.PMSH_CL_INPUT",
+ "aai_notification_topic_name": "AAI-EVENT",
+ "publisher_client_role": "org.onap.dcae.pmPublisher",
+ "subscriber_client_role": "org.onap.dcae.pmSubscriber",
+ "dcae_location": "san-francisco",
+ "cpu_limit": "1000m",
+ "cpu_request": "1000m",
+ "memory_limit": "1024Mi",
+ "memory_request": "1024Mi",
+ "pgaas_cluster_name": "dcae-pg-primary.onap",
+ "enable_tls": true,
+ "protocol": "https",
+ "policy_model_id": "onap.policies.monitoring.dcae-pm-subscription-handler",
+ "policy_id": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh"
+ }
+ }
+ },
+ "modelService": {
+ "serviceDetails": {
+ "serviceType": "",
+ "serviceRole": "",
+ "description": "vLBMS",
+ "type": "Service",
+ "instantiationType": "A-la-carte",
+ "namingPolicy": "",
+ "serviceEcompNaming": "true",
+ "environmentContext": "General_Revenue-Bearing",
+ "name": "vLoadBalancerMS",
+ "invariantUUID": "30ec5b59-4799-48d8-ac5f-1058a6b0e48f",
+ "ecompGeneratedNaming": "true",
+ "UUID": "63cac700-ab9a-4115-a74f-7eac85e3fce0",
+ "category": "Network L4+"
+ },
+ "resourceDetails": {
+ "CP": {},
+ "VL": {},
+ "VF": {
+ "vLoadBalancerMS 0": {
+ "resourceVendor": "Test",
+ "name": "vLoadBalancerMS",
+ "resourceVendorModelNumber": "",
+ "description": "vLBMS",
+ "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506",
+ "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6",
+ "type": "VF",
+ "category": "Application L4+",
+ "subcategory": "Load Balancer",
+ "version": "1.0",
+ "customizationUUID": "465246dc-7748-45f4-a013-308d92922552",
+ "resourceVendorRelease": "1.0",
+ "controllerProperties": {
+ "sdnc_model_name": "baseconfiguration",
+ "sdnc_model_version": "1.0.0",
+ "workflows": {
+ "resource-assignment": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-restconf": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-cli": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "assign-activate": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "imperative-test-wf": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "CR": {},
+ "VFC": {},
+ "PNF": {},
+ "Service": {},
+ "CVFC": {},
+ "Service Proxy": {},
+ "Configuration": {},
+ "AllottedResource": {},
+ "VFModule": {
+ "Vloadbalancerms..vpkg..module-1": {
+ "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vpkg..module-1",
+ "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+ "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vpkg",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vdns..module-3": {
+ "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vdns..module-3",
+ "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720",
+ "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vdns",
+ "max_vf_module_instances": 50,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..base_template..module-0": {
+ "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..base_template..module-0",
+ "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce",
+ "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+ "min_vf_module_instances": 1,
+ "vf_module_label": "base_template",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Base",
+ "isBase": true,
+ "initial_count": 1,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vlb..module-2": {
+ "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vlb..module-2",
+ "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+ "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vlb",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ }
+ }
+ }
+ },
+ "lastComputedState": "DESIGN",
+ "components": {
+ "POLICY": {
+ "componentState": {
+ "stateName": "NOT_SENT",
+ "description": "The policies defined have NOT yet been created on the policy engine"
+ }
+ },
+ "DCAE": {
+ "componentState": {
+ "stateName": "${status}",
+ "description": "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop"
+ }
+ }
+ },
+ "operationalPolicies": [],
+ "microServicePolicies": [
+ {
+ "name": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh",
+ "shared": false,
+ "jsonRepresentation": {
+ "title": "onap.policies.monitoring.dcae-pm-subscription-handler",
+ "type": "object",
+ "required": [],
+ "properties": {
+ "pmsh_policy": {
+ "title": "onap.datatypes.monitoring.subscription",
+ "type": "object",
+ "required": [
+ "measurementGroups",
+ "fileBasedGP",
+ "fileLocation",
+ "subscriptionName",
+ "administrativeState",
+ "nfFilter"
+ ],
+ "properties": {
+ "measurementGroups": {
+ "type": "array",
+ "description": "Measurement Groups",
+ "items": {
+ "title": "onap.datatypes.monitoring.measurementGroups",
+ "type": "object",
+ "required": [
+ "measurementGroup"
+ ],
+ "properties": {
+ "measurementGroup": {
+ "type": "object",
+ "description": "Measurement Group",
+ "properties": {
+ "onap.datatypes.monitoring.measurementGroup": {
+ "title": "onap.datatypes.monitoring.measurementGroup",
+ "type": "object",
+ "required": [
+ "measurementTypes",
+ "managedObjectDNsBasic"
+ ],
+ "properties": {
+ "measurementTypes": {
+ "type": "array",
+ "description": "List of measurement types",
+ "items": {
+ "title": "onap.datatypes.monitoring.measurementTypes",
+ "type": "object",
+ "required": [
+ "measurementType"
+ ],
+ "properties": {
+ "measurementType": {
+ "type": "object",
+ "description": "Measurement type object",
+ "properties": {
+ "onap.datatypes.monitoring.measurementType": {
+ "title": "onap.datatypes.monitoring.measurementType",
+ "type": "object",
+ "required": [
+ "measurementType"
+ ],
+ "properties": {
+ "measurementType": {
+ "type": "string",
+ "description": "Measurement type"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "format": "tabs-top"
+ },
+ "managedObjectDNsBasic": {
+ "type": "array",
+ "description": "List of managed object distinguished names",
+ "items": {
+ "title": "onap.datatypes.monitoring.managedObjectDNsBasics",
+ "type": "object",
+ "required": [
+ "managedObjectDNsBasic"
+ ],
+ "properties": {
+ "managedObjectDNsBasic": {
+ "type": "object",
+ "description": "Managed object distinguished name object",
+ "properties": {
+ "onap.datatypes.monitoring.managedObjectDNsBasic": {
+ "title": "onap.datatypes.monitoring.managedObjectDNsBasic",
+ "type": "object",
+ "required": [
+ "DN"
+ ],
+ "properties": {
+ "DN": {
+ "type": "string",
+ "description": "Managed object distinguished name"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "format": "tabs-top"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "format": "tabs-top"
+ },
+ "fileBasedGP": {
+ "type": "integer",
+ "description": "File based granularity period"
+ },
+ "fileLocation": {
+ "type": "string",
+ "description": "ROP file location"
+ },
+ "subscriptionName": {
+ "type": "string",
+ "description": "Name of the subscription"
+ },
+ "administrativeState": {
+ "type": "string",
+ "description": "State of the subscription",
+ "enum": [
+ "LOCKED",
+ "UNLOCKED"
+ ]
+ },
+ "nfFilter": {
+ "type": "object",
+ "description": "Network function filter",
+ "properties": {
+ "onap.datatypes.monitoring.nfFilter": {
+ "title": "onap.datatypes.monitoring.nfFilter",
+ "type": "object",
+ "required": [
+ "modelVersionIDs",
+ "modelInvariantIDs",
+ "modelNames",
+ "nfNames"
+ ],
+ "properties": {
+ "modelVersionIDs": {
+ "type": "array",
+ "description": "List of model version IDs",
+ "items": {
+ "type": "string"
+ },
+ "format": "tabs-top"
+ },
+ "modelInvariantIDs": {
+ "type": "array",
+ "description": "List of model invariant IDs",
+ "items": {
+ "type": "string"
+ },
+ "format": "tabs-top"
+ },
+ "modelNames": {
+ "type": "array",
+ "description": "List of model names",
+ "items": {
+ "type": "string"
+ },
+ "format": "tabs-top"
+ },
+ "nfNames": {
+ "type": "array",
+ "description": "List of network functions",
+ "items": {
+ "type": "string"
+ },
+ "format": "tabs-top"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "loopElementModel": {
+ "name": "onap.policies.monitoring.dcae-pm-subscription-handler",
+ "loopElementType": "MICRO_SERVICE_TYPE",
+ "policyModels": [
+ {
+ "policyModelType": "onap.policies.monitoring.dcae-pm-subscription-handler",
+ "version": "1.0.0",
+ "policyAcronym": "dcae-pm-subscription-handler",
+ "policyPdpGroup": {
+ "supportedPdpGroups": [
+ {
+ "ControlLoopGroup": [
+ "apex",
+ "xacml"
+ ]
+ },
+ {
+ "defaultGroup": [
+ "xacml"
+ ]
+ }
+ ]
+ },
+ "createdDate": "2021-03-30T09:55:52.261232Z",
+ "updatedDate": "2021-03-30T09:56:17.502284Z",
+ "updatedBy": "Not found",
+ "createdBy": "Not found"
+ }
+ ],
+ "createdDate": "2021-03-30T08:48:21Z",
+ "updatedDate": "2021-03-30T08:48:21Z",
+ "updatedBy": "Not found",
+ "createdBy": "Not found"
+ },
+ "policyModel": {
+ "policyModelType": "onap.policies.monitoring.dcae-pm-subscription-handler",
+ "version": "1.0.0",
+ "policyAcronym": "dcae-pm-subscription-handler",
+ "policyPdpGroup": {
+ "supportedPdpGroups": [
+ {
+ "ControlLoopGroup": [
+ "apex",
+ "xacml"
+ ]
+ },
+ {
+ "defaultGroup": [
+ "xacml"
+ ]
+ }
+ ]
+ },
+ "createdDate": "2021-03-30T09:55:52.261232Z",
+ "updatedDate": "2021-03-30T09:56:17.502284Z",
+ "updatedBy": "Not found",
+ "createdBy": "Not found"
+ },
+ "createdDate": "2021-03-30T13:07:07.960379Z",
+ "updatedDate": "2021-03-30T13:07:07.960379Z",
+ "updatedBy": "admin",
+ "createdBy": "admin"
+ }
+ ],
+ "loopLogs": [
+ {
+ "id": 478,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-05-07T09:32:44Z"
+ },
+ {
+ "id": 477,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-05-07T09:32:44Z"
+ },
+ {
+ "id": 476,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-05-07T09:32:43Z"
+ },
+ {
+ "id": 475,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-05-07T09:32:43Z"
+ },
+ {
+ "id": 474,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-05-07T09:32:43Z"
+ },
+ {
+ "id": 473,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-05-07T09:32:43Z"
+ },
+ {
+ "id": 472,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-05-07T09:32:39Z"
+ },
+ {
+ "id": 471,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-05-07T09:32:39Z"
+ },
+ {
+ "id": 470,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-05-07T09:32:35Z"
+ },
+ {
+ "id": 451,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-07T13:34:30Z"
+ },
+ {
+ "id": 450,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-07T13:34:30Z"
+ },
+ {
+ "id": 449,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-07T13:34:30Z"
+ },
+ {
+ "id": 448,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-07T13:34:30Z"
+ },
+ {
+ "id": 447,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-07T13:34:30Z"
+ },
+ {
+ "id": 446,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-07T13:34:30Z"
+ },
+ {
+ "id": 445,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-07T13:34:26Z"
+ },
+ {
+ "id": 444,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-07T13:34:26Z"
+ },
+ {
+ "id": 443,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-07T13:34:22Z"
+ },
+ {
+ "id": 442,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "PDP Group remove ALL status - : ",
+ "logInstant": "2021-04-07T08:32:06Z"
+ },
+ {
+ "id": 441,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "STOP request",
+ "logInstant": "2021-04-07T08:32:02Z"
+ },
+ {
+ "id": 440,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-07T08:23:46Z"
+ },
+ {
+ "id": 439,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-07T08:23:46Z"
+ },
+ {
+ "id": 438,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-07T08:23:46Z"
+ },
+ {
+ "id": 437,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-07T08:23:46Z"
+ },
+ {
+ "id": 436,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-07T08:23:46Z"
+ },
+ {
+ "id": 435,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-07T08:23:46Z"
+ },
+ {
+ "id": 434,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-07T08:23:42Z"
+ },
+ {
+ "id": 433,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-07T08:23:41Z"
+ },
+ {
+ "id": 432,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-07T08:23:37Z"
+ },
+ {
+ "id": 431,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T15:06:27Z"
+ },
+ {
+ "id": 430,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T15:06:27Z"
+ },
+ {
+ "id": 429,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T15:06:27Z"
+ },
+ {
+ "id": 428,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T15:06:27Z"
+ },
+ {
+ "id": 427,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T15:06:27Z"
+ },
+ {
+ "id": 426,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T15:06:27Z"
+ },
+ {
+ "id": 425,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T15:06:22Z"
+ },
+ {
+ "id": 424,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T15:06:22Z"
+ },
+ {
+ "id": 423,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T15:06:18Z"
+ },
+ {
+ "id": 422,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "PDP Group remove ALL status - : ",
+ "logInstant": "2021-04-06T15:06:04Z"
+ },
+ {
+ "id": 421,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "STOP request",
+ "logInstant": "2021-04-06T15:06:00Z"
+ },
+ {
+ "id": 420,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T15:05:28Z"
+ },
+ {
+ "id": 419,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T15:05:28Z"
+ },
+ {
+ "id": 418,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T15:05:28Z"
+ },
+ {
+ "id": 417,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T15:05:28Z"
+ },
+ {
+ "id": 416,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T15:05:28Z"
+ },
+ {
+ "id": 415,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T15:05:28Z"
+ },
+ {
+ "id": 414,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T15:05:24Z"
+ },
+ {
+ "id": 413,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T15:05:23Z"
+ },
+ {
+ "id": 412,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T15:05:19Z"
+ },
+ {
+ "id": 411,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "UNDEPLOY request successfully executed",
+ "logInstant": "2021-04-06T15:05:07Z"
+ },
+ {
+ "id": 410,
+ "logType": "WARNING",
+ "logComponent": "CLAMP",
+ "message": "Cannot Undeploy for the loop: pmsh_loop, the Deployment ID does not exist !",
+ "logInstant": "2021-04-06T15:05:07Z"
+ },
+ {
+ "id": 409,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "DCAE UNDEPLOY request",
+ "logInstant": "2021-04-06T15:05:07Z"
+ },
+ {
+ "id": 408,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DEPLOY loop status\n (Dep-id:CLAMP_7ae6f14d-80c8-4403-a174-ecb215d04c81,\n StatusUrl:) - : ",
+ "logInstant": "2021-04-06T15:02:46Z"
+ },
+ {
+ "id": 407,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "DCAE DEPLOY request",
+ "logInstant": "2021-04-06T15:02:42Z"
+ },
+ {
+ "id": 406,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T15:02:26Z"
+ },
+ {
+ "id": 405,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T15:02:26Z"
+ },
+ {
+ "id": 404,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T15:02:26Z"
+ },
+ {
+ "id": 403,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T15:02:26Z"
+ },
+ {
+ "id": 402,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T15:02:25Z"
+ },
+ {
+ "id": 401,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T15:02:25Z"
+ },
+ {
+ "id": 400,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T15:02:21Z"
+ },
+ {
+ "id": 399,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T15:02:21Z"
+ },
+ {
+ "id": 398,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T15:02:17Z"
+ },
+ {
+ "id": 397,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T14:32:53Z"
+ },
+ {
+ "id": 396,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T14:32:53Z"
+ },
+ {
+ "id": 395,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T14:32:53Z"
+ },
+ {
+ "id": 394,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T14:32:53Z"
+ },
+ {
+ "id": 393,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T14:32:53Z"
+ },
+ {
+ "id": 392,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:32:53Z"
+ },
+ {
+ "id": 391,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T14:32:49Z"
+ },
+ {
+ "id": 390,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:32:49Z"
+ },
+ {
+ "id": 389,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T14:32:44Z"
+ },
+ {
+ "id": 388,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T14:31:37Z"
+ },
+ {
+ "id": 387,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T14:31:37Z"
+ },
+ {
+ "id": 386,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T14:31:37Z"
+ },
+ {
+ "id": 385,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T14:31:37Z"
+ },
+ {
+ "id": 384,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T14:31:37Z"
+ },
+ {
+ "id": 383,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:31:37Z"
+ },
+ {
+ "id": 382,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T14:31:33Z"
+ },
+ {
+ "id": 381,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:31:33Z"
+ },
+ {
+ "id": 380,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T14:31:28Z"
+ },
+ {
+ "id": 379,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T14:30:35Z"
+ },
+ {
+ "id": 378,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T14:30:35Z"
+ },
+ {
+ "id": 377,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T14:30:34Z"
+ },
+ {
+ "id": 376,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T14:30:34Z"
+ },
+ {
+ "id": 375,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T14:30:34Z"
+ },
+ {
+ "id": 374,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:30:34Z"
+ },
+ {
+ "id": 373,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T14:30:30Z"
+ },
+ {
+ "id": 372,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:30:30Z"
+ },
+ {
+ "id": 371,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T14:30:26Z"
+ },
+ {
+ "id": 370,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "PDP Group remove ALL status - : ",
+ "logInstant": "2021-04-06T14:04:21Z"
+ },
+ {
+ "id": 369,
+ "logType": "WARNING",
+ "logComponent": "CLAMP",
+ "message": "Cannot Undeploy for the loop: pmsh_loop, the Deployment ID does not exist !",
+ "logInstant": "2021-04-06T14:04:17Z"
+ },
+ {
+ "id": 368,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "DELETE request",
+ "logInstant": "2021-04-06T14:04:17Z"
+ },
+ {
+ "id": 367,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T14:03:52Z"
+ },
+ {
+ "id": 366,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T14:03:52Z"
+ },
+ {
+ "id": 365,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T14:03:51Z"
+ },
+ {
+ "id": 364,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T14:03:51Z"
+ },
+ {
+ "id": 363,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T14:03:51Z"
+ },
+ {
+ "id": 362,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:03:51Z"
+ },
+ {
+ "id": 361,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T14:03:47Z"
+ },
+ {
+ "id": 360,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T14:03:47Z"
+ },
+ {
+ "id": 359,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T14:03:43Z"
+ },
+ {
+ "id": 358,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "UNDEPLOY request successfully executed",
+ "logInstant": "2021-04-06T14:03:35Z"
+ },
+ {
+ "id": 357,
+ "logType": "WARNING",
+ "logComponent": "CLAMP",
+ "message": "Cannot Undeploy for the loop: pmsh_loop, the Deployment ID does not exist !",
+ "logInstant": "2021-04-06T14:03:35Z"
+ },
+ {
+ "id": 356,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "DCAE UNDEPLOY request",
+ "logInstant": "2021-04-06T14:03:35Z"
+ },
+ {
+ "id": 355,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T13:57:38Z"
+ },
+ {
+ "id": 354,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T13:57:38Z"
+ },
+ {
+ "id": 353,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T13:57:38Z"
+ },
+ {
+ "id": 352,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T13:57:38Z"
+ },
+ {
+ "id": 351,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T13:57:37Z"
+ },
+ {
+ "id": 350,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T13:57:37Z"
+ },
+ {
+ "id": 349,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T13:57:33Z"
+ },
+ {
+ "id": 348,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T13:57:33Z"
+ },
+ {
+ "id": 347,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T13:57:29Z"
+ },
+ {
+ "id": 346,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "PDP Group remove ALL status - : ",
+ "logInstant": "2021-04-06T13:57:21Z"
+ },
+ {
+ "id": 345,
+ "logType": "WARNING",
+ "logComponent": "CLAMP",
+ "message": "Cannot Undeploy for the loop: pmsh_loop, the Deployment ID does not exist !",
+ "logInstant": "2021-04-06T13:57:16Z"
+ },
+ {
+ "id": 344,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "DELETE request",
+ "logInstant": "2021-04-06T13:57:16Z"
+ },
+ {
+ "id": 343,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-06T13:16:29Z"
+ },
+ {
+ "id": 342,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-06T13:16:29Z"
+ },
+ {
+ "id": 341,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-06T13:16:29Z"
+ },
+ {
+ "id": 340,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-06T13:16:29Z"
+ },
+ {
+ "id": 339,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-06T13:16:29Z"
+ },
+ {
+ "id": 338,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T13:16:29Z"
+ },
+ {
+ "id": 337,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-06T13:16:24Z"
+ },
+ {
+ "id": 336,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-06T13:16:24Z"
+ },
+ {
+ "id": 335,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-06T13:16:20Z"
+ },
+ {
+ "id": 334,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Micro Service policies UPDATED",
+ "logInstant": "2021-04-01T16:12:47Z"
+ },
+ {
+ "id": 333,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T16:09:36Z"
+ },
+ {
+ "id": 332,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T16:09:36Z"
+ },
+ {
+ "id": 331,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T16:09:36Z"
+ },
+ {
+ "id": 330,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T16:09:36Z"
+ },
+ {
+ "id": 329,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T16:09:36Z"
+ },
+ {
+ "id": 328,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T16:09:36Z"
+ },
+ {
+ "id": 327,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T16:09:32Z"
+ },
+ {
+ "id": 326,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T16:09:32Z"
+ },
+ {
+ "id": 325,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T16:09:27Z"
+ },
+ {
+ "id": 324,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Micro Service policies UPDATED",
+ "logInstant": "2021-04-01T15:16:20Z"
+ },
+ {
+ "id": 323,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T15:15:57Z"
+ },
+ {
+ "id": 322,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T15:15:57Z"
+ },
+ {
+ "id": 321,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T15:15:57Z"
+ },
+ {
+ "id": 320,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T15:15:57Z"
+ },
+ {
+ "id": 319,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T15:15:57Z"
+ },
+ {
+ "id": 318,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T15:15:57Z"
+ },
+ {
+ "id": 317,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T15:15:52Z"
+ },
+ {
+ "id": 316,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T15:15:52Z"
+ },
+ {
+ "id": 315,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T15:15:48Z"
+ },
+ {
+ "id": 314,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T15:14:19Z"
+ },
+ {
+ "id": 313,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T15:14:19Z"
+ },
+ {
+ "id": 312,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T15:14:19Z"
+ },
+ {
+ "id": 311,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T15:14:19Z"
+ },
+ {
+ "id": 310,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T15:14:19Z"
+ },
+ {
+ "id": 309,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T15:14:19Z"
+ },
+ {
+ "id": 308,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T15:14:15Z"
+ },
+ {
+ "id": 307,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T15:14:15Z"
+ },
+ {
+ "id": 306,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T15:14:10Z"
+ },
+ {
+ "id": 305,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T15:10:59Z"
+ },
+ {
+ "id": 304,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T15:10:59Z"
+ },
+ {
+ "id": 303,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T15:10:59Z"
+ },
+ {
+ "id": 302,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T15:10:59Z"
+ },
+ {
+ "id": 301,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T15:10:59Z"
+ },
+ {
+ "id": 300,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T15:10:59Z"
+ },
+ {
+ "id": 299,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T15:10:55Z"
+ },
+ {
+ "id": 298,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T15:10:54Z"
+ },
+ {
+ "id": 297,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T15:10:50Z"
+ },
+ {
+ "id": 287,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T14:31:38Z"
+ },
+ {
+ "id": 286,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T14:31:38Z"
+ },
+ {
+ "id": 285,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T14:31:37Z"
+ },
+ {
+ "id": 284,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T14:31:37Z"
+ },
+ {
+ "id": 283,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T14:31:37Z"
+ },
+ {
+ "id": 282,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T14:31:37Z"
+ },
+ {
+ "id": 281,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T14:31:33Z"
+ },
+ {
+ "id": 280,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T14:31:33Z"
+ },
+ {
+ "id": 279,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Micro Service policies UPDATED",
+ "logInstant": "2021-04-01T14:31:32Z"
+ },
+ {
+ "id": 278,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T14:31:31Z"
+ },
+ {
+ "id": 277,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T14:31:31Z"
+ },
+ {
+ "id": 276,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T14:31:30Z"
+ },
+ {
+ "id": 275,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T14:31:30Z"
+ },
+ {
+ "id": 274,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 273,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 272,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 271,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 270,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 269,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 268,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 267,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 266,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 265,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 264,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 263,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 262,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 261,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 260,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 259,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 258,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T14:31:29Z"
+ },
+ {
+ "id": 257,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-04-01T14:31:28Z"
+ },
+ {
+ "id": 256,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T14:31:28Z"
+ },
+ {
+ "id": 255,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T14:31:28Z"
+ },
+ {
+ "id": 254,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-04-01T14:31:28Z"
+ },
+ {
+ "id": 253,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T14:31:28Z"
+ },
+ {
+ "id": 252,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T14:31:28Z"
+ },
+ {
+ "id": 251,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T14:31:28Z"
+ },
+ {
+ "id": 250,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Micro Service policies UPDATED",
+ "logInstant": "2021-04-01T12:39:55Z"
+ },
+ {
+ "id": 249,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T12:38:31Z"
+ },
+ {
+ "id": 248,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T12:38:31Z"
+ },
+ {
+ "id": 247,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T12:38:30Z"
+ },
+ {
+ "id": 246,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T12:38:30Z"
+ },
+ {
+ "id": 245,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T12:38:30Z"
+ },
+ {
+ "id": 244,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T12:38:30Z"
+ },
+ {
+ "id": 243,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T12:38:26Z"
+ },
+ {
+ "id": 242,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T12:38:26Z"
+ },
+ {
+ "id": 241,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T12:38:22Z"
+ },
+ {
+ "id": 240,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Micro Service policies UPDATED",
+ "logInstant": "2021-04-01T12:37:20Z"
+ },
+ {
+ "id": 239,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T12:37:19Z"
+ },
+ {
+ "id": 238,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T12:37:19Z"
+ },
+ {
+ "id": 237,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T12:37:19Z"
+ },
+ {
+ "id": 236,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T12:37:19Z"
+ },
+ {
+ "id": 235,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T12:37:19Z"
+ },
+ {
+ "id": 234,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T12:37:19Z"
+ },
+ {
+ "id": 233,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T12:37:14Z"
+ },
+ {
+ "id": 232,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T12:37:14Z"
+ },
+ {
+ "id": 231,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T12:37:10Z"
+ },
+ {
+ "id": 221,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Micro Service policies UPDATED",
+ "logInstant": "2021-04-01T11:57:59Z"
+ },
+ {
+ "id": 220,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-04-01T11:57:34Z"
+ },
+ {
+ "id": 219,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-04-01T11:57:34Z"
+ },
+ {
+ "id": 218,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-04-01T11:57:34Z"
+ },
+ {
+ "id": 217,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-04-01T11:57:33Z"
+ },
+ {
+ "id": 216,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-04-01T11:57:33Z"
+ },
+ {
+ "id": 215,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T11:57:33Z"
+ },
+ {
+ "id": 214,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-04-01T11:57:29Z"
+ },
+ {
+ "id": 213,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-04-01T11:57:29Z"
+ },
+ {
+ "id": 212,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-04-01T11:57:25Z"
+ },
+ {
+ "id": 211,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:50:20Z"
+ },
+ {
+ "id": 210,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:50:20Z"
+ },
+ {
+ "id": 209,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:50:20Z"
+ },
+ {
+ "id": 208,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:50:20Z"
+ },
+ {
+ "id": 207,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:50:20Z"
+ },
+ {
+ "id": 206,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:50:20Z"
+ },
+ {
+ "id": 205,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:50:16Z"
+ },
+ {
+ "id": 204,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:50:16Z"
+ },
+ {
+ "id": 203,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:50:11Z"
+ },
+ {
+ "id": 202,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:49:39Z"
+ },
+ {
+ "id": 201,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:49:39Z"
+ },
+ {
+ "id": 200,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:49:39Z"
+ },
+ {
+ "id": 199,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:49:39Z"
+ },
+ {
+ "id": 198,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:49:39Z"
+ },
+ {
+ "id": 197,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:49:39Z"
+ },
+ {
+ "id": 196,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:49:35Z"
+ },
+ {
+ "id": 195,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:49:35Z"
+ },
+ {
+ "id": 194,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:49:30Z"
+ },
+ {
+ "id": 193,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:49:06Z"
+ },
+ {
+ "id": 192,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:49:06Z"
+ },
+ {
+ "id": 191,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:49:06Z"
+ },
+ {
+ "id": 190,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:49:06Z"
+ },
+ {
+ "id": 189,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:49:06Z"
+ },
+ {
+ "id": 188,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:49:06Z"
+ },
+ {
+ "id": 187,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:49:01Z"
+ },
+ {
+ "id": 186,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:49:01Z"
+ },
+ {
+ "id": 185,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:48:57Z"
+ },
+ {
+ "id": 184,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:47:28Z"
+ },
+ {
+ "id": 183,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:47:28Z"
+ },
+ {
+ "id": 182,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:47:28Z"
+ },
+ {
+ "id": 181,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:47:28Z"
+ },
+ {
+ "id": 180,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:47:27Z"
+ },
+ {
+ "id": 179,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:47:27Z"
+ },
+ {
+ "id": 178,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:47:23Z"
+ },
+ {
+ "id": 177,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:47:23Z"
+ },
+ {
+ "id": 176,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:47:19Z"
+ },
+ {
+ "id": 175,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:43:41Z"
+ },
+ {
+ "id": 174,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:43:41Z"
+ },
+ {
+ "id": 173,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:43:41Z"
+ },
+ {
+ "id": 172,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:43:41Z"
+ },
+ {
+ "id": 171,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:43:41Z"
+ },
+ {
+ "id": 170,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:43:41Z"
+ },
+ {
+ "id": 169,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:43:36Z"
+ },
+ {
+ "id": 168,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T15:43:36Z"
+ },
+ {
+ "id": 167,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:43:34Z"
+ },
+ {
+ "id": 166,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:43:34Z"
+ },
+ {
+ "id": 165,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T15:43:34Z"
+ },
+ {
+ "id": 164,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:43:34Z"
+ },
+ {
+ "id": 163,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:43:34Z"
+ },
+ {
+ "id": 162,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T15:43:34Z"
+ },
+ {
+ "id": 161,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 160,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 159,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 158,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 157,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 156,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 155,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 154,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 153,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 152,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 151,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 150,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-03-31T15:43:33Z"
+ },
+ {
+ "id": 149,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 148,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 147,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 146,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 145,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 144,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connection is still allocated",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 143,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 142,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 141,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 140,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T15:43:32Z"
+ },
+ {
+ "id": 139,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T10:13:01Z"
+ },
+ {
+ "id": 138,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T10:13:01Z"
+ },
+ {
+ "id": 137,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T10:13:00Z"
+ },
+ {
+ "id": 136,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T10:13:00Z"
+ },
+ {
+ "id": 135,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T10:13:00Z"
+ },
+ {
+ "id": 134,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T10:13:00Z"
+ },
+ {
+ "id": 133,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T10:12:56Z"
+ },
+ {
+ "id": 132,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T10:12:56Z"
+ },
+ {
+ "id": 131,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T10:12:52Z"
+ },
+ {
+ "id": 130,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T09:55:12Z"
+ },
+ {
+ "id": 129,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T09:55:12Z"
+ },
+ {
+ "id": 128,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T09:55:12Z"
+ },
+ {
+ "id": 127,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T09:55:12Z"
+ },
+ {
+ "id": 126,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T09:55:12Z"
+ },
+ {
+ "id": 125,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T09:55:12Z"
+ },
+ {
+ "id": 124,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T09:55:08Z"
+ },
+ {
+ "id": 123,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T09:55:07Z"
+ },
+ {
+ "id": 122,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T09:55:03Z"
+ },
+ {
+ "id": 121,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T09:46:18Z"
+ },
+ {
+ "id": 120,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T09:46:18Z"
+ },
+ {
+ "id": 119,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T09:46:18Z"
+ },
+ {
+ "id": 118,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T09:46:18Z"
+ },
+ {
+ "id": 117,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T09:46:18Z"
+ },
+ {
+ "id": 116,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T09:46:18Z"
+ },
+ {
+ "id": 115,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T09:46:13Z"
+ },
+ {
+ "id": 114,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T09:46:13Z"
+ },
+ {
+ "id": 113,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T09:46:09Z"
+ },
+ {
+ "id": 112,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-31T09:45:56Z"
+ },
+ {
+ "id": 111,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-31T09:45:56Z"
+ },
+ {
+ "id": 110,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-31T09:45:56Z"
+ },
+ {
+ "id": 109,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-31T09:45:56Z"
+ },
+ {
+ "id": 108,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-31T09:45:56Z"
+ },
+ {
+ "id": 107,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T09:45:55Z"
+ },
+ {
+ "id": 106,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-31T09:45:51Z"
+ },
+ {
+ "id": 105,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-31T09:45:51Z"
+ },
+ {
+ "id": 104,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-31T09:45:47Z"
+ },
+ {
+ "id": 103,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T16:00:55Z"
+ },
+ {
+ "id": 102,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T16:00:55Z"
+ },
+ {
+ "id": 101,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T16:00:55Z"
+ },
+ {
+ "id": 100,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T16:00:55Z"
+ },
+ {
+ "id": 99,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T16:00:55Z"
+ },
+ {
+ "id": 98,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T16:00:54Z"
+ },
+ {
+ "id": 97,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T16:00:50Z"
+ },
+ {
+ "id": 96,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T16:00:50Z"
+ },
+ {
+ "id": 95,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T16:00:46Z"
+ },
+ {
+ "id": 94,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T15:58:05Z"
+ },
+ {
+ "id": 93,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T15:58:05Z"
+ },
+ {
+ "id": 92,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T15:58:05Z"
+ },
+ {
+ "id": 91,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T15:58:05Z"
+ },
+ {
+ "id": 90,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T15:58:05Z"
+ },
+ {
+ "id": 89,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T15:58:05Z"
+ },
+ {
+ "id": 88,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T15:58:00Z"
+ },
+ {
+ "id": 87,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T15:58:00Z"
+ },
+ {
+ "id": 86,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T15:57:56Z"
+ },
+ {
+ "id": 85,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T15:00:21Z"
+ },
+ {
+ "id": 84,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T15:00:21Z"
+ },
+ {
+ "id": 83,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T15:00:21Z"
+ },
+ {
+ "id": 82,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T15:00:21Z"
+ },
+ {
+ "id": 81,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T15:00:21Z"
+ },
+ {
+ "id": 80,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T15:00:21Z"
+ },
+ {
+ "id": 79,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T15:00:17Z"
+ },
+ {
+ "id": 78,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T15:00:17Z"
+ },
+ {
+ "id": 77,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T15:00:12Z"
+ },
+ {
+ "id": 76,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T14:51:24Z"
+ },
+ {
+ "id": 75,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T14:51:23Z"
+ },
+ {
+ "id": 74,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T14:51:23Z"
+ },
+ {
+ "id": 73,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T14:51:23Z"
+ },
+ {
+ "id": 72,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T14:51:23Z"
+ },
+ {
+ "id": 71,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:51:23Z"
+ },
+ {
+ "id": 70,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T14:51:19Z"
+ },
+ {
+ "id": 69,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:51:19Z"
+ },
+ {
+ "id": 68,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T14:51:15Z"
+ },
+ {
+ "id": 67,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T14:45:06Z"
+ },
+ {
+ "id": 66,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T14:45:06Z"
+ },
+ {
+ "id": 65,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T14:45:06Z"
+ },
+ {
+ "id": 64,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T14:45:06Z"
+ },
+ {
+ "id": 63,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T14:45:06Z"
+ },
+ {
+ "id": 62,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:45:06Z"
+ },
+ {
+ "id": 61,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T14:45:02Z"
+ },
+ {
+ "id": 60,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:45:02Z"
+ },
+ {
+ "id": 59,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T14:44:57Z"
+ },
+ {
+ "id": 58,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T14:44:31Z"
+ },
+ {
+ "id": 57,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T14:44:31Z"
+ },
+ {
+ "id": 56,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T14:44:31Z"
+ },
+ {
+ "id": 55,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T14:44:31Z"
+ },
+ {
+ "id": 54,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T14:44:31Z"
+ },
+ {
+ "id": 53,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:44:31Z"
+ },
+ {
+ "id": 52,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T14:44:27Z"
+ },
+ {
+ "id": 51,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:44:26Z"
+ },
+ {
+ "id": 50,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T14:44:22Z"
+ },
+ {
+ "id": 49,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T14:32:12Z"
+ },
+ {
+ "id": 48,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T14:32:12Z"
+ },
+ {
+ "id": 47,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T14:32:12Z"
+ },
+ {
+ "id": 46,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T14:32:12Z"
+ },
+ {
+ "id": 45,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T14:32:12Z"
+ },
+ {
+ "id": 44,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:32:11Z"
+ },
+ {
+ "id": 43,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T14:32:07Z"
+ },
+ {
+ "id": 42,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T14:32:07Z"
+ },
+ {
+ "id": 41,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T14:32:03Z"
+ },
+ {
+ "id": 40,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request successfully executed",
+ "logInstant": "2021-03-30T13:07:24Z"
+ },
+ {
+ "id": 39,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "New loop state is: DESIGN",
+ "logInstant": "2021-03-30T13:07:24Z"
+ },
+ {
+ "id": 38,
+ "logType": "INFO",
+ "logComponent": "DCAE",
+ "message": "DCAE state set to: BLUEPRINT_DEPLOYED - message: ",
+ "logInstant": "2021-03-30T13:07:24Z"
+ },
+ {
+ "id": 37,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "Policy state set to: NOT_SENT",
+ "logInstant": "2021-03-30T13:07:24Z"
+ },
+ {
+ "id": 36,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET Policy deployment\n status - : ",
+ "logInstant": "2021-03-30T13:07:24Z"
+ },
+ {
+ "id": 35,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T13:07:24Z"
+ },
+ {
+ "id": 34,
+ "logType": "INFO",
+ "logComponent": "POLICY",
+ "message": "MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0_mHh GET\n Policy status - : ",
+ "logInstant": "2021-03-30T13:07:19Z"
+ },
+ {
+ "id": 33,
+ "logType": "ERROR",
+ "logComponent": "CLAMP",
+ "message": "GET policy request failed, Error reported: Connect to localhost:8085 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect",
+ "logInstant": "2021-03-30T13:07:19Z"
+ },
+ {
+ "id": 32,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "GET STATUS request",
+ "logInstant": "2021-03-30T13:07:15Z"
+ }
+ ],
+ "loopTemplate": {
+ "name": "LOOP_TEMPLATE_k8s_pmsh",
+ "dcaeBlueprintId": "9dc5dba0-e685-4d5a-b144-8f4d84cfa01f",
+ "loopElementModelsUsed": [
+ {
+ "loopElementModel": {
+ "name": "onap.policies.monitoring.dcae-pm-subscription-handler",
+ "loopElementType": "MICRO_SERVICE_TYPE",
+ "policyModels": [
+ {
+ "policyModelType": "onap.policies.monitoring.dcae-pm-subscription-handler",
+ "version": "1.0.0",
+ "policyAcronym": "dcae-pm-subscription-handler",
+ "policyPdpGroup": {
+ "supportedPdpGroups": [
+ {
+ "ControlLoopGroup": [
+ "apex",
+ "xacml"
+ ]
+ },
+ {
+ "defaultGroup": [
+ "xacml"
+ ]
+ }
+ ]
+ },
+ "createdDate": "2021-03-30T09:55:52.261232Z",
+ "updatedDate": "2021-03-30T09:56:17.502284Z",
+ "updatedBy": "Not found",
+ "createdBy": "Not found"
+ }
+ ],
+ "createdDate": "2021-03-30T08:48:21Z",
+ "updatedDate": "2021-03-30T08:48:21Z",
+ "updatedBy": "Not found",
+ "createdBy": "Not found"
+ },
+ "flowOrder": 0
+ }
+ ],
+ "modelService": {
+ "serviceDetails": {
+ "serviceType": "",
+ "serviceRole": "",
+ "description": "vLBMS",
+ "type": "Service",
+ "instantiationType": "A-la-carte",
+ "namingPolicy": "",
+ "serviceEcompNaming": "true",
+ "environmentContext": "General_Revenue-Bearing",
+ "name": "vLoadBalancerMS",
+ "invariantUUID": "30ec5b59-4799-48d8-ac5f-1058a6b0e48f",
+ "ecompGeneratedNaming": "true",
+ "UUID": "63cac700-ab9a-4115-a74f-7eac85e3fce0",
+ "category": "Network L4+"
+ },
+ "resourceDetails": {
+ "CP": {},
+ "VL": {},
+ "VF": {
+ "vLoadBalancerMS 0": {
+ "resourceVendor": "Test",
+ "name": "vLoadBalancerMS",
+ "resourceVendorModelNumber": "",
+ "description": "vLBMS",
+ "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506",
+ "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6",
+ "type": "VF",
+ "category": "Application L4+",
+ "subcategory": "Load Balancer",
+ "version": "1.0",
+ "customizationUUID": "465246dc-7748-45f4-a013-308d92922552",
+ "resourceVendorRelease": "1.0",
+ "controllerProperties": {
+ "sdnc_model_name": "baseconfiguration",
+ "sdnc_model_version": "1.0.0",
+ "workflows": {
+ "resource-assignment": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-restconf": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "activate-cli": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "assign-activate": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "imperative-test-wf": {
+ "inputs": {
+ "resource-assignment-properties": {
+ "type": "object",
+ "properties": {
+ "request-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "service-instance-id": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "hostname": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "request-info": {
+ "type": "object",
+ "properties": {
+ "prop1": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ },
+ "prop2": {
+ "required": true,
+ "type": "string",
+ "input-param": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "CR": {},
+ "VFC": {},
+ "PNF": {},
+ "Service": {},
+ "CVFC": {},
+ "Service Proxy": {},
+ "Configuration": {},
+ "AllottedResource": {},
+ "VFModule": {
+ "Vloadbalancerms..vpkg..module-1": {
+ "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vpkg..module-1",
+ "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+ "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vpkg",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vdns..module-3": {
+ "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vdns..module-3",
+ "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720",
+ "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vdns",
+ "max_vf_module_instances": 50,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..base_template..module-0": {
+ "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..base_template..module-0",
+ "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce",
+ "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+ "min_vf_module_instances": 1,
+ "vf_module_label": "base_template",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Base",
+ "isBase": true,
+ "initial_count": 1,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vlb..module-2": {
+ "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vlb..module-2",
+ "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+ "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vlb",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ }
+ }
+ }
+ },
+ "maximumInstancesAllowed": 0,
+ "uniqueBlueprint": true,
+ "allowedLoopType": "CLOSED",
+ "createdDate": "2021-03-30T08:48:21Z",
+ "updatedDate": "2021-03-30T08:48:21Z",
+ "updatedBy": "Not found",
+ "createdBy": "Not found"
+ },
+ "createdDate": "2021-03-30T13:07:07.901081Z",
+ "updatedDate": "2021-03-30T13:07:07.901081Z",
+ "updatedBy": "admin",
+ "createdBy": "admin"
+}