Skip to content

Commit 14c1bfe

Browse files
committed
[grid] Only using asset storage paths if they are available [skip ci]
1 parent 1ad6faa commit 14c1bfe

File tree

2 files changed

+15
-18
lines changed

2 files changed

+15
-18
lines changed

java/server/src/org/openqa/selenium/grid/docker/DockerSessionAssetsPath.java

+6-9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import org.openqa.selenium.remote.SessionId;
2121

22+
import java.io.File;
2223
import java.io.IOException;
2324
import java.nio.file.Files;
2425
import java.nio.file.Path;
@@ -39,24 +40,20 @@ public DockerSessionAssetsPath(String hostAssetsPath, String containerAssetsPath
3940
this.containerAssetsPath = containerAssetsPath;
4041
}
4142

42-
public Optional<Path> createHostSessionAssetsPath(SessionId id) {
43-
return createSessionAssetsPath(this.hostAssetsPath, id);
43+
public String getHostSessionAssetsPath(SessionId id) {
44+
return this.hostAssetsPath + File.separator + id;
4445
}
4546

4647
public Optional<Path> createContainerSessionAssetsPath(SessionId id) {
47-
return createSessionAssetsPath(this.containerAssetsPath, id);
48-
}
49-
50-
private Optional<Path> createSessionAssetsPath(String assetsPath, SessionId id) {
51-
if (assetsPath == null || assetsPath.isEmpty()) {
48+
if (this.containerAssetsPath == null || this.containerAssetsPath.isEmpty()) {
5249
return Optional.empty();
5350
}
5451
try {
55-
return Optional.of(Files.createDirectories(Paths.get(assetsPath, id.toString())));
52+
return Optional.of(Files.createDirectories(Paths.get(this.containerAssetsPath, id.toString())));
5653
} catch (IOException e) {
5754
LOG.log(Level.WARNING,
5855
"Failed to create path to store session assets, no assets will be stored: " +
59-
assetsPath, e);
56+
this.containerAssetsPath, e);
6057
}
6158
return Optional.empty();
6259
}

java/server/src/org/openqa/selenium/grid/docker/DockerSessionFactory.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -208,17 +208,17 @@ public Optional<ActiveSession> apply(CreateSessionRequest sessionRequest) {
208208

209209
SessionId id = new SessionId(response.getSessionId());
210210
Capabilities capabilities = new ImmutableCapabilities((Map<?, ?>) response.getValue());
211-
Optional<Path> containerAssetsPath = assetsPath.createContainerSessionAssetsPath(id);
212-
containerAssetsPath.ifPresent(path -> saveSessionCapabilities(capabilities, path));
213211
Container videoContainer = null;
214-
if (isVideoRecordingAvailable && recordVideoForSession(capabilities)) {
215-
Map<String, String> envVars = getVideoContainerEnvVars(
216-
capabilities,
217-
containerInfo.getIp());
218-
Optional<Path> hostAssetsPath = assetsPath.createHostSessionAssetsPath(id);
219-
if (hostAssetsPath.isPresent()) {
212+
if (isVideoRecordingAvailable) {
213+
Optional<Path> containerAssetsPath = assetsPath.createContainerSessionAssetsPath(id);
214+
containerAssetsPath.ifPresent(path -> saveSessionCapabilities(capabilities, path));
215+
if (containerAssetsPath.isPresent() && recordVideoForSession(capabilities)) {
216+
Map<String, String> envVars = getVideoContainerEnvVars(
217+
capabilities,
218+
containerInfo.getIp());
219+
String hostAssetsPath = assetsPath.getHostSessionAssetsPath(id);
220220
Map<String, String> volumeBinds =
221-
Collections.singletonMap(hostAssetsPath.get().toString(), "/videos");
221+
Collections.singletonMap(hostAssetsPath, "/videos");
222222
videoContainer = docker.create(image(videoImage).env(envVars).bind(volumeBinds));
223223
videoContainer.start();
224224
LOG.info(String.format("Video container started (id: %s)", videoContainer.getId()));

0 commit comments

Comments
 (0)