From 9b723a87afa7081cb4f03e2c5c45f4848486d365 Mon Sep 17 00:00:00 2001 From: rajendrajaiswal Date: Mon, 25 Nov 2019 12:18:51 +0000 Subject: Add Bulk PM "Data Plane" Usecase Testcase Robot Automation Change-Id: If7ec8c953f0ad61c427d6533f235b3cf61b9fffc Issue-ID: INT-1375 Signed-off-by: rajendrajaiswal --- robot/assets/usecases/5gbulkpm/Notification.json | 33 ++++ .../usecases/5gbulkpm/blueprintTemplate.json | 12 ++ robot/assets/usecases/5gbulkpm/k8s-datafile.yaml | 136 ++++++++++++++ robot/assets/usecases/5gbulkpm/k8s-pm-mapper.yaml | 200 +++++++++++++++++++++ robot/assets/usecases/5gbulkpm/k8s-sftp.yaml | 34 ++++ robot/assets/usecases/5gbulkpm/mr_clusters.json | 6 + .../A20181002.0000-1000-0015-1000_5G.xml.gz | Bin 0 -> 959 bytes robot/assets/usecases/5gbulkpm/sub.json | 10 ++ 8 files changed, 431 insertions(+) create mode 100644 robot/assets/usecases/5gbulkpm/Notification.json create mode 100644 robot/assets/usecases/5gbulkpm/blueprintTemplate.json create mode 100644 robot/assets/usecases/5gbulkpm/k8s-datafile.yaml create mode 100644 robot/assets/usecases/5gbulkpm/k8s-pm-mapper.yaml create mode 100644 robot/assets/usecases/5gbulkpm/k8s-sftp.yaml create mode 100644 robot/assets/usecases/5gbulkpm/mr_clusters.json create mode 100644 robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz create mode 100644 robot/assets/usecases/5gbulkpm/sub.json (limited to 'robot/assets') diff --git a/robot/assets/usecases/5gbulkpm/Notification.json b/robot/assets/usecases/5gbulkpm/Notification.json new file mode 100644 index 00000000..db77c10b --- /dev/null +++ b/robot/assets/usecases/5gbulkpm/Notification.json @@ -0,0 +1,33 @@ +{ + "event": { + "commonEventHeader": { + "version": "4.0.1", + "vesEventListenerVersion": "7.0.1", + "domain": "notification", + "eventName": "Noti_RnNode-Ericsson_FileReady", + "eventId": "FileReady_1797490e-10ae-4d48-9ea7-3d7d790b25e1", + "lastEpochMicrosec": 8745745764578, + "priority": "Normal", + "reportingEntityName": "otenb5309", + "sequence": 0, + "sourceName": "oteNB5309", + "startEpochMicrosec": 8745745764578, + "timeZoneOffset": "UTC+05.30" + }, + "notificationFields": { + "changeIdentifier": "PM_MEAS_FILES", + "changeType": "FileReady", + "notificationFieldsVersion": "2.0", + "arrayOfNamedHashMap": [ + { "name": "test.xml.gz", + "hashMap":{ + "location": "sftp://sftp:22/test.xml.gz", + "compression": "gzip", + "fileFormatType": "org.3GPP.32.435#measCollec", + "fileFormatVersion": "V10" + } + } + ] + } +} +} \ No newline at end of file diff --git a/robot/assets/usecases/5gbulkpm/blueprintTemplate.json b/robot/assets/usecases/5gbulkpm/blueprintTemplate.json new file mode 100644 index 00000000..5615d2c3 --- /dev/null +++ b/robot/assets/usecases/5gbulkpm/blueprintTemplate.json @@ -0,0 +1,12 @@ +{ + "asdcResourceId": "", + "asdcServiceId": "", + "asdcServiceURL": "", + "blueprintTemplate": "", + "owner": "robot", + "serviceIds": [], + "serviceLocations": [], + "typeName": "", + "typeVersion": 100, + "vnfTypes": [] +} \ No newline at end of file diff --git a/robot/assets/usecases/5gbulkpm/k8s-datafile.yaml b/robot/assets/usecases/5gbulkpm/k8s-datafile.yaml new file mode 100644 index 00000000..5a0b0bb6 --- /dev/null +++ b/robot/assets/usecases/5gbulkpm/k8s-datafile.yaml @@ -0,0 +1,136 @@ + +#description: Docker application to collect log file from PNF +#blueprint_version: 1.0.0 +--- +tosca_definitions_version: cloudify_dsl_1_3 +description: Docker application to collect log file from PNF +imports: +- http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml +- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R5/k8splugin/1.6.0/k8splugin_types.yaml +- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/dmaap/dmaap.yaml +inputs: + PM_MEAS_FILES_feed0_location: + type: string + default: "loc00" + cert_directory: + type: string + default: "/opt/app/datafile/etc/cert/" + datafile-collector_cpu_limit: + type: string + default: "250m" + datafile-collector_cpu_request: + type: string + default: "250m" + datafile-collector_memory_limit: + type: string + default: "256Mi" + datafile-collector_memory_request: + type: string + default: "256Mi" + envs: + default: {} + external_port: + type: string + default: ":0" + feed0_name: + type: string + default: "bulk_pm_feed" + topic_name: + type: string + default: "unauthenticated.VES_NOTIFICATION_OUTPUT" + consumer_group: + type: string + default: "OpenDcae-c12" + consumer_id: + type: string + default: "C12" + log_directory: + type: string + default: "/var/log/ONAP" + replicas: + type: integer + description: number of instances + default: 1 + tag_version: + type: string + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest" + use_tls: + type: boolean + default: false +node_templates: + datafile-collector: + type: dcae.nodes.ContainerizedServiceComponentUsingDmaap + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + get_input: envs + properties: + application_config: + service_calls: [] + streams_publishes: + PM_MEAS_FILES: + dmaap_info: <> + type: data_router + streams_subscribes: {} + dmaap.ftpesConfig.keyCert: /opt/app/datafile/config/cert.jks + dmaap.ftpesConfig.keyPasswordPath: /opt/app/datafile/config/jks.pass + dmaap.ftpesConfig.trustedCa: /opt/app/datafile/config/trust.jks + dmaap.ftpesConfig.trustedCaPasswordPath: /opt/app/datafile/etc/cert/trust.pass + dmaap.security.enableDmaapCertAuth: false + dmaap.security.keyStorePasswordPath: /opt/app/datafile/etc/cert/key.pass + dmaap.security.keyStorePath: /opt/app/datafile/etc/cert/key.p12 + dmaap.security.trustStorePasswordPath: /opt/app/datafile/etc/cert/trust.pass + dmaap.security.trustStorePath: /opt/app/datafile/etc/cert/trust.jks + streams_subscribes: + dmaap_subscriber: + dmaap_info: + topic_url: { concat: ['https://message-router:3905/events/',{ get_input: topic_name }, '/', { get_input: consumer_group }, "/", { get_input: consumer_id }] } + docker_config: + healthcheck: + interval: 15s + timeout: 1s + type: http + endpoint: /heartbeat + ports: + - concat: ["8100", {get_input: external_port}] + - concat: ["8433", {get_input: external_port}] + image: + get_input: tag_version + service_component_type: datafile-collector + log_info: + log_directory: + get_input: log_directory + replicas: + get_input: replicas + streams_publishes: + - name: feed0 + location: + get_input: PM_MEAS_FILES_feed0_location + type: data_router + tls_info: + cert_directory: + get_input: cert_directory + use_tls: + get_input: use_tls + resource_config: + limits: + cpu: + get_input: datafile-collector_cpu_limit + memory: + get_input: datafile-collector_memory_limit + requests: + cpu: + get_input: datafile-collector_cpu_request + memory: + get_input: datafile-collector_memory_request + relationships: + - type: ccsdk.relationships.publish_files + target: feed0 + feed0: + type: ccsdk.nodes.Feed + properties: + feed_name: + get_input: feed0_name + useExisting: true diff --git a/robot/assets/usecases/5gbulkpm/k8s-pm-mapper.yaml b/robot/assets/usecases/5gbulkpm/k8s-pm-mapper.yaml new file mode 100644 index 00000000..c372618e --- /dev/null +++ b/robot/assets/usecases/5gbulkpm/k8s-pm-mapper.yaml @@ -0,0 +1,200 @@ +# +# ============LICENSE_START======================================================= +# Copyright (C) 2019 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========================================================= +# + +tosca_definitions_version: cloudify_dsl_1_3 + +imports: + - 'http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml' + - 'https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R5/k8splugin/1.6.0/k8splugin_types.yaml' + - 'https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/dmaap/dmaap.yaml' + +inputs: + filter: + type: string + description: PM Mapper filter on measInfo, measInfoId, measType, instanceId + default: "{ \"filters\":[] }" + enable_http: + type: boolean + description: Option to turn on HTTP connections + default: false + tag_version: + type: string + description: Docker image to be used + default: 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:latest' + replicas: + type: integer + description: Number of instances + default: 1 + feed_name: + type: string + default: 'bulk_pm_feed' + topic_name: + type: string + default: 'PERFORMANCE_MEASUREMENTS' + client_role: + type: string + description: Client role to request secure access to topic + default: 'org.onap.dcae.pmPublisher' + client_id: + type: string + description: Client id for given AAF client + default: 'dcae@dcae.onap.org' + client_password: + type: string + description: Password for AAF client provided as client_id + dmaap_dr_username: + type: string + description: DMAAP Data Router user name + default: 'username' + dmaap_dr_password: + type: string + description: DMAAP Data Router password + default: 'password' + dcae_location: + type: string + description: DCAE location for the subscriber, used to set up routing + default: 'san-francisco' + pm_mapper_service_protocol: + type: string + description: PM Mapper protocol + default: 'https' + pm_mapper_service_port: + type: string + description: PM Mapper host port + default: '8443' + dmaap_dr_service_host: + type: string + description: DMAAP Data Router host address + default: 'dmaap-dr-node' + dmaap_dr_service_port: + type: string + description: DMAAP Data Router host port + default: '8443' + dmaap_mr_service_protocol: + type: string + description: DMAAP Message Router protocol + default: 'https' + dmaap_mr_service_host: + type: string + description: DMAAP Message Router host address + default: 'message-router' + dmaap_mr_service_port: + type: string + description: DMAAP Message Router host port + default: '3905' + cpu_limit: + type: string + default: '1000m' + cpu_request: + type: string + default: '1000m' + memory_limit: + type: string + default: '1024Mi' + memory_request: + type: string + default: '1024Mi' + +node_templates: + pm-feed: + type: ccsdk.nodes.Feed + properties: + feed_name: { get_input: feed_name } + useExisting: true + + pm-topic: + type: ccsdk.nodes.Topic + properties: + topic_name: { get_input: topic_name } + + pm-mapper: + type: dcae.nodes.ContainerizedServiceComponentUsingDmaap + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + ports: + - '8443:0' + - '8081:0' + + relationships: + - type: ccsdk.relationships.subscribe_to_files + target: pm-feed + - type: ccsdk.relationships.publish_events + target: pm-topic + + properties: + service_component_type: 'dcae-pm-mapper' + service_component_name_override: 'dcae-pm-mapper' + application_config: + trust_store_path: '/opt/app/pm-mapper/etc/cert/trust.jks.b64' + trust_store_pass_path: '/opt/app/pm-mapper/etc/cert/trust.pass' + key_store_path: '/opt/app/pm-mapper/etc/cert/cert.jks.b64' + key_store_pass_path: '/opt/app/pm-mapper/etc/cert/jks.pass' + pm-mapper-filter: { get_input: filter } + enable_http: { get_input: enable_http } + dmaap_dr_delete_endpoint: { concat: ['https://',{ get_input: dmaap_dr_service_host },':',{ get_input: dmaap_dr_service_port },'/delete'] } + aaf_identity: { get_input: client_id } + aaf_password: { get_input: client_password } + streams_subscribes: + dmaap_subscriber: + type: data_router + dmaap_info: <> + streams_publishes: + dmaap_publisher: + type: message_router + dmaap_info: <> + resource_config: + limits: + cpu: { get_input: cpu_limit } + memory: { get_input: memory_limit } + requests: + cpu: { get_input: cpu_request } + memory: { get_input: memory_request } + docker_config: + healthcheck: + endpoint: /healthcheck + interval: 15s + timeout: 1s + type: https + streams_publishes: + - name: pm-topic + location: { get_input: dcae_location } + client_role: { get_input: client_role } + type: message-router + streams_subscribes: + - name: pm-feed + location: { get_input: dcae_location } + client_role: { get_input: client_role } + username: { get_input: dmaap_dr_username } + password: { get_input: dmaap_dr_password } + scheme: { get_input: pm_mapper_service_protocol } + route: delivery + delivery_url: '' + privileged: true + decompress: true + type: data_router + image: { get_input: tag_version } + replicas: { get_input: replicas } + log_info: + log_directory: '/var/log/ONAP/dcaegen2/services/pm-mapper' + tls_info: + cert_directory: '/opt/app/pm-mapper/etc/cert/' + use_tls: true \ No newline at end of file diff --git a/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml b/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml new file mode 100644 index 00000000..a8fe1839 --- /dev/null +++ b/robot/assets/usecases/5gbulkpm/k8s-sftp.yaml @@ -0,0 +1,34 @@ +tosca_definitions_version: cloudify_dsl_1_3 + +imports: + - 'http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml' + - 'https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R5/k8splugin/1.6.0/k8splugin_types.yaml' + +inputs: + tag_version: + type: string + description: Docker image to be used + default: 'atmoz/sftp' + replicas: + type: integer + description: Number of instances + default: 1 + +node_templates: + sftpserver: + type: dcae.nodes.ContainerizedPlatformComponent + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + SFTP_USERS: bulkpm:bulkpm:::upload + ports: + - '22:32222' + + properties: + name: "sftpserver" + dns_name: "sftpserver" + + image: { get_input: tag_version } + replicas: { get_input: replicas } \ No newline at end of file diff --git a/robot/assets/usecases/5gbulkpm/mr_clusters.json b/robot/assets/usecases/5gbulkpm/mr_clusters.json new file mode 100644 index 00000000..f3b3d51c --- /dev/null +++ b/robot/assets/usecases/5gbulkpm/mr_clusters.json @@ -0,0 +1,6 @@ +{ + "dcaeLocationName": "san-francisco", + "fqdn": "message-router", + "topicProtocol": "http", + "topicPort": "3904" +} \ No newline at end of file diff --git a/robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz b/robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz new file mode 100644 index 00000000..32865fc1 Binary files /dev/null and b/robot/assets/usecases/5gbulkpm/pmfiles/A20181002.0000-1000-0015-1000_5G.xml.gz differ diff --git a/robot/assets/usecases/5gbulkpm/sub.json b/robot/assets/usecases/5gbulkpm/sub.json new file mode 100644 index 00000000..c889bb3d --- /dev/null +++ b/robot/assets/usecases/5gbulkpm/sub.json @@ -0,0 +1,10 @@ +{ + "dcaeLocationName": "san-francisco", + "fqtn": "org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS", + "clientIdentity": "dcae@dcae.onap.org", + "action": [ + "view", + "pub", + "sub" + ] +} \ No newline at end of file -- cgit 1.2.3-korg