X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f6ea17a260b2660b69b5e75103efdd6e51f75201..f608029e1aec903bc35a4748ef51e6f076dae0aa:/lib/crunchrun/crunchrun_test.go diff --git a/lib/crunchrun/crunchrun_test.go b/lib/crunchrun/crunchrun_test.go index 53e1bed839..c28cf73cbe 100644 --- a/lib/crunchrun/crunchrun_test.go +++ b/lib/crunchrun/crunchrun_test.go @@ -117,6 +117,7 @@ func (e *stubExecutor) LoadImage(imageId string, tarball string, container arvad e.loaded = tarball return e.loadErr } +func (e *stubExecutor) Runtime() string { return "stub" } func (e *stubExecutor) Create(spec containerSpec) error { e.created = spec; return e.createErr } func (e *stubExecutor) Start() error { e.exit = make(chan int, 1); go e.runFunc(); return e.startErr } func (e *stubExecutor) CgroupID() string { return "cgroupid" } @@ -849,6 +850,26 @@ func (s *TestSuite) TestNodeInfoLog(c *C) { c.Check(json, Matches, `(?ms).*Disk INodes.*`) } +func (s *TestSuite) TestLogVersionAndRuntime(c *C) { + s.fullRunHelper(c, `{ + "command": ["sleep", "1"], + "container_image": "`+arvadostest.DockerImage112PDH+`", + "cwd": ".", + "environment": {}, + "mounts": {"/tmp": {"kind": "tmp"} }, + "output_path": "/tmp", + "priority": 1, + "runtime_constraints": {}, + "state": "Locked" + }`, nil, 0, + func() { + }) + + c.Assert(s.api.Logs["crunch-run"], NotNil) + c.Check(s.api.Logs["crunch-run"].String(), Matches, `(?ms).*crunch-run \S+ \(go\S+\) start.*`) + c.Check(s.api.Logs["crunch-run"].String(), Matches, `(?ms).*Executing container 'zzzzz-zzzzz-zzzzzzzzzzzzzzz' using stub runtime.*`) +} + func (s *TestSuite) TestContainerRecordLog(c *C) { s.fullRunHelper(c, `{ "command": ["sleep", "1"], @@ -1103,9 +1124,9 @@ func (s *TestSuite) TestSetupMounts(c *C) { cr.statInterval = 5 * time.Second bindmounts, err := cr.SetupMounts() c.Check(err, IsNil) - c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--allow-other", + c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--read-write", "--storage-classes", "default", "--crunchstat-interval=5", - "--mount-by-pdh", "by_id", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) + "--mount-by-pdh", "by_id", "--disable-event-listening", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) c.Check(bindmounts, DeepEquals, map[string]bindmount{"/tmp": {realTemp + "/tmp2", false}}) os.RemoveAll(cr.ArvMountPoint) cr.CleanupDirs() @@ -1123,9 +1144,9 @@ func (s *TestSuite) TestSetupMounts(c *C) { bindmounts, err := cr.SetupMounts() c.Check(err, IsNil) - c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--allow-other", + c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--read-write", "--storage-classes", "foo,bar", "--crunchstat-interval=5", - "--mount-by-pdh", "by_id", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) + "--mount-by-pdh", "by_id", "--disable-event-listening", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) c.Check(bindmounts, DeepEquals, map[string]bindmount{"/out": {realTemp + "/tmp2", false}, "/tmp": {realTemp + "/tmp3", false}}) os.RemoveAll(cr.ArvMountPoint) cr.CleanupDirs() @@ -1143,9 +1164,9 @@ func (s *TestSuite) TestSetupMounts(c *C) { bindmounts, err := cr.SetupMounts() c.Check(err, IsNil) - c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--allow-other", + c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--read-write", "--storage-classes", "default", "--crunchstat-interval=5", - "--mount-by-pdh", "by_id", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) + "--mount-by-pdh", "by_id", "--disable-event-listening", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) c.Check(bindmounts, DeepEquals, map[string]bindmount{"/tmp": {realTemp + "/tmp2", false}, "/etc/arvados/ca-certificates.crt": {stubCertPath, true}}) os.RemoveAll(cr.ArvMountPoint) cr.CleanupDirs() @@ -1166,9 +1187,9 @@ func (s *TestSuite) TestSetupMounts(c *C) { bindmounts, err := cr.SetupMounts() c.Check(err, IsNil) - c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--allow-other", + c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--read-write", "--storage-classes", "default", "--crunchstat-interval=5", - "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) + "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--disable-event-listening", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) c.Check(bindmounts, DeepEquals, map[string]bindmount{"/keeptmp": {realTemp + "/keep1/tmp0", false}}) os.RemoveAll(cr.ArvMountPoint) cr.CleanupDirs() @@ -1189,9 +1210,9 @@ func (s *TestSuite) TestSetupMounts(c *C) { bindmounts, err := cr.SetupMounts() c.Check(err, IsNil) - c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--allow-other", + c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--read-write", "--storage-classes", "default", "--crunchstat-interval=5", - "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) + "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--disable-event-listening", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) c.Check(bindmounts, DeepEquals, map[string]bindmount{ "/keepinp": {realTemp + "/keep1/by_id/59389a8f9ee9d399be35462a0f92541c+53", true}, "/keepout": {realTemp + "/keep1/tmp0", false}, @@ -1216,9 +1237,9 @@ func (s *TestSuite) TestSetupMounts(c *C) { bindmounts, err := cr.SetupMounts() c.Check(err, IsNil) - c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--allow-other", + c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--read-write", "--storage-classes", "default", "--crunchstat-interval=5", - "--file-cache", "512", "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) + "--file-cache", "512", "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--disable-event-listening", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) c.Check(bindmounts, DeepEquals, map[string]bindmount{ "/keepinp": {realTemp + "/keep1/by_id/59389a8f9ee9d399be35462a0f92541c+53", true}, "/keepout": {realTemp + "/keep1/tmp0", false}, @@ -1299,9 +1320,9 @@ func (s *TestSuite) TestSetupMounts(c *C) { bindmounts, err := cr.SetupMounts() c.Check(err, IsNil) - c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--allow-other", + c.Check(am.Cmd, DeepEquals, []string{"arv-mount", "--foreground", "--read-write", "--storage-classes", "default", "--crunchstat-interval=5", - "--file-cache", "512", "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) + "--file-cache", "512", "--mount-tmp", "tmp0", "--mount-by-pdh", "by_id", "--disable-event-listening", "--mount-by-id", "by_uuid", realTemp + "/keep1"}) c.Check(bindmounts, DeepEquals, map[string]bindmount{ "/tmp": {realTemp + "/tmp2", false}, "/tmp/foo": {realTemp + "/keep1/tmp0", true}, @@ -1537,7 +1558,7 @@ func (s *TestSuite) TestArvMountRuntimeStatusWarning(c *C) { s.runner.RunArvMount = func([]string, string) (*exec.Cmd, error) { os.Mkdir(s.runner.ArvMountPoint+"/by_id", 0666) ioutil.WriteFile(s.runner.ArvMountPoint+"/by_id/README", nil, 0666) - return s.runner.ArvMountCmd([]string{"bash", "-c", "echo >&2 $(date) Keep write error: I am a teapot; sleep 3"}, "") + return s.runner.ArvMountCmd([]string{"bash", "-c", "echo >&2 Test: Keep write error: I am a teapot; sleep 3"}, "") } s.executor.runFunc = func() { time.Sleep(time.Second) @@ -1560,6 +1581,7 @@ func (s *TestSuite) TestArvMountRuntimeStatusWarning(c *C) { c.Assert(err, IsNil) c.Check(s.api.CalledWith("container.exit_code", 0), NotNil) c.Check(s.api.CalledWith("container.runtime_status.warning", "arv-mount: Keep write error"), NotNil) + c.Check(s.api.CalledWith("container.runtime_status.warningDetail", "Test: Keep write error: I am a teapot"), NotNil) c.Check(s.api.CalledWith("container.state", "Complete"), NotNil) }