Merge "Fix name of target-database property in persistence.xml files"
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumer.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumer.java
index 538b635..4bad4cb 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumer.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumer.java
@@ -30,6 +30,7 @@
import javax.jms.Session;
import javax.jms.Topic;
import javax.naming.InitialContext;
+import javax.naming.NamingException;
import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
import org.onap.policy.apex.service.engine.event.ApexEventException;
import org.onap.policy.apex.service.engine.event.ApexEventReceiver;
@@ -77,10 +78,10 @@
jmsConsumerProperties = (JmsCarrierTechnologyParameters) consumerParameters.getCarrierTechnologyParameters();
// Look up the JMS connection factory
- InitialContext jmsContext = null;
- ConnectionFactory connectionFactory = null;
+ InitialContext jmsContext;
+ ConnectionFactory connectionFactory;
try {
- jmsContext = new InitialContext(jmsConsumerProperties.getJmsConsumerProperties());
+ jmsContext = getInitialContext();
connectionFactory = (ConnectionFactory) jmsContext.lookup(jmsConsumerProperties.getConnectionFactory());
// Check if we actually got a connection factory
@@ -124,6 +125,17 @@
}
/**
+ * Construct InitialContext. This function should not be run directly.
+ * Package-private access is set for testing purposes only.
+ *
+ * @return InitialContext
+ * @throws NamingException if a naming exception is encountered
+ */
+ InitialContext getInitialContext() throws NamingException {
+ return new InitialContext(jmsConsumerProperties.getJmsConsumerProperties());
+ }
+
+ /**
* {@inheritDoc}.
*/
@Override
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducer.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducer.java
index 4e5c7a3..44ed810 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducer.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducer.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2019-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.
@@ -32,6 +32,7 @@
import javax.jms.Session;
import javax.jms.Topic;
import javax.naming.InitialContext;
+import javax.naming.NamingException;
import org.onap.policy.apex.service.engine.event.ApexEventException;
import org.onap.policy.apex.service.engine.event.ApexEventProducer;
import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
@@ -72,7 +73,8 @@
private String name = null;
// The peer references for this event handler
- private Map<EventHandlerPeeredMode, PeeredReference> peerReferenceMap = new EnumMap<>(EventHandlerPeeredMode.class);
+ private final Map<EventHandlerPeeredMode, PeeredReference> peerReferenceMap =
+ new EnumMap<>(EventHandlerPeeredMode.class);
/**
* {@inheritDoc}.
@@ -91,10 +93,10 @@
jmsProducerProperties = (JmsCarrierTechnologyParameters) producerParameters.getCarrierTechnologyParameters();
// Look up the JMS connection factory
- InitialContext jmsContext = null;
- ConnectionFactory connectionFactory = null;
+ InitialContext jmsContext;
+ ConnectionFactory connectionFactory;
try {
- jmsContext = new InitialContext(jmsProducerProperties.getJmsProducerProperties());
+ jmsContext = getInitialContext();
connectionFactory = (ConnectionFactory) jmsContext.lookup(jmsProducerProperties.getConnectionFactory());
// Check if we actually got a connection factory
@@ -159,6 +161,17 @@
}
/**
+ * Construct InitialContext. This function should not be run directly.
+ * Package-private access is set for testing purposes only.
+ *
+ * @return InitialContext
+ * @throws NamingException if a naming exception is encountered
+ */
+ public InitialContext getInitialContext() throws NamingException {
+ return new InitialContext(jmsProducerProperties.getJmsProducerProperties());
+ }
+
+ /**
* {@inheritDoc}.
*/
@Override
@@ -204,7 +217,7 @@
}
// The JMS message to send is constructed using the JMS session
- Message jmsMessage = null;
+ Message jmsMessage;
// Check the type of JMS message to send
if (jmsProducerProperties.isObjectMessageSending()) {
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumerTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumerTest.java
index 8591d04..e3ead32 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumerTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsConsumerTest.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Samsung. All rights reserved.
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2019-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.
@@ -26,10 +26,18 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import java.util.Properties;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
import javax.jms.Message;
-import javax.jms.Session;
+import javax.jms.Topic;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.ArgumentMatchers;
+import org.mockito.Mockito;
import org.onap.policy.apex.service.engine.event.ApexEventException;
import org.onap.policy.apex.service.engine.event.ApexEventProducer;
import org.onap.policy.apex.service.engine.event.ApexEventReceiver;
@@ -41,41 +49,150 @@
public class ApexJmsConsumerTest {
- ApexJmsConsumer apexJmsConsumer = null;
- EventHandlerParameters consumerParameters = null;
- ApexEventReceiver incomingEventReceiver = null;
- ApexEventProducer apexJmsProducer = null;
- Session jmsSession = null;
- JmsCarrierTechnologyParameters jmsCarrierTechnologyParameters = null;
+ private static final String CONSUMER_NAME = "TestApexJmsConsumer";
+ private ApexJmsConsumer apexJmsConsumer = null;
+ private EventHandlerParameters consumerParameters = null;
+ private ApexEventReceiver incomingEventReceiver = null;
+ private ApexEventProducer apexJmsProducer = null;
+ private JmsCarrierTechnologyParameters jmsCarrierTechnologyParameters = null;
/**
* Set up testing.
- *
- * @throws Exception on test set up errors.
*/
@Before
- public void setUp() throws Exception {
- apexJmsConsumer = new ApexJmsConsumer();
+ public void setUp() {
+ apexJmsConsumer = Mockito.spy(new ApexJmsConsumer());
consumerParameters = new EventHandlerParameters();
apexJmsProducer = new ApexJmsProducer();
}
@Test
- public void testInitWithNonJmsCarrierTechnologyParameters() throws ApexEventException {
- consumerParameters.setCarrierTechnologyParameters(new CarrierTechnologyParameters() {});
- assertThatThrownBy(() -> apexJmsConsumer.init("TestApexJmsConsumer", consumerParameters, incomingEventReceiver))
+ public void testInitWithNonJmsCarrierTechnologyParameters() {
+ consumerParameters.setCarrierTechnologyParameters(new CarrierTechnologyParameters() {
+ });
+ assertThatThrownBy(
+ () -> apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver)
+ )
.isInstanceOf(ApexEventException.class);
}
@Test
- public void testInitWithJmsCarrierTechnologyParameters() throws ApexEventException {
+ public void testInitWithJmsCarrierTechnologyParameters() {
jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
- assertThatThrownBy(() -> apexJmsConsumer.init("TestApexJmsConsumer", consumerParameters, incomingEventReceiver))
+ assertThatThrownBy(
+ () -> apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver)
+ )
.isInstanceOf(ApexEventException.class);
}
@Test
+ public void testInitNoConnectionFactory() throws NamingException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ Mockito.doReturn(null).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ assertThatThrownBy(
+ () -> apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver)
+ )
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitNoConsumerTopic() throws NamingException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(null).when(context).lookup(jmsCarrierTechnologyParameters.getConsumerTopic());
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ assertThatThrownBy(
+ () -> apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver)
+ )
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitNoConnection() throws NamingException, JMSException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getConsumerTopic());
+ Mockito.doThrow(JMSException.class)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ assertThatThrownBy(
+ () -> apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver)
+ )
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitConnectionError() throws NamingException, JMSException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getConsumerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doThrow(JMSException.class).when(connection).start();
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ assertThatThrownBy(
+ () -> apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver)
+ )
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInit() throws NamingException, JMSException, ApexEventException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getConsumerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver);
+
+ Mockito.verify(connection, Mockito.times(1)).start();
+ }
+
+ @Test
public void testStart() {
assertThatCode(apexJmsConsumer::start).doesNotThrowAnyException();
}
@@ -93,7 +210,7 @@
@Test
public void testSetPeeredReference() {
PeeredReference peeredReference = new PeeredReference(EventHandlerPeeredMode.REQUESTOR,
- apexJmsConsumer, apexJmsProducer);
+ apexJmsConsumer, apexJmsProducer);
apexJmsConsumer.setPeeredReference(EventHandlerPeeredMode.REQUESTOR, peeredReference);
assertNotNull(apexJmsConsumer.getPeeredReference(EventHandlerPeeredMode.REQUESTOR));
}
@@ -104,14 +221,107 @@
}
@Test
- public void testOnMessage() {
+ public void testOnMessageUninitialized() {
Message jmsMessage = null;
assertThatThrownBy(() -> apexJmsConsumer.onMessage(jmsMessage))
.isInstanceOf(ApexEventRuntimeException.class);
}
@Test
- public void testStop() {
+ public void testOnMessage() throws JMSException, NamingException, ApexEventException {
+ // prepare ApexJmsConsumer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ incomingEventReceiver = Mockito.mock(ApexEventReceiver.class);
+
+
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getConsumerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver);
+
+ final Message message = Mockito.mock(Message.class);
+
+ apexJmsConsumer.onMessage(message);
+ Mockito
+ .verify(incomingEventReceiver, Mockito.times(1))
+ .receiveEvent(ArgumentMatchers.any(Properties.class), ArgumentMatchers.eq(message));
+ }
+
+ @Test
+ public void testConnectionError() throws NamingException, JMSException, ApexEventException {
+ // prepare ApexJmsConsumer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getConsumerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver);
+
+ Mockito.doThrow(JMSException.class).when(connection).close();
+
+ // do tests
+ apexJmsConsumer.start();
+ assertThatCode(() -> apexJmsConsumer.stop()).doesNotThrowAnyException();
+ Mockito.verify(connection, Mockito.times(1)).close();
+ }
+
+ @Test
+ public void testStop() throws NamingException, JMSException, ApexEventException {
+ // prepare ApexJmsConsumer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ consumerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getConsumerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(context).when(apexJmsConsumer).getInitialContext();
+
+ apexJmsConsumer.init(CONSUMER_NAME, consumerParameters, incomingEventReceiver);
+
+ Mockito.doNothing().when(connection).close();
+
+ apexJmsConsumer.start();
+
+ // do tests
+ apexJmsConsumer.stop();
+ Mockito.verify(connection, Mockito.times(1)).close();
+ }
+
+ @Test
+ public void testStopNoJmsProperties() {
assertThatThrownBy(apexJmsConsumer::stop).isInstanceOf(NullPointerException.class);
}
}
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducerTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducerTest.java
index 09a87f8..708f29f 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducerTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/ApexJmsProducerTest.java
@@ -21,18 +21,33 @@
package org.onap.policy.apex.plugins.event.carrier.jms;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.Random;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.jms.Topic;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mockito;
import org.onap.policy.apex.service.engine.event.ApexEvent;
import org.onap.policy.apex.service.engine.event.ApexEventException;
-import org.onap.policy.apex.service.engine.event.ApexEventProducer;
-import org.onap.policy.apex.service.engine.event.ApexEventReceiver;
import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
import org.onap.policy.apex.service.engine.event.PeeredReference;
import org.onap.policy.apex.service.engine.event.SynchronousEventCache;
@@ -42,43 +57,204 @@
public class ApexJmsProducerTest {
- ApexJmsConsumer apexJmsConsumer = null;
- EventHandlerParameters producerParameters = null;
- ApexEventReceiver incomingEventReceiver = null;
- ApexEventProducer apexJmsProducer = null;
- Session jmsSession = null;
- JmsCarrierTechnologyParameters jmsCarrierTechnologyParameters = null;
- SynchronousEventCache synchronousEventCache = null;
+ private static final String PRODUCER_NAME = "TestApexJmsProducer";
+ private ApexJmsConsumer apexJmsConsumer;
+ private EventHandlerParameters producerParameters;
+ private ApexJmsProducer apexJmsProducer;
+ private JmsCarrierTechnologyParameters jmsCarrierTechnologyParameters;
private static final long DEFAULT_SYNCHRONOUS_EVENT_TIMEOUT = 1000;
+ private final Random random = new Random();
+ private final PrintStream out = System.out;
/**
* Set up testing.
*
- * @throws Exception on test set up errors.
*/
@Before
- public void setUp() throws Exception {
+ public void setUp() {
apexJmsConsumer = new ApexJmsConsumer();
producerParameters = new EventHandlerParameters();
- apexJmsProducer = new ApexJmsProducer();
+ apexJmsProducer = Mockito.spy(new ApexJmsProducer());
+ }
+
+ @After
+ public void tearDown() {
+ // restore system.out
+ System.setOut(out);
}
@Test
public void testInitWithNonJmsCarrierTechnologyParameters() {
- producerParameters.setCarrierTechnologyParameters(new CarrierTechnologyParameters() {});
- assertThatThrownBy(() -> apexJmsProducer.init("TestApexJmsProducer", producerParameters))
+ producerParameters.setCarrierTechnologyParameters(new CarrierTechnologyParameters() {
+ });
+ assertThatThrownBy(() -> apexJmsProducer.init(PRODUCER_NAME, producerParameters))
.isInstanceOf(ApexEventException.class);
}
@Test
- public void testInitWithJmsCarrierTechnologyParameters() throws ApexEventException {
+ public void testInitWithJmsCarrierTechnologyParameters() {
jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
- assertThatThrownBy(() -> apexJmsProducer.init("TestApexJmsProducer", producerParameters))
+ assertThatThrownBy(() -> apexJmsProducer.init(PRODUCER_NAME, producerParameters))
.isInstanceOf(ApexEventException.class);
}
@Test
+ public void testInitWithoutConnectionFactory() throws NamingException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+ final String producerName = RandomStringUtils.randomAlphabetic(5);
+
+ InitialContext context = Mockito.mock(InitialContext.class);
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(null).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+
+ assertThatThrownBy(() -> apexJmsProducer.init(producerName, producerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitWithoutTopic() throws NamingException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+ final String producerName = RandomStringUtils.randomAlphabetic(5);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(null).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+
+ assertThatThrownBy(() -> apexJmsProducer.init(producerName, producerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitConnectionCreateError() throws NamingException, JMSException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+ final String producerName = RandomStringUtils.randomAlphabetic(5);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doThrow(JMSException.class).when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+
+ assertThatThrownBy(() -> apexJmsProducer.init(producerName, producerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitConnectionStartError() throws NamingException, JMSException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+ final String producerName = RandomStringUtils.randomAlphabetic(5);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doThrow(JMSException.class).when(connection).start();
+
+ assertThatThrownBy(() -> apexJmsProducer.init(producerName, producerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitSessionCreateError() throws NamingException, JMSException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+ final String producerName = RandomStringUtils.randomAlphabetic(5);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doThrow(JMSException.class).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ assertThatThrownBy(() -> apexJmsProducer.init(producerName, producerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInitProducerCreateError() throws NamingException, JMSException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+ final String producerName = RandomStringUtils.randomAlphabetic(5);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doThrow(JMSException.class).when(session).createProducer(topic);
+ assertThatThrownBy(() -> apexJmsProducer.init(producerName, producerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void testInit() throws NamingException, JMSException {
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+ final String producerName = RandomStringUtils.randomAlphabetic(5);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ assertThatCode(() -> apexJmsProducer.init(producerName, producerParameters))
+ .doesNotThrowAnyException();
+ }
+
+ @Test
public void testGetName() {
assertNull(apexJmsProducer.getName());
}
@@ -91,40 +267,444 @@
@Test
public void testSetPeeredReference() {
PeeredReference peeredReference = new PeeredReference(EventHandlerPeeredMode.REQUESTOR,
- apexJmsConsumer, apexJmsProducer);
+ apexJmsConsumer, apexJmsProducer);
apexJmsProducer.setPeeredReference(EventHandlerPeeredMode.REQUESTOR, peeredReference);
- assertNotNull(apexJmsProducer.getPeeredReference(EventHandlerPeeredMode.REQUESTOR));
+ final PeeredReference actual = apexJmsProducer.getPeeredReference(EventHandlerPeeredMode.REQUESTOR);
+ assertSame(peeredReference, actual);
}
@Test
- public void testSendEvent() throws ApexEventException {
- producerParameters.setCarrierTechnologyParameters(new JmsCarrierTechnologyParameters() {});
- synchronousEventCache = new SynchronousEventCache(EventHandlerPeeredMode.SYNCHRONOUS,
- apexJmsConsumer, apexJmsProducer, DEFAULT_SYNCHRONOUS_EVENT_TIMEOUT);
- apexJmsProducer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS,
- synchronousEventCache);
- ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
- "testSource", "testTarget");
- assertThatThrownBy(() -> apexJmsProducer.sendEvent(1000L, null, "TestApexJmsProducer", apexEvent))
- .isInstanceOf(NullPointerException.class);
- }
-
- @Test
- public void testSendEventWithNonSerializableObject() throws ApexEventException {
- producerParameters.setCarrierTechnologyParameters(new JmsCarrierTechnologyParameters() {});
- synchronousEventCache = new SynchronousEventCache(EventHandlerPeeredMode.SYNCHRONOUS,
- apexJmsConsumer, apexJmsProducer, DEFAULT_SYNCHRONOUS_EVENT_TIMEOUT);
- apexJmsProducer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS,
- synchronousEventCache);
-
- ApexJmsProducerTest producerTest = new ApexJmsProducerTest();
-
- assertThatThrownBy(() -> apexJmsProducer.sendEvent(-1L, null, "TestApexJmsProducer", producerTest))
+ public void testSendEventNotSerializable() {
+ producerParameters.setCarrierTechnologyParameters(new JmsCarrierTechnologyParameters());
+ Object object = new Object();
+ final long executionId = random.nextLong();
+ assertThatThrownBy(() -> apexJmsProducer.sendEvent(executionId, null, PRODUCER_NAME, object))
.isInstanceOf(ApexEventRuntimeException.class);
}
@Test
- public void testStop() {
+ public void testSendEventRemoveCache() {
+ producerParameters.setCarrierTechnologyParameters(new JmsCarrierTechnologyParameters());
+ final SynchronousEventCache synchronousEventCache =
+ Mockito.spy(new SynchronousEventCache(EventHandlerPeeredMode.SYNCHRONOUS,
+ apexJmsConsumer, apexJmsProducer, DEFAULT_SYNCHRONOUS_EVENT_TIMEOUT));
+ apexJmsProducer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS,
+ synchronousEventCache);
+
+ Object object = new Object();
+ final long executionId = random.nextLong();
+
+ assertThatThrownBy(() -> apexJmsProducer.sendEvent(executionId, null, PRODUCER_NAME, object))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ Mockito.verify(synchronousEventCache, Mockito.times(1)).removeCachedEventToApexIfExists(executionId);
+ }
+
+ @Test
+ public void testSendEventCreateObjectMessageError() throws ApexEventException, NamingException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare sendEvent
+
+ ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
+ "testSource", "testTarget");
+ Mockito.doThrow(JMSException.class).when(session).createObjectMessage(apexEvent);
+
+ final long executionId = random.nextLong();
+
+
+ assertThatThrownBy(() -> apexJmsProducer.sendEvent(executionId, null, PRODUCER_NAME, apexEvent))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void testSendEventCreateObjectMessageSendError() throws ApexEventException, NamingException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare sendEvent
+ final Message message = Mockito.mock(ObjectMessage.class);
+ ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
+ "testSource", "testTarget");
+ Mockito.doReturn(message).when(session).createObjectMessage(apexEvent);
+ Mockito.doThrow(JMSException.class).when(messageProducer).send(message);
+
+ final long executionId = random.nextLong();
+
+
+ assertThatThrownBy(
+ () -> apexJmsProducer
+ .sendEvent(executionId, null, PRODUCER_NAME, apexEvent)
+ )
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void testSendEventCreateObjectMessageSend() throws ApexEventException, NamingException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare sendEvent
+ final Message message = Mockito.mock(ObjectMessage.class);
+ ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
+ "testSource", "testTarget");
+ Mockito.doReturn(message).when(session).createObjectMessage(apexEvent);
+ Mockito.doNothing().when(messageProducer).send(message);
+
+ final long executionId = random.nextLong();
+
+
+ assertThatCode(
+ () -> apexJmsProducer
+ .sendEvent(executionId, null, PRODUCER_NAME, apexEvent)
+ )
+ .doesNotThrowAnyException();
+ }
+
+ @Test
+ public void testSendEventCreateTextMessageError() throws ApexEventException, NamingException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ jmsCarrierTechnologyParameters.setObjectMessageSending(false);
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare sendEvent
+ ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
+ "testSource", "testTarget");
+
+ Mockito.doThrow(JMSException.class).when(session).createTextMessage(apexEvent.toString());
+
+ final long executionId = random.nextLong();
+
+ assertThatThrownBy(
+ () -> apexJmsProducer
+ .sendEvent(executionId, null, PRODUCER_NAME, apexEvent)
+ )
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void testSendEventCreateTextMessageSendError() throws ApexEventException, NamingException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ jmsCarrierTechnologyParameters.setObjectMessageSending(false);
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare sendEvent
+ final Message message = Mockito.mock(TextMessage.class);
+ ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
+ "testSource", "testTarget");
+ Mockito.doReturn(message).when(session).createTextMessage(apexEvent.toString());
+ Mockito.doThrow(JMSException.class).when(messageProducer).send(message);
+
+ final long executionId = random.nextLong();
+
+
+ assertThatThrownBy(
+ () -> apexJmsProducer
+ .sendEvent(executionId, null, PRODUCER_NAME, apexEvent)
+ )
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void testSendEventCreateTextMessageSend() throws ApexEventException, NamingException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ jmsCarrierTechnologyParameters.setObjectMessageSending(false);
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare sendEvent
+ final Message message = Mockito.mock(TextMessage.class);
+ ApexEvent apexEvent = new ApexEvent("testEvent", "testVersion", "testNameSpace",
+ "testSource", "testTarget");
+ Mockito.doReturn(message).when(session).createTextMessage(apexEvent.toString());
+ Mockito.doNothing().when(messageProducer).send(message);
+
+ final long executionId = random.nextLong();
+
+
+ assertThatCode(
+ () -> apexJmsProducer.sendEvent(executionId, null, PRODUCER_NAME, apexEvent)
+ )
+ .doesNotThrowAnyException();
+ }
+
+ @Test
+ public void testStopProducerException() throws NamingException, ApexEventException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ jmsCarrierTechnologyParameters.setObjectMessageSending(false);
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare stop mock
+ Mockito.doThrow(JMSException.class).when(messageProducer).close();
+
+ // Prepare system.out
+ final ByteArrayOutputStream testBuffer = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(testBuffer));
+
+ // do the test
+ assertThatCode(apexJmsProducer::stop).doesNotThrowAnyException();
+ assertThat(testBuffer.toString()).contains("failed to close JMS message producer");
+ }
+
+ @Test
+ public void testStopCloseSessionException() throws NamingException, ApexEventException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ jmsCarrierTechnologyParameters.setObjectMessageSending(false);
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare stop mocks
+ Mockito.doNothing().when(messageProducer).close();
+ Mockito.doThrow(JMSException.class).when(session).close();
+
+ // Prepare system.out
+ final ByteArrayOutputStream testBuffer = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(testBuffer));
+
+ // do the test
+ assertThatCode(apexJmsProducer::stop).doesNotThrowAnyException();
+ assertThat(testBuffer.toString()).contains("failed to close the JMS session");
+ }
+
+ @Test
+ public void testStopCloseConnectionException() throws NamingException, ApexEventException, JMSException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ jmsCarrierTechnologyParameters.setObjectMessageSending(false);
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare stop mocks
+ Mockito.doNothing().when(messageProducer).close();
+ Mockito.doNothing().when(session).close();
+ Mockito.doThrow(JMSException.class).when(connection).close();
+
+ // Prepare system.out
+ final ByteArrayOutputStream testBuffer = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(testBuffer));
+
+ // do the test
+ assertThatCode(apexJmsProducer::stop).doesNotThrowAnyException();
+ assertThat(testBuffer.toString()).contains("close of connection");
+ }
+
+ @Test
+ public void testStop() throws NamingException, JMSException, ApexEventException {
+ // Prepare ApexJmsProducer
+ jmsCarrierTechnologyParameters = new JmsCarrierTechnologyParameters();
+ jmsCarrierTechnologyParameters.setObjectMessageSending(false);
+ producerParameters.setCarrierTechnologyParameters(jmsCarrierTechnologyParameters);
+
+ final InitialContext context = Mockito.mock(InitialContext.class);
+ final ConnectionFactory connectionFactory = Mockito.mock(ConnectionFactory.class);
+ final Topic topic = Mockito.mock(Topic.class);
+ final Connection connection = Mockito.mock(Connection.class);
+ final Session session = Mockito.mock(Session.class);
+ final MessageProducer messageProducer = Mockito.mock(MessageProducer.class);
+
+ Mockito.doReturn(context).when(apexJmsProducer).getInitialContext();
+ Mockito.doReturn(connectionFactory).when(context).lookup(jmsCarrierTechnologyParameters.getConnectionFactory());
+ Mockito.doReturn(topic).when(context).lookup(jmsCarrierTechnologyParameters.getProducerTopic());
+ Mockito.doReturn(connection)
+ .when(connectionFactory)
+ .createConnection(jmsCarrierTechnologyParameters.getSecurityPrincipal(),
+ jmsCarrierTechnologyParameters.getSecurityCredentials());
+ Mockito.doNothing().when(connection).start();
+ Mockito.doReturn(session).when(connection).createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Mockito.doReturn(messageProducer).when(session).createProducer(topic);
+
+ apexJmsProducer.init(RandomStringUtils.random(5), producerParameters);
+
+ // Prepare stop mocks
+ Mockito.doNothing().when(messageProducer).close();
+ Mockito.doNothing().when(session).close();
+ Mockito.doNothing().when(connection).close();
+
+ // do the test
assertThatCode(apexJmsProducer::stop).doesNotThrowAnyException();
}
}
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml
index d9f800e..6e562a8 100644
--- a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/pom.xml
@@ -1,6 +1,7 @@
<!--
============LICENSE_START=======================================================
Copyright (C) 2018 Ericsson. All rights reserved.
+ Modifications 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.
@@ -17,8 +18,17 @@
SPDX-License-Identifier: Apache-2.0
============LICENSE_END=========================================================
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-client</artifactId>
+ <version>5.16.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
<parent>
<groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-protocol</groupId>
<artifactId>plugins-event-protocol</artifactId>
@@ -27,5 +37,6 @@
<artifactId>plugins-event-protocol-jms</artifactId>
<name>${project.artifactId}</name>
- <description>[${project.parent.artifactId}] Plugins for handling events that are being transported as JMS messages</description>
+ <description>[${project.parent.artifactId}] Plugins for handling events that are being transported as JMS messages
+ </description>
</project>
\ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/java/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsObjectEventConverter.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/java/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsObjectEventConverter.java
index 89e2e81..924765d 100644
--- a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/java/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsObjectEventConverter.java
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/java/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsObjectEventConverter.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2019-2021 Nordix Foundation.
* Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -141,4 +141,13 @@
// Return the single object from the Apex event message
return apexEvent.values().iterator().next();
}
+
+ /**
+ * Returns eventProtocolParameters field. Getter used only for testing
+ *
+ * @return eventProtocolParameters
+ */
+ JmsObjectEventProtocolParameters getEventProtocolParameters() {
+ return eventProtocolParameters;
+ }
}
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsObjectEventConverterTest.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsObjectEventConverterTest.java
new file mode 100644
index 0000000..70c17c3
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsObjectEventConverterTest.java
@@ -0,0 +1,195 @@
+/*-
+ * ============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.apex.plugins.event.protocol.jms;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.List;
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import org.apache.activemq.command.ActiveMQObjectMessage;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
+import org.onap.policy.apex.service.engine.event.impl.apexprotocolplugin.ApexEventProtocolParameters;
+
+public class Apex2JmsObjectEventConverterTest {
+ private Apex2JmsObjectEventConverter converter;
+ private final PrintStream orgOutBuffer = System.out;
+ private ByteArrayOutputStream testOutStream;
+
+ @Before
+ public void setUp() throws Exception {
+ converter = new Apex2JmsObjectEventConverter();
+ testOutStream = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(testOutStream));
+ }
+
+ @After
+ public void tearDown() {
+ System.setOut(orgOutBuffer);
+ }
+
+ @Test
+ public void initNull() {
+ assertThatThrownBy(() -> converter.init(null))
+ .isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ public void initWrongClass() {
+ converter.init(new ApexEventProtocolParameters());
+ final String actual = testOutStream.toString();
+ assertThat(actual).contains("specified Event Protocol Parameters properties of typ");
+ assertNull(converter.getEventProtocolParameters());
+ }
+
+ @Test
+ public void init() {
+ final JmsObjectEventProtocolParameters parameters = new JmsObjectEventProtocolParameters();
+ converter.init(parameters);
+ final JmsObjectEventProtocolParameters actual = converter.getEventProtocolParameters();
+ assertSame(parameters, actual);
+ }
+
+ @Test
+ public void toApexEventNull() {
+ final JmsObjectEventProtocolParameters parameters = new JmsObjectEventProtocolParameters();
+ converter.init(parameters);
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, null))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void toApexEventObject() {
+ final JmsObjectEventProtocolParameters parameters = new JmsObjectEventProtocolParameters();
+ converter.init(parameters);
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, new Object()))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void toApexEventNoParams() {
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ ObjectMessage object = new ActiveMQObjectMessage();
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, object))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void toApexEventIncomingObjectIsNull() {
+ final JmsObjectEventProtocolParameters parameters = new JmsObjectEventProtocolParameters();
+
+ converter.init(parameters);
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ ObjectMessage object = new ActiveMQObjectMessage();
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, object))
+ .isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ public void toApexEvent() throws ApexEventException, JMSException {
+ final JmsObjectEventProtocolParameters parameters = new JmsObjectEventProtocolParameters();
+
+ converter.init(parameters);
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ final ObjectMessage object = new ActiveMQObjectMessage();
+ final String value = RandomStringUtils.randomAlphabetic(3);
+ object.setObject(value);
+
+ // Prepare expected object
+ final ApexEvent expectedEvent = new ApexEvent("String" + parameters.getIncomingEventSuffix(),
+ parameters.getIncomingEventVersion(),
+ "java.lang",
+ parameters.getIncomingEventSource(),
+ parameters.getIncomingEventTarget());
+ // Overwrite executionId to match executionId of actual
+ expectedEvent.setExecutionId(1);
+ final Object[] expected = {expectedEvent};
+
+ // Run tested method
+ final List<ApexEvent> actual = converter.toApexEvent(eventName, object);
+ // Overwrite executionId to match executionId of expected
+ actual.get(0).setExecutionId(1);
+ assertArrayEquals(expected, actual.toArray());
+ }
+
+ @Test
+ public void fromApexEventNull() {
+ assertThatThrownBy(() -> converter.fromApexEvent(null))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void fromApexEventEmptyEvent() throws ApexEventException {
+ final ApexEvent apexEvent = new ApexEvent(
+ "a" + RandomStringUtils.randomAlphabetic(3),
+ "a" + RandomStringUtils.randomAlphabetic(3),
+ "a" + RandomStringUtils.randomAlphabetic(3),
+ "",
+ "");
+ assertThatThrownBy(() -> converter.fromApexEvent(apexEvent))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void fromApexEventMultipleEvents() throws ApexEventException {
+ final ApexEvent apexEvent = new ApexEvent(
+ "a" + RandomStringUtils.randomAlphabetic(3),
+ "a" + RandomStringUtils.randomAlphabetic(4),
+ "a" + RandomStringUtils.randomAlphabetic(5),
+ "",
+ "");
+ apexEvent.put(RandomStringUtils.randomAlphabetic(2), new Object());
+ apexEvent.put(RandomStringUtils.randomAlphabetic(6), new Object());
+ assertThatThrownBy(() -> converter.fromApexEvent(apexEvent)).isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void fromApexEventSingleEvent() throws ApexEventException {
+ final ApexEvent apexEvent = new ApexEvent(
+ "a" + RandomStringUtils.randomAlphabetic(3),
+ "a" + RandomStringUtils.randomAlphabetic(3),
+ "a" + RandomStringUtils.randomAlphabetic(3),
+ "",
+ "");
+
+ final Object expected = new Object();
+ apexEvent.put(RandomStringUtils.randomAlphabetic(2), expected);
+
+ final Object actual = converter.fromApexEvent(apexEvent);
+
+ assertSame(expected, actual);
+ }
+}
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsTextEventConverterTest.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsTextEventConverterTest.java
new file mode 100644
index 0000000..9f68b49
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/Apex2JmsTextEventConverterTest.java
@@ -0,0 +1,149 @@
+/*-
+ * ============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.apex.plugins.event.protocol.jms;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+
+
+import java.util.List;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.context.parameters.ContextParameterConstants;
+import org.onap.policy.apex.context.parameters.SchemaParameters;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.service.ModelService;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.TextBlock;
+import org.onap.policy.apex.service.engine.event.impl.jsonprotocolplugin.JsonEventProtocolParameters;
+import org.onap.policy.common.parameters.ParameterService;
+
+public class Apex2JmsTextEventConverterTest {
+ private Apex2JmsTextEventConverter converter;
+
+ @Before
+ public void setUp() {
+ converter = new Apex2JmsTextEventConverter();
+ ModelService.registerModel(AxContextSchemas.class, new AxContextSchemas());
+ ModelService.registerModel(AxEvents.class, new AxEvents());
+ ParameterService.register(new SchemaParameters());
+ }
+
+ @After
+ public void tearDown() {
+ ModelService.deregisterModel(AxContextSchema.class);
+ ModelService.deregisterModel(AxEvents.class);
+ ParameterService.deregister(ContextParameterConstants.SCHEMA_GROUP_NAME);
+ }
+
+ @Test
+ public void toApexEventNull() {
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, null))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void toApexEventObject() {
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, new Object()))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void toApexEventJsonString() throws ApexEventException {
+ final String eventName = RandomStringUtils.randomAlphabetic(4);
+ final String eventVersion = "0.0.1";
+ final String source = RandomStringUtils.randomAlphabetic(5);
+ final String target = RandomStringUtils.randomAlphabetic(6);
+ final String nameSpace = "a.name.space";
+
+ // Prepare Json String to be translated into ApexEvent
+ final TextBlock object =
+ new TextBlock(false, "{\"name\": \"" + eventName + "\", \"version\":\"" + eventVersion + "\"}");
+
+ // Prepare Model service
+ final AxArtifactKey eventKey = new AxArtifactKey(eventName + ":" + eventVersion);
+ final AxEvent axEvent = new AxEvent(eventKey, nameSpace, source, target);
+ ModelService.getModel(AxEvents.class).getEventMap().put(eventKey, axEvent);
+
+ // prepare converter
+ converter.init(new JsonEventProtocolParameters());
+
+ // execute test
+ final List<ApexEvent> apexEvents = converter.toApexEvent(eventName, object);
+
+ final ApexEvent expectedEvent = new ApexEvent(eventName, eventVersion, nameSpace, source, target);
+
+ // Reset executionId
+ expectedEvent.setExecutionId(0);
+ for (ApexEvent event : apexEvents) {
+ event.setExecutionId(0);
+ }
+ Object[] expected = {expectedEvent};
+
+ assertArrayEquals(expected, apexEvents.toArray());
+ }
+
+ @Test
+ public void fromApexNull() {
+ assertThatThrownBy(() -> converter.fromApexEvent(null)).isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void fromApex() throws ApexEventException {
+ final String name = RandomStringUtils.randomAlphabetic(4);
+ final String version = "0.2.3";
+ final String nameSpace = "a.name.space";
+ final String source = RandomStringUtils.randomAlphabetic(6);
+ final String target = RandomStringUtils.randomAlphabetic(7);
+
+ final String expected = "{\n" +
+ " \"name\": \"" + name + "\",\n" +
+ " \"version\": \"" + version + "\",\n" +
+ " \"nameSpace\": \"" + nameSpace + "\",\n" +
+ " \"source\": \"" + source + "\",\n" +
+ " \"target\": \"" + target + "\"\n" +
+ "}";
+
+ // Prepare Model service
+ final AxArtifactKey eventKey = new AxArtifactKey(name + ":" + version);
+ final AxEvent axEvent = new AxEvent(eventKey, nameSpace, source, target);
+ ModelService.getModel(AxEvents.class).getEventMap().put(eventKey, axEvent);
+
+ converter.init(new JsonEventProtocolParameters());
+
+ final ApexEvent apexEvent = new ApexEvent(name, version, nameSpace, source, target);
+ final Object actual = converter.fromApexEvent(apexEvent);
+
+ assertEquals(expected, actual);
+ }
+
+}
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/JmsObjectEventProtocolParametersTest.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/JmsObjectEventProtocolParametersTest.java
new file mode 100644
index 0000000..8baa9d5
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-jms/src/main/test/org/onap/policy/apex/plugins/event/protocol/jms/JmsObjectEventProtocolParametersTest.java
@@ -0,0 +1,53 @@
+/*-
+ * ============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.apex.plugins.event.protocol.jms;
+
+import static org.junit.Assert.assertEquals;
+
+
+import org.junit.Test;
+
+public class JmsObjectEventProtocolParametersTest {
+
+ @Test
+ public void getIncomingEventVersion() {
+ final JmsObjectEventProtocolParameters jmsObjectEventProtocolParameters =
+ new JmsObjectEventProtocolParameters();
+ final String actual = jmsObjectEventProtocolParameters.getIncomingEventVersion();
+ assertEquals("1.0.0", actual);
+ }
+
+ @Test
+ public void getIncomingEventSource() {
+ final JmsObjectEventProtocolParameters jmsObjectEventProtocolParameters =
+ new JmsObjectEventProtocolParameters();
+ final String actual = jmsObjectEventProtocolParameters.getIncomingEventSource();
+ assertEquals("JMS", actual);
+ }
+
+ @Test
+ public void getIncomingEventTarget() {
+ final JmsObjectEventProtocolParameters jmsObjectEventProtocolParameters =
+ new JmsObjectEventProtocolParameters();
+ final String actual = jmsObjectEventProtocolParameters.getIncomingEventTarget();
+ assertEquals("Apex", actual);
+ }
+}
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/PeeredReferenceTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/PeeredReferenceTest.java
new file mode 100644
index 0000000..cadb5c8
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/PeeredReferenceTest.java
@@ -0,0 +1,57 @@
+/*
+ * ============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.apex.service.engine.event;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.ApexFileEventConsumer;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.producer.ApexFileEventProducer;
+import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerPeeredMode;
+
+public class PeeredReferenceTest {
+
+ @Test
+ public void getPeeredConsumer() {
+ final ApexFileEventConsumer eventConsumer = new ApexFileEventConsumer();
+ final ApexFileEventProducer eventProducer = new ApexFileEventProducer();
+ final EventHandlerPeeredMode peeredMode = EventHandlerPeeredMode.REQUESTOR;
+ final PeeredReference peeredReference =
+ new PeeredReference(peeredMode, eventConsumer, eventProducer);
+
+ final ApexEventConsumer actual = peeredReference.getPeeredConsumer();
+ assertNotNull(actual);
+ assertEquals(peeredReference, actual.getPeeredReference(peeredMode));
+ }
+
+ @Test
+ public void getPeeredProducer() {
+ final ApexEventConsumer eventConsumer = new ApexFileEventConsumer();
+ final ApexEventProducer eventProducer = new ApexFileEventProducer();
+ final EventHandlerPeeredMode peeredMode = EventHandlerPeeredMode.SYNCHRONOUS;
+ final PeeredReference reference =
+ new PeeredReference(peeredMode, eventConsumer, eventProducer);
+
+ final ApexEventProducer actual = reference.getPeeredProducer();
+ assertNotNull(actual);
+ assertEquals(reference, actual.getPeeredReference(peeredMode));
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventConsumerFactoryTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventConsumerFactoryTest.java
new file mode 100644
index 0000000..976376e
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventConsumerFactoryTest.java
@@ -0,0 +1,83 @@
+/*
+ * ============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.apex.service.engine.event.impl;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.ApexEventConsumer;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperCarrierTechnologyParameters;
+import org.onap.policy.apex.service.parameters.carriertechnology.RestPluginCarrierTechnologyParameters;
+import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters;
+
+public class EventConsumerFactoryTest {
+ private EventConsumerFactory factory;
+
+ @Before
+ public void setUp() throws Exception {
+ factory = new EventConsumerFactory();
+ }
+
+ @Test
+ public void createConsumerNoTechnologyParameter() {
+ final String name = RandomStringUtils.randomAlphabetic(6);
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+
+ assertThatThrownBy(() -> factory.createConsumer(name, parameters))
+ .isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ public void createConsumerNoConsumerPlugin() {
+ final String name = RandomStringUtils.randomAlphabetic(6);
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+ parameters.setCarrierTechnologyParameters(new RestPluginCarrierTechnologyParameters());
+
+ assertThatThrownBy(() -> factory.createConsumer(name, parameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void createConsumerWrongPluginClassName() {
+ final String name = RandomStringUtils.randomAlphabetic(6);
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+ final RestPluginCarrierTechnologyParameters technologyParameters =
+ new RestPluginCarrierTechnologyParameters();
+ technologyParameters.setEventConsumerPluginClass("java.lang.Object");
+ parameters.setCarrierTechnologyParameters(technologyParameters);
+
+ assertThatThrownBy(() -> factory.createConsumer(name, parameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void createConsumer() throws ApexEventException {
+ final String name = RandomStringUtils.randomAlphabetic(6);
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+ parameters.setCarrierTechnologyParameters(new SuperDooperCarrierTechnologyParameters());
+
+ final ApexEventConsumer actual = factory.createConsumer(name, parameters);
+ assertNotNull(actual);
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventProducerFactoryTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventProducerFactoryTest.java
new file mode 100644
index 0000000..7e3cb54
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventProducerFactoryTest.java
@@ -0,0 +1,83 @@
+/*
+ * ============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.apex.service.engine.event.impl;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventProducer;
+import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperCarrierTechnologyParameters;
+import org.onap.policy.apex.service.parameters.carriertechnology.RestPluginCarrierTechnologyParameters;
+import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters;
+
+public class EventProducerFactoryTest {
+ private EventProducerFactory factory;
+
+ @Before
+ public void setUp() throws Exception {
+ factory = new EventProducerFactory();
+ }
+
+ @Test
+ public void createConsumerNoTechnologyParameter() {
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+ final String name = RandomStringUtils.randomAlphabetic(4);
+
+ assertThatThrownBy(() -> factory.createProducer(name, parameters))
+ .isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ public void createConsumerNoConsumerPlugin() {
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+ final String name = RandomStringUtils.randomAlphabetic(4);
+ parameters.setCarrierTechnologyParameters(new RestPluginCarrierTechnologyParameters());
+
+ assertThatThrownBy(() -> factory.createProducer(name, parameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void createConsumerWrongProducerPluginName() {
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+ final RestPluginCarrierTechnologyParameters technologyParameters =
+ new RestPluginCarrierTechnologyParameters();
+ final String name = RandomStringUtils.randomAlphabetic(4);
+ technologyParameters.setEventProducerPluginClass("java.lang.Object");
+ parameters.setCarrierTechnologyParameters(technologyParameters);
+
+ assertThatThrownBy(() -> factory.createProducer(name, parameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void createConsumer() throws ApexEventException {
+ final EventHandlerParameters parameters = new EventHandlerParameters();
+ parameters.setCarrierTechnologyParameters(new SuperDooperCarrierTechnologyParameters());
+ final String name = RandomStringUtils.randomAlphabetic(4);
+
+ final ApexEventProducer actual = factory.createProducer(name, parameters);
+ assertNotNull(actual);
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventProtocolFactoryTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventProtocolFactoryTest.java
new file mode 100644
index 0000000..8ed3a9f
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/EventProtocolFactoryTest.java
@@ -0,0 +1,70 @@
+/*
+ * ============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.apex.service.engine.event.impl;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.ApexEventProtocolConverter;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
+import org.onap.policy.apex.service.engine.event.impl.apexprotocolplugin.ApexEventProtocolParameters;
+import org.onap.policy.apex.service.engine.event.impl.jsonprotocolplugin.JsonEventProtocolParameters;
+import org.onap.policy.apex.service.parameters.eventprotocol.EventProtocolParameters;
+
+public class EventProtocolFactoryTest {
+ private EventProtocolFactory factory;
+
+ @Before
+ public void setUp() throws Exception {
+ factory = new EventProtocolFactory();
+ }
+
+ @Test
+ public void createConsumerNoConsumerPlugin() {
+ final EventProtocolParameters parameters = new ApexEventProtocolParameters();
+ parameters.setEventProtocolPluginClass("");
+ final String name = RandomStringUtils.randomAlphabetic(9);
+
+ assertThatThrownBy(() -> factory.createConverter(name, parameters))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void createConsumer2() {
+ final EventProtocolParameters parameters = new ApexEventProtocolParameters();
+ final String name = RandomStringUtils.randomAlphabetic(9);
+ parameters.setEventProtocolPluginClass("java.lang.Object");
+
+ assertThatThrownBy(() -> factory.createConverter(name, parameters))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void createConsumer() {
+ final EventProtocolParameters parameters = new JsonEventProtocolParameters();
+ final String name = RandomStringUtils.randomAlphabetic(9);
+
+ final ApexEventProtocolConverter actual = factory.createConverter(name, parameters);
+ assertNotNull(actual);
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/apexprotocolplugin/Apex2ApexEventConverterTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/apexprotocolplugin/Apex2ApexEventConverterTest.java
new file mode 100644
index 0000000..04e87ee
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/apexprotocolplugin/Apex2ApexEventConverterTest.java
@@ -0,0 +1,180 @@
+/*
+ * ============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.apex.service.engine.event.impl.apexprotocolplugin;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatNoException;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertSame;
+
+import java.util.List;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventList;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
+
+public class Apex2ApexEventConverterTest {
+ private Apex2ApexEventConverter converter;
+
+ @Before
+ public void setUp() throws Exception {
+ converter = new Apex2ApexEventConverter();
+ }
+
+ @Test
+ public void initWithNull() {
+ assertThatThrownBy(() -> converter.init(null))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void init() {
+ assertThatNoException()
+ .isThrownBy(() -> converter.init(new ApexEventProtocolParameters()));
+ }
+
+ @Test
+ public void toApexEventWithNull() {
+ final String eventName = RandomStringUtils.randomAlphanumeric(5);
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, null))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void toApexEventWithNonApexEvent() {
+ final String eventName = RandomStringUtils.randomAlphanumeric(5);
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, new Object()))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void toApexEmptyEvent() throws ApexEventException {
+ final String eventName = RandomStringUtils.randomAlphanumeric(4);
+ final String name = RandomStringUtils.randomAlphanumeric(5);
+ final String version = RandomStringUtils.randomAlphanumeric(6);
+ final String nameSpace = "a" + RandomStringUtils.randomAlphanumeric(7);
+ final String source = RandomStringUtils.randomAlphanumeric(8);
+ final String target = RandomStringUtils.randomAlphanumeric(9);
+
+ final ApexEvent event = new ApexEvent(name, version, nameSpace, source, target);
+ final List<ApexEvent> result = converter.toApexEvent(eventName, event);
+ assertThat(result).isEmpty();
+ }
+
+ @Test
+ public void toApexEventWithApexAndOtherFields() throws ApexEventException {
+ final String eventName = RandomStringUtils.randomAlphanumeric(4);
+ final String name1 = RandomStringUtils.randomAlphanumeric(5);
+ final String version1 = RandomStringUtils.randomAlphanumeric(6);
+ final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
+ final String source1 = RandomStringUtils.randomAlphanumeric(8);
+ final String target1 = RandomStringUtils.randomAlphanumeric(9);
+
+ final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1);
+
+ final String key = RandomStringUtils.randomAlphabetic(3);
+ event.put(key, new Object());
+ final List<ApexEvent> result = converter.toApexEvent(eventName, event);
+ Object[] expected = {event};
+ assertArrayEquals(expected, result.toArray());
+ }
+
+ @Test
+ public void toApexEventWithApexAndList() throws ApexEventException {
+ final String eventName = RandomStringUtils.randomAlphanumeric(4);
+ final String name1 = RandomStringUtils.randomAlphanumeric(5);
+ final String version1 = RandomStringUtils.randomAlphanumeric(6);
+ final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
+ final String source1 = RandomStringUtils.randomAlphanumeric(8);
+ final String target1 = RandomStringUtils.randomAlphanumeric(9);
+
+ final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1);
+
+ final ApexEventList eventList = new ApexEventList();
+ eventList.add(event);
+
+ final String name2 = RandomStringUtils.randomAlphanumeric(15);
+ final String version2 = RandomStringUtils.randomAlphanumeric(16);
+ final String nameSpace2 = "b" + RandomStringUtils.randomAlphanumeric(17);
+ final String source2 = RandomStringUtils.randomAlphanumeric(18);
+ final String target2 = RandomStringUtils.randomAlphanumeric(19);
+
+ final ApexEvent parentEvent = new ApexEvent(name2, version2, nameSpace2, source2, target2);
+ final String key = RandomStringUtils.randomAlphabetic(3);
+ parentEvent.put(key, eventList);
+ final List<ApexEvent> result = converter.toApexEvent(eventName, parentEvent);
+ Object[] expected = {event};
+ assertArrayEquals(expected, result.toArray());
+ }
+
+ @Test
+ public void toApexEventWithApexAndListAndOtherFields() throws ApexEventException {
+ final String eventName = RandomStringUtils.randomAlphanumeric(4);
+ final String name1 = RandomStringUtils.randomAlphanumeric(5);
+ final String version1 = RandomStringUtils.randomAlphanumeric(6);
+ final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
+ final String source1 = RandomStringUtils.randomAlphanumeric(8);
+ final String target1 = RandomStringUtils.randomAlphanumeric(9);
+
+ final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1);
+
+ final ApexEventList eventList = new ApexEventList();
+ eventList.add(event);
+
+ final String name2 = RandomStringUtils.randomAlphanumeric(15);
+ final String version2 = RandomStringUtils.randomAlphanumeric(16);
+ final String nameSpace2 = "b" + RandomStringUtils.randomAlphanumeric(17);
+ final String source2 = RandomStringUtils.randomAlphanumeric(18);
+ final String target2 = RandomStringUtils.randomAlphanumeric(19);
+
+ final ApexEvent parentEvent = new ApexEvent(name2, version2, nameSpace2, source2, target2);
+ final String key1 = RandomStringUtils.randomAlphabetic(3);
+ final String key2 = RandomStringUtils.randomAlphabetic(2);
+ parentEvent.put(key1, eventList);
+ parentEvent.put(key2, new Object());
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, parentEvent))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void fromApexEventNull() {
+ assertThatThrownBy(() -> converter.fromApexEvent(null))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void fromApexEvent() throws ApexEventException {
+ final String name1 = RandomStringUtils.randomAlphanumeric(5);
+ final String version1 = RandomStringUtils.randomAlphanumeric(6);
+ final String nameSpace1 = "a" + RandomStringUtils.randomAlphanumeric(7);
+ final String source1 = RandomStringUtils.randomAlphanumeric(8);
+ final String target1 = RandomStringUtils.randomAlphanumeric(9);
+
+ final ApexEvent event = new ApexEvent(name1, version1, nameSpace1, source1, target1);
+
+ final Object actual = converter.fromApexEvent(event);
+ assertSame(event, actual);
+ }
+
+}
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/apexprotocolplugin/ApexEventProtocolParametersTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/apexprotocolplugin/ApexEventProtocolParametersTest.java
new file mode 100644
index 0000000..8b39b0a
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/apexprotocolplugin/ApexEventProtocolParametersTest.java
@@ -0,0 +1,50 @@
+/*
+ * ============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.apex.service.engine.event.impl.apexprotocolplugin;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Test;
+
+public class ApexEventProtocolParametersTest {
+
+ @Test
+ public void testNoArgConstructor() {
+ final ApexEventProtocolParameters apexEventProtocolParameters = new ApexEventProtocolParameters();
+ final String actual = apexEventProtocolParameters.getLabel();
+ final String pluginClass = apexEventProtocolParameters.getEventProtocolPluginClass();
+
+ assertEquals(ApexEventProtocolParameters.APEX_EVENT_PROTOCOL_LABEL, actual);
+ assertEquals(Apex2ApexEventConverter.class.getName(), pluginClass);
+ }
+
+ @Test
+ public void testConstructor() {
+ final String expected = RandomStringUtils.randomAlphabetic(6);
+ final ApexEventProtocolParameters apexEventProtocolParameters = new ApexEventProtocolParameters(expected);
+ final String actual = apexEventProtocolParameters.getLabel();
+ final String pluginClass = apexEventProtocolParameters.getEventProtocolPluginClass();
+
+ assertEquals(expected, actual);
+ assertEquals(Apex2ApexEventConverter.class.getName(), pluginClass);
+ }
+
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/enevent/ApexEvent2EnEventConverterTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/enevent/ApexEvent2EnEventConverterTest.java
new file mode 100644
index 0000000..562760f
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/enevent/ApexEvent2EnEventConverterTest.java
@@ -0,0 +1,100 @@
+/*
+ * ============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.apex.service.engine.event.impl.enevent;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertArrayEquals;
+
+import java.util.List;
+import java.util.Random;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.core.engine.event.EnEvent;
+import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
+
+public class ApexEvent2EnEventConverterTest {
+ private ApexEvent2EnEventConverter converter;
+ private final Random random = new Random();
+
+ @Before
+ public void setUp() throws Exception {
+ converter = new ApexEvent2EnEventConverter(null);
+ }
+
+ @Test
+ public void toApexEventNull() {
+ final String eventName = RandomStringUtils.randomAlphabetic(3);
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, null))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void toApexEventWrongClass() throws ApexException {
+ final String eventName = RandomStringUtils.randomAlphabetic(3);
+ final String name = RandomStringUtils.randomAlphanumeric(5);
+ final String version = RandomStringUtils.randomAlphanumeric(6);
+ final String nameSpace = "a" + RandomStringUtils.randomAlphanumeric(7);
+ final String source = RandomStringUtils.randomAlphanumeric(8);
+ final String target = RandomStringUtils.randomAlphanumeric(9);
+
+ final ApexEvent event = new ApexEvent(name, version, nameSpace, source, target);
+
+ assertThatThrownBy(() -> converter.toApexEvent(eventName, event))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void toApex() throws ApexException {
+ // prepare String values for events
+ final String name = RandomStringUtils.randomAlphabetic(5);
+ final String version = RandomStringUtils.randomAlphabetic(6);
+ final String nameSpace = "b" + RandomStringUtils.randomAlphabetic(7);
+ final String source = RandomStringUtils.randomAlphabetic(8);
+ final String target = RandomStringUtils.randomAlphabetic(9);
+ final int executionId = random.nextInt(1000);
+ final String exceptionMessage = RandomStringUtils.randomAlphabetic(11);
+
+ // prepare events
+ final AxEvent axEvent = new AxEvent();
+ axEvent.getKey().setName(name);
+ axEvent.getKey().setVersion(version);
+ axEvent.setNameSpace(nameSpace);
+ axEvent.setSource(source);
+ axEvent.setTarget(target);
+ final EnEvent enEvent = new EnEvent(axEvent);
+ enEvent.setExecutionId(executionId);
+ enEvent.setExceptionMessage(exceptionMessage);
+
+ // prepare expected event
+ final ApexEvent apexEvent = new ApexEvent(name, version, nameSpace, source, target);
+ apexEvent.setExecutionId(executionId);
+ apexEvent.setExceptionMessage(exceptionMessage);
+ final Object[] expected = {apexEvent};
+
+ // Test
+ final List<ApexEvent> actual = converter.toApexEvent(RandomStringUtils.randomAlphabetic(3), enEvent);
+ assertArrayEquals(expected, actual.toArray());
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorCarrierTechnologyParametersTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorCarrierTechnologyParametersTest.java
new file mode 100644
index 0000000..c0da816
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorCarrierTechnologyParametersTest.java
@@ -0,0 +1,43 @@
+/*
+ * ============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.apex.service.engine.event.impl.eventrequestor;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+import org.onap.policy.common.parameters.GroupValidationResult;
+
+public class EventRequestorCarrierTechnologyParametersTest {
+
+ @Test
+ public void getName() {
+ final EventRequestorCarrierTechnologyParameters parameters = new EventRequestorCarrierTechnologyParameters();
+ final String actual = parameters.getName();
+ assertEquals(EventRequestorCarrierTechnologyParameters.EVENT_REQUESTOR_CARRIER_TECHNOLOGY_LABEL, actual);
+ }
+
+ @Test
+ public void validate() {
+ final EventRequestorCarrierTechnologyParameters parameters = new EventRequestorCarrierTechnologyParameters();
+ final GroupValidationResult actual = parameters.validate();
+ assertNotNull(actual);
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorConsumerTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorConsumerTest.java
new file mode 100644
index 0000000..dd44da7
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorConsumerTest.java
@@ -0,0 +1,86 @@
+/*
+ * ============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.apex.service.engine.event.impl.eventrequestor;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertEquals;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.PeeredReference;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.ApexFileEventConsumer;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.producer.ApexFileEventProducer;
+import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters;
+import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerPeeredMode;
+
+public class EventRequestorConsumerTest {
+ private EventRequestorConsumer consumer;
+
+ @Before
+ public void setUp() throws Exception {
+ consumer = new EventRequestorConsumer();
+ }
+
+ @Test
+ public void initNoCarrierTechnologyParameters() {
+ final String consumerName = RandomStringUtils.randomAlphabetic(6);
+ final EventHandlerParameters eventHandlerParameters = new EventHandlerParameters();
+
+ assertThatThrownBy(() -> consumer.init(consumerName, eventHandlerParameters, null))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void initNoPeered() {
+ final String consumerName = RandomStringUtils.randomAlphabetic(6);
+ final EventHandlerParameters eventHandlerParameters = new EventHandlerParameters();
+ eventHandlerParameters.setCarrierTechnologyParameters(new EventRequestorCarrierTechnologyParameters());
+
+ assertThatThrownBy(() -> consumer.init(consumerName, eventHandlerParameters, null))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void getName() throws ApexEventException {
+ final String consumerName = RandomStringUtils.randomAlphabetic(6);
+ final EventHandlerParameters eventHandlerParameters = new EventHandlerParameters();
+ eventHandlerParameters.setCarrierTechnologyParameters(new EventRequestorCarrierTechnologyParameters());
+ eventHandlerParameters.setPeeredMode(EventHandlerPeeredMode.REQUESTOR, true);
+
+ consumer.init(consumerName, eventHandlerParameters, null);
+ final String actual = consumer.getName();
+
+ assertEquals(consumerName, actual);
+ }
+
+ @Test
+ public void getSetPeeeredReference() {
+ final PeeredReference peeredReference =
+ new PeeredReference(EventHandlerPeeredMode.REQUESTOR, new ApexFileEventConsumer(),
+ new ApexFileEventProducer());
+ consumer.setPeeredReference(EventHandlerPeeredMode.REQUESTOR, peeredReference);
+
+ final PeeredReference actual = consumer.getPeeredReference(EventHandlerPeeredMode.REQUESTOR);
+
+ assertEquals(peeredReference, actual);
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorProducerTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorProducerTest.java
new file mode 100644
index 0000000..2f4764f
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorProducerTest.java
@@ -0,0 +1,161 @@
+/*
+ * ============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.apex.service.engine.event.impl.eventrequestor;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertEquals;
+
+import java.util.Random;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventProducer;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
+import org.onap.policy.apex.service.engine.event.PeeredReference;
+import org.onap.policy.apex.service.engine.event.SynchronousEventCache;
+import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.ApexFileEventConsumer;
+import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters;
+import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerPeeredMode;
+
+public class EventRequestorProducerTest {
+ private final Random random = new Random();
+ private EventRequestorProducer producer;
+
+ @Mock
+ private ApexEventProducer apexProducer;
+ @Mock
+ private EventRequestorConsumer apexConsumer;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ producer = new EventRequestorProducer();
+ }
+
+ @Test
+ public void initWithEmptyParams() {
+ final String producerName = RandomStringUtils.random(4);
+ final EventHandlerParameters eventHandlerParameters = new EventHandlerParameters();
+
+ assertThatThrownBy(() -> producer.init(producerName, eventHandlerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void initNotPeered() {
+ final String producerName = RandomStringUtils.random(4);
+ final EventHandlerParameters eventHandlerParameters = new EventHandlerParameters();
+ eventHandlerParameters.setCarrierTechnologyParameters(new EventRequestorCarrierTechnologyParameters());
+
+ assertThatThrownBy(() -> producer.init(producerName, eventHandlerParameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+ @Test
+ public void getName() throws ApexEventException {
+ final String expected = RandomStringUtils.random(4);
+ final EventHandlerParameters eventHandlerParameters = new EventHandlerParameters();
+ eventHandlerParameters.setCarrierTechnologyParameters(new EventRequestorCarrierTechnologyParameters());
+ eventHandlerParameters.setPeeredMode(EventHandlerPeeredMode.REQUESTOR, true);
+
+ producer.init(expected, eventHandlerParameters);
+ final String actual = producer.getName();
+
+ assertEquals(expected, actual);
+ }
+
+ @Test
+ public void getSetPeeredReference() {
+ final PeeredReference peeredReference = new PeeredReference(EventHandlerPeeredMode.SYNCHRONOUS, apexConsumer,
+ apexProducer);
+ producer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS, peeredReference);
+
+ final PeeredReference actual = this.producer.getPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS);
+ assertEquals(peeredReference, actual);
+ }
+
+ @Test
+ public void sendEventNoRequestor() {
+ final int id = random.nextInt(1000);
+
+ assertThatThrownBy(() -> producer.sendEvent(id, null, null, null))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void sendEventNoEventRequestorConsumer() {
+ final int id = random.nextInt(1000);
+
+ final ApexFileEventConsumer fileEventConsumer = Mockito.mock(ApexFileEventConsumer.class);
+
+ final PeeredReference reference =
+ new PeeredReference(EventHandlerPeeredMode.REQUESTOR, fileEventConsumer, apexProducer);
+
+ producer.setPeeredReference(EventHandlerPeeredMode.REQUESTOR, reference);
+
+ assertThatThrownBy(() -> producer.sendEvent(id, null, null, null))
+ .isInstanceOf(ApexEventRuntimeException.class);
+ }
+
+ @Test
+ public void sendEvent() {
+ final int id = random.nextInt(1000);
+ // Prepare mocks
+ final PeeredReference peeredReference = Mockito.mock(PeeredReference.class);
+
+ Mockito.when(apexConsumer.getPeeredReference(Matchers.any())).thenReturn(peeredReference);
+ Mockito.when(peeredReference.getPeeredConsumer()).thenReturn(apexConsumer);
+
+ final PeeredReference reference =
+ new PeeredReference(EventHandlerPeeredMode.REQUESTOR, apexConsumer, apexProducer);
+ producer.setPeeredReference(EventHandlerPeeredMode.REQUESTOR, reference);
+
+ producer.sendEvent(id, null, null, null);
+ Mockito.verify(apexConsumer, Mockito.times(1)).processEvent(Matchers.any());
+ }
+
+ @Test
+ public void sendEventCached() {
+ final int id = random.nextInt(1000);
+
+ // Set event cache
+ final SynchronousEventCache eventCache = Mockito.mock(SynchronousEventCache.class);
+ producer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS, eventCache);
+
+ // Prepare other mocks
+ final PeeredReference peeredReference = Mockito.mock(PeeredReference.class);
+
+ Mockito.when(peeredReference.getPeeredConsumer()).thenReturn(apexConsumer);
+ Mockito.when(apexConsumer.getPeeredReference(Matchers.any())).thenReturn(peeredReference);
+
+ final PeeredReference reference =
+ new PeeredReference(EventHandlerPeeredMode.REQUESTOR, apexConsumer, apexProducer);
+ producer.setPeeredReference(EventHandlerPeeredMode.REQUESTOR, reference);
+
+ producer.sendEvent(id, null, null, null);
+ Mockito.verify(apexConsumer, Mockito.times(1)).processEvent(Matchers.any());
+ Mockito.verify(eventCache, Mockito.times(1)).removeCachedEventToApexIfExists(id);
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/TextBlockReaderFactoryTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/TextBlockReaderFactoryTest.java
new file mode 100644
index 0000000..4fa42a7
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/TextBlockReaderFactoryTest.java
@@ -0,0 +1,79 @@
+/*
+ * ============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.apex.service.engine.event.impl.filecarrierplugin.consumer;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.impl.apexprotocolplugin.ApexEventProtocolParameters;
+import org.onap.policy.apex.service.engine.event.impl.jsonprotocolplugin.JsonEventProtocolParameters;
+import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperTokenDelimitedEventProtocolParameters;
+import org.onap.policy.apex.service.parameters.eventprotocol.EventProtocolParameters;
+
+public class TextBlockReaderFactoryTest {
+ private TextBlockReaderFactory factory;
+
+ @Before
+ public void setUp() throws Exception {
+ factory = new TextBlockReaderFactory();
+ }
+
+ @Test
+ public void getTaggedReaderTextCharDelimitedParametersParams() throws ApexEventException {
+ final String text = RandomStringUtils.randomAlphanumeric(22);
+ final InputStream inputStream = prepareInputStream(text);
+ final EventProtocolParameters parameters = new JsonEventProtocolParameters();
+
+ final TextBlockReader actual = factory.getTaggedReader(inputStream, parameters);
+ assertThat(actual).isNotInstanceOf(HeaderDelimitedTextBlockReader.class);
+ }
+
+ @Test
+ public void getTaggedReaderTextTokenDelimitedParams() throws ApexEventException {
+ final String text = RandomStringUtils.randomAlphanumeric(22);
+ final InputStream inputStream = prepareInputStream(text);
+ new ApexEventProtocolParameters();
+ final EventProtocolParameters parameters = new SuperTokenDelimitedEventProtocolParameters();
+
+ final TextBlockReader actual = factory.getTaggedReader(inputStream, parameters);
+ assertThat(actual).isInstanceOf(HeaderDelimitedTextBlockReader.class);
+ }
+
+ @Test
+ public void getTaggedReaderNotSupportedParams() {
+ final String text = RandomStringUtils.randomAlphanumeric(22);
+ final InputStream inputStream = prepareInputStream(text);
+ final EventProtocolParameters parameters = new ApexEventProtocolParameters();
+ assertThatThrownBy(() -> factory.getTaggedReader(inputStream, parameters))
+ .isInstanceOf(ApexEventException.class);
+ }
+
+
+ private InputStream prepareInputStream(String text) {
+ return new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
+ }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/TextBlockTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/TextBlockTest.java
new file mode 100644
index 0000000..4390c3f
--- /dev/null
+++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/TextBlockTest.java
@@ -0,0 +1,57 @@
+/*
+ * ============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.apex.service.engine.event.impl.filecarrierplugin.consumer;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Random;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Test;
+
+public class TextBlockTest {
+ private final Random random = new Random();
+
+ @Test
+ public void isEndOfText() {
+ final boolean endOfText = random.nextBoolean();
+ final TextBlock textBlock = new TextBlock(endOfText, null);
+
+ assertEquals(endOfText, textBlock.isEndOfText());
+ }
+
+ @Test
+ public void getText() {
+ final boolean endOfText = random.nextBoolean();
+ final String text = RandomStringUtils.randomAlphanumeric(8);
+ final TextBlock textBlock = new TextBlock(endOfText, text);
+
+ assertEquals(text, textBlock.getText());
+ }
+
+ @Test
+ public void setText() {
+ final boolean endOfText = random.nextBoolean();
+ final String text = RandomStringUtils.randomAlphanumeric(8);
+ final TextBlock textBlock = new TextBlock(endOfText, null);
+
+ textBlock.setText(text);
+ assertEquals(text, textBlock.getText());
+ }
+}
\ No newline at end of file
diff --git a/testsuites/apex-pdp-stability/src/main/resources/apexPdpStabilityTestPlan.jmx b/testsuites/apex-pdp-stability/src/main/resources/apexPdpStabilityTestPlan.jmx
index 7a8777f..afeb77f 100644
--- a/testsuites/apex-pdp-stability/src/main/resources/apexPdpStabilityTestPlan.jmx
+++ b/testsuites/apex-pdp-stability/src/main/resources/apexPdpStabilityTestPlan.jmx
@@ -67,43 +67,43 @@
</elementProp>
<elementProp name="threadsTimeOutInMs" elementType="Argument">
<stringProp name="Argument.name">threadsTimeOutInMs</stringProp>
- <stringProp name="Argument.value">${__P(threadsTimeOutInMs,150000)}</stringProp>
+ <stringProp name="Argument.value">${__P(threadsTimeOutInMs,5000)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="wait" elementType="Argument">
<stringProp name="Argument.name">wait</stringProp>
- <stringProp name="Argument.value">${__P(wait,120000)}</stringProp>
+ <stringProp name="Argument.value">${__P(wait,10000)}</stringProp>
<stringProp name="Argument.desc">Wait time between requests to apex-pdp</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="PAP_PORT" elementType="Argument">
<stringProp name="Argument.name">PAP_PORT</stringProp>
- <stringProp name="Argument.value">${__P(PAP_PORT,30844)}</stringProp>
+ <stringProp name="Argument.value">${__P(PAP_PORT,30211)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="API_PORT" elementType="Argument">
<stringProp name="Argument.name">API_PORT</stringProp>
- <stringProp name="Argument.value">${__P(API_PORT,30485)}</stringProp>
+ <stringProp name="Argument.value">${__P(API_PORT,30785)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="APEX_PORT" elementType="Argument">
<stringProp name="Argument.name">APEX_PORT</stringProp>
- <stringProp name="Argument.value">${__P(APEX_PORT,31686)}</stringProp>
+ <stringProp name="Argument.value">${__P(APEX_PORT,30687)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="DMAAP_PORT" elementType="Argument">
<stringProp name="Argument.name">DMAAP_PORT</stringProp>
- <stringProp name="Argument.value">${__P(DMAAP_PORT,31499)}</stringProp>
+ <stringProp name="Argument.value">${__P(DMAAP_PORT,31345)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="HOSTNAME" elementType="Argument">
<stringProp name="Argument.name">HOSTNAME</stringProp>
- <stringProp name="Argument.value">${__P(HOSTNAME,10.2.0.97)}</stringProp>
+ <stringProp name="Argument.value">${__P(HOSTNAME,10.2.0.120)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="LOG_PATH" elementType="Argument">
<stringProp name="Argument.name">LOG_PATH</stringProp>
- <stringProp name="Argument.value">${__P(LOG_PATH,/home/wayned/apex_stability)}</stringProp>
+ <stringProp name="Argument.value">${__P(LOG_PATH,/home/arkadiusza/apex_stability)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
@@ -157,2296 +157,2287 @@
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{
- "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
- "topology_template": {
- "policies": [
- {
- "operational.apex.stabilityTestDefaultDomain": {
- "type": "onap.policies.native.Apex",
- "type_version": "1.0.0",
- "properties": {
- "engineServiceParameters": {
- "name": "MyApexEngine",
- "version": "0.0.1",
- "id": 45,
- "instanceCount": 4,
- "deploymentPort": 12561,
- "engineParameters": {
- "executorParameters": {
- "JAVASCRIPT": {
- "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
- }
- },
- "contextParameters": {
- "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters",
- "schemaParameters": {
- "Avro": {
- "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters"
- },
- "Java": {
- "parameterClassName": "org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters",
- "jsonAdapters": {
- "Instant": {
- "adaptedClass": "java.time.Instant",
- "adaptorClass": "org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter"
- }
- }
- }
- }
- }
- },
- "policy_type_impl": {
- "apexPolicyModel": {
- "key": {
- "name": "APEXgRPCPolicy",
- "version": "0.0.1"
- },
- "keyInformation": {
- "key": {
- "name": "APEXgRPCPolicy_KeyInfo",
- "version": "0.0.1"
- },
- "keyInfoMap": {
- "entry": [
- {
- "key": {
- "name": "APEXgRPCPolicy",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "APEXgRPCPolicy",
- "version": "0.0.1"
- },
- "UUID": "b8424cdb-29fb-3566-b77a-f4f847d81cc9",
- "description": "Generated description for concept referred to by key \"APEXgRPCPolicy:0.0.1\""
- }
- },
- {
- "key": {
- "name": "APEXgRPCPolicy_Albums",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "APEXgRPCPolicy_Albums",
- "version": "0.0.1"
- },
- "UUID": "9922906c-ccaa-34f7-95e2-bcc36e77821b",
- "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Albums:0.0.1\""
- }
- },
- {
- "key": {
- "name": "APEXgRPCPolicy_Events",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "APEXgRPCPolicy_Events",
- "version": "0.0.1"
- },
- "UUID": "5bf28afd-787c-3138-a3e1-b33ad94a038a",
- "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Events:0.0.1\""
- }
- },
- {
- "key": {
- "name": "APEXgRPCPolicy_KeyInfo",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "APEXgRPCPolicy_KeyInfo",
- "version": "0.0.1"
- },
- "UUID": "68abaa6f-8d03-3a53-9590-007115817d5c",
- "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_KeyInfo:0.0.1\""
- }
- },
- {
- "key": {
- "name": "APEXgRPCPolicy_Policies",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "APEXgRPCPolicy_Policies",
- "version": "0.0.1"
- },
- "UUID": "819d06c3-33c2-3031-aa78-96281aa4270a",
- "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Policies:0.0.1\""
- }
- },
- {
- "key": {
- "name": "APEXgRPCPolicy_Schemas",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "APEXgRPCPolicy_Schemas",
- "version": "0.0.1"
- },
- "UUID": "8e67d466-f990-3a39-9fd7-4490cac342dc",
- "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Schemas:0.0.1\""
- }
- },
- {
- "key": {
- "name": "APEXgRPCPolicy_Tasks",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "APEXgRPCPolicy_Tasks",
- "version": "0.0.1"
- },
- "UUID": "4668db3d-6fe2-3885-8e47-f30cd0102f0a",
- "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Tasks:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "UUID": "6e5fa19b-14df-37e3-a4ae-8c537e861a82",
- "description": "Generated description for concept referred to by key \"CDSActionIdentifiersType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "UUID": "8350ac5e-c157-38b9-9614-a0f93a830e60",
- "description": "Generated description for concept referred to by key \"CDSCreateSubscriptionPayloadType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "UUID": "12658406-9147-3c9d-a38c-5ad5e30b092b",
- "description": "Generated description for concept referred to by key \"CDSDeleteSubscriptionPayloadType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "UUID": "35590ac0-062c-39f1-8786-b4ff716e30b1",
- "description": "Generated description for concept referred to by key \"CDSRequestCommonHeaderType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSResponseCommonHeaderType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseCommonHeaderType",
- "version": "0.0.1"
- },
- "UUID": "dd7e1805-885a-350b-aaf9-ed541321ae3c",
- "description": "Generated description for concept referred to by key \"CDSResponseCommonHeaderType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSResponseEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseEvent",
- "version": "0.0.1"
- },
- "UUID": "15161037-9ac8-3223-820f-4e743562a345",
- "description": "Generated description for concept referred to by key \"CDSResponseEvent:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSResponsePayloadType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponsePayloadType",
- "version": "0.0.1"
- },
- "UUID": "97dc5f58-25bb-3c20-8d53-fdb70d7ca256",
- "description": "Generated description for concept referred to by key \"CDSResponsePayloadType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSResponsePolicy",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponsePolicy",
- "version": "0.0.1"
- },
- "UUID": "c28b05a8-7436-3ac0-82ca-6d5fc18c9584",
- "description": "Generated description for concept referred to by key \"CDSResponsePolicy:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSResponseStatusEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseStatusEvent",
- "version": "0.0.1"
- },
- "UUID": "7986e21b-32f7-302e-9554-31f21b673493",
- "description": "Generated description for concept referred to by key \"CDSResponseStatusEvent:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSResponseStatusType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseStatusType",
- "version": "0.0.1"
- },
- "UUID": "92b8a2cf-344e-3ce1-8cc0-2b7d3cb695fa",
- "description": "Generated description for concept referred to by key \"CDSResponseStatusType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CDSResponseTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseTask",
- "version": "0.0.1"
- },
- "UUID": "d22c78a5-272c-391d-8083-28588280caf9",
- "description": "Generated description for concept referred to by key \"CDSResponseTask:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "UUID": "92162397-1a8e-3a3f-a469-d2af7700af4a",
- "description": "Generated description for concept referred to by key \"CreateSubscriptionPayloadEvent:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "UUID": "bc0c69f0-52ed-38ea-b468-ae4a6fd1730d",
- "description": "Generated description for concept referred to by key \"CreateSubscriptionPayloadTask:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "UUID": "7cfcf843-337e-3f41-b755-5043cb0a08fc",
- "description": "Generated description for concept referred to by key \"CreateSubscriptionRequestEvent:0.0.1\""
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "UUID": "89cb75e9-f06c-30d3-b4ff-698d45f63869",
- "description": "Generated description for concept referred to by key \"CreateSubscriptionRequestTask:0.0.1\""
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "UUID": "994fa441-04ab-33bb-832d-1cd12ab5d074",
- "description": "Generated description for concept referred to by key \"DeleteSubscriptionPayloadEvent:0.0.1\""
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "UUID": "0f519117-5fea-3e4b-941f-8f778100465f",
- "description": "Generated description for concept referred to by key \"DeleteSubscriptionPayloadTask:0.0.1\""
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "UUID": "15d618d8-1689-3a05-89a5-05efa9388f65",
- "description": "Generated description for concept referred to by key \"DeleteSubscriptionRequestEvent:0.0.1\""
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "UUID": "acb772fe-d442-39e3-98f9-b1080caf4150",
- "description": "Generated description for concept referred to by key \"DeleteSubscriptionRequestTask:0.0.1\""
- }
- },
- {
- "key": {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- },
- "UUID": "c2bd6f0d-6854-317a-9be2-97c08338428c",
- "description": "Generated description for concept referred to by key \"PMSubscriptionAlbum:0.0.1\""
- }
- },
- {
- "key": {
- "name": "PMSubscriptionOutputEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "PMSubscriptionOutputEvent",
- "version": "0.0.1"
- },
- "UUID": "992b7819-9f69-3aa0-bb0f-6e45ea15ce05",
- "description": "Generated description for concept referred to by key \"PMSubscriptionOutputEvent:0.0.1\""
- }
- },
- {
- "key": {
- "name": "PMSubscriptionType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "PMSubscriptionType",
- "version": "0.0.1"
- },
- "UUID": "73c1c397-4fc3-357f-93b6-a8ad707fbaae",
- "description": "Generated description for concept referred to by key \"PMSubscriptionType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "ReceiveEventPolicy",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "ReceiveEventPolicy",
- "version": "0.0.1"
- },
- "UUID": "568b7345-9de1-36d3-b6a3-9b857e6809a1",
- "description": "Generated description for concept referred to by key \"ReceiveEventPolicy:0.0.1\""
- }
- },
- {
- "key": {
- "name": "ReceivePMSubscriptionTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "ReceivePMSubscriptionTask",
- "version": "0.0.1"
- },
- "UUID": "6c1c6c45-26e0-3591-94bf-679d20e283f4",
- "description": "Generated description for concept referred to by key \"ReceivePMSubscriptionTask:0.0.1\""
- }
- },
- {
- "key": {
- "name": "SimpleIntType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SimpleIntType",
- "version": "0.0.1"
- },
- "UUID": "153791fd-ae0a-36a7-88a5-309a7936415d",
- "description": "Generated description for concept referred to by key \"SimpleIntType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "UUID": "8a4957cf-9493-3a76-8c22-a208e23259af",
- "description": "Generated description for concept referred to by key \"SimpleStringType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "SubscriptionStatusType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SubscriptionStatusType",
- "version": "0.0.1"
- },
- "UUID": "597643b1-9db1-31ce-85d0-e1c63c43b30b",
- "description": "Generated description for concept referred to by key \"SubscriptionStatusType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "SubscriptionType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SubscriptionType",
- "version": "0.0.1"
- },
- "UUID": "184547bb-7d64-3cb2-a273-d7185102c5ce",
- "description": "Generated description for concept referred to by key \"SubscriptionType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "UUID": "6a8cc68e-dfc8-3403-9c6d-071c886b319c",
- "description": "Generated description for concept referred to by key \"UUIDType:0.0.1\""
- }
- },
- {
- "key": {
- "name": "testPolicyB",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "testPolicyB",
- "version": "0.0.1"
- },
- "UUID": "ead590a3-ba2e-3a01-b6e9-9329f5c8fee1",
- "description": "Generated description for concept referred to by key \"testPolicyB:0.0.1\""
- }
- }
- ]
- }
- },
- "policies": {
- "key": {
- "name": "APEXgRPCPolicy_Policies",
- "version": "0.0.1"
- },
- "policyMap": {
- "entry": [
- {
- "key": {
- "name": "CDSResponsePolicy",
- "version": "0.0.1"
- },
- "value": {
- "policyKey": {
- "name": "CDSResponsePolicy",
- "version": "0.0.1"
- },
- "template": "Freestyle",
- "state": {
- "entry": [
- {
- "key": "CDSResponseState",
- "value": {
- "stateKey": {
- "parentKeyName": "CDSResponsePolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "CDSResponseState"
- },
- "trigger": {
- "name": "CDSResponseEvent",
- "version": "0.0.1"
- },
- "stateOutputs": {
- "entry": [
- {
- "key": "ResponseOutput",
- "value": {
- "key": {
- "parentKeyName": "CDSResponsePolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CDSResponseState",
- "localName": "ResponseOutput"
- },
- "outgoingEvent": {
- "name": "CDSResponseStatusEvent",
- "version": "0.0.1"
- },
- "nextState": {
- "parentKeyName": "NULL",
- "parentKeyVersion": "0.0.0",
- "parentLocalName": "NULL",
- "localName": "NULL"
- }
- }
- }
- ]
- },
- "contextAlbumReference": [],
- "taskSelectionLogic": {
- "key": "NULL",
- "logicFlavour": "UNDEFINED",
- "logic": ""
- },
- "stateFinalizerLogicMap": {
- "entry": []
- },
- "defaultTask": {
- "name": "CDSResponseTask",
- "version": "0.0.1"
- },
- "taskReferences": {
- "entry": [
- {
- "key": {
- "name": "CDSResponseTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "parentKeyName": "CDSResponsePolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CDSResponseState",
- "localName": "CDSResponsePolicy"
- },
- "outputType": "DIRECT",
- "output": {
- "parentKeyName": "CDSResponsePolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CDSResponseState",
- "localName": "ResponseOutput"
- }
- }
- }
- ]
- }
- }
- }
- ]
- },
- "firstState": "CDSResponseState"
- }
- },
- {
- "key": {
- "name": "ReceiveEventPolicy",
- "version": "0.0.1"
- },
- "value": {
- "policyKey": {
- "name": "ReceiveEventPolicy",
- "version": "0.0.1"
- },
- "template": "Freestyle",
- "state": {
- "entry": [
- {
- "key": "CreateOrDeleteState",
- "value": {
- "stateKey": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "CreateOrDeleteState"
- },
- "trigger": {
- "name": "PMSubscriptionOutputEvent",
- "version": "0.0.1"
- },
- "stateOutputs": {
- "entry": [
- {
- "key": "CreateSubscriptionPayload",
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateOrDeleteState",
- "localName": "CreateSubscriptionPayload"
- },
- "outgoingEvent": {
- "name": "CreateSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "nextState": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "CreateSubscription"
- }
- }
- },
- {
- "key": "DeleteSubscriptionPayload",
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateOrDeleteState",
- "localName": "DeleteSubscriptionPayload"
- },
- "outgoingEvent": {
- "name": "DeleteSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "nextState": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "DeleteSubscription"
- }
- }
- }
- ]
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskSelectionLogic": {
- "key": "TaskSelectionLogic",
- "logicFlavour": "JAVASCRIPT",
- "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix Foundation.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar changeType = pmSubscriptionInfo.get(\"changeType\").toString()\n\nif (\"CREATE\".equals(changeType)) {\n executor.subject.getTaskKey(\"CreateSubscriptionPayloadTask\").copyTo(executor.selectedTask);\n}\nelse if (\"DELETE\".equals(changeType)) {\n executor.subject.getTaskKey(\"DeleteSubscriptionPayloadTask\").copyTo(executor.selectedTask);\n}\n\ntrue;"
- },
- "stateFinalizerLogicMap": {
- "entry": []
- },
- "defaultTask": {
- "name": "CreateSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "taskReferences": {
- "entry": [
- {
- "key": {
- "name": "CreateSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateOrDeleteState",
- "localName": "ReceiveEventPolicy"
- },
- "outputType": "DIRECT",
- "output": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateOrDeleteState",
- "localName": "CreateSubscriptionPayload"
- }
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateOrDeleteState",
- "localName": "ReceiveEventPolicy"
- },
- "outputType": "DIRECT",
- "output": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateOrDeleteState",
- "localName": "DeleteSubscriptionPayload"
- }
- }
- }
- ]
- }
- }
- },
- {
- "key": "CreateSubscription",
- "value": {
- "stateKey": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "CreateSubscription"
- },
- "trigger": {
- "name": "CreateSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "stateOutputs": {
- "entry": [
- {
- "key": "IssueCreateSubscriptionRequestOutput",
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateSubscription",
- "localName": "IssueCreateSubscriptionRequestOutput"
- },
- "outgoingEvent": {
- "name": "CreateSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "nextState": {
- "parentKeyName": "NULL",
- "parentKeyVersion": "0.0.0",
- "parentLocalName": "NULL",
- "localName": "NULL"
- }
- }
- }
- ]
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskSelectionLogic": {
- "key": "NULL",
- "logicFlavour": "UNDEFINED",
- "logic": ""
- },
- "stateFinalizerLogicMap": {
- "entry": []
- },
- "defaultTask": {
- "name": "CreateSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "taskReferences": {
- "entry": [
- {
- "key": {
- "name": "CreateSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateSubscription",
- "localName": "ReceiveEventPolicy"
- },
- "outputType": "DIRECT",
- "output": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "CreateSubscription",
- "localName": "IssueCreateSubscriptionRequestOutput"
- }
- }
- }
- ]
- }
- }
- },
- {
- "key": "DeleteSubscription",
- "value": {
- "stateKey": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "DeleteSubscription"
- },
- "trigger": {
- "name": "DeleteSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "stateOutputs": {
- "entry": [
- {
- "key": "IssueDeleteSubscriptionRequestOutput",
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "DeleteSubscription",
- "localName": "IssueDeleteSubscriptionRequestOutput"
- },
- "outgoingEvent": {
- "name": "DeleteSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "nextState": {
- "parentKeyName": "NULL",
- "parentKeyVersion": "0.0.0",
- "parentLocalName": "NULL",
- "localName": "NULL"
- }
- }
- }
- ]
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskSelectionLogic": {
- "key": "NULL",
- "logicFlavour": "UNDEFINED",
- "logic": ""
- },
- "stateFinalizerLogicMap": {
- "entry": []
- },
- "defaultTask": {
- "name": "DeleteSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "taskReferences": {
- "entry": [
- {
- "key": {
- "name": "DeleteSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "DeleteSubscription",
- "localName": "ReceiveEventPolicy"
- },
- "outputType": "DIRECT",
- "output": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "DeleteSubscription",
- "localName": "IssueDeleteSubscriptionRequestOutput"
- }
- }
- }
- ]
- }
- }
- },
- {
- "key": "ReceiveSubscriptionState",
- "value": {
- "stateKey": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "ReceiveSubscriptionState"
- },
- "trigger": {
- "name": "testPolicyB",
- "version": "0.0.1"
- },
- "stateOutputs": {
- "entry": [
- {
- "key": "ReceivePMSubscriptionOutput",
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "ReceiveSubscriptionState",
- "localName": "ReceivePMSubscriptionOutput"
- },
- "outgoingEvent": {
- "name": "PMSubscriptionOutputEvent",
- "version": "0.0.1"
- },
- "nextState": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "NULL",
- "localName": "CreateOrDeleteState"
- }
- }
- }
- ]
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskSelectionLogic": {
- "key": "NULL",
- "logicFlavour": "UNDEFINED",
- "logic": ""
- },
- "stateFinalizerLogicMap": {
- "entry": []
- },
- "defaultTask": {
- "name": "ReceivePMSubscriptionTask",
- "version": "0.0.1"
- },
- "taskReferences": {
- "entry": [
- {
- "key": {
- "name": "ReceivePMSubscriptionTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "ReceiveSubscriptionState",
- "localName": "ReceiveEventPolicy"
- },
- "outputType": "DIRECT",
- "output": {
- "parentKeyName": "ReceiveEventPolicy",
- "parentKeyVersion": "0.0.1",
- "parentLocalName": "ReceiveSubscriptionState",
- "localName": "ReceivePMSubscriptionOutput"
- }
- }
- }
- ]
- }
- }
- }
- ]
- },
- "firstState": "ReceiveSubscriptionState"
- }
- }
- ]
- }
- },
- "tasks": {
- "key": {
- "name": "APEXgRPCPolicy_Tasks",
- "version": "0.0.1"
- },
- "taskMap": {
- "entry": [
- {
- "key": {
- "name": "CDSResponseTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseTask",
- "version": "0.0.1"
- },
- "inputFields": {
- "entry": [
- {
- "key": "actionIdentifiers",
- "value": {
- "key": "actionIdentifiers",
- "fieldSchemaKey": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "commonHeader",
- "value": {
- "key": "commonHeader",
- "fieldSchemaKey": {
- "name": "CDSResponseCommonHeaderType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSResponsePayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "status",
- "value": {
- "key": "status",
- "fieldSchemaKey": {
- "name": "CDSResponseStatusType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "outputFields": {
- "entry": [
- {
- "key": "status",
- "value": {
- "key": "status",
- "fieldSchemaKey": {
- "name": "SubscriptionStatusType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "taskParameters": {
- "entry": []
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskLogic": {
- "key": "TaskLogic",
- "logicFlavour": "JAVASCRIPT",
- "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\n\nvar uuidType = java.util.UUID;\n\nvar albumID = uuidType.fromString(\"d0050623-18e5-46c9-9298-9a567990cd7c\");\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(albumID.toString());\n\nvar responseStatus = executor.subject.getOutFieldSchemaHelper(\"status\").createNewInstance();\n\nresponseStatus.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\nresponseStatus.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\nresponseStatus.put(\"changeType\", pmSubscriptionInfo.get(\"changeType\"))\n\nvar response = executor.inFields.get(\"payload\")\n\nif (\"failure\".equals(response.get(\"create_DasH_subscription_DasH_response\").get(\"odl_DasH_response\").get(\"status\"))) {\n responseStatus.put(\"message\", \"failed\")\n} else {\n responseStatus.put(\"message\", \"success\")\n}\n\nexecutor.outFields.put(\"status\", responseStatus)\n\ntrue;"
- }
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "inputFields": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "outputFields": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "taskParameters": {
- "entry": []
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskLogic": {
- "key": "TaskLogic",
- "logicFlavour": "JAVASCRIPT",
- "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\n\nvar payloadProperties = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"create_DasH_subscription_DasH_properties_record\");\n\npayloadProperties.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\npayloadProperties.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\npayloadProperties.put(\"administrativeState\", pmSubscriptionInfo.get(\"subscription\").get(\"administrativeState\"))\npayloadProperties.put(\"fileBasedGP\", pmSubscriptionInfo.get(\"subscription\").get(\"fileBasedGP\").toString())\npayloadProperties.put(\"fileLocation\", pmSubscriptionInfo.get(\"subscription\").get(\"fileLocation\"))\npayloadProperties.put(\"measurementGroups\", pmSubscriptionInfo.get(\"subscription\").get(\"measurementGroups\"))\n\nvar payloadEntry = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"CDSRequestPayloadEntry\");\npayloadEntry.put(\"create_DasH_subscription_DasH_properties\", payloadProperties)\n\nvar payload = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewInstance();\npayload.put(\"create_DasH_subscription_DasH_request\", payloadEntry);\n\nexecutor.outFields.put(\"albumID\", executor.inFields.get(\"albumID\"))\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Create Subscription Event to CDS\")\n\ntrue;"
- }
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "inputFields": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "outputFields": {
- "entry": [
- {
- "key": "actionIdentifiers",
- "value": {
- "key": "actionIdentifiers",
- "fieldSchemaKey": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "commonHeader",
- "value": {
- "key": "commonHeader",
- "fieldSchemaKey": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "taskParameters": {
- "entry": []
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskLogic": {
- "key": "TaskLogic",
- "logicFlavour": "JAVASCRIPT",
- "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar payload = executor.inFields.get(\"payload\")\nvar actionName = \"create-subscription\"\n\nvar commonHeader = executor.subject.getOutFieldSchemaHelper(\"commonHeader\").createNewInstance();\ncommonHeader.put(\"originatorId\", \"sdnc\");\ncommonHeader.put(\"requestId\", \"123456-1000\");\ncommonHeader.put(\"subRequestId\", \"sub-123456-1000\");\n\nvar actionIdentifiers = executor.subject.getOutFieldSchemaHelper(\"actionIdentifiers\").createNewInstance();\nactionIdentifiers.put(\"actionName\", actionName);\nactionIdentifiers.put(\"blueprintName\", \"pm_control\");\nactionIdentifiers.put(\"blueprintVersion\", \"1.0.0\");\nactionIdentifiers.put(\"mode\", \"sync\");\n\nexecutor.outFields.put(\"commonHeader\", commonHeader);\nexecutor.outFields.put(\"actionIdentifiers\", actionIdentifiers);\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Activate Subscription Event to CDS\")\n\ntrue;"
- }
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionPayloadTask",
- "version": "0.0.1"
- },
- "inputFields": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "outputFields": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "taskParameters": {
- "entry": []
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskLogic": {
- "key": "TaskLogic",
- "logicFlavour": "JAVASCRIPT",
- "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\n\nvar payloadProperties = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"delete_DasH_subscription_DasH_properties_record\");\n\npayloadProperties.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\npayloadProperties.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\npayloadProperties.put(\"administrativeState\", pmSubscriptionInfo.get(\"subscription\").get(\"administrativeState\"))\npayloadProperties.put(\"fileBasedGP\", pmSubscriptionInfo.get(\"subscription\").get(\"fileBasedGP\").toString())\npayloadProperties.put(\"fileLocation\", pmSubscriptionInfo.get(\"subscription\").get(\"fileLocation\"))\npayloadProperties.put(\"measurementGroups\", pmSubscriptionInfo.get(\"subscription\").get(\"measurementGroups\"))\n\nvar payloadEntry = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"CDSRequestPayloadEntry\");\npayloadEntry.put(\"delete_DasH_subscription_DasH_properties\", payloadProperties)\n\nvar payload = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewInstance();\npayload.put(\"delete_DasH_subscription_DasH_request\", payloadEntry);\n\nexecutor.outFields.put(\"albumID\", executor.inFields.get(\"albumID\"))\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending delete Subscription Event to CDS\")\n\ntrue;"
- }
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionRequestTask",
- "version": "0.0.1"
- },
- "inputFields": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "outputFields": {
- "entry": [
- {
- "key": "actionIdentifiers",
- "value": {
- "key": "actionIdentifiers",
- "fieldSchemaKey": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "commonHeader",
- "value": {
- "key": "commonHeader",
- "fieldSchemaKey": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "taskParameters": {
- "entry": []
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskLogic": {
- "key": "TaskLogic",
- "logicFlavour": "JAVASCRIPT",
- "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar payload = executor.inFields.get(\"payload\")\nvar actionName = \"delete-subscription\"\n\nvar commonHeader = executor.subject.getOutFieldSchemaHelper(\"commonHeader\").createNewInstance();\ncommonHeader.put(\"originatorId\", \"sdnc\");\ncommonHeader.put(\"requestId\", \"123456-1000\");\ncommonHeader.put(\"subRequestId\", \"sub-123456-1000\");\n\nvar actionIdentifiers = executor.subject.getOutFieldSchemaHelper(\"actionIdentifiers\").createNewInstance();\nactionIdentifiers.put(\"actionName\", actionName);\nactionIdentifiers.put(\"blueprintName\", \"pm_control\");\nactionIdentifiers.put(\"blueprintVersion\", \"1.0.0\");\nactionIdentifiers.put(\"mode\", \"sync\");\n\nexecutor.outFields.put(\"commonHeader\", commonHeader);\nexecutor.outFields.put(\"actionIdentifiers\", actionIdentifiers);\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Deactivate Subscription Event to CDS\")\n\ntrue;"
- }
- }
- },
- {
- "key": {
- "name": "ReceivePMSubscriptionTask",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "ReceivePMSubscriptionTask",
- "version": "0.0.1"
- },
- "inputFields": {
- "entry": [
- {
- "key": "changeType",
- "value": {
- "key": "changeType",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "closedLoopControlName",
- "value": {
- "key": "closedLoopControlName",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "nfName",
- "value": {
- "key": "nfName",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "policyName",
- "value": {
- "key": "policyName",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "subscription",
- "value": {
- "key": "subscription",
- "fieldSchemaKey": {
- "name": "SubscriptionType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "outputFields": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- },
- "taskParameters": {
- "entry": []
- },
- "contextAlbumReference": [
- {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- }
- ],
- "taskLogic": {
- "key": "TaskLogic",
- "logicFlavour": "JAVASCRIPT",
- "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\nvar uuidType = java.util.UUID;\n\n\n//albumID will be used to fetch info from our album later\nvar albumID = uuidType.fromString(\"d0050623-18e5-46c9-9298-9a567990cd7c\");\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").getSchemaHelper().createNewInstance();\nvar returnValue = true;;\n\nif(executor.inFields.get(\"policyName\") != null) {\n var changeType = executor.inFields.get(\"changeType\")\n var nfName = executor.inFields.get(\"nfName\")\n var policyName = executor.inFields.get(\"policyName\")\n var closedLoopControlName = executor.inFields.get(\"closedLoopControlName\")\n var subscription = executor.inFields.get(\"subscription\")\n\n pmSubscriptionInfo.put(\"nfName\", executor.inFields.get(\"nfName\"));\n pmSubscriptionInfo.put(\"changeType\", executor.inFields.get(\"changeType\"))\n pmSubscriptionInfo.put(\"policyName\", executor.inFields.get(\"policyName\"))\n pmSubscriptionInfo.put(\"closedLoopControlName\", executor.inFields.get(\"closedLoopControlName\"))\n pmSubscriptionInfo.put(\"subscription\", subscription)\n\n executor.getContextAlbum(\"PMSubscriptionAlbum\").put(albumID.toString(), pmSubscriptionInfo);\n\n executor.outFields.put(\"albumID\", albumID)\n} else {\n executor.message = \"Received invalid event\"\n returnValue = false;\n}\nreturnValue;"
- }
- }
- }
- ]
- }
- },
- "events": {
- "key": {
- "name": "APEXgRPCPolicy_Events",
- "version": "0.0.1"
- },
- "eventMap": {
- "entry": [
- {
- "key": {
- "name": "CDSResponseEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseEvent",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "CDS",
- "target": "APEX",
- "parameter": {
- "entry": [
- {
- "key": "actionIdentifiers",
- "value": {
- "key": "actionIdentifiers",
- "fieldSchemaKey": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "commonHeader",
- "value": {
- "key": "commonHeader",
- "fieldSchemaKey": {
- "name": "CDSResponseCommonHeaderType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSResponsePayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "status",
- "value": {
- "key": "status",
- "fieldSchemaKey": {
- "name": "CDSResponseStatusType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- },
- {
- "key": {
- "name": "CDSResponseStatusEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseStatusEvent",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "APEX",
- "target": "DCAE",
- "parameter": {
- "entry": [
- {
- "key": "status",
- "value": {
- "key": "status",
- "fieldSchemaKey": {
- "name": "SubscriptionStatusType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "APEX",
- "target": "APEX",
- "parameter": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- },
- {
- "key": {
- "name": "CreateSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CreateSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "APEX",
- "target": "APEX",
- "parameter": {
- "entry": [
- {
- "key": "actionIdentifiers",
- "value": {
- "key": "actionIdentifiers",
- "fieldSchemaKey": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "commonHeader",
- "value": {
- "key": "commonHeader",
- "fieldSchemaKey": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionPayloadEvent",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "APEX",
- "target": "APEX",
- "parameter": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- },
- {
- "key": {
- "name": "DeleteSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "DeleteSubscriptionRequestEvent",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "APEX",
- "target": "APEX",
- "parameter": {
- "entry": [
- {
- "key": "actionIdentifiers",
- "value": {
- "key": "actionIdentifiers",
- "fieldSchemaKey": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "commonHeader",
- "value": {
- "key": "commonHeader",
- "fieldSchemaKey": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "payload",
- "value": {
- "key": "payload",
- "fieldSchemaKey": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- },
- {
- "key": {
- "name": "PMSubscriptionOutputEvent",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "PMSubscriptionOutputEvent",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "APEX",
- "target": "APEX",
- "parameter": {
- "entry": [
- {
- "key": "albumID",
- "value": {
- "key": "albumID",
- "fieldSchemaKey": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- },
- {
- "key": {
- "name": "testPolicyB",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "testPolicyB",
- "version": "0.0.1"
- },
- "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
- "source": "DCAE",
- "target": "APEX",
- "parameter": {
- "entry": [
- {
- "key": "changeType",
- "value": {
- "key": "changeType",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "closedLoopControlName",
- "value": {
- "key": "closedLoopControlName",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "nfName",
- "value": {
- "key": "nfName",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "policyName",
- "value": {
- "key": "policyName",
- "fieldSchemaKey": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "optional": false
- }
- },
- {
- "key": "subscription",
- "value": {
- "key": "subscription",
- "fieldSchemaKey": {
- "name": "SubscriptionType",
- "version": "0.0.1"
- },
- "optional": false
- }
- }
- ]
- }
- }
- }
- ]
- }
- },
- "albums": {
- "key": {
- "name": "APEXgRPCPolicy_Albums",
- "version": "0.0.1"
- },
- "albums": {
- "entry": [
- {
- "key": {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "PMSubscriptionAlbum",
- "version": "0.0.1"
- },
- "scope": "policy",
- "isWritable": true,
- "itemSchema": {
- "name": "PMSubscriptionType",
- "version": "0.0.1"
- }
- }
- }
- ]
- }
- },
- "schemas": {
- "key": {
- "name": "APEXgRPCPolicy_Schemas",
- "version": "0.0.1"
- },
- "schemas": {
- "entry": [
- {
- "key": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSActionIdentifiersType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSActionIdentifiers_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"actionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintVersion\",\n \"type\": \"string\"\n },\n {\n \"name\": \"mode\",\n \"type\": \"string\"\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSCreateSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"type\": \"map\",\n \"values\": {\n \"type\": \"record\",\n \"name\": \"CDSRequestPayloadEntry\",\n \"fields\": [\n {\n \"name\": \"create_DasH_subscription_DasH_properties\",\n \"type\": {\n \"name\": \"create_DasH_subscription_DasH_properties_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementGroups_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"measurementGroup\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementTypes_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"managedObjectDNsBasic_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n}"
- }
- },
- {
- "key": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSDeleteSubscriptionPayloadType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"type\": \"map\",\n \"values\": {\n \"type\": \"record\",\n \"name\": \"CDSRequestPayloadEntry\",\n \"fields\": [\n {\n \"name\": \"delete_DasH_subscription_DasH_properties\",\n \"type\": {\n \"name\": \"delete_DasH_subscription_DasH_properties_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementGroups_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"measurementGroup\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementTypes_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"managedObjectDNsBasic_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n}"
- }
- },
- {
- "key": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSRequestCommonHeaderType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSRequestCommonHeader_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "CDSResponseCommonHeaderType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseCommonHeaderType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseCommonHeader_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "CDSResponsePayloadType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponsePayloadType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"name\": \"CDSResponsePayloadEntry\",\n \"type\": \"record\",\n \"namespace\": \"com.acme.avro\",\n \"fields\": [\n {\n \"name\": \"create_DasH_subscription_DasH_response\",\n \"type\": {\n \"name\": \"create_DasH_subscription_DasH_response\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"odl_DasH_response\",\n \"type\": {\n \"name\": \"odl_DasH_response\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"status\",\n \"type\": \"string\"\n }\n ]\n }\n }\n ]\n }\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "CDSResponseStatusType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "CDSResponseStatusType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseStatus_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"code\",\n \"type\": \"int\"\n },\n {\n \"name\": \"eventType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "PMSubscriptionType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "PMSubscriptionType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"name\": \"PMSubscription\",\n \"type\": \"record\",\n \"namespace\": \"org.onap.policy.apex.onap.pmcontrol\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"changeType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"closedLoopControlName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"policyName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscription\",\n \"type\": {\n \"name\": \"subscription\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"int\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Groups_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"Measurement_Group_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Types_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Managed_Object_Dns_Basic_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "SimpleIntType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SimpleIntType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Java",
- "schemaDefinition": "java.lang.Integer"
- }
- },
- {
- "key": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SimpleStringType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Java",
- "schemaDefinition": "java.lang.String"
- }
- },
- {
- "key": {
- "name": "SubscriptionStatusType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SubscriptionStatusType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"ActivateSubscriptionStatus_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"changeType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "SubscriptionType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "SubscriptionType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Avro",
- "schemaDefinition": "{\n \"name\": \"subscription\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"int\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Groups_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"Measurement_Group_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Types_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Managed_Object_Dns_Basic_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n}"
- }
- },
- {
- "key": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "value": {
- "key": {
- "name": "UUIDType",
- "version": "0.0.1"
- },
- "schemaFlavour": "Java",
- "schemaDefinition": "java.util.UUID"
- }
- }
- ]
- }
- }
- }
- }
- },
- "eventOutputParameters": {
- "logOutputter": {
- "carrierTechnologyParameters": {
- "carrierTechnology": "FILE",
- "parameters": {
- "fileName": "outputevents.log"
- }
- },
- "eventProtocolParameters": {
- "eventProtocol": "JSON"
- }
- },
- "CDSRequestProducer": {
- "carrierTechnologyParameters": {
- "carrierTechnology": "GRPC",
- "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters",
- "parameters": {
- "host": "10.2.0.97",
- "port": 30386,
- "username": "ccsdkapps",
- "password": "ccsdkapps",
- "timeout": 60
- }
- },
- "eventProtocolParameters": {
- "eventProtocol": "JSON"
- },
- "eventNameFilter": "(Create|Delete)SubscriptionRequestEvent",
- "requestorMode": true,
- "requestorPeer": "CDSRequestConsumer",
- "requestorTimeout": 500
- },
- "CDSReplyProducer": {
- "carrierTechnologyParameters": {
- "carrierTechnology": "RESTCLIENT",
- "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
- "parameters": {
- "url": "https://message-router:3905/events/POLICY-PDP-PAP"
- }
- },
- "eventProtocolParameters": {
- "eventProtocol": "JSON"
- },
- "eventNameFilter": "CDSResponseStatusEvent"
- }
- },
- "eventInputParameters": {
- "DCAEConsumer": {
- "carrierTechnologyParameters": {
- "carrierTechnology": "RESTCLIENT",
- "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
- "parameters": {
- "url": "https://message-router:3905/events/unauthenticated.DCAE_CL_OUTPUT/cg1/c1?timeout=30000"
- }
- },
- "eventProtocolParameters": {
- "eventProtocol": "JSON",
- "parameters": {
- "nameAlias": "testPolicyB"
- }
- },
- "eventName": "testPolicyB",
- "eventNameFilter": "testPolicyB"
- },
- "CDSRequestConsumer": {
- "carrierTechnologyParameters": {
- "carrierTechnology": "GRPC",
- "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters"
- },
- "eventProtocolParameters": {
- "eventProtocol": "JSON"
- },
- "eventName": "CDSResponseEvent",
- "eventNameFilter": "CDSResponseEvent",
- "requestorMode": true,
- "requestorPeer": "CDSRequestProducer",
- "requestorTimeout": 500
- }
- }
- },
- "name": "operational.apex.stabilityTestDefaultDomain",
- "version": "1.0.0",
- "metadata": {
- "policy-id": "operational.apex.stabilityTestDefaultDomain",
- "policy-version": "1.0.0"
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "topology_template": {
+ "policies": [
+ {
+ "operational.apex.stabilityTestDefaultDomain": {
+ "type": "onap.policies.native.Apex",
+ "type_version": "1.0.0",
+ "properties": {
+ "engineServiceParameters": {
+ "name": "MyApexEngine",
+ "version": "0.0.1",
+ "id": 45,
+ "instanceCount": 4,
+ "deploymentPort": 12561,
+ "engineParameters": {
+ "executorParameters": {
+ "JAVASCRIPT": {
+ "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
+ }
+ },
+ "contextParameters": {
+ "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters",
+ "schemaParameters": {
+ "Avro": {
+ "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters"
}
+ }
}
+ },
+ "policy_type_impl": {
+ "apexPolicyModel": {
+ "key": {
+ "name": "APEXgRPCPolicy",
+ "version": "0.0.1"
+ },
+ "keyInformation": {
+ "key": {
+ "name": "APEXgRPCPolicy_KeyInfo",
+ "version": "0.0.1"
+ },
+ "keyInfoMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "APEXgRPCPolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy",
+ "version": "0.0.1"
+ },
+ "UUID": "b8424cdb-29fb-3566-b77a-f4f847d81cc9",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Albums",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Albums",
+ "version": "0.0.1"
+ },
+ "UUID": "9922906c-ccaa-34f7-95e2-bcc36e77821b",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Albums:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Events",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Events",
+ "version": "0.0.1"
+ },
+ "UUID": "5bf28afd-787c-3138-a3e1-b33ad94a038a",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Events:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_KeyInfo",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_KeyInfo",
+ "version": "0.0.1"
+ },
+ "UUID": "68abaa6f-8d03-3a53-9590-007115817d5c",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_KeyInfo:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Policies",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Policies",
+ "version": "0.0.1"
+ },
+ "UUID": "819d06c3-33c2-3031-aa78-96281aa4270a",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Policies:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Schemas",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Schemas",
+ "version": "0.0.1"
+ },
+ "UUID": "8e67d466-f990-3a39-9fd7-4490cac342dc",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Schemas:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Tasks",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Tasks",
+ "version": "0.0.1"
+ },
+ "UUID": "4668db3d-6fe2-3885-8e47-f30cd0102f0a",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Tasks:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "UUID": "6e5fa19b-14df-37e3-a4ae-8c537e861a82",
+ "description": "Generated description for concept referred to by key \"CDSActionIdentifiersType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "UUID": "8350ac5e-c157-38b9-9614-a0f93a830e60",
+ "description": "Generated description for concept referred to by key \"CDSCreateSubscriptionPayloadType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "UUID": "12658406-9147-3c9d-a38c-5ad5e30b092b",
+ "description": "Generated description for concept referred to by key \"CDSDeleteSubscriptionPayloadType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "UUID": "35590ac0-062c-39f1-8786-b4ff716e30b1",
+ "description": "Generated description for concept referred to by key \"CDSRequestCommonHeaderType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "UUID": "dd7e1805-885a-350b-aaf9-ed541321ae3c",
+ "description": "Generated description for concept referred to by key \"CDSResponseCommonHeaderType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "15161037-9ac8-3223-820f-4e743562a345",
+ "description": "Generated description for concept referred to by key \"CDSResponseEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "UUID": "97dc5f58-25bb-3c20-8d53-fdb70d7ca256",
+ "description": "Generated description for concept referred to by key \"CDSResponsePayloadType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "UUID": "c28b05a8-7436-3ac0-82ca-6d5fc18c9584",
+ "description": "Generated description for concept referred to by key \"CDSResponsePolicy:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "7986e21b-32f7-302e-9554-31f21b673493",
+ "description": "Generated description for concept referred to by key \"CDSResponseStatusEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "UUID": "92b8a2cf-344e-3ce1-8cc0-2b7d3cb695fa",
+ "description": "Generated description for concept referred to by key \"CDSResponseStatusType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "UUID": "d22c78a5-272c-391d-8083-28588280caf9",
+ "description": "Generated description for concept referred to by key \"CDSResponseTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "92162397-1a8e-3a3f-a469-d2af7700af4a",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionPayloadEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "UUID": "bc0c69f0-52ed-38ea-b468-ae4a6fd1730d",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionPayloadTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "7cfcf843-337e-3f41-b755-5043cb0a08fc",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionRequestEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "UUID": "89cb75e9-f06c-30d3-b4ff-698d45f63869",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionRequestTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "994fa441-04ab-33bb-832d-1cd12ab5d074",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionPayloadEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "UUID": "0f519117-5fea-3e4b-941f-8f778100465f",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionPayloadTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "15d618d8-1689-3a05-89a5-05efa9388f65",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionRequestEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "UUID": "acb772fe-d442-39e3-98f9-b1080caf4150",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionRequestTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "UUID": "c2bd6f0d-6854-317a-9be2-97c08338428c",
+ "description": "Generated description for concept referred to by key \"PMSubscriptionAlbum:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "992b7819-9f69-3aa0-bb0f-6e45ea15ce05",
+ "description": "Generated description for concept referred to by key \"PMSubscriptionOutputEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "UUID": "73c1c397-4fc3-357f-93b6-a8ad707fbaae",
+ "description": "Generated description for concept referred to by key \"PMSubscriptionType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "UUID": "568b7345-9de1-36d3-b6a3-9b857e6809a1",
+ "description": "Generated description for concept referred to by key \"ReceiveEventPolicy:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "UUID": "6c1c6c45-26e0-3591-94bf-679d20e283f4",
+ "description": "Generated description for concept referred to by key \"ReceivePMSubscriptionTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "UUID": "153791fd-ae0a-36a7-88a5-309a7936415d",
+ "description": "Generated description for concept referred to by key \"SimpleIntType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "UUID": "8a4957cf-9493-3a76-8c22-a208e23259af",
+ "description": "Generated description for concept referred to by key \"SimpleStringType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "UUID": "597643b1-9db1-31ce-85d0-e1c63c43b30b",
+ "description": "Generated description for concept referred to by key \"SubscriptionStatusType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "UUID": "184547bb-7d64-3cb2-a273-d7185102c5ce",
+ "description": "Generated description for concept referred to by key \"SubscriptionType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "UUID": "6a8cc68e-dfc8-3403-9c6d-071c886b319c",
+ "description": "Generated description for concept referred to by key \"UUIDType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "UUID": "ead590a3-ba2e-3a01-b6e9-9329f5c8fee1",
+ "description": "Generated description for concept referred to by key \"testPolicyB:0.0.1\""
+ }
+ }
+ ]
+ }
+ },
+ "policies": {
+ "key": {
+ "name": "APEXgRPCPolicy_Policies",
+ "version": "0.0.1"
+ },
+ "policyMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "policyKey": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "template": "Freestyle",
+ "state": {
+ "entry": [
+ {
+ "key": "CDSResponseState",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CDSResponseState"
+ },
+ "trigger": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "ResponseOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CDSResponseState",
+ "localName": "ResponseOutput"
+ },
+ "outgoingEvent": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "NULL",
+ "parentKeyVersion": "0.0.0",
+ "parentLocalName": "NULL",
+ "localName": "NULL"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CDSResponseState",
+ "localName": "CDSResponsePolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CDSResponseState",
+ "localName": "ResponseOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "firstState": "CDSResponseState"
+ }
+ },
+ {
+ "key": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "policyKey": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "template": "Freestyle",
+ "state": {
+ "entry": [
+ {
+ "key": "CreateOrDeleteState",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateOrDeleteState"
+ },
+ "trigger": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "CreateSubscriptionPayload",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "CreateSubscriptionPayload"
+ },
+ "outgoingEvent": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateSubscription"
+ }
+ }
+ },
+ {
+ "key": "DeleteSubscriptionPayload",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "DeleteSubscriptionPayload"
+ },
+ "outgoingEvent": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "DeleteSubscription"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "TaskSelectionLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix Foundation.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar changeType = pmSubscriptionInfo.get(\"changeType\").toString()\n\nif (\"CREATE\".equals(changeType)) {\n executor.subject.getTaskKey(\"CreateSubscriptionPayloadTask\").copyTo(executor.selectedTask);\n}\nelse if (\"DELETE\".equals(changeType)) {\n executor.subject.getTaskKey(\"DeleteSubscriptionPayloadTask\").copyTo(executor.selectedTask);\n}\n\ntrue;"
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "CreateSubscriptionPayload"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "DeleteSubscriptionPayload"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": "CreateSubscription",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateSubscription"
+ },
+ "trigger": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "IssueCreateSubscriptionRequestOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateSubscription",
+ "localName": "IssueCreateSubscriptionRequestOutput"
+ },
+ "outgoingEvent": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "NULL",
+ "parentKeyVersion": "0.0.0",
+ "parentLocalName": "NULL",
+ "localName": "NULL"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateSubscription",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateSubscription",
+ "localName": "IssueCreateSubscriptionRequestOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": "DeleteSubscription",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "DeleteSubscription"
+ },
+ "trigger": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "IssueDeleteSubscriptionRequestOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "DeleteSubscription",
+ "localName": "IssueDeleteSubscriptionRequestOutput"
+ },
+ "outgoingEvent": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "NULL",
+ "parentKeyVersion": "0.0.0",
+ "parentLocalName": "NULL",
+ "localName": "NULL"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "DeleteSubscription",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "DeleteSubscription",
+ "localName": "IssueDeleteSubscriptionRequestOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": "ReceiveSubscriptionState",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "ReceiveSubscriptionState"
+ },
+ "trigger": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "ReceivePMSubscriptionOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "ReceiveSubscriptionState",
+ "localName": "ReceivePMSubscriptionOutput"
+ },
+ "outgoingEvent": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateOrDeleteState"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "ReceiveSubscriptionState",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "ReceiveSubscriptionState",
+ "localName": "ReceivePMSubscriptionOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "firstState": "ReceiveSubscriptionState"
+ }
+ }
+ ]
+ }
+ },
+ "tasks": {
+ "key": {
+ "name": "APEXgRPCPolicy_Tasks",
+ "version": "0.0.1"
+ },
+ "taskMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\n\nvar uuidType = java.util.UUID;\n\nvar albumID = uuidType.fromString(\"d0050623-18e5-46c9-9298-9a567990cd7c\");\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(albumID.toString());\n\nvar responseStatus = executor.subject.getOutFieldSchemaHelper(\"status\").createNewInstance();\n\nresponseStatus.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\nresponseStatus.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\nresponseStatus.put(\"changeType\", pmSubscriptionInfo.get(\"changeType\"))\n\nvar response = executor.inFields.get(\"payload\")\n\nif (\"failure\".equals(response.get(\"create_DasH_subscription_DasH_response\").get(\"odl_DasH_response\").get(\"status\"))) {\n responseStatus.put(\"message\", \"failed\")\n} else {\n responseStatus.put(\"message\", \"success\")\n}\n\nexecutor.outFields.put(\"status\", responseStatus)\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\n\nvar payloadProperties = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"create_DasH_subscription_DasH_properties_record\");\n\npayloadProperties.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\npayloadProperties.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\npayloadProperties.put(\"administrativeState\", pmSubscriptionInfo.get(\"subscription\").get(\"administrativeState\"))\npayloadProperties.put(\"fileBasedGP\", pmSubscriptionInfo.get(\"subscription\").get(\"fileBasedGP\").toString())\npayloadProperties.put(\"fileLocation\", pmSubscriptionInfo.get(\"subscription\").get(\"fileLocation\"))\npayloadProperties.put(\"measurementGroups\", pmSubscriptionInfo.get(\"subscription\").get(\"measurementGroups\"))\n\nvar payloadEntry = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"CDSRequestPayloadEntry\");\npayloadEntry.put(\"create_DasH_subscription_DasH_properties\", payloadProperties)\n\nvar payload = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewInstance();\npayload.put(\"create_DasH_subscription_DasH_request\", payloadEntry);\n\nexecutor.outFields.put(\"albumID\", executor.inFields.get(\"albumID\"))\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Create Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar payload = executor.inFields.get(\"payload\")\nvar actionName = \"create-subscription\"\n\nvar commonHeader = executor.subject.getOutFieldSchemaHelper(\"commonHeader\").createNewInstance();\ncommonHeader.put(\"originatorId\", \"sdnc\");\ncommonHeader.put(\"requestId\", \"123456-1000\");\ncommonHeader.put(\"subRequestId\", \"sub-123456-1000\");\n\nvar actionIdentifiers = executor.subject.getOutFieldSchemaHelper(\"actionIdentifiers\").createNewInstance();\nactionIdentifiers.put(\"actionName\", actionName);\nactionIdentifiers.put(\"blueprintName\", \"pm_control\");\nactionIdentifiers.put(\"blueprintVersion\", \"1.0.0\");\nactionIdentifiers.put(\"mode\", \"sync\");\n\nexecutor.outFields.put(\"commonHeader\", commonHeader);\nexecutor.outFields.put(\"actionIdentifiers\", actionIdentifiers);\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Activate Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\n\nvar payloadProperties = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"delete_DasH_subscription_DasH_properties_record\");\n\npayloadProperties.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\npayloadProperties.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\npayloadProperties.put(\"administrativeState\", pmSubscriptionInfo.get(\"subscription\").get(\"administrativeState\"))\npayloadProperties.put(\"fileBasedGP\", pmSubscriptionInfo.get(\"subscription\").get(\"fileBasedGP\").toString())\npayloadProperties.put(\"fileLocation\", pmSubscriptionInfo.get(\"subscription\").get(\"fileLocation\"))\npayloadProperties.put(\"measurementGroups\", pmSubscriptionInfo.get(\"subscription\").get(\"measurementGroups\"))\n\nvar payloadEntry = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"CDSRequestPayloadEntry\");\npayloadEntry.put(\"delete_DasH_subscription_DasH_properties\", payloadProperties)\n\nvar payload = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewInstance();\npayload.put(\"delete_DasH_subscription_DasH_request\", payloadEntry);\n\nexecutor.outFields.put(\"albumID\", executor.inFields.get(\"albumID\"))\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending delete Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar payload = executor.inFields.get(\"payload\")\nvar actionName = \"delete-subscription\"\n\nvar commonHeader = executor.subject.getOutFieldSchemaHelper(\"commonHeader\").createNewInstance();\ncommonHeader.put(\"originatorId\", \"sdnc\");\ncommonHeader.put(\"requestId\", \"123456-1000\");\ncommonHeader.put(\"subRequestId\", \"sub-123456-1000\");\n\nvar actionIdentifiers = executor.subject.getOutFieldSchemaHelper(\"actionIdentifiers\").createNewInstance();\nactionIdentifiers.put(\"actionName\", actionName);\nactionIdentifiers.put(\"blueprintName\", \"pm_control\");\nactionIdentifiers.put(\"blueprintVersion\", \"1.0.0\");\nactionIdentifiers.put(\"mode\", \"sync\");\n\nexecutor.outFields.put(\"commonHeader\", commonHeader);\nexecutor.outFields.put(\"actionIdentifiers\", actionIdentifiers);\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Deactivate Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "changeType",
+ "value": {
+ "key": "changeType",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "closedLoopControlName",
+ "value": {
+ "key": "closedLoopControlName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "nfName",
+ "value": {
+ "key": "nfName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "policyName",
+ "value": {
+ "key": "policyName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "subscription",
+ "value": {
+ "key": "subscription",
+ "fieldSchemaKey": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\nvar uuidType = java.util.UUID;\n\n\n//albumID will be used to fetch info from our album later\nvar albumID = uuidType.fromString(\"d0050623-18e5-46c9-9298-9a567990cd7c\");\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").getSchemaHelper().createNewInstance();\nvar returnValue = true;;\n\nif(executor.inFields.get(\"policyName\") != null) {\n var changeType = executor.inFields.get(\"changeType\")\n var nfName = executor.inFields.get(\"nfName\")\n var policyName = executor.inFields.get(\"policyName\")\n var closedLoopControlName = executor.inFields.get(\"closedLoopControlName\")\n var subscription = executor.inFields.get(\"subscription\")\n\n pmSubscriptionInfo.put(\"nfName\", executor.inFields.get(\"nfName\"));\n pmSubscriptionInfo.put(\"changeType\", executor.inFields.get(\"changeType\"))\n pmSubscriptionInfo.put(\"policyName\", executor.inFields.get(\"policyName\"))\n pmSubscriptionInfo.put(\"closedLoopControlName\", executor.inFields.get(\"closedLoopControlName\"))\n pmSubscriptionInfo.put(\"subscription\", subscription)\n\n executor.getContextAlbum(\"PMSubscriptionAlbum\").put(albumID.toString(), pmSubscriptionInfo);\n\n executor.outFields.put(\"albumID\", albumID)\n} else {\n executor.message = \"Received invalid event\"\n returnValue = false;\n}\nreturnValue;"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "events": {
+ "key": {
+ "name": "APEXgRPCPolicy_Events",
+ "version": "0.0.1"
+ },
+ "eventMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "CDS",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "DCAE",
+ "parameter": {
+ "entry": [
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "DCAE",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "changeType",
+ "value": {
+ "key": "changeType",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "closedLoopControlName",
+ "value": {
+ "key": "closedLoopControlName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "nfName",
+ "value": {
+ "key": "nfName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "policyName",
+ "value": {
+ "key": "policyName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "subscription",
+ "value": {
+ "key": "subscription",
+ "fieldSchemaKey": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ },
+ "albums": {
+ "key": {
+ "name": "APEXgRPCPolicy_Albums",
+ "version": "0.0.1"
+ },
+ "albums": {
+ "entry": [
+ {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "scope": "policy",
+ "isWritable": true,
+ "itemSchema": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "schemas": {
+ "key": {
+ "name": "APEXgRPCPolicy_Schemas",
+ "version": "0.0.1"
+ },
+ "schemas": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSActionIdentifiers_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"actionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintVersion\",\n \"type\": \"string\"\n },\n {\n \"name\": \"mode\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"map\",\n \"values\": {\n \"type\": \"record\",\n \"name\": \"CDSRequestPayloadEntry\",\n \"fields\": [\n {\n \"name\": \"create_DasH_subscription_DasH_properties\",\n \"type\": {\n \"name\": \"create_DasH_subscription_DasH_properties_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementGroups_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"measurementGroup\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementTypes_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"managedObjectDNsBasic_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"map\",\n \"values\": {\n \"type\": \"record\",\n \"name\": \"CDSRequestPayloadEntry\",\n \"fields\": [\n {\n \"name\": \"delete_DasH_subscription_DasH_properties\",\n \"type\": {\n \"name\": \"delete_DasH_subscription_DasH_properties_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementGroups_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"measurementGroup\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementTypes_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"managedObjectDNsBasic_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSRequestCommonHeader_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseCommonHeader_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"name\": \"CDSResponsePayloadEntry\",\n \"type\": \"record\",\n \"namespace\": \"com.acme.avro\",\n \"fields\": [\n {\n \"name\": \"create_DasH_subscription_DasH_response\",\n \"type\": {\n \"name\": \"create_DasH_subscription_DasH_response\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"odl_DasH_response\",\n \"type\": {\n \"name\": \"odl_DasH_response\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"status\",\n \"type\": \"string\"\n }\n ]\n }\n }\n ]\n }\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseStatus_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"code\",\n \"type\": \"int\"\n },\n {\n \"name\": \"eventType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"name\": \"PMSubscription\",\n \"type\": \"record\",\n \"namespace\": \"org.onap.policy.apex.onap.pmcontrol\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"changeType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"closedLoopControlName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"policyName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscription\",\n \"type\": {\n \"name\": \"subscription\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"int\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Groups_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"Measurement_Group_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Types_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Managed_Object_Dns_Basic_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Java",
+ "schemaDefinition": "java.lang.Integer"
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Java",
+ "schemaDefinition": "java.lang.String"
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"ActivateSubscriptionStatus_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"changeType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"name\": \"subscription\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"int\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Groups_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"Measurement_Group_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Types_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Managed_Object_Dns_Basic_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Java",
+ "schemaDefinition": "java.util.UUID"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "eventOutputParameters": {
+ "logOutputter": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "FILE",
+ "parameters": {
+ "fileName": "outputevents.log"
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ }
+ },
+ "CDSRequestProducer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "GRPC",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters",
+ "parameters": {
+ "host": "10.2.0.122",
+ "port": 54322,
+ "username": "ccsdkapps",
+ "password": "ccsdkapps",
+ "timeout": 60
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ },
+ "eventNameFilter": "(Create|Delete)SubscriptionRequestEvent",
+ "requestorMode": true,
+ "requestorPeer": "CDSRequestConsumer",
+ "requestorTimeout": 500
+ },
+ "CDSReplyProducer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "RESTCLIENT",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
+ "parameters": {
+ "url": "http://message-router:3904/events/POLICY-CL-MGT"
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ },
+ "eventNameFilter": "CDSResponseStatusEvent"
+ }
+ },
+ "eventInputParameters": {
+ "DCAEConsumer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "RESTCLIENT",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
+ "parameters": {
+ "url": "http://message-router:3904/events/unauthenticated.DCAE_CL_OUTPUT/cg1/c1?timeout=30000"
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON",
+ "parameters": {
+ "nameAlias": "testPolicyB"
+ }
+ },
+ "eventName": "testPolicyB",
+ "eventNameFilter": "testPolicyB"
+ },
+ "CDSRequestConsumer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "GRPC",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters"
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ },
+ "eventName": "CDSResponseEvent",
+ "eventNameFilter": "CDSResponseEvent",
+ "requestorMode": true,
+ "requestorPeer": "CDSRequestProducer",
+ "requestorTimeout": 500
+ }
}
- ]
- },
- "name": "ToscaServiceTemplateSimple",
- "version": "1.0.0",
- "metadata": {}
+ },
+ "name": "operational.apex.stabilityTestDefaultDomain",
+ "version": "1.0.0",
+ "metadata": {
+ "policy-id": "operational.apex.stabilityTestDefaultDomain",
+ "policy-version": "1.0.0"
+ }
+ }
+ }
+ ]
+ },
+ "name": "ToscaServiceTemplateSimple",
+ "version": "1.0.0",
+ "metadata": {}
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
@@ -2589,7 +2580,7 @@
</hashTree>
<GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Test Controller" enabled="true"/>
<hashTree>
- <SyncTimer guiclass="TestBeanGUI" testclass="SyncTimer" testname="Synchronizing Timer" enabled="true">
+ <SyncTimer guiclass="TestBeanGUI" testclass="SyncTimer" testname="Synchronizing Timer" enabled="false">
<stringProp name="groupSize">${threads}</stringProp>
<stringProp name="timeoutInMs">${threadsTimeOutInMs}</stringProp>
</SyncTimer>
@@ -2660,7 +2651,7 @@
</elementProp>
<stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
<stringProp name="HTTPSampler.port">${DMAAP_PORT}</stringProp>
- <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/events/unauthenticated.DCAE_CL_OUTPUT</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
@@ -2697,9 +2688,9 @@
</elementProp>
<stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
<stringProp name="HTTPSampler.port">${DMAAP_PORT}</stringProp>
- <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
- <stringProp name="HTTPSampler.path">/events/POLICY-PDP-PAP/cg1/c1?timeout=30000</stringProp>
+ <stringProp name="HTTPSampler.path">/events/POLICY-CL-MGT/cg${__threadNum}/c1?timeout=30000</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
@@ -2723,7 +2714,7 @@
<stringProp name="TestPlan.comments">Assert response code coming back from apex-pdp</stringProp>
</ResponseAssertion>
<hashTree/>
- <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Response Message" enabled="false">
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Response Message" enabled="true">
<collectionProp name="Asserion.test_strings">
<stringProp name="1608759622">org.onap.policy.apex.onap.pmcontrol</stringProp>
<stringProp name="1996002556">CREATE</stringProp>
diff --git a/testsuites/performance/performance-benchmark-test/src/main/resources/apexPdpPerformanceTestPlan.jmx b/testsuites/performance/performance-benchmark-test/src/main/resources/apexPdpPerformanceTestPlan.jmx
new file mode 100644
index 0000000..5d6533e
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/main/resources/apexPdpPerformanceTestPlan.jmx
@@ -0,0 +1,2928 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.4.1">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="APEX PDP STABILITY TEST PLAN" enabled="true">
+ <stringProp name="TestPlan.comments"></stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Accept</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="false">
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain"></stringProp>
+ <stringProp name="HTTPSampler.port">23324</stringProp>
+ <stringProp name="HTTPSampler.protocol">http</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path"></stringProp>
+ <stringProp name="HTTPSampler.concurrentPool">6</stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </ConfigTestElement>
+ <hashTree/>
+ <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="threads" elementType="Argument">
+ <stringProp name="Argument.name">threads</stringProp>
+ <stringProp name="Argument.value">${__P(threads,20)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="threadsTimeOutInMs" elementType="Argument">
+ <stringProp name="Argument.name">threadsTimeOutInMs</stringProp>
+ <stringProp name="Argument.value">${__P(threadsTimeOutInMs,5000)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="wait" elementType="Argument">
+ <stringProp name="Argument.name">wait</stringProp>
+ <stringProp name="Argument.value">${__P(wait,10000)}</stringProp>
+ <stringProp name="Argument.desc">Wait time between requests to apex-pdp</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="PAP_PORT" elementType="Argument">
+ <stringProp name="Argument.name">PAP_PORT</stringProp>
+ <stringProp name="Argument.value">${__P(PAP_PORT,30211)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="API_PORT" elementType="Argument">
+ <stringProp name="Argument.name">API_PORT</stringProp>
+ <stringProp name="Argument.value">${__P(API_PORT,30785)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="APEX_PORT" elementType="Argument">
+ <stringProp name="Argument.name">APEX_PORT</stringProp>
+ <stringProp name="Argument.value">${__P(APEX_PORT,30687)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="DMAAP_PORT" elementType="Argument">
+ <stringProp name="Argument.name">DMAAP_PORT</stringProp>
+ <stringProp name="Argument.value">${__P(DMAAP_PORT,31345)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="HOSTNAME" elementType="Argument">
+ <stringProp name="Argument.name">HOSTNAME</stringProp>
+ <stringProp name="Argument.value">${__P(HOSTNAME,10.2.0.120)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="LOG_PATH" elementType="Argument">
+ <stringProp name="Argument.name">LOG_PATH</stringProp>
+ <stringProp name="Argument.value">${__P(LOG_PATH,/home/arkadiusza/apex_stability)}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </Arguments>
+ <hashTree/>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://${HOSTNAME}:${API_PORT}</stringProp>
+ <stringProp name="Authorization.username">healthcheck</stringProp>
+ <stringProp name="Authorization.password">zb!XztG34</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://${HOSTNAME}:${PAP_PORT}</stringProp>
+ <stringProp name="Authorization.username">healthcheck</stringProp>
+ <stringProp name="Authorization.password">zb!XztG34</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://${HOSTNAME}:${APEX_PORT}</stringProp>
+ <stringProp name="Authorization.username">healthcheck</stringProp>
+ <stringProp name="Authorization.password">zb!XztG34</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">1</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </SetupThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Policy" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "topology_template": {
+ "policies": [
+ {
+ "operational.apex.stabilityTestDefaultDomain": {
+ "type": "onap.policies.native.Apex",
+ "type_version": "1.0.0",
+ "properties": {
+ "engineServiceParameters": {
+ "name": "MyApexEngine",
+ "version": "0.0.1",
+ "id": 45,
+ "instanceCount": 4,
+ "deploymentPort": 12561,
+ "engineParameters": {
+ "executorParameters": {
+ "JAVASCRIPT": {
+ "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
+ }
+ },
+ "contextParameters": {
+ "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters",
+ "schemaParameters": {
+ "Avro": {
+ "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters"
+ }
+ }
+ }
+ },
+ "policy_type_impl": {
+ "apexPolicyModel": {
+ "key": {
+ "name": "APEXgRPCPolicy",
+ "version": "0.0.1"
+ },
+ "keyInformation": {
+ "key": {
+ "name": "APEXgRPCPolicy_KeyInfo",
+ "version": "0.0.1"
+ },
+ "keyInfoMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "APEXgRPCPolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy",
+ "version": "0.0.1"
+ },
+ "UUID": "b8424cdb-29fb-3566-b77a-f4f847d81cc9",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Albums",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Albums",
+ "version": "0.0.1"
+ },
+ "UUID": "9922906c-ccaa-34f7-95e2-bcc36e77821b",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Albums:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Events",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Events",
+ "version": "0.0.1"
+ },
+ "UUID": "5bf28afd-787c-3138-a3e1-b33ad94a038a",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Events:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_KeyInfo",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_KeyInfo",
+ "version": "0.0.1"
+ },
+ "UUID": "68abaa6f-8d03-3a53-9590-007115817d5c",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_KeyInfo:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Policies",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Policies",
+ "version": "0.0.1"
+ },
+ "UUID": "819d06c3-33c2-3031-aa78-96281aa4270a",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Policies:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Schemas",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Schemas",
+ "version": "0.0.1"
+ },
+ "UUID": "8e67d466-f990-3a39-9fd7-4490cac342dc",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Schemas:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "APEXgRPCPolicy_Tasks",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "APEXgRPCPolicy_Tasks",
+ "version": "0.0.1"
+ },
+ "UUID": "4668db3d-6fe2-3885-8e47-f30cd0102f0a",
+ "description": "Generated description for concept referred to by key \"APEXgRPCPolicy_Tasks:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "UUID": "6e5fa19b-14df-37e3-a4ae-8c537e861a82",
+ "description": "Generated description for concept referred to by key \"CDSActionIdentifiersType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "UUID": "8350ac5e-c157-38b9-9614-a0f93a830e60",
+ "description": "Generated description for concept referred to by key \"CDSCreateSubscriptionPayloadType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "UUID": "12658406-9147-3c9d-a38c-5ad5e30b092b",
+ "description": "Generated description for concept referred to by key \"CDSDeleteSubscriptionPayloadType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "UUID": "35590ac0-062c-39f1-8786-b4ff716e30b1",
+ "description": "Generated description for concept referred to by key \"CDSRequestCommonHeaderType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "UUID": "dd7e1805-885a-350b-aaf9-ed541321ae3c",
+ "description": "Generated description for concept referred to by key \"CDSResponseCommonHeaderType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "15161037-9ac8-3223-820f-4e743562a345",
+ "description": "Generated description for concept referred to by key \"CDSResponseEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "UUID": "97dc5f58-25bb-3c20-8d53-fdb70d7ca256",
+ "description": "Generated description for concept referred to by key \"CDSResponsePayloadType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "UUID": "c28b05a8-7436-3ac0-82ca-6d5fc18c9584",
+ "description": "Generated description for concept referred to by key \"CDSResponsePolicy:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "7986e21b-32f7-302e-9554-31f21b673493",
+ "description": "Generated description for concept referred to by key \"CDSResponseStatusEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "UUID": "92b8a2cf-344e-3ce1-8cc0-2b7d3cb695fa",
+ "description": "Generated description for concept referred to by key \"CDSResponseStatusType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "UUID": "d22c78a5-272c-391d-8083-28588280caf9",
+ "description": "Generated description for concept referred to by key \"CDSResponseTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "92162397-1a8e-3a3f-a469-d2af7700af4a",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionPayloadEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "UUID": "bc0c69f0-52ed-38ea-b468-ae4a6fd1730d",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionPayloadTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "7cfcf843-337e-3f41-b755-5043cb0a08fc",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionRequestEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "UUID": "89cb75e9-f06c-30d3-b4ff-698d45f63869",
+ "description": "Generated description for concept referred to by key \"CreateSubscriptionRequestTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "994fa441-04ab-33bb-832d-1cd12ab5d074",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionPayloadEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "UUID": "0f519117-5fea-3e4b-941f-8f778100465f",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionPayloadTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "15d618d8-1689-3a05-89a5-05efa9388f65",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionRequestEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "UUID": "acb772fe-d442-39e3-98f9-b1080caf4150",
+ "description": "Generated description for concept referred to by key \"DeleteSubscriptionRequestTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "UUID": "c2bd6f0d-6854-317a-9be2-97c08338428c",
+ "description": "Generated description for concept referred to by key \"PMSubscriptionAlbum:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "UUID": "992b7819-9f69-3aa0-bb0f-6e45ea15ce05",
+ "description": "Generated description for concept referred to by key \"PMSubscriptionOutputEvent:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "UUID": "73c1c397-4fc3-357f-93b6-a8ad707fbaae",
+ "description": "Generated description for concept referred to by key \"PMSubscriptionType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "UUID": "568b7345-9de1-36d3-b6a3-9b857e6809a1",
+ "description": "Generated description for concept referred to by key \"ReceiveEventPolicy:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "UUID": "6c1c6c45-26e0-3591-94bf-679d20e283f4",
+ "description": "Generated description for concept referred to by key \"ReceivePMSubscriptionTask:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "UUID": "153791fd-ae0a-36a7-88a5-309a7936415d",
+ "description": "Generated description for concept referred to by key \"SimpleIntType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "UUID": "8a4957cf-9493-3a76-8c22-a208e23259af",
+ "description": "Generated description for concept referred to by key \"SimpleStringType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "UUID": "597643b1-9db1-31ce-85d0-e1c63c43b30b",
+ "description": "Generated description for concept referred to by key \"SubscriptionStatusType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "UUID": "184547bb-7d64-3cb2-a273-d7185102c5ce",
+ "description": "Generated description for concept referred to by key \"SubscriptionType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "UUID": "6a8cc68e-dfc8-3403-9c6d-071c886b319c",
+ "description": "Generated description for concept referred to by key \"UUIDType:0.0.1\""
+ }
+ },
+ {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "UUID": "ead590a3-ba2e-3a01-b6e9-9329f5c8fee1",
+ "description": "Generated description for concept referred to by key \"testPolicyB:0.0.1\""
+ }
+ }
+ ]
+ }
+ },
+ "policies": {
+ "key": {
+ "name": "APEXgRPCPolicy_Policies",
+ "version": "0.0.1"
+ },
+ "policyMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "policyKey": {
+ "name": "CDSResponsePolicy",
+ "version": "0.0.1"
+ },
+ "template": "Freestyle",
+ "state": {
+ "entry": [
+ {
+ "key": "CDSResponseState",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CDSResponseState"
+ },
+ "trigger": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "ResponseOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CDSResponseState",
+ "localName": "ResponseOutput"
+ },
+ "outgoingEvent": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "NULL",
+ "parentKeyVersion": "0.0.0",
+ "parentLocalName": "NULL",
+ "localName": "NULL"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CDSResponseState",
+ "localName": "CDSResponsePolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "CDSResponsePolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CDSResponseState",
+ "localName": "ResponseOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "firstState": "CDSResponseState"
+ }
+ },
+ {
+ "key": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "value": {
+ "policyKey": {
+ "name": "ReceiveEventPolicy",
+ "version": "0.0.1"
+ },
+ "template": "Freestyle",
+ "state": {
+ "entry": [
+ {
+ "key": "CreateOrDeleteState",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateOrDeleteState"
+ },
+ "trigger": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "CreateSubscriptionPayload",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "CreateSubscriptionPayload"
+ },
+ "outgoingEvent": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateSubscription"
+ }
+ }
+ },
+ {
+ "key": "DeleteSubscriptionPayload",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "DeleteSubscriptionPayload"
+ },
+ "outgoingEvent": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "DeleteSubscription"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "TaskSelectionLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix Foundation.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar changeType = pmSubscriptionInfo.get(\"changeType\").toString()\n\nif (\"CREATE\".equals(changeType)) {\n executor.subject.getTaskKey(\"CreateSubscriptionPayloadTask\").copyTo(executor.selectedTask);\n}\nelse if (\"DELETE\".equals(changeType)) {\n executor.subject.getTaskKey(\"DeleteSubscriptionPayloadTask\").copyTo(executor.selectedTask);\n}\n\ntrue;"
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "CreateSubscriptionPayload"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateOrDeleteState",
+ "localName": "DeleteSubscriptionPayload"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": "CreateSubscription",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateSubscription"
+ },
+ "trigger": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "IssueCreateSubscriptionRequestOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateSubscription",
+ "localName": "IssueCreateSubscriptionRequestOutput"
+ },
+ "outgoingEvent": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "NULL",
+ "parentKeyVersion": "0.0.0",
+ "parentLocalName": "NULL",
+ "localName": "NULL"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateSubscription",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "CreateSubscription",
+ "localName": "IssueCreateSubscriptionRequestOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": "DeleteSubscription",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "DeleteSubscription"
+ },
+ "trigger": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "IssueDeleteSubscriptionRequestOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "DeleteSubscription",
+ "localName": "IssueDeleteSubscriptionRequestOutput"
+ },
+ "outgoingEvent": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "NULL",
+ "parentKeyVersion": "0.0.0",
+ "parentLocalName": "NULL",
+ "localName": "NULL"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "DeleteSubscription",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "DeleteSubscription",
+ "localName": "IssueDeleteSubscriptionRequestOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": "ReceiveSubscriptionState",
+ "value": {
+ "stateKey": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "ReceiveSubscriptionState"
+ },
+ "trigger": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "stateOutputs": {
+ "entry": [
+ {
+ "key": "ReceivePMSubscriptionOutput",
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "ReceiveSubscriptionState",
+ "localName": "ReceivePMSubscriptionOutput"
+ },
+ "outgoingEvent": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "nextState": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "NULL",
+ "localName": "CreateOrDeleteState"
+ }
+ }
+ }
+ ]
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskSelectionLogic": {
+ "key": "NULL",
+ "logicFlavour": "UNDEFINED",
+ "logic": ""
+ },
+ "stateFinalizerLogicMap": {
+ "entry": []
+ },
+ "defaultTask": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "taskReferences": {
+ "entry": [
+ {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "ReceiveSubscriptionState",
+ "localName": "ReceiveEventPolicy"
+ },
+ "outputType": "DIRECT",
+ "output": {
+ "parentKeyName": "ReceiveEventPolicy",
+ "parentKeyVersion": "0.0.1",
+ "parentLocalName": "ReceiveSubscriptionState",
+ "localName": "ReceivePMSubscriptionOutput"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "firstState": "ReceiveSubscriptionState"
+ }
+ }
+ ]
+ }
+ },
+ "tasks": {
+ "key": {
+ "name": "APEXgRPCPolicy_Tasks",
+ "version": "0.0.1"
+ },
+ "taskMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\n\nvar uuidType = java.util.UUID;\n\nvar albumID = uuidType.fromString(\"d0050623-18e5-46c9-9298-9a567990cd7c\");\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(albumID.toString());\n\nvar responseStatus = executor.subject.getOutFieldSchemaHelper(\"status\").createNewInstance();\n\nresponseStatus.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\nresponseStatus.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\nresponseStatus.put(\"changeType\", pmSubscriptionInfo.get(\"changeType\"))\n\nvar response = executor.inFields.get(\"payload\")\n\nif (\"failure\".equals(response.get(\"create_DasH_subscription_DasH_response\").get(\"odl_DasH_response\").get(\"status\"))) {\n responseStatus.put(\"message\", \"failed\")\n} else {\n responseStatus.put(\"message\", \"success\")\n}\n\nexecutor.outFields.put(\"status\", responseStatus)\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\n\nvar payloadProperties = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"create_DasH_subscription_DasH_properties_record\");\n\npayloadProperties.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\npayloadProperties.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\npayloadProperties.put(\"administrativeState\", pmSubscriptionInfo.get(\"subscription\").get(\"administrativeState\"))\npayloadProperties.put(\"fileBasedGP\", pmSubscriptionInfo.get(\"subscription\").get(\"fileBasedGP\").toString())\npayloadProperties.put(\"fileLocation\", pmSubscriptionInfo.get(\"subscription\").get(\"fileLocation\"))\npayloadProperties.put(\"measurementGroups\", pmSubscriptionInfo.get(\"subscription\").get(\"measurementGroups\"))\n\nvar payloadEntry = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"CDSRequestPayloadEntry\");\npayloadEntry.put(\"create_DasH_subscription_DasH_properties\", payloadProperties)\n\nvar payload = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewInstance();\npayload.put(\"create_DasH_subscription_DasH_request\", payloadEntry);\n\nexecutor.outFields.put(\"albumID\", executor.inFields.get(\"albumID\"))\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Create Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar payload = executor.inFields.get(\"payload\")\nvar actionName = \"create-subscription\"\n\nvar commonHeader = executor.subject.getOutFieldSchemaHelper(\"commonHeader\").createNewInstance();\ncommonHeader.put(\"originatorId\", \"sdnc\");\ncommonHeader.put(\"requestId\", \"123456-1000\");\ncommonHeader.put(\"subRequestId\", \"sub-123456-1000\");\n\nvar actionIdentifiers = executor.subject.getOutFieldSchemaHelper(\"actionIdentifiers\").createNewInstance();\nactionIdentifiers.put(\"actionName\", actionName);\nactionIdentifiers.put(\"blueprintName\", \"pm_control\");\nactionIdentifiers.put(\"blueprintVersion\", \"1.0.0\");\nactionIdentifiers.put(\"mode\", \"sync\");\n\nexecutor.outFields.put(\"commonHeader\", commonHeader);\nexecutor.outFields.put(\"actionIdentifiers\", actionIdentifiers);\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Activate Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\n\nvar payloadProperties = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"delete_DasH_subscription_DasH_properties_record\");\n\npayloadProperties.put(\"nfName\", pmSubscriptionInfo.get(\"nfName\"))\npayloadProperties.put(\"subscriptionName\", pmSubscriptionInfo.get(\"subscription\").get(\"subscriptionName\"))\npayloadProperties.put(\"administrativeState\", pmSubscriptionInfo.get(\"subscription\").get(\"administrativeState\"))\npayloadProperties.put(\"fileBasedGP\", pmSubscriptionInfo.get(\"subscription\").get(\"fileBasedGP\").toString())\npayloadProperties.put(\"fileLocation\", pmSubscriptionInfo.get(\"subscription\").get(\"fileLocation\"))\npayloadProperties.put(\"measurementGroups\", pmSubscriptionInfo.get(\"subscription\").get(\"measurementGroups\"))\n\nvar payloadEntry = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewSubInstance(\"CDSRequestPayloadEntry\");\npayloadEntry.put(\"delete_DasH_subscription_DasH_properties\", payloadProperties)\n\nvar payload = executor.subject.getOutFieldSchemaHelper(\"payload\").createNewInstance();\npayload.put(\"delete_DasH_subscription_DasH_request\", payloadEntry);\n\nexecutor.outFields.put(\"albumID\", executor.inFields.get(\"albumID\"))\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending delete Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.info(executor.subject.id);\n\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").get(executor.inFields.get(\"albumID\").toString())\nvar payload = executor.inFields.get(\"payload\")\nvar actionName = \"delete-subscription\"\n\nvar commonHeader = executor.subject.getOutFieldSchemaHelper(\"commonHeader\").createNewInstance();\ncommonHeader.put(\"originatorId\", \"sdnc\");\ncommonHeader.put(\"requestId\", \"123456-1000\");\ncommonHeader.put(\"subRequestId\", \"sub-123456-1000\");\n\nvar actionIdentifiers = executor.subject.getOutFieldSchemaHelper(\"actionIdentifiers\").createNewInstance();\nactionIdentifiers.put(\"actionName\", actionName);\nactionIdentifiers.put(\"blueprintName\", \"pm_control\");\nactionIdentifiers.put(\"blueprintVersion\", \"1.0.0\");\nactionIdentifiers.put(\"mode\", \"sync\");\n\nexecutor.outFields.put(\"commonHeader\", commonHeader);\nexecutor.outFields.put(\"actionIdentifiers\", actionIdentifiers);\nexecutor.outFields.put(\"payload\", payload);\n\nexecutor.logger.info(\"Sending Deactivate Subscription Event to CDS\")\n\ntrue;"
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "ReceivePMSubscriptionTask",
+ "version": "0.0.1"
+ },
+ "inputFields": {
+ "entry": [
+ {
+ "key": "changeType",
+ "value": {
+ "key": "changeType",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "closedLoopControlName",
+ "value": {
+ "key": "closedLoopControlName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "nfName",
+ "value": {
+ "key": "nfName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "policyName",
+ "value": {
+ "key": "policyName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "subscription",
+ "value": {
+ "key": "subscription",
+ "fieldSchemaKey": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "outputFields": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ },
+ "taskParameters": {
+ "entry": []
+ },
+ "contextAlbumReference": [
+ {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ }
+ ],
+ "taskLogic": {
+ "key": "TaskLogic",
+ "logicFlavour": "JAVASCRIPT",
+ "logic": "/*\n * ============LICENSE_START=======================================================\n * Copyright (C) 2020 Nordix. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\nvar uuidType = java.util.UUID;\n\n\n//albumID will be used to fetch info from our album later\nvar albumID = uuidType.fromString(\"d0050623-18e5-46c9-9298-9a567990cd7c\");\nvar pmSubscriptionInfo = executor.getContextAlbum(\"PMSubscriptionAlbum\").getSchemaHelper().createNewInstance();\nvar returnValue = true;;\n\nif(executor.inFields.get(\"policyName\") != null) {\n var changeType = executor.inFields.get(\"changeType\")\n var nfName = executor.inFields.get(\"nfName\")\n var policyName = executor.inFields.get(\"policyName\")\n var closedLoopControlName = executor.inFields.get(\"closedLoopControlName\")\n var subscription = executor.inFields.get(\"subscription\")\n\n pmSubscriptionInfo.put(\"nfName\", executor.inFields.get(\"nfName\"));\n pmSubscriptionInfo.put(\"changeType\", executor.inFields.get(\"changeType\"))\n pmSubscriptionInfo.put(\"policyName\", executor.inFields.get(\"policyName\"))\n pmSubscriptionInfo.put(\"closedLoopControlName\", executor.inFields.get(\"closedLoopControlName\"))\n pmSubscriptionInfo.put(\"subscription\", subscription)\n\n executor.getContextAlbum(\"PMSubscriptionAlbum\").put(albumID.toString(), pmSubscriptionInfo);\n\n executor.outFields.put(\"albumID\", albumID)\n} else {\n executor.message = \"Received invalid event\"\n returnValue = false;\n}\nreturnValue;"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "events": {
+ "key": {
+ "name": "APEXgRPCPolicy_Events",
+ "version": "0.0.1"
+ },
+ "eventMap": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "CDS",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "DCAE",
+ "parameter": {
+ "entry": [
+ {
+ "key": "status",
+ "value": {
+ "key": "status",
+ "fieldSchemaKey": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CreateSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionPayloadEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "DeleteSubscriptionRequestEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "actionIdentifiers",
+ "value": {
+ "key": "actionIdentifiers",
+ "fieldSchemaKey": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "commonHeader",
+ "value": {
+ "key": "commonHeader",
+ "fieldSchemaKey": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "payload",
+ "value": {
+ "key": "payload",
+ "fieldSchemaKey": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionOutputEvent",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "APEX",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "albumID",
+ "value": {
+ "key": "albumID",
+ "fieldSchemaKey": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "testPolicyB",
+ "version": "0.0.1"
+ },
+ "nameSpace": "org.onap.policy.apex.onap.pmcontrol",
+ "source": "DCAE",
+ "target": "APEX",
+ "parameter": {
+ "entry": [
+ {
+ "key": "changeType",
+ "value": {
+ "key": "changeType",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "closedLoopControlName",
+ "value": {
+ "key": "closedLoopControlName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "nfName",
+ "value": {
+ "key": "nfName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "policyName",
+ "value": {
+ "key": "policyName",
+ "fieldSchemaKey": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ },
+ {
+ "key": "subscription",
+ "value": {
+ "key": "subscription",
+ "fieldSchemaKey": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "optional": false
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ },
+ "albums": {
+ "key": {
+ "name": "APEXgRPCPolicy_Albums",
+ "version": "0.0.1"
+ },
+ "albums": {
+ "entry": [
+ {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionAlbum",
+ "version": "0.0.1"
+ },
+ "scope": "policy",
+ "isWritable": true,
+ "itemSchema": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "schemas": {
+ "key": {
+ "name": "APEXgRPCPolicy_Schemas",
+ "version": "0.0.1"
+ },
+ "schemas": {
+ "entry": [
+ {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSActionIdentifiersType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSActionIdentifiers_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"actionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintVersion\",\n \"type\": \"string\"\n },\n {\n \"name\": \"mode\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSCreateSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"map\",\n \"values\": {\n \"type\": \"record\",\n \"name\": \"CDSRequestPayloadEntry\",\n \"fields\": [\n {\n \"name\": \"create_DasH_subscription_DasH_properties\",\n \"type\": {\n \"name\": \"create_DasH_subscription_DasH_properties_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementGroups_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"measurementGroup\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementTypes_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"managedObjectDNsBasic_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSDeleteSubscriptionPayloadType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"map\",\n \"values\": {\n \"type\": \"record\",\n \"name\": \"CDSRequestPayloadEntry\",\n \"fields\": [\n {\n \"name\": \"delete_DasH_subscription_DasH_properties\",\n \"type\": {\n \"name\": \"delete_DasH_subscription_DasH_properties_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementGroups_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"measurementGroup\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"measurementTypes_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"managedObjectDNsBasic_record\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSRequestCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSRequestCommonHeader_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseCommonHeaderType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseCommonHeader_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponsePayloadType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"name\": \"CDSResponsePayloadEntry\",\n \"type\": \"record\",\n \"namespace\": \"com.acme.avro\",\n \"fields\": [\n {\n \"name\": \"create_DasH_subscription_DasH_response\",\n \"type\": {\n \"name\": \"create_DasH_subscription_DasH_response\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"odl_DasH_response\",\n \"type\": {\n \"name\": \"odl_DasH_response\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"status\",\n \"type\": \"string\"\n }\n ]\n }\n }\n ]\n }\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "CDSResponseStatusType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseStatus_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"code\",\n \"type\": \"int\"\n },\n {\n \"name\": \"eventType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "PMSubscriptionType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"name\": \"PMSubscription\",\n \"type\": \"record\",\n \"namespace\": \"org.onap.policy.apex.onap.pmcontrol\",\n \"fields\": [\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"changeType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"closedLoopControlName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"policyName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subscription\",\n \"type\": {\n \"name\": \"subscription\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"int\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Groups_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"Measurement_Group_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Types_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Managed_Object_Dns_Basic_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleIntType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Java",
+ "schemaDefinition": "java.lang.Integer"
+ }
+ },
+ {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SimpleStringType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Java",
+ "schemaDefinition": "java.lang.String"
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionStatusType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"ActivateSubscriptionStatus_Type\",\n \"namespace\": \"org.onap.policy.apex.onap.helloworld\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"nfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"changeType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "SubscriptionType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Avro",
+ "schemaDefinition": "{\n \"name\": \"subscription\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"subscriptionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"administrativeState\",\n \"type\": \"string\"\n },\n {\n \"name\": \"fileBasedGP\",\n \"type\": \"int\"\n },\n {\n \"name\": \"fileLocation\",\n \"type\": \"string\"\n },\n {\n \"name\": \"measurementGroups\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Groups_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementGroup\",\n \"type\": {\n \"name\": \"Measurement_Group_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementTypes\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Measurement_Types_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"measurementType\",\n \"type\": \"string\"\n }\n ]\n }\n }\n },\n {\n \"name\": \"managedObjectDNsBasic\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"name\": \"Managed_Object_Dns_Basic_Type\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"DN\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n ]\n }\n }\n }\n ]\n}"
+ }
+ },
+ {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "value": {
+ "key": {
+ "name": "UUIDType",
+ "version": "0.0.1"
+ },
+ "schemaFlavour": "Java",
+ "schemaDefinition": "java.util.UUID"
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ },
+ "eventOutputParameters": {
+ "logOutputter": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "FILE",
+ "parameters": {
+ "fileName": "outputevents.log"
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ }
+ },
+ "CDSRequestProducer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "GRPC",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters",
+ "parameters": {
+ "host": "10.2.0.122",
+ "port": 54322,
+ "username": "ccsdkapps",
+ "password": "ccsdkapps",
+ "timeout": 60
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ },
+ "eventNameFilter": "(Create|Delete)SubscriptionRequestEvent",
+ "requestorMode": true,
+ "requestorPeer": "CDSRequestConsumer",
+ "requestorTimeout": 500
+ },
+ "CDSReplyProducer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "RESTCLIENT",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
+ "parameters": {
+ "url": "http://message-router:3904/events/POLICY-CL-MGT"
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ },
+ "eventNameFilter": "CDSResponseStatusEvent"
+ }
+ },
+ "eventInputParameters": {
+ "DCAEConsumer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "RESTCLIENT",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
+ "parameters": {
+ "url": "http://message-router:3904/events/unauthenticated.DCAE_CL_OUTPUT/cg1/c1?timeout=30000"
+ }
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON",
+ "parameters": {
+ "nameAlias": "testPolicyB"
+ }
+ },
+ "eventName": "testPolicyB",
+ "eventNameFilter": "testPolicyB"
+ },
+ "CDSRequestConsumer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "GRPC",
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters"
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "JSON"
+ },
+ "eventName": "CDSResponseEvent",
+ "eventNameFilter": "CDSResponseEvent",
+ "requestorMode": true,
+ "requestorPeer": "CDSRequestProducer",
+ "requestorTimeout": 500
+ }
+ }
+ },
+ "name": "operational.apex.stabilityTestDefaultDomain",
+ "version": "1.0.0",
+ "metadata": {
+ "policy-id": "operational.apex.stabilityTestDefaultDomain",
+ "policy-version": "1.0.0"
+ }
+ }
+ }
+ ]
+ },
+ "name": "ToscaServiceTemplateSimple",
+ "version": "1.0.0",
+ "metadata": {}
+}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
+ <stringProp name="HTTPSampler.port">${API_PORT}</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/policy/api/v1/policies</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="49586">200</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">1</intProp>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Deploy policy" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{
+ "groups": [
+ {
+ "name": "defaultGroup",
+ "deploymentSubgroups": [
+ {
+ "pdpType": "apex",
+ "action": "POST",
+ "policies": [
+ {
+ "name": "operational.apex.stabilityTestDefaultDomain",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
+ <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/policy/pap/v1/pdps/deployments/batch</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="49588">202</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">1</intProp>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <intProp name="LoopController.loops">-1</intProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">${threads}</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">true</boolProp>
+ <stringProp name="ThreadGroup.duration">5400</stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Health Check" enabled="true">
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
+ <stringProp name="HTTPSampler.port">${APEX_PORT}</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/policy/apex-pdp/v1/healthcheck</stringProp>
+ <stringProp name="HTTPSampler.method">GET</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSR223 Assertion" enabled="true">
+ <stringProp name="cacheKey">true</stringProp>
+ <stringProp name="filename"></stringProp>
+ <stringProp name="parameters"></stringProp>
+ <stringProp name="script">import groovy.json.JsonSlurper;
+
+def res = [];
+if (prev.getResponseCode() == '200') {
+ def jsonSlurper = new JsonSlurper();
+ res = jsonSlurper.parseText(prev.getResponseDataAsString());
+
+ assert res instanceof Map;
+ assert res.healthy == true;
+ assert res.message == 'alive';
+}
+</stringProp>
+ <stringProp name="scriptLanguage">groovy</stringProp>
+ </JSR223Assertion>
+ <hashTree/>
+ </hashTree>
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Test Controller" enabled="true"/>
+ <hashTree>
+ <SyncTimer guiclass="TestBeanGUI" testclass="SyncTimer" testname="Synchronizing Timer" enabled="false">
+ <stringProp name="groupSize">${threads}</stringProp>
+ <stringProp name="timeoutInMs">${threadsTimeOutInMs}</stringProp>
+ </SyncTimer>
+ <hashTree/>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Input Event" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{
+ "changeType": "CREATE",
+ "closedLoopControlName": "test",
+ "policyName": "test",
+ "nfName": "pnf300",
+ "subscription": {
+ "subscriptionName": "testPolicyB",
+ "administrativeState": "UNLOCKED",
+ "fileBasedGP": 15,
+ "fileLocation": "/pm/pm.xml",
+ "measurementGroups": [
+ {
+ "measurementGroup": {
+ "measurementTypes": [
+ {
+ "measurementType": "countera"
+ },
+ {
+ "measurementType": "counterb"
+ }
+ ],
+ "managedObjectDNsBasic": [
+ {
+ "DN": "dna"
+ },
+ {
+ "DN": "dnb"
+ }
+ ]
+ }
+ },
+ {
+ "measurementGroup": {
+ "measurementTypes": [
+ {
+ "measurementType": "counterc"
+ },
+ {
+ "measurementType": "counterd"
+ }
+ ],
+ "managedObjectDNsBasic": [
+ {
+ "DN": "dnc"
+ },
+ {
+ "DN": "dnd"
+ }
+ ]
+ }
+ }
+ ]
+ }
+}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
+ <stringProp name="HTTPSampler.port">${DMAAP_PORT}</stringProp>
+ <stringProp name="HTTPSampler.protocol">http</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/events/unauthenticated.DCAE_CL_OUTPUT</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ <stringProp name="TestPlan.comments">Send input event to apex-pdp</stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Response Code" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="49586">200</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">8</intProp>
+ <stringProp name="Scope.variable">Response code</stringProp>
+ <stringProp name="TestPlan.comments">Assert response code coming back from apex-pdp</stringProp>
+ </ResponseAssertion>
+ <hashTree/>
+ <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="WAIT" enabled="true">
+ <stringProp name="ConstantTimer.delay">${wait}</stringProp>
+ </ConstantTimer>
+ <hashTree/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get the ouput event response" enabled="true">
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
+ <stringProp name="HTTPSampler.port">${DMAAP_PORT}</stringProp>
+ <stringProp name="HTTPSampler.protocol">http</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/events/POLICY-CL-MGT/cg${__threadNum}/c1?timeout=30000</stringProp>
+ <stringProp name="HTTPSampler.method">GET</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ <stringProp name="TestPlan.comments">Check output event </stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Response Code" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="49586">200</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">8</intProp>
+ <stringProp name="Scope.variable">Response code</stringProp>
+ <stringProp name="TestPlan.comments">Assert response code coming back from apex-pdp</stringProp>
+ </ResponseAssertion>
+ <hashTree/>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Response Message" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="1608759622">org.onap.policy.apex.onap.pmcontrol</stringProp>
+ <stringProp name="1996002556">CREATE</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">2</intProp>
+ <stringProp name="Scope.variable">Response code</stringProp>
+ <stringProp name="TestPlan.comments">Assert response message coming back from apex-pdp</stringProp>
+ </ResponseAssertion>
+ <hashTree/>
+ <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="WAIT" enabled="false">
+ <stringProp name="ConstantTimer.delay">${wait}</stringProp>
+ </ConstantTimer>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ </hashTree>
+ <PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">1</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </PostThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Un deploy policy" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{
+ "groups": [
+ {
+ "name": "defaultGroup",
+ "deploymentSubgroups": [
+ {
+ "pdpType": "apex",
+ "action": "DELETE",
+ "policies": [
+ {
+ "name": "operational.apex.stabilityTestDefaultDomain",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
+ <stringProp name="HTTPSampler.port">${PAP_PORT}</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/policy/pap/v1/pdps/deployments/batch</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="49588">202</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">1</intProp>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete Policy" enabled="true">
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">${HOSTNAME}</stringProp>
+ <stringProp name="HTTPSampler.port">${API_PORT}</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies/operational.apex.stabilityTestDefaultDomain/versions/1.0.0</stringProp>
+ <stringProp name="HTTPSampler.method">DELETE</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
+ <collectionProp name="Asserion.test_strings">
+ <stringProp name="49586">200</stringProp>
+ </collectionProp>
+ <stringProp name="Assertion.custom_message"></stringProp>
+ <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
+ <boolProp name="Assertion.assume_success">false</boolProp>
+ <intProp name="Assertion.test_type">1</intProp>
+ </ResponseAssertion>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">/home/adityap/apex_stability/Stability.log</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">/mnt/c/Users/arek/Desktop/s3p_results/performance/6/testresults_1.jtl</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename">/home/adityap/apex_stability/resultTable.log</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>