[camel] branch master updated: Added reusable Azure storage queue client utils for the test infra (#4874)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[camel] branch master updated: Added reusable Azure storage queue client utils for the test infra (#4874)

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

orpiske pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 6b005e4  Added reusable Azure storage queue client utils for the test infra (#4874)
6b005e4 is described below

commit 6b005e4f3645357e1791466de5d8aada7c9e444a
Author: Otavio Rodolfo Piske <[hidden email]>
AuthorDate: Wed Jan 13 10:36:02 2021 +0100

    Added reusable Azure storage queue client utils for the test infra (#4874)
---
 .../camel-test-infra-azure-storage-queue/pom.xml   |  7 +++
 .../queue/clients/AzureStorageClientUtils.java     | 63 ++++++++++++++++++++++
 2 files changed, 70 insertions(+)

diff --git a/test-infra/camel-test-infra-azure-storage-queue/pom.xml b/test-infra/camel-test-infra-azure-storage-queue/pom.xml
index 9a54e1f..c556b42 100644
--- a/test-infra/camel-test-infra-azure-storage-queue/pom.xml
+++ b/test-infra/camel-test-infra-azure-storage-queue/pom.xml
@@ -52,6 +52,13 @@
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
         </dependency>
+
+        <!-- azure sdk -->
+        <dependency>
+            <groupId>com.azure</groupId>
+            <artifactId>azure-storage-queue</artifactId>
+            <version>${azure-storage-queue-java-sdk12-version}</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/test-infra/camel-test-infra-azure-storage-queue/src/test/java/org/apache/camel/test/infra/azure/storage/queue/clients/AzureStorageClientUtils.java b/test-infra/camel-test-infra-azure-storage-queue/src/test/java/org/apache/camel/test/infra/azure/storage/queue/clients/AzureStorageClientUtils.java
new file mode 100644
index 0000000..6a4c74e
--- /dev/null
+++ b/test-infra/camel-test-infra-azure-storage-queue/src/test/java/org/apache/camel/test/infra/azure/storage/queue/clients/AzureStorageClientUtils.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+package org.apache.camel.test.infra.azure.storage.queue.clients;
+
+import com.azure.core.http.policy.HttpLogDetailLevel;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.storage.common.StorageSharedKeyCredential;
+import com.azure.storage.queue.QueueServiceClient;
+import com.azure.storage.queue.QueueServiceClientBuilder;
+import com.azure.storage.queue.QueueServiceVersion;
+import org.apache.camel.test.infra.azure.common.AzureConfigs;
+
+public final class AzureStorageClientUtils {
+
+    private AzureStorageClientUtils() {
+
+    }
+
+    public static QueueServiceClient getClient() {
+        String instanceType = System.getProperty("azure.instance.type");
+
+        String accountName = System.getProperty(AzureConfigs.ACCOUNT_NAME);
+        String accountKey = System.getProperty(AzureConfigs.ACCOUNT_KEY);
+        StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
+
+        String host = System.getProperty(AzureConfigs.HOST);
+        String port = System.getProperty(AzureConfigs.PORT);
+
+        String endpoint;
+
+        if (instanceType == null || instanceType.equals("local-azure-container")) {
+            endpoint = String.format("<a href="http://%s:%s/%s">http://%s:%s/%s", host, port, accountName);
+        } else {
+            if (host == null || host.isEmpty()) {
+                endpoint = String.format("<a href="https://%s.queue.core.windows.net/%s">https://%s.queue.core.windows.net/%s", accountName, accountKey);
+            } else {
+                endpoint = String.format("<a href="http://%s:%s/%s">http://%s:%s/%s", host, port, accountName);
+            }
+        }
+
+        return new QueueServiceClientBuilder()
+                .endpoint(endpoint)
+                .credential(credential)
+                .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS).setPrettyPrintBody(true))
+                .serviceVersion(QueueServiceVersion.V2019_12_12)
+                .buildClient();
+    }
+}