Merge "Add blueprint for des ms"
diff --git a/blueprints/k8s-datalake-admin-ui.yaml b/blueprints/k8s-datalake-admin-ui.yaml
index 1428de8..7c663ca 100644
--- a/blueprints/k8s-datalake-admin-ui.yaml
+++ b/blueprints/k8s-datalake-admin-ui.yaml
@@ -26,7 +26,7 @@
   image_name:
     description: datalake feeder image URL.
     type: string
-    default: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.datalakeadminui:1.0.2
+    default: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.datalakeadminui:1.1.0
   container_port:
     type: string
     description: exposed container port
diff --git a/blueprints/k8s-datalake-feeder.yaml b/blueprints/k8s-datalake-feeder.yaml
index bd67c79..b88892e 100644
--- a/blueprints/k8s-datalake-feeder.yaml
+++ b/blueprints/k8s-datalake-feeder.yaml
@@ -42,7 +42,7 @@
   image_name:
     description: datalake feeder image URL.
     type: string
-    default: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.datalakefeeder:1.0.2
+    default: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.datalakefeeder:1.1.0
   dl_hostname:
     type: string
     description: dl default dl_hostname
diff --git a/blueprints/k8s-heartbeat.yaml b/blueprints/k8s-heartbeat.yaml
index e349df0..2fdee83 100644
--- a/blueprints/k8s-heartbeat.yaml
+++ b/blueprints/k8s-heartbeat.yaml
@@ -1,6 +1,7 @@
 # ============LICENSE_START====================================================
 # =============================================================================
 # Copyright (C) 2019-2020 AT&T
+# 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.
@@ -65,21 +66,13 @@
   namespace:
     type: string
     default: 'onap'
+  pgaas_cluster_name:
+    type: string
+    description: pg cluster
+    default: "dcae-pg-primary.onap"
   pg_dbName:
     type: string
-    default: 'postgres'
-  pg_ipAddress:
-    type: string
-    default: 'hbpostgres-write'
-  pg_passwd:
-    type: string
-    default: 'postgres'
-  pg_portNum:
-    type: string
-    default: '5432'
-  pg_userName:
-    type: string
-    default: 'postgres'
+    default: 'heartbeat'
   ves_heartbeat_publish_url:
     type: string
     default: 'http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT'
@@ -87,28 +80,13 @@
     type: string
     default: 'http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_CL_OUTPUT'
 node_templates:
-  hbpostgres:
-    type: dcae.nodes.ContainerizedApplication
+  hbpgaas:
+    type: dcae.nodes.pgaas.database
     properties:
-        name:
-            "hbpostgres-write"
-        image:
-            "postgres:9.5.2"
-    interfaces:
-      cloudify.interfaces.lifecycle:
-        start:
-          inputs:
-            envs:
-              PGDATA:
-                "/var/lib/postgresql/data/hbpostgres"
-              POSTGRES_PASSWORD:
-                { get_input: pg_passwd }
-              POSTGRES_USER:
-                { get_input: pg_userName }
-              SERVICE_NAME:
-                "hbpostgres-write"
-            ports:
-              - "5432:0"
+      writerfqdn: { get_input: pgaas_cluster_name }
+      name: { get_input: pg_dbName}
+      use_existing: false
+
   heartbeat:
     interfaces:
       cloudify.interfaces.lifecycle:
@@ -122,12 +100,13 @@
               groupID:
                 get_input: groupID
               pg_ipAddress:
-                get_input: pg_ipAddress
+                { get_attribute: [ hbpgaas, admin, host ] }
               pg_passwd:
-                get_input: pg_passwd
-              pg_portNum: "5432"
+                { get_attribute: [ hbpgaas, admin, password ] }
+              pg_portNum:
+                { get_attribute: [ hbpgaas, admin, port ] }
               pg_userName:
-                get_input: pg_userName
+                { get_attribute: [ hbpgaas, admin, user ] }
               pg_dbName:
                 get_input: pg_dbName
             ports:
@@ -144,13 +123,13 @@
         groupID:
           get_input: groupID
         pg_ipAddress:
-          get_input: pg_ipAddress
+          { get_attribute: [ hbpgaas, admin, host ] }
         pg_passwd:
-          get_input: pg_passwd
+           { get_attribute: [ hbpgaas, admin, password ] }
         pg_portNum:
-          get_input: pg_portNum
+           { get_attribute: [ hbpgaas, admin, port ] }
         pg_userName:
-          get_input: pg_userName
+           { get_attribute: [ hbpgaas, admin, user ] }
         pg_dbName:
           get_input: pg_dbName
         heartbeat_config: '{"vnfs": [{"eventName": "Heartbeat_vDNS","heartbeatcountmissed": 3,"heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1",     "policyVersion": "1.0.0.5",     "policyName":"vFireWall","policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName","target_type": "VNF",        "target": "genVnfName", "version": "1.0"}, {"eventName": "Heartbeat_vFW","heartbeatcountmissed": 3,     "heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1","policyVersion": "1.0.0.5","policyName": "vFireWall","policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName",    "target_type":"VNF",    "target": "genVnfName",    "version": "1.0"}, {"eventName": "Heartbeat_xx","heartbeatcountmissed": 3,      "heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1","policyVersion": "1.0.0.5","policyName": "vFireWall",      "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName","target_type": "VNF","target": "genVnfName","version": "1.0"}]}'
@@ -181,6 +160,5 @@
     type: dcae.nodes.ContainerizedServiceComponent
     relationships:
     - type: cloudify.relationships.depends_on
-      target: hbpostgres
-
+      target: hbpgaas
 
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
diff --git a/blueprints/k8s-ves.yaml b/blueprints/k8s-ves.yaml
index b956d0f..7a6cd48 100644
--- a/blueprints/k8s-ves.yaml
+++ b/blueprints/k8s-ves.yaml
@@ -57,7 +57,7 @@
     default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_3GPP_PERFORMANCEASSURANCE_OUTPUT"
   tag_version:
     type: string
-    default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.7.5"
+    default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.7.6"
   internal_port:
     type: string
     description: Kubernetes node port on which collector is exposed
@@ -145,7 +145,7 @@
               - concat: [{get_input: internal_port_tls},":",{get_input: external_port_tls}]
     properties:
       application_config:
-        collector.dmaap.streamid: fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurementsForVfScaling=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration|3GPP-FaultSupervision=ves-3gpp-fault-supervision|3GPP-Heartbeat=ves-3gpp-heartbeat|3GPP-Provisioning=ves-3gpp-provisioning|3GPP-PerformanceAssurance=ves-3gpp-performance-assurance
+        collector.dmaap.streamid: fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurement=ves-measurement|measurementsForVfScaling=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration|3GPP-FaultSupervision=ves-3gpp-fault-supervision|3GPP-Heartbeat=ves-3gpp-heartbeat|3GPP-Provisioning=ves-3gpp-provisioning|3GPP-PerformanceAssurance=ves-3gpp-performance-assurance
         collector.inputQueue.maxPending: "8096"
         collector.keystore.file.location: /opt/app/dcae-certificate/cert.jks
         collector.keystore.passwordfile: /opt/app/dcae-certificate/jks.pass
diff --git a/pom.xml b/pom.xml
index 77a3af3..5460f55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
   <groupId>org.onap.dcaegen2.deployments</groupId>
   <artifactId>k8s-bootstrap-container</artifactId>
   <name>dcaegen2-deployments-k8s-bootstrap-container</name>
-  <version>2.1.6-SNAPSHOT</version>
+  <version>2.1.7-SNAPSHOT</version>
   <url>http://maven.apache.org</url>
   <packaging>pom</packaging>
 
diff --git a/version.properties b/version.properties
index 0ababa3..d1ba756 100644
--- a/version.properties
+++ b/version.properties
@@ -1,6 +1,6 @@
 major=2

 minor=1

-patch=6

+patch=7

 base_version=${major}.${minor}.${patch}

 release_version=${base_version}

 snapshot_version=${base_version}-SNAPSHOT