package org.arquillian.cube.docker.drone;
import java.util.Map;
/**
* Configuration for cube drone extension.
*/
public class CubeDroneConfiguration {
/**
* Final directory where recordings are moved after execution.
*/
private String finalDirectory;
/**
* Record mode to decide if not recording, only when failure or always.
*/
private RecordMode recordMode = RecordMode.ALL;
/**
* Docker image to be used as custom browser image instead of the official one.
*/
private String browserImage = null;
/**
* Dockerfile location to be used to built custom docker image instead of the official one.
* This property has preference over browserImage.
*
* @see org.arquillian.cube.docker.drone.CubeDroneConfiguration#browserImage
*/
private String browserDockerfileLocation = null;
public static CubeDroneConfiguration fromMap(Map<String, String> config) {
CubeDroneConfiguration cubeDroneConfiguration = new CubeDroneConfiguration();
if (config.containsKey("recordingMode")) {
cubeDroneConfiguration.recordMode = RecordMode.valueOf(config.get("recordingMode"));
}
if (config.containsKey("videoOutput")) {
cubeDroneConfiguration.finalDirectory = config.get("videoOutput");
}
if (config.containsKey("browserImage")) {
cubeDroneConfiguration.browserImage = config.get("browserImage");
}
if (config.containsKey("browserDockerfileLocation")) {
cubeDroneConfiguration.browserDockerfileLocation = config.get("browserDockerfileLocation");
}
return cubeDroneConfiguration;
}
public boolean isRecordOnFailure() {
return recordMode == RecordMode.ONLY_FAILING;
}
public boolean isRecording() {
return recordMode != RecordMode.NONE;
}
public RecordMode getRecordMode() {
return recordMode;
}
public boolean isVideoOutputDirectorySet() {
return finalDirectory != null;
}
public String getFinalDirectory() {
return finalDirectory;
}
public boolean isBrowserImageSet() {
return this.browserImage != null && !this.browserImage.isEmpty();
}
public boolean isBrowserDockerfileDirectorySet() {
return this.browserDockerfileLocation != null && !this.browserDockerfileLocation.isEmpty();
}
public String getBrowserImage() {
return browserImage;
}
public String getBrowserDockerfileLocation() {
return browserDockerfileLocation;
}
public static enum RecordMode {
ALL, ONLY_FAILING, NONE;
}
}