Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add InfluxDB v2 support #3669

Merged
Merged
Show file tree
Hide file tree
Changes from 81 commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
1d7a20f
update InfluxDBContainer class for v2+
raminqaf Jan 7, 2021
60d8970
update influxdb.md
raminqaf Jan 7, 2021
3aa16a5
add retention time and update influxdb.md
raminqaf Jan 7, 2021
898b4a9
made retentiion units lable package private
raminqaf Jan 7, 2021
3ea5560
add influxDB v1.x code
raminqaf Jan 10, 2021
5ce658b
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Jan 12, 2021
dc56931
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Jan 13, 2021
d70ed4d
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Mar 11, 2021
31ecbe3
bump inflxudb client version up to 2.0.0
raminqaf Mar 28, 2021
41e366a
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Mar 28, 2021
9c3b224
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Apr 9, 2021
0be00c9
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf May 13, 2021
11ed5d4
update influxdb2 client and container class and add review suggestions
raminqaf Aug 5, 2021
b5e5224
Merge remote-tracking branch 'origin/feature/influxdb-v2-test-contain…
raminqaf Aug 5, 2021
1dd2101
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 5, 2021
56887b0
fix influxDB 1 dependency
raminqaf Aug 5, 2021
29c5605
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Aug 5, 2021
79d6dce
replace testCompile with testImplementation in build.gradle file
raminqaf Aug 5, 2021
b4ba6bf
implementation to build.gradle
raminqaf Aug 5, 2021
9bc928e
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
c4a23f3
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
66e507a
update README and add review suggestions
raminqaf Aug 5, 2021
f6db3fe
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Aug 5, 2021
5021425
Update docs/modules/databases/influxdb.md
raminqaf Aug 5, 2021
0f52423
fix build.gradle
raminqaf Aug 5, 2021
d606cb1
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
56b53c1
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Aug 5, 2021
2f8fdbc
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
dfe23b6
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
fd0dec4
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Aug 5, 2021
1b4ad56
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
e67fc5a
add suggestions
raminqaf Aug 5, 2021
77f2bac
resolve conflics
raminqaf Aug 5, 2021
104f88f
remove client code
raminqaf Aug 5, 2021
9526fb3
add getter to properties
raminqaf Aug 5, 2021
b1a84a1
Update modules/influxdb/build.gradle
raminqaf Aug 5, 2021
08af825
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
7d5d03d
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
548713b
add suggestions
raminqaf Aug 5, 2021
53414ca
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
22090c7
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
afa957f
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
2c03dda
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 5, 2021
89118fc
Merge branch 'master' into feature/influxdb-v2-test-container
bsideup Aug 6, 2021
207de33
fix gradle check
raminqaf Aug 6, 2021
5250407
override methods
raminqaf Aug 6, 2021
9d57417
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 13, 2021
da508d0
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Dec 15, 2021
fb86e07
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Jan 12, 2022
31e3ab0
Merge branch 'master' of github.com:testcontainers/testcontainers-jav…
raminqaf Jul 30, 2022
bba98d8
Move InfluxDB code into one class
raminqaf Jul 30, 2022
0d99d8d
Update docs
raminqaf Jul 30, 2022
8f56b21
Update docs/modules/databases/influxdb.md
eddumelendez Aug 4, 2022
cc1fc1a
Add reviews
raminqaf Aug 5, 2022
6df5da2
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Aug 5, 2022
37bfd1f
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 5, 2022
3ff5ec2
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
eddumelendez Aug 5, 2022
0dee636
Fix spotless and move to assertj
eddumelendez Aug 6, 2022
2fdd745
Fix checkstyle and japicmp
eddumelendez Aug 6, 2022
30d5a80
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 8, 2022
e526c77
Fix javadoc
raminqaf Aug 9, 2022
c3f354c
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 9, 2022
576cc04
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 16, 2022
ae27fc3
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 16, 2022
8c8ec4d
Update modules/influxdb/src/main/java/org/testcontainers/containers/I…
raminqaf Aug 16, 2022
335fbbd
Merge branch 'master' of github.com:testcontainers/testcontainers-jav…
raminqaf Aug 16, 2022
88f9847
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Aug 16, 2022
8e1442d
update readme
raminqaf Aug 16, 2022
d99342c
add snippet
raminqaf Aug 17, 2022
b92b63d
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 17, 2022
edfc72c
add reviews
raminqaf Aug 23, 2022
95dada5
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Aug 23, 2022
f03ac43
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Aug 23, 2022
ccb1dac
Merge branch 'master' into feature/influxdb-v2-test-container
raminqaf Sep 9, 2022
4b365b0
Merge branch 'main' into feature/influxdb-v2-test-container
raminqaf Oct 10, 2022
a1d1245
Add reviews
raminqaf Oct 15, 2022
cb0c2c0
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Oct 15, 2022
8ba2714
Merge branch 'main' into feature/influxdb-v2-test-container
raminqaf Oct 15, 2022
8f6f2a5
Fix docs
raminqaf Oct 18, 2022
773328c
Merge branch 'feature/influxdb-v2-test-container' of github.com:ramin…
raminqaf Oct 18, 2022
aa1e2ca
Fix docs
raminqaf Oct 18, 2022
1d817fe
add reviews
raminqaf Oct 20, 2022
adab811
add checkstyle
raminqaf Oct 20, 2022
8a190d0
Merge branch 'main' into feature/influxdb-v2-test-container
raminqaf Oct 20, 2022
627a01c
Polish
eddumelendez Nov 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
117 changes: 93 additions & 24 deletions docs/modules/databases/influxdb.md
@@ -1,40 +1,109 @@
# InfluxDB Module

Testcontainers module for InfluxData [InfluxDB](https://github.com/influxdata/influxdb).
Testcontainers module for InfluxData [InfluxDB](https://www.influxdata.com/products/influxdb/).

## Usage example
## Important note

Running influxDbContainer as a stand-in for InfluxDB in a test:
There are breaking changes in InfluxDB 2.x.
For more information refer to the main [documentation](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/).
You can find more information about the official InfluxDB image on [Docker Hub](https://hub.docker.com/_/influxdb).

```java
public class SomeTest {
## InfluxDB 2.x usage example

@Rule
public InfluxDBContainer influxDbContainer = new InfluxDBContainer();

@Test
public void someTestMethod() {
InfluxDB influxDB = influxDbContainer.getNewInfluxDB();
...
```
Running a `InfluxDBContainer` as a stand-in for InfluxDB in a test:

<!--codeinclude-->
[Create an InfluxDB container](../../../modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerTest.java) inside_block:constructorWithDefaultVariables
<!--/codeinclude-->


The InfluxDB instance will be setup with the following data:<br/>

| Property | Default Value |
|--------------|:-------------:|
| username | test-user |
| password | test-password |
| organization | test-org |
| bucket | test-bucket |
| retention | 0 (infinite) |
| adminToken | - |

For more details about the InfluxDB setup, please visit the official [InfluxDB documentation](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/docker/#influxdb-2x-initialization-credentials).

It is possible to overwrite the default property values. Create a container with InfluxDB admin token:
<!--codeinclude-->
[Create an InfluxDB container with admin token](../../../modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerTest.java) inside_block:constructorWithAdminToken
<!--/codeinclude-->

Or create a container with custom username, password, bucket, organization, and retention time:
<!--codeinclude-->
[Create an InfluxDB container with custom settings](../../../modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerTest.java) inside_block:constructorWithCustomVariables
<!--/codeinclude-->

The following code snippet shows how you can create an InfluxDB Java client:

<!--codeinclude-->
[Create an InfluxDB Java client](../../../modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBTestUtils.java) inside_block:createInfluxDB2Client
<!--/codeinclude-->

!!! hint
You can find the latest documentation about the InfluxDB 2.x Java client [here](https://github.com/influxdata/influxdb-client-java).

## InfluxDB 1.x usage example

Running a `InfluxDBContainer` as a stand-in for InfluxDB in a test with default env variables:

<!--codeinclude-->
[Create an InfluxDB container](../../../modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerV1Test.java) inside_block:constructorWithDefaultVariables
<!--/codeinclude-->

The InfluxDB instance will be setup with the following data:<br/>

| Property | Default Value |
|---------------|:-------------:|
| username | test-user |
| password | test-password |
| authEnabled | true |
| admin | admin |
| adminPassword | password |
| database | - |

It is possible to overwrite the default values.
For instance, creating an InfluxDB container with a custom username, password, and database name:
<!--codeinclude-->
[Create an InfluxDB container with custom settings](../../../modules/influxdb/src/test/java/org/testcontainers/containers/InfluxDBContainerV1Test.java) inside_block:constructorWithUserPassword
<!--/codeinclude-->

In the following example you will find a snippet to create an InfluxDB client using the official Java client:

<!--codeinclude-->
[Create an InfluxDB Java client](../../../modules/influxdb/src/main/java/org/testcontainers/containers/InfluxDBContainer.java) inside_block:createInfluxDBClient
<!--/codeinclude-->

!!! hint
You can find the latest documentation about the InfluxDB 1.x Java client [here](https://github.com/influxdata/influxdb-java).

## Adding this module to your project dependencies

Add the following dependency to your `pom.xml`/`build.gradle` file:

=== "Gradle"
```groovy
testImplementation "org.testcontainers:influxdb:{{latest_version}}"
```

```groovy
testImplementation "org.testcontainers:influxdb:{{latest_version}}"
```

=== "Maven"
```xml
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>influxdb</artifactId>
<version>{{latest_version}}</version>
<scope>test</scope>
</dependency>
```

```xml

<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>influxdb</artifactId>
<version>{{latest_version}}</version>
<scope>test</scope>
</dependency>
```

!!! hint
Adding this Testcontainers library JAR will not automatically add a database driver JAR to your project. You should ensure that your project also has a suitable database driver as a dependency.
raminqaf marked this conversation as resolved.
Show resolved Hide resolved
4 changes: 3 additions & 1 deletion modules/influxdb/build.gradle
Expand Up @@ -4,6 +4,8 @@ dependencies {
api project(':testcontainers')

compileOnly 'org.influxdb:influxdb-java:2.23'
testImplementation 'org.influxdb:influxdb-java:2.23'

testImplementation 'org.assertj:assertj-core:3.23.1'
testImplementation 'org.influxdb:influxdb-java:2.23'
testImplementation "com.influxdb:influxdb-client-java:6.4.0"
}