Merge "Add blueprint for slice analysis ms"
diff --git a/blueprints/k8s-slice-analysis-ms.yaml b/blueprints/k8s-slice-analysis-ms.yaml
new file mode 100644
index 0000000..1348f15
--- /dev/null
+++ b/blueprints/k8s-slice-analysis-ms.yaml
@@ -0,0 +1,198 @@
+ #
+ #============LICENSE_START=======================================================
+ #Copyright (C) 2020 Wipro Limited.
+ #==============================================================================
+ #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.
+ #============LICENSE_END=========================================================
+
+tosca_definitions_version: cloudify_dsl_1_3
+imports:
+  - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml
+  - plugin:k8splugin?version=3.4.2
+  - plugin:pgaas?version=1.3.0
+inputs:
+  replicas:
+    type: integer
+    description: replica count for deployment
+    default: 1
+  tag_version:
+    type: string
+    description: docker image name and version
+    default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.components.slice-analysis-ms:1.0.0"
+  pgaas_cluster_name:
+    type: string
+    description: pg cluster
+    default: "dcae-pg-primary.onap"
+  database_name:
+    type: string
+    description: database name
+    default: "sliceanalysisms"
+  aaf_username:
+    type: string
+    description: aaf username
+    default:
+  aaf_password:
+    type: string
+    description: aaf password
+    default:
+  dmaap_polling_interval:
+    type: integer
+    description: dmaap polling interval
+    default: 20
+  cbs_polling_interval:
+    type: integer
+    description: cbs polling interval
+    default: 60
+  dmaap_polling_timeout:
+    type: integer
+    description: dmaap polling timeout
+    default: 60
+  namespace:
+    type: string
+    description: namespace
+    default: "onap"
+  dmaap:
+    type: string
+    description: dmaap server
+    default: "message-router"
+  buffer_time:
+    type: integer
+    description: buffer time
+    default: 60
+  cg:
+    type: string
+    description: consumer group
+    default: "sliceanalysisms-cg"
+  cid:
+    type: string
+    description: consumer id
+    default: "sliceanalysisms-cid"
+  config_db:
+    type: string
+    description: config db location
+    default: "http://sdnc.onap:8181"
+  log_path:
+    type: string
+    description: log location in host
+    default: "/dockerdata-nfs/slice-analysis-ms"
+  performance_management_topic_url:
+    type: string
+    description: performance measurement topic url
+    default: "https://message-router.onap.svc.cluster.local:3905/events/org.onap.dmaap.mr.PERFORMANCE_MEASUREMENTS"
+  intelligent_slicing_topic_url:
+    type: string
+    description: aai event topic url
+    default: "https://message-router.onap.svc.cluster.local:3905/events/unauthenticated.ML_RESPONSE_TOPIC"
+  dcae_cl_response_topic_url:
+    type: string
+    description: dcae control loop response topic url
+    default: "https://message-router.onap.svc.cluster.local:3905/events/DCAE_CL_RSP"
+  dcae_cl_topic_url:
+    type: string
+    description: dcae control loop topic url
+    default: "https://message-router.onap.svc.cluster.local:3905/events/unauthenticated.DCAE_CL_OUTPUT"
+  samples:
+    type: integer
+    description: number of samples to be considered for processing
+    default: 3
+  minimumPercentageChange:
+    type: integer
+    description: minimum change above which control loop should be triggered
+    default: 5
+  initialDelaySeconds:
+    type: integer
+    description: delay for the consumer thread
+    default: 120000
+
+node_templates:
+  pgaasvm:
+    type: dcae.nodes.pgaas.database
+    properties:
+      writerfqdn: { get_input: pgaas_cluster_name }
+      name: { get_input: database_name }
+      use_existing: false
+
+  sliceanalysisms:
+    type: dcae.nodes.ContainerizedServiceComponent
+    interfaces:
+      cloudify.interfaces.lifecycle:
+        start:
+          inputs:
+            envs:
+              STANDALONE: "false"
+            ports:
+              - "8080:0"
+            volumes:
+              - host:
+                  path: { get_input: log_path }
+                container:
+                  bind: /home/sliceanalysisms/logs
+                  mode: rw
+    properties:
+      image:
+        get_input: tag_version
+      service_component_type: 'dcae-slice-analysis-ms'
+      service_id: 'sliceanalysisms'
+      always_pull_image: true
+      replicas: {get_input: replicas}
+      docker_config:
+        healthcheck:
+          endpoint: /healthcheck
+          interval: 15s
+          timeout: 1s
+          type: http
+      application_config:
+        streams_subscribes:
+          performance_management_topic:
+            aaf_username: { get_input: aaf_username }
+            aaf_password: { get_input: aaf_password }
+            dmaap_info:
+              topic_url: { get_input: performance_management_topic_url }
+            type: message-router
+          intelligent_slicing_topic:
+            aaf_username: { get_input: aaf_username }
+            aaf_password: { get_input: aaf_password }
+            dmaap_info:
+              topic_url: { get_input: intelligent_slicing_topic_url }
+            type: message-router
+          dcae_cl_response_topic:
+            aaf_username: { get_input: aaf_username }
+            aaf_password: { get_input: aaf_password }
+            dmaap_info:
+              topic_url: { get_input: dcae_cl_response_topic_url }
+            type: message-router
+        streams_publishes:
+          CL_topic:
+            aaf_username: { get_input: aaf_username }
+            aaf_password: { get_input: aaf_password }
+            dmaap_info:
+              topic_url: { get_input: dcae_cl_topic_url }
+            type: message-router
+        postgres.host: { get_attribute: [ pgaasvm, admin, host ] }
+        postgres.port: { get_attribute: [ pgaasvm, admin, port ] }
+        postgres.username: { get_attribute: [ pgaasvm, admin, user ] }
+        postgres.password: { get_attribute: [ pgaasvm, admin, password ] }
+        sliceanalysisms.pollingInterval: { get_input: dmaap_polling_interval}
+        sliceanalysisms.pollingTimeout: { get_input: dmaap_polling_timeout }
+        cbsPollingInterval: { get_input: cbs_polling_interval }
+        sliceanalysisms.dmaap.server:
+          - { get_input: dmaap }
+        sliceanalysisms.cg: { get_input: cg }
+        sliceanalysisms.cid: { get_input: cid }
+        sliceanalysisms.configDb.service: { get_input: config_db }
+        sliceanalysisms.samples: { get_input: samples }
+        sliceanalysisms.minPercentageChange: { get_input: minimumPercentageChange }
+        sliceanalysisms.initialDelaySeconds: { get_input: initialDelaySeconds }
+    relationships:
+      - type: cloudify.relationships.depends_on
+        target: pgaasvm