You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/07/14 14:59:39 UTC

[camel-kamelets] 01/06: ElasticSearch Index Sink: Fixed user/password as optional and fixed the headers settings

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch es-sink-index
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit 321029058cb1e8910d7b53fedb2c88515f1e0bc5
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jul 14 16:53:07 2021 +0200

    ElasticSearch Index Sink: Fixed user/password as optional and fixed the headers settings
---
 elasticsearch-index-sink.kamelet.yaml | 84 ++++++++++++++++++++++-------------
 1 file changed, 53 insertions(+), 31 deletions(-)

diff --git a/elasticsearch-index-sink.kamelet.yaml b/elasticsearch-index-sink.kamelet.yaml
index 2482537..04a793d 100644
--- a/elasticsearch-index-sink.kamelet.yaml
+++ b/elasticsearch-index-sink.kamelet.yaml
@@ -27,12 +27,13 @@ spec:
 
       Input data must have JSON format according to the index used.
 
-      If the *indexId* parameter is set, that value will be used as the document ID on ElasticSearch.
+      - `indexId` / `ce-indexId`: as the index ID for Elasticsearch
 
-      If the *indexId* parameter is not set and the source of the kamelet binding is a Kafka broker, it will take the kafka topic, partition and offset of the
-      element to generate an automatic ID that warrantees that this element is processed only once.
+      If the header won't be set the exchange ID will be used as index.
 
-      If the *indexName* parameter is not set and the source of the kamelet binding is a Kafka broker, it will take the kafka topic as the indexName.
+      - `indexName` / `ce-indexName`: as the index Name for Elasticsearch
+
+      If the header won't be set the exchange ID will be used as index name.
     required:
       - clusterName
       - hostAddresses
@@ -46,6 +47,9 @@ spec:
         title: Password
         description: Password to connect to ElasticSearch.
         type: string
+        format: password
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:password
       enableSSL:
         title: Enable SSL
         description: Do we want to connect using SSL?
@@ -89,30 +93,48 @@ spec:
     from:
       uri: kamelet:source
       steps:
-        - choice:
-            when:
-              - simple: "'{{indexId}}' == 'NONE' && ${header[kafka.TOPIC]} != null"
-                steps:
-                  - set-header:
-                      name: "indexId"
-                      simple: "${header[kafka.TOPIC]}${header[kafka.PARTITION]}${header[kafka.OFFSET]}"
-              - simple: "'{{indexId}}' != 'NONE'"
-                steps:
-                  - set-header:
-                      name: "indexId"
-                      simple: "{{indexId}}"
-        - choice:
-            when:
-              - simple: "'{{indexName}}' == 'NONE'"
-                steps:
-                  - set-property:
-                      name: esIndexName
-                      simple: "${header[kafka.TOPIC]}"
-            otherwise:
-              steps:
-                - set-property:
-                    name: esIndexName
-                    simple: "{{indexName}}"
-        - to-d: "kamelet-reify:elasticsearch-rest:{{clusterName}}?hostAddresses=RAW({{hostAddresses}})&operation=INDEX&indexName=${exchangeProperty.esIndexName}&enableSSL={{enableSSL}}&user={{user}}&password={{password}}"
-        - marshal:
-            json: { }
+      - choice:
+          when:
+          - simple: "${header[indexId]}"
+            steps:
+            - set-header:
+                name: "indexId"
+                simple: "${header[indexId]}"
+          - simple: "${header[ce-indexId]}"
+            steps:
+            - set-header:
+                name: "indexId"
+                simple: "${header[ce-indexId]}"
+          otherwise:
+            steps:
+            - set-header:
+                name: "indexId"
+                simple: "${exchangeId}"
+      - choice:
+          when:
+          - simple: "${header[indexName]}"
+            steps:
+            - set-header:
+                name: "indexName"
+                simple: "${header[indexName]}"
+          - simple: "${header[ce-indexName]}"
+            steps:
+            - set-header:
+                name: "indexName"
+                simple: "${header[ce-indexName]}"
+          otherwise:
+            steps:
+            - set-header:
+                name: "indexName"
+                simple: "${exchangeId}"
+      - to:
+          uri: "kamelet-reify:elasticsearch-rest:{{clusterName}}"
+          parameters:
+            operation: "INDEX"
+            indexName: "{{indexName}}"
+            hostAddresses: "{{hostAddresses}}"
+            enableSSL: "{{enableSSL}}"
+            user: "{{?user}}"
+            password: "{{?password}}"
+      - marshal:
+          json: { }