8311: Pass in container token to extractTree
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Thu, 14 Dec 2017 20:22:24 +0000 (15:22 -0500)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Thu, 14 Dec 2017 20:23:06 +0000 (15:23 -0500)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

services/crunch-run/crunchrun.go
services/crunch-run/crunchrun_test.go
services/crunch-run/git_mount.go
services/crunch-run/git_mount_test.go

index d262b3d122b98fe0f8c2de2e7ebd5cfed1d59f3b..23246805960f8faf1a862098bcaac4b122273e7a 100644 (file)
@@ -390,6 +390,11 @@ func (runner *ContainerRunner) SetupMounts() (err error) {
                return fmt.Errorf("While creating keep mount temp dir: %v", err)
        }
 
+       token, err := runner.ContainerToken()
+       if err != nil {
+               return fmt.Errorf("could not get container token: %s", err)
+       }
+
        pdhOnly := true
        tmpcount := 0
        arvMountCmd := []string{
@@ -545,7 +550,7 @@ func (runner *ContainerRunner) SetupMounts() (err error) {
                                return fmt.Errorf("creating temp dir: %v", err)
                        }
                        runner.CleanupTempDir = append(runner.CleanupTempDir, tmpdir)
-                       err = gitMount(mnt).extractTree(runner.ArvClient, tmpdir)
+                       err = gitMount(mnt).extractTree(runner.ArvClient, tmpdir, token)
                        if err != nil {
                                return err
                        }
@@ -578,11 +583,6 @@ func (runner *ContainerRunner) SetupMounts() (err error) {
        }
        arvMountCmd = append(arvMountCmd, runner.ArvMountPoint)
 
-       token, err := runner.ContainerToken()
-       if err != nil {
-               return fmt.Errorf("could not get container token: %s", err)
-       }
-
        runner.ArvMount, err = runner.RunArvMount(arvMountCmd, token)
        if err != nil {
                return fmt.Errorf("While trying to start arv-mount: %v", err)
index 4d76e34f4c2b743a2637260c592213d7b3cd3ea6..8fbf536a39933fb724e416a35c84eadf590db74b 100644 (file)
@@ -1270,6 +1270,7 @@ func (s *TestSuite) TestSetupMounts(c *C) {
                i = 0
                cr.ArvMountPoint = ""
                (*GitMountSuite)(nil).useTestGitServer(c)
+               cr.token = arvadostest.ActiveToken
                cr.Container.Mounts = make(map[string]arvados.Mount)
                cr.Container.Mounts = map[string]arvados.Mount{
                        "/tip": {
index d24c43259f99fdf5167f6f6ea8d80c5e17ff0186..eacfdec91855776d0b777d59afa0305df6abd42d 100644 (file)
@@ -6,7 +6,6 @@ import (
        "regexp"
 
        "git.curoverse.com/arvados.git/sdk/go/arvados"
-       "git.curoverse.com/arvados.git/sdk/go/arvadostest"
        "gopkg.in/src-d/go-billy.v3/osfs"
        git "gopkg.in/src-d/go-git.v4"
        git_config "gopkg.in/src-d/go-git.v4/config"
@@ -40,7 +39,7 @@ func (gm gitMount) validate() error {
 
 // ExtractTree extracts the specified tree into dir, which is an
 // existing empty local directory.
-func (gm gitMount) extractTree(ac IArvadosClient, dir string) error {
+func (gm gitMount) extractTree(ac IArvadosClient, dir string, token string) error {
        err := gm.validate()
        if err != nil {
                return err
@@ -74,7 +73,7 @@ func (gm gitMount) extractTree(ac IArvadosClient, dir string) error {
        }
        err = repo.Fetch(&git.FetchOptions{
                RemoteName: "origin",
-               Auth:       git_http.NewBasicAuth("none", arvadostest.ActiveToken),
+               Auth:       git_http.NewBasicAuth("none", token),
        })
        if err != nil {
                return fmt.Errorf("git fetch %q: %s", u.String(), err)
index 82dce3ac26b57d44b2d902c13a859e12f3c2db41..0161abbc55588adf852210b4881c51edfccdf228 100644 (file)
@@ -42,7 +42,7 @@ func (s *GitMountSuite) TestextractTree(c *check.C) {
                UUID:   arvadostest.Repository2UUID,
                Commit: "fd3531f42995344f36c30b79f55f27b502f3d344",
        }
-       err := gm.extractTree(&ArvTestClient{}, s.tmpdir)
+       err := gm.extractTree(&ArvTestClient{}, s.tmpdir, arvadostest.ActiveToken)
        c.Check(err, check.IsNil)
 
        fnm := filepath.Join(s.tmpdir, "dir1/dir2/file with mode 0644")
@@ -76,7 +76,7 @@ func (s *GitMountSuite) TestExtractNonTipCommit(c *check.C) {
                UUID:   arvadostest.Repository2UUID,
                Commit: "5ebfab0522851df01fec11ec55a6d0f4877b542e",
        }
-       err := gm.extractTree(&ArvTestClient{}, s.tmpdir)
+       err := gm.extractTree(&ArvTestClient{}, s.tmpdir, arvadostest.ActiveToken)
        c.Check(err, check.IsNil)
 
        fnm := filepath.Join(s.tmpdir, "file only on testbranch")
@@ -91,7 +91,7 @@ func (s *GitMountSuite) TestNonexistentRepository(c *check.C) {
                UUID:   "zzzzz-s0uqq-nonexistentrepo",
                Commit: "5ebfab0522851df01fec11ec55a6d0f4877b542e",
        }
-       err := gm.extractTree(&ArvTestClient{}, s.tmpdir)
+       err := gm.extractTree(&ArvTestClient{}, s.tmpdir, arvadostest.ActiveToken)
        c.Check(err, check.NotNil)
        c.Check(err, check.ErrorMatches, ".*repository not found.*")
 
@@ -104,7 +104,7 @@ func (s *GitMountSuite) TestNonexistentCommit(c *check.C) {
                UUID:   arvadostest.Repository2UUID,
                Commit: "bb66b6bb6b6bbb6b6b6b66b6b6b6b6b6b6b6b66b",
        }
-       err := gm.extractTree(&ArvTestClient{}, s.tmpdir)
+       err := gm.extractTree(&ArvTestClient{}, s.tmpdir, arvadostest.ActiveToken)
        c.Check(err, check.NotNil)
        c.Check(err, check.ErrorMatches, ".*object not found.*")
 
@@ -118,7 +118,7 @@ func (s *GitMountSuite) TestGitUrlDiscoveryFails(c *check.C) {
                UUID:   arvadostest.Repository2UUID,
                Commit: "5ebfab0522851df01fec11ec55a6d0f4877b542e",
        }
-       err := gm.extractTree(&ArvTestClient{}, s.tmpdir)
+       err := gm.extractTree(&ArvTestClient{}, s.tmpdir, arvadostest.ActiveToken)
        c.Check(err, check.ErrorMatches, ".*gitUrl.*")
 }
 
@@ -168,7 +168,7 @@ func (s *GitMountSuite) TestInvalid(c *check.C) {
                        matcher: ".*UUID.*",
                },
        } {
-               err := trial.gm.extractTree(&ArvTestClient{}, s.tmpdir)
+               err := trial.gm.extractTree(&ArvTestClient{}, s.tmpdir, arvadostest.ActiveToken)
                c.Check(err, check.NotNil)
                s.checkTmpdirContents(c, []string{})