--- /dev/null
+# ============LICENSE_START=======================================================
+# Copyright (C) 2023 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=========================================================
+
+
+*** Settings ***
+Library ConfluentKafkaLibrary
+Library Collections
+Library OperatingSystem
+Library RequestsLibrary
+
+Suite Setup Starting Test
+
+*** Variables ***
+
+${auth} Basic Y3BzdXNlcjpjcHNyMGNrcyE=
+${basePath} /ncmpInventory/v1/ch
+
+
+*** Test Cases ***
+Create CM Handle
+ Create Session CPS_URL http://${CPS_CORE_HOST}:${CPS_CORE_PORT}
+ ${headers} Create Dictionary Content-Type=application/json Authorization=${auth}
+ ${jsonData}= Get Binary File ${DATADIR_SUBS_NOTIFICATION}${/}createCmHandleRequestBody.json
+ ${response}= POST On Session CPS_URL ${basePath} headers=${headers} data=${jsonData}
+ Should Be Equal As Strings ${response.status_code} 200
+ Sleep 5 wait some time to get updated in the db
+
+Verify Kafka flow for Subscription Creation Notification
+ ${group_id}= Create Consumer
+ Subscribe Topic group_id=${group_id} topics=${RESPONSE_TOPIC}
+ Wait Until Keyword Succeeds 10x 3s All Messages Are Produced and Consumed ${group_id}
+ [Teardown] Basic Teardown ${group_id}
+
+*** Keywords ***
+Starting Test
+ Set Suite Variable ${REQUEST_TOPIC} subscription
+ Set Suite Variable ${RESPONSE_TOPIC} subscription-response
+ ${ncmpOutEventJson}= Get File ${DATADIR_SUBS_NOTIFICATION}${/}cmSubscriptionNcmpOutEventForCsit.json
+ ${ncmpOutEventJson}= Evaluate json.loads("""${ncmpOutEventJson}""") json
+ Set Suite Variable ${ncmpOutEventJsonGlobal} ${ncmpOutEventJson}
+ ${thread}= Start Consumer Threaded topics=test
+ Set Suite Variable ${MAIN_THREAD} ${thread}
+ ${producer_group_id}= Create Producer
+ Set Suite Variable ${PRODUCER_ID} ${producer_group_id}
+ ${ncmpInEventJson}= Get File ${DATADIR_SUBS_NOTIFICATION}${/}cmSubscriptionNcmpInEventForCsit.json encoding=UTF-8
+ Set Suite Variable ${ncmpInEventJsonGlobal} ${ncmpInEventJson}
+ ${headers}= Create Dictionary ce_specversion=1.0 ce_id=some-event-id ce_source=some-resource ce_type=subscriptionCreated ce_correlationid=test-cmhandle1
+ Set Suite Variable ${headersGlobal} ${headers}
+
+All Messages Are Produced and Consumed
+ [Arguments] ${GROUP_ID}
+ Produce group_id=${PRODUCER_ID} topic=${REQUEST_TOPIC} value=${ncmpInEventJsonGlobal} headers=${headersGlobal}
+ Sleep 10sec
+ ${result}= Poll group_id=${GROUP_ID} only_value=False
+ ${headers} Set Variable ${result[0].headers()}
+ ${value} Set Variable ${result[0].value()}
+ ${valueAsDict}= Evaluate json.loads("""${value}""") json
+ ${specVersionHeaderValue} Set Variable ${headers[1][1]}
+ ${sourceHeaderValue} Set Variable ${headers[3][1]}
+ ${typeHeaderValue} Set Variable ${headers[4][1]}
+ ${correlationIdHeaderValue} Set Variable ${headers[6][1]}
+ Dictionaries Should Be Equal ${valueAsDict} ${ncmpOutEventJsonGlobal}
+ Should Be Equal As Strings ${specVersionHeaderValue} 1.0
+ Should Be Equal As Strings ${sourceHeaderValue} NCMP
+ Should Be Equal As Strings ${typeHeaderValue} subscriptionCreatedStatus
+ Should Be Equal As Strings ${correlationIdHeaderValue} SCO-9989752cm-subscription-001
+
+Basic Teardown
+ [Arguments] ${group_id}
+ Unsubscribe ${group_id}
+ Close Consumer ${group_id}
\ No newline at end of file
DB_PASSWORD: ${DB_PASSWORD:-cps}
DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
- KAFKA_BOOTSTRAP_SERVER: kafka:9092
+ KAFKA_BOOTSTRAP_SERVER: kafka:29092
notification.enabled: 'true'
notification.async.executor.time-out-value-in-ms: 2000
NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'
image: confluentinc/cp-kafka:6.2.1
container_name: kafka
ports:
- - "19092:19092"
+ - '9092:9092'
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
- KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,CONNECTIONS_FROM_HOST://localhost:19092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONNECTIONS_FROM_HOST:PLAINTEXT
+ KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,CONNECTIONS_FROM_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
ncmp-dmi-plugin:
SDNC_USERNAME: ${SDNC_USERNAME:-admin}
SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783}
+ DMI_SERVICE_NAME: ${DMI_SERVICE_NAME:-dminame1}
DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
- KAFKA_BOOTSTRAP_SERVER: kafka:9092
+ KAFKA_BOOTSTRAP_SERVER: kafka:29092
notification.data-updated.enabled: 'true'
NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'
restart: unless-stopped
ports:
- ${DMI_DEMO_STUB_PORT:-8784}:8092
environment:
- KAFKA_BOOTSTRAP_SERVER: kafka:9092
+ KAFKA_BOOTSTRAP_SERVER: kafka:29092
NCMP_CONSUMER_GROUP_ID: ncmp-group
NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m
restart: unless-stopped