version: '2'

services:
    kafka-connect-datagen-06:
        image: confluentinc/cp-kafka-connect
        container_name: kafka-connect-datagen-06
        # network_mode: host
        # build:
        #     context: .
        #     dockerfile: Dockefile
        ports:
            - 38083:38083
        volumes:
            - $PWD/label_participant_dparmar.avro:/tmp/label_participant_dparmar.avro
            - $PWD/datagen.config:/tmp/datagen.config
        environment:
            CONNECT_BOOTSTRAP_SERVERS: "SSL://b-1.dev-managed-kafka-neo4.w2oo2u.c7.kafka.us-east-1.amazonaws.com:9094,SSL://b-2.dev-managed-kafka-neo4.w2oo2u.c7.kafka.us-east-1.amazonaws.com:9094,SSL://b-3.dev-managed-kafka-neo4.w2oo2u.c7.kafka.us-east-1.amazonaws.com:9094"
            CONNECT_REST_ADVERTISED_HOST_NAME: 'kafka-connect-datagen-06'
            CONNECT_REST_PORT: 38083
            CONNECT_GROUP_ID: kafka-connect-datagen-group-06-v04
            CONNECT_CLASSPATH: /tmp
            CONNECT_CONFIG_STORAGE_TOPIC: _kafka-connect-datagen-group-06-v04-configs
            CONNECT_OFFSET_STORAGE_TOPIC: _kafka-connect-datagen-group-06-v04-offsets
            CONNECT_STATUS_STORAGE_TOPIC: _kafka-connect-datagen-group-06-v04-status
            CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter
            CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
            CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
            CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
            CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema-registry-datagen:8081'
            CONNECT_PLUGIN_PATH: /usr/share/java,/usr/share/confluent-hub-components
            CONNECT_SECURITY_PROTOCOL: SSL
            CONNECT_SSL_TRUSTSTORE_LOCATION:  /usr/lib/jvm/zulu-8-amd64/jre/lib/security/cacerts
            CONNECT_CONSUMER_SECURITY_PROTOCOL: "SSL"
            CONNECT_CONSUMER_SSL_TRUSTSTORE_LOCATION:  /usr/lib/jvm/zulu-8-amd64/jre/lib/security/cacerts
            CONNECT_CONSUMER_REQUEST_TIMEOUT_MS: "20000"
            CONNECT_CONSUMER_RETRY_BACKOFF_MS: "500"
            CONNECT_PRODUCER_SECURITY_PROTOCOL: "SSL"
            CONNECT_PRODUCER_SSL_TRUSTSTORE_LOCATION:  /usr/lib/jvm/zulu-8-amd64/jre/lib/security/cacerts
            CONNECT_PRODUCER_REQUEST_TIMEOUT_MS: "20000"
            CONNECT_PRODUCER_RETRY_BACKOFF_MS: "500"
            CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=WARN,org.reflections=ERROR"
        command:
            - bash
            - -c
            - |
                echo "Installing connector plugins"
                confluent-hub install --no-prompt confluentinc/kafka-connect-datagen:0.4.0
                #
                echo "Launching Kafka Connect worker"
                if [ ! -d /usr/share/confluent-hub-components/confluentinc-kafka-connect-datagen ]; then echo \"WARNING: Did not find directory for kafka-connect-datagen\"; fi ; /etc/confluent/docker/run &
                #
                echo "Waiting for Kafka Connect to start listening on localhost:38083 ⏳"
                while : ; do
                    curl_status=$$(curl -s -o /dev/null -w %{http_code} http://localhost:38083/connectors)
                    echo -e $$(date) " Kafka Connect listener HTTP state: " $$curl_status " (waiting for 200)"
                    if [ $$curl_status -eq 200 ] ; then
                    break
                    fi
                    sleep 5
                done
                #
                # echo -e "\n--\n+> ********* Generating mock data for testing with Kafka Connect datagen *********"
                # curl -X POST -H "Content-Type: application/json" \
                # --data @/usr/share/confluent-hub-components/confluentinc-kafka-connect-datagen/etc/connector_pageviews.config \
                # http://localhost:38083/connectors
                #
                echo -e "\n--\n+> ********* DELETE Kafka Connect datagen START *********"
                curl -X DELETE http://localhost:38083/connectors/datagen-label-participant
                echo -e "\n--\n+> ********* DELETE Kafka Connect datagen END *********"
                sleep infinity
                # "schema.string": "{\"namespace\":\"ksql\",\"name\":\"label_participant_dparmar\",\"type\":\"record\",\"fields\":[{\"name\":\"subaccountid\",\"type\":{\"type\":\"int\",\"arg.properties\":{\"range\":{\"start\":10000,\"step\":99999}}}},{\"name\":\"vendorid\",\"type\":{\"type\":\"int\",\"arg.properties\":{\"range\":{\"min\":10000,\"max\":99999}}}},{\"name\":\"uuid\",\"type\":{\"type\":\"string\",\"arg.properties\":{\"regex\":\"[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}\"}}},{\"name\":\"name\",\"type\":{\"type\":\"string\",\"arg.properties\":{\"options\":[\"Yessenia Ruf\",\"Alyce Yeatman\",\"Necole Roche\",\"Riley Geil\",\"Aja Terrel\",\"Yong Greenley\",\"Wei Mcelwain\",\"Maire Renard\",\"Ethel Wendel\",\"Lucilla Berra\",\"Katharine Schuett\",\"Mindi Holaway\",\"Shaunna Gardiner\",\"Tennie Shively\",\"Carli Griswold\",\"Lovie Vrieze\",\"Gillian Lam\",\"Elyse Carbaugh\",\"Penney Steinke\",\"Elvira Vanpelt\",\"Kimberley Flavell\",\"Marie Poff\",\"Adam Broadhead\",\"Seymour Capozzoli\",\"Loria Lundstrom\",\"Mable Riffe\",\"Felipe Legg\",\"Abe Godbey\",\"Lawana Atchinson\",\"Aleta Appleton\",\"Olivia Bussey\",\"Alvin Sears\",\"China Allmond\",\"Pierre Linwood\",\"Nancey Judkins\",\"Lela Lafond\",\"Stanley Harrel\",\"Macy Blanche\",\"Alvina Loggins\",\"Lynda Tack\",\"Christiane Coomes\",\"Dwayne Knupp\",\"Yanira Gobin\",\"Doris Vanderhoof\",\"Su Caplan\",\"Marcelina Carver\",\"Anjanette Lockett\",\"Larry Clairmont\",\"Willow Curatolo\",\"Gustavo Wheatley\"]}}}]}",

    schema-registry-datagen:
        image: confluentinc/cp-schema-registry
        container_name: schema-registry-datagen
        ports:
          - "8081:8081"
        environment:
          SCHEMA_REGISTRY_HOST_NAME: schema-registry-datagen
          SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: SSL://b-1.dev-managed-kafka-neo4.w2oo2u.c7.kafka.us-east-1.amazonaws.com:9094,SSL//b-2.dev-managed-kafka-neo4.w2oo2u.c7.kafka.us-east-1.amazonaws.com:9094,SSL://b-3.dev-managed-kafka-neo4.w2oo2u.c7.kafka.us-east-1.amazonaws.com:9094
          SCHEMA_REGISTRY_KAFKASTORE_SECURITY_PROTOCOL: SSL
          SCHEMA_REGISTRY_KAFKASTORE_TRUSTSTORE_LOCATION:  /usr/lib/jvm/zulu-8-amd64/jre/lib/security/cacerts
