Skip to content

Commit

Permalink
Add the session header to every Docker request (#5145)
Browse files Browse the repository at this point in the history
To improve tracing and other operations, we add current session's id
to every Docker request that we are making.
  • Loading branch information
bsideup committed Mar 3, 2022
1 parent cbccd49 commit 30e8635
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@
import org.rnorth.ducttape.ratelimits.RateLimiter;
import org.rnorth.ducttape.ratelimits.RateLimiterBuilder;
import org.rnorth.ducttape.unreliables.Unreliables;
import org.testcontainers.DockerClientFactory;
import org.testcontainers.utility.TestcontainersConfiguration;

import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -282,7 +284,10 @@ public static DockerClient getClientForConfig(TransportConfig transportConfig) {
.withDockerHost(transportConfig.getDockerHost().toString())
.build()
),
dockerHttpClient
new HeadersAddingDockerHttpClient(
dockerHttpClient,
Collections.singletonMap("x-tc-sid", DockerClientFactory.SESSION_ID)
)
);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.testcontainers.dockerclient;

import com.github.dockerjava.transport.DockerHttpClient;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import lombok.experimental.Delegate;

import java.io.Closeable;
import java.util.Map;

@RequiredArgsConstructor
@ToString
class HeadersAddingDockerHttpClient implements DockerHttpClient {

@Delegate(types = Closeable.class)
final DockerHttpClient delegate;

final Map<String, String> headers;

@Override
public Response execute(Request request) {
request = Request.builder().from(request)
.putAllHeaders(headers)
.build();
return delegate.execute(request);
}
}

0 comments on commit 30e8635

Please sign in to comment.