-
Notifications
You must be signed in to change notification settings - Fork 98
/
CubeConfiguration.java
141 lines (112 loc) · 4.47 KB
/
CubeConfiguration.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package org.arquillian.cube.impl.client;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Map;
import org.arquillian.cube.impl.util.ConfigUtil;
import org.yaml.snakeyaml.Yaml;
public class CubeConfiguration {
private static final String DOCKER_VERSION = "serverVersion";
private static final String DOCKER_URI = "serverUri";
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
private static final String EMAIL = "email";
private static final String CERT_PATH = "certPath";
private static final String DOCKER_CONTAINERS = "dockerContainers";
private static final String DOCKER_CONTAINERS_FILE = "dockerContainersFile";
private static final String DOCKER_REGISTRY = "dockerRegistry";
private static final String AUTO_START_CONTAINERS = "autoStartContainers";
private static final String CONNECTION_MODE = "connectionMode";
private static final String BOOT2DOCKER_PATH = "boot2dockerPath";
private String dockerServerVersion;
private String dockerServerUri;
private String dockerRegistry;
private ConnectionMode connectionMode = ConnectionMode.STARTANDSTOP;
private String boot2DockerPath;
private String username;
private String password;
private String email;
private String certPath;
private String[] autoStartContainers = new String[0];
private Map<String, Object> dockerContainersContent;
public ConnectionMode getConnectionMode() {
return connectionMode;
}
public String getDockerServerUri() {
return dockerServerUri;
}
public String getDockerServerVersion() {
return dockerServerVersion;
}
public Map<String, Object> getDockerContainersContent() {
return dockerContainersContent;
}
public String getDockerRegistry() {
return dockerRegistry;
}
public String[] getAutoStartContainers() {
return autoStartContainers;
}
public String getBoot2DockerPath() {
return boot2DockerPath;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String getEmail() {
return email;
}
public String getCertPath() {
return certPath;
}
@SuppressWarnings("unchecked")
public static CubeConfiguration fromMap(Map<String, String> map) {
CubeConfiguration cubeConfiguration = new CubeConfiguration();
if (map.containsKey(DOCKER_VERSION)) {
cubeConfiguration.dockerServerVersion = map.get(DOCKER_VERSION);
}
if (map.containsKey(DOCKER_URI)) {
cubeConfiguration.dockerServerUri = map.get(DOCKER_URI);
}
if(map.containsKey(BOOT2DOCKER_PATH)) {
cubeConfiguration.boot2DockerPath = map.get(BOOT2DOCKER_PATH);
}
if(map.containsKey(USERNAME)) {
cubeConfiguration.username = map.get(USERNAME);
}
if(map.containsKey(PASSWORD)) {
cubeConfiguration.password = map.get(PASSWORD);
}
if(map.containsKey(EMAIL)) {
cubeConfiguration.email = map.get(EMAIL);
}
if(map.containsKey(CERT_PATH)) {
cubeConfiguration.certPath = map.get(CERT_PATH);
}
if (map.containsKey(DOCKER_REGISTRY)) {
cubeConfiguration.dockerRegistry = map.get(DOCKER_REGISTRY);
}
if (map.containsKey(DOCKER_CONTAINERS)) {
String content = map.get(DOCKER_CONTAINERS);
cubeConfiguration.dockerContainersContent = ConfigUtil.applyExtendsRules((Map<String, Object>) new Yaml().load(content));
}
if (map.containsKey(DOCKER_CONTAINERS_FILE)) {
String location = map.get(DOCKER_CONTAINERS_FILE);
try {
cubeConfiguration.dockerContainersContent = ConfigUtil.applyExtendsRules((Map<String, Object>) new Yaml().load(new FileInputStream(
location)));
} catch (FileNotFoundException e) {
throw new IllegalArgumentException(e);
}
}
if(map.containsKey(AUTO_START_CONTAINERS)) {
cubeConfiguration.autoStartContainers = ConfigUtil.trim(map.get(AUTO_START_CONTAINERS).split(","));
}
if(map.containsKey(CONNECTION_MODE)) {
cubeConfiguration.connectionMode = ConnectionMode.valueOf(ConnectionMode.class, map.get(CONNECTION_MODE));
}
return cubeConfiguration;
}
}