Skip to content

Commit d8fbb71

Browse files
committed
Fixed docker tests wrt log2file
1 parent fc729a3 commit d8fbb71

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed

test/docker_cluster_diff_logdir_test.go

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,140 @@ func TestDockerClusterDifferentLogDir(t *testing.T) {
149149
ShutdownStarter(t, insecureStarterEndpoint(1*portIncrement))
150150
ShutdownStarter(t, insecureStarterEndpoint(2*portIncrement))
151151

152+
check := func(rootDir string, expectedFileCount int) {
153+
files, err := getRecursiveLogFiles(rootDir)
154+
if err != nil {
155+
t.Errorf("Failed to get log files in %s: %v", rootDir, err)
156+
} else if len(files) != expectedFileCount {
157+
t.Errorf("Expected %d log files in %s, got %d (%v)", expectedFileCount, rootDir, len(files), files)
158+
}
159+
}
160+
check(masterLogDir, 3+1) // +1 == arangodb.log (starter log)
161+
check(slave1LogDir, 3+1)
162+
check(slave2LogDir, 3+1)
163+
}
164+
165+
// TestDockerClusterDifferentLogDirNoLog2File runs 3 arangodb starters in docker with a custom log dir without writing
166+
// starter log to file.
167+
func TestDockerClusterDifferentLogDirNoLog2File(t *testing.T) {
168+
needTestMode(t, testModeDocker)
169+
needStarterMode(t, starterModeCluster)
170+
if os.Getenv("IP") == "" {
171+
t.Fatal("IP envvar must be set to IP address of this machine")
172+
}
173+
/*
174+
docker volume create arangodb1
175+
docker run -i --name=adb1 --rm -p 8528:8528 \
176+
-v arangodb1:/data \
177+
-v /var/run/docker.sock:/var/run/docker.sock \
178+
-v something:something \
179+
arangodb/arangodb-starter \
180+
--docker.container=adb1 \
181+
--starter.address=$IP
182+
--log.dir=something
183+
*/
184+
volID1 := createDockerID("vol-starter-test-cluster-default1-")
185+
createDockerVolume(t, volID1)
186+
defer removeDockerVolume(t, volID1)
187+
188+
volID2 := createDockerID("vol-starter-test-cluster-default2-")
189+
createDockerVolume(t, volID2)
190+
defer removeDockerVolume(t, volID2)
191+
192+
volID3 := createDockerID("vol-starter-test-cluster-default3-")
193+
createDockerVolume(t, volID3)
194+
defer removeDockerVolume(t, volID3)
195+
196+
logDir, err := ioutil.TempDir("", "")
197+
if err != nil {
198+
t.Fatalf("TempDir failed: %v", err)
199+
}
200+
201+
// Cleanup of left over tests
202+
removeDockerContainersByLabel(t, "starter-test=true")
203+
removeStarterCreatedDockerContainers(t)
204+
205+
start := time.Now()
206+
207+
masterLogDir := filepath.Join(logDir, "master")
208+
cID1 := createDockerID("starter-test-cluster-default1-")
209+
dockerRun1 := Spawn(t, strings.Join([]string{
210+
"docker run -i",
211+
"--label starter-test=true",
212+
"--name=" + cID1,
213+
"--rm",
214+
fmt.Sprintf("-p %d:%d", basePort, basePort),
215+
fmt.Sprintf("-v %s:/data", volID1),
216+
fmt.Sprintf("-v %s:%s", masterLogDir, masterLogDir),
217+
"-v /var/run/docker.sock:/var/run/docker.sock",
218+
"arangodb/arangodb-starter",
219+
"--docker.container=" + cID1,
220+
"--starter.address=$IP",
221+
"--log.file=false",
222+
"--log.dir=" + masterLogDir,
223+
createEnvironmentStarterOptions(),
224+
}, " "))
225+
defer dockerRun1.Close()
226+
defer removeDockerContainer(t, cID1)
227+
228+
slave1LogDir := filepath.Join(logDir, "slave1")
229+
cID2 := createDockerID("starter-test-cluster-default2-")
230+
dockerRun2 := Spawn(t, strings.Join([]string{
231+
"docker run -i",
232+
"--label starter-test=true",
233+
"--name=" + cID2,
234+
"--rm",
235+
fmt.Sprintf("-p %d:%d", basePort+(1*portIncrement), basePort),
236+
fmt.Sprintf("-v %s:/data", volID2),
237+
fmt.Sprintf("-v %s:%s", slave1LogDir, slave1LogDir),
238+
"-v /var/run/docker.sock:/var/run/docker.sock",
239+
"arangodb/arangodb-starter",
240+
"--docker.container=" + cID2,
241+
"--starter.address=$IP",
242+
"--log.file=false",
243+
"--log.dir=" + slave1LogDir,
244+
createEnvironmentStarterOptions(),
245+
fmt.Sprintf("--starter.join=$IP:%d", basePort),
246+
}, " "))
247+
defer dockerRun2.Close()
248+
defer removeDockerContainer(t, cID2)
249+
250+
slave2LogDir := filepath.Join(logDir, "slave2")
251+
cID3 := createDockerID("starter-test-cluster-default3-")
252+
dockerRun3 := Spawn(t, strings.Join([]string{
253+
"docker run -i",
254+
"--label starter-test=true",
255+
"--name=" + cID3,
256+
"--rm",
257+
fmt.Sprintf("-p %d:%d", basePort+(2*portIncrement), basePort),
258+
fmt.Sprintf("-v %s:/data", volID3),
259+
fmt.Sprintf("-v %s:%s", slave2LogDir, slave2LogDir),
260+
"-v /var/run/docker.sock:/var/run/docker.sock",
261+
"arangodb/arangodb-starter",
262+
"--docker.container=" + cID3,
263+
"--starter.address=$IP",
264+
"--log.file=false",
265+
"--log.dir=" + slave2LogDir,
266+
createEnvironmentStarterOptions(),
267+
fmt.Sprintf("--starter.join=$IP:%d", basePort),
268+
}, " "))
269+
defer dockerRun3.Close()
270+
defer removeDockerContainer(t, cID3)
271+
272+
if ok := WaitUntilStarterReady(t, whatCluster, 3, dockerRun1, dockerRun2, dockerRun3); ok {
273+
t.Logf("Cluster start took %s", time.Since(start))
274+
testCluster(t, insecureStarterEndpoint(0*portIncrement), false)
275+
testCluster(t, insecureStarterEndpoint(1*portIncrement), false)
276+
testCluster(t, insecureStarterEndpoint(2*portIncrement), false)
277+
}
278+
279+
if isVerbose {
280+
t.Log("Waiting for termination")
281+
}
282+
ShutdownStarter(t, insecureStarterEndpoint(0*portIncrement))
283+
ShutdownStarter(t, insecureStarterEndpoint(1*portIncrement))
284+
ShutdownStarter(t, insecureStarterEndpoint(2*portIncrement))
285+
152286
check := func(rootDir string, expectedFileCount int) {
153287
files, err := getRecursiveLogFiles(rootDir)
154288
if err != nil {

0 commit comments

Comments
 (0)