version: "3"
services:
  prh:
    image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:latest
    ports:
      - "8100:8100"
      - "8433:8433"
    environment:
      - LOG_LEVEL
      - PRH_LOG_LEVEL
    container_name: prh
    depends_on:
      - cbs
      - dmaap-mr
      - aai

  ssl_prh:
    image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:latest
    ports:
      - "8200:8100"
      - "8533:8433"
    volumes:
      - ./simulator/certs:/tmp/certs
    environment:
      - LOG_LEVEL
      - PRH_LOG_LEVEL
      - HOSTNAME
      - CONSUL_HOST
      - CONFIG_BINDING_SERVICE
    container_name: ssl_prh
    depends_on:
      - cbs
      - dmaap-mr
      - aai

  dmaap-mr:
    build:
      context: simulator
      dockerfile: DMaaP_simulator
    ports:
      - "2222:2222"
      - "2223:2223"
      - "2224:2224"
    container_name: dmaap_simulator

  aai:
    build:
      context: simulator
      dockerfile: AAI_simulator
    ports:
      - "3333:3333"
      - "3334:3334"
      - "3335:3335"
    container_name: aai_simulator

  consul:
    image: consul:1.0.6
    ports:
      - "8500:8500"
    command: ["agent", "-bootstrap", "-client=0.0.0.0", "-server", "-ui", "-config-dir=/consul/consul.d"]
    volumes:
      - ./consul.d/:/consul/consul.d
    container_name: consul

  consul-cfg:
    image: consul:1.0.6
    restart: on-failure
    command: ["kv", "put", "-http-addr=http://consul:8500", "dcae-prh", '{
                                              "dmaap.dmaapConsumerConfiguration.dmaapUrl":"http://dmaap-mr:2222/events/unauthenticated.VES_PNFREG_OUTPUT",
                                              "dmaap.dmaapConsumerConfiguration.dmaapHostName":"dmaap-mr",
                                              "dmaap.dmaapConsumerConfiguration.dmaapPortNumber":2223,
                                              "dmaap.dmaapConsumerConfiguration.dmaapTopicName": "events/unauthenticated.VES_PNFREG_OUTPUT",
                                              "dmaap.dmaapConsumerConfiguration.dmaapProtocol":"http",
                                              "dmaap.dmaapConsumerConfiguration.dmaapUserName":"admin",
                                              "dmaap.dmaapConsumerConfiguration.dmaapUserPassword":"admin",
                                              "dmaap.dmaapConsumerConfiguration.dmaapContentType": "application/json",
                                              "dmaap.dmaapConsumerConfiguration.consumerId": "c12",
                                              "dmaap.dmaapConsumerConfiguration.consumerGroup": "OpenDCAE-c12",
                                              "dmaap.dmaapConsumerConfiguration.timeoutMs": -1,
                                              "dmaap.dmaapConsumerConfiguration.messageLimit": -1,

                                              "dmaap.dmaapProducerConfiguration.dmaapUrl":"http://dmaap-mr:2222/events/unauthenticated.PNF_READY",
                                              "dmaap.dmaapProducerConfiguration.dmaapHostName":"dmaap-mr",
                                              "dmaap.dmaapProducerConfiguration.dmaapPortNumber":2223,
                                              "dmaap.dmaapProducerConfiguration.dmaapTopicName": "events/unauthenticated.PNF_READY",
                                              "dmaap.dmaapProducerConfiguration.dmaapProtocol":"http",
                                              "dmaap.dmaapProducerConfiguration.dmaapUserName":"admin",
                                              "dmaap.dmaapProducerConfiguration.dmaapUserPassword":"admin",
                                              "dmaap.dmaapProducerConfiguration.dmaapContentType": "application/json",

                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapUrl":"http://dmaap-mr:2222/events/unauthenticated.PNF_UPDATE",
                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapHostName": "dmaap-mr",
                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapPortNumber": 2223,
                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapTopicName": "events/unauthenticated.PNF_UPDATE",
                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapProtocol": "http",
                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapUserName": "admin",
                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapUserPassword": "admin",
                                              "dmaap.dmaapUpdateProducerConfiguration.dmaapContentType": "application/json",

                                              "aai.aaiClientConfiguration.pnfUrl":"https://aai:3333/aai/v12/network/pnfs/pnf",
                                              "aai.aaiClientConfiguration.aaiHost":"aai",
                                              "aai.aaiClientConfiguration.aaiHostPortNumber":3334,
                                              "aai.aaiClientConfiguration.aaiProtocol":"https",
                                              "aai.aaiClientConfiguration.aaiUserName": "DCAE",
                                              "aai.aaiClientConfiguration.aaiUserPassword": "DCAE",
                                              "aai.aaiClientConfiguration.aaiIgnoreSslCertificateErrors": true,
                                              "aai.aaiClientConfiguration.aaiBasePath": "/aai/v12",
                                              "aai.aaiClientConfiguration.aaiPnfPath": "/network/pnfs/pnf",
                                              "aai.aaiClientConfiguration.aaiServiceInstancePath":"/business/customers/customer/${customer}/service-subscriptions/service-subscription/${serviceType}/service-instances/service-instance/${serviceInstanceId}",
                                              "aai.aaiClientConfiguration.aaiHeaders":{
                                                        "X-FromAppId": "prh",
                                                        "X-TransactionId": "9999",
                                                        "Accept": "application/json",
                                                        "Real-Time": "true",
                                                        "Authorization": "Basic QUFJOkFBSQ=="
                                              },

                                              "security.trustStorePath":"change it",
                                              "security.trustStorePasswordPath":"change it",
                                              "security.keyStorePath":"change it",
                                              "security.keyStorePasswordPath":"change it",
                                              "security.enableAaiCertAuth":false,
                                              "security.enableDmaapCertAuth":false,

                                              "streams_publishes":{
                                                "pnf-update":{
                                                  "type": "message_router",
                                                  "dmaap_info":{
                                                    "topic_url":"http://dmaap-mr:2222/events/unauthenticated.PNF_UPDATE"
                                                  }
                                                },
                                                "pnf-ready":{
                                                  "type": "message_router",
                                                  "dmaap_info":{
                                                    "topic_url":"http://dmaap-mr:2222/events/unauthenticated.PNF_READY"
                                                  }
                                                }
                                              },
                                              "streams_subscribes":{
                                                "ves-reg-output":{
                                                  "type": "message_router",
                                                  "dmaap_info":{
                                                    "topic_url":"http://dmaap-mr:2222/events/unauthenticated.VES_PNFREG_OUTPUT"
                                                  }
                                                }
                                              }
                                            }'
    ]
    container_name: consul-cfg
    depends_on:
      - consul

  cbs:
    image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:2.2.4
    ports:
      - "10000:10000"
    environment:
      - CONSUL_HOST
    depends_on:
      - consul-cfg
    container_name: cbs