#
# ============LICENSE_START====================================================
# =============================================================================
# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
# =============================================================================
# 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

description: >
  This blueprint deploys/manages the TCA module as a Docker container

imports:
  - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml
  - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.13/k8splugin_types.yaml
#  - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml
  - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/clamppolicyplugin/1.0.0/clamppolicyplugin_types.yaml
inputs:
  aaiEnrichmentHost:
    type: string
    default: "aai.onap.svc.cluster.local"
  aaiEnrichmentPort:
    type: string
    default: "8443"
  enableAAIEnrichment:
    type: string
    default: true
  dmaap_host:
    type: string
    default: message-router.onap
  dmaap_port:
    type: string
    default: "3904"
  enableRedisCaching:
    type: string
    default: false
  redisHosts:
    type: string
    default: dcae-redis.onap.svc.cluster.local:6379
  tag_version:
    type: string
    default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.1"
  consul_host:
    type: string
    default: consul-server.onap
  consul_port:
    type: string
    default: "8500"
  cbs_host:
    type: string
    default: "config-binding-service"
  cbs_port:
    type: string
    default: "10000"
  policy_id:
    type: string
    default: "onap.restart.tca"
  external_port:
    type: string
    description: Kubernetes node port on which CDAPgui is exposed
    default: "32012"
  policy_model_id:
    type: string
    default: "onap.policies.monitoring.cdap.tca.hi.lo.app"
node_templates:
  tca_k8s:
    type: dcae.nodes.ContainerizedServiceComponent
    relationships:
      - target: tca_policy
        type: cloudify.relationships.depends_on
    properties:
      service_component_type: 'dcaegen2-analytics-tca'
      docker_config: {}
      image:
        get_input: tag_version
      log_info:
        log_directory: "/opt/app/TCAnalytics/logs"
      application_config:
        app_config:
          appDescription: DCAE Analytics Threshold Crossing Alert Application
          appName: dcae-tca
          tcaAlertsAbatementTableName: TCAAlertsAbatementTable
          tcaAlertsAbatementTableTTLSeconds: '1728000'
          tcaSubscriberOutputStreamName: TCASubscriberOutputStream
          tcaVESAlertsTableName: TCAVESAlertsTable
          tcaVESAlertsTableTTLSeconds: '1728000'
          tcaVESMessageStatusTableName: TCAVESMessageStatusTable
          tcaVESMessageStatusTableTTLSeconds: '86400'
          thresholdCalculatorFlowletInstances: '2'
        app_preferences:
          aaiEnrichmentHost:
            get_input: aaiEnrichmentHost
          aaiEnrichmentIgnoreSSLCertificateErrors: 'true'
          aaiEnrichmentPortNumber: '8443'
          aaiEnrichmentProtocol: https
          aaiEnrichmentUserName: dcae@dcae.onap.org
          aaiEnrichmentUserPassword: demo123456!
          aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query
          aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf
          enableAAIEnrichment:
            get_input: enableAAIEnrichment
          enableRedisCaching:
            get_input: enableRedisCaching
          redisHosts:
            get_input: redisHosts
          enableAlertCEFFormat: 'false'
          publisherContentType: application/json
          publisherHostName:
            get_input: dmaap_host
          publisherHostPort:
            get_input: dmaap_port
          publisherMaxBatchSize: '1'
          publisherMaxRecoveryQueueSize: '100000'
          publisherPollingInterval: '20000'
          publisherProtocol: http
          publisherTopicName: unauthenticated.DCAE_CL_OUTPUT
          subscriberConsumerGroup: OpenDCAE-clamp
          subscriberConsumerId: c12
          subscriberContentType: application/json
          subscriberHostName:
            get_input: dmaap_host
          subscriberHostPort:
            get_input: dmaap_port
          subscriberMessageLimit: '-1'
          subscriberPollingInterval: '30000'
          subscriberProtocol: http
          subscriberTimeoutMS: '-1'
          subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT
          tca_policy: ''
        service_component_type: dcaegen2-analytics_tca
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          inputs:
            envs:
              DMAAPHOST:
                { get_input: dmaap_host }
              DMAAPPORT:
                { get_input: dmaap_port }
              DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT"
              DMAAPSUBTOPIC: "unauthenticated.VES_MEASUREMENT_OUTPUT"
              AAIHOST:
                { get_input: aaiEnrichmentHost }
              AAIPORT:
                { get_input: aaiEnrichmentPort }
              CONSUL_HOST:
                { get_input: consul_host }
              CONSUL_PORT:
                { get_input: consul_port }
              CBS_HOST:
                { get_input: cbs_host }
              CBS_PORT:
                { get_input: cbs_port }
              CONFIG_BINDING_SERVICE: "config_binding_service"
            ports:
              - concat: ["11011:", { get_input: external_port }]
  tca_policy:
    type: clamp.nodes.policy
    properties:
      policy_id:
        get_input: policy_id
      policy_model_id:
        get_input: policy_model_id
