14325: Test dispatch container queue against controller.
[arvados.git] / lib / dispatchcloud / test / stub_driver.go
index 8bdfaa947dfb2b9dcb0185dbe8eb2ab19a601bf3..ab6d079b97fb4be370b996b147afa10134f2911b 100644 (file)
@@ -17,8 +17,8 @@ import (
 
        "git.curoverse.com/arvados.git/lib/cloud"
        "git.curoverse.com/arvados.git/sdk/go/arvados"
-       "github.com/Sirupsen/logrus"
        "github.com/mitchellh/mapstructure"
+       "github.com/sirupsen/logrus"
        "golang.org/x/crypto/ssh"
 )
 
@@ -45,7 +45,9 @@ type StubDriver struct {
 }
 
 // InstanceSet returns a new *StubInstanceSet.
-func (sd *StubDriver) InstanceSet(params map[string]interface{}, id cloud.InstanceSetID) (cloud.InstanceSet, error) {
+func (sd *StubDriver) InstanceSet(params map[string]interface{}, id cloud.InstanceSetID,
+       logger logrus.FieldLogger) (cloud.InstanceSet, error) {
+
        sis := StubInstanceSet{
                driver:  sd,
                servers: map[cloud.InstanceID]*StubVM{},
@@ -155,7 +157,7 @@ func (svm *StubVM) Instance() stubInstance {
        }
 }
 
-func (svm *StubVM) Exec(command string, stdin io.Reader, stdout, stderr io.Writer) uint32 {
+func (svm *StubVM) Exec(env map[string]string, command string, stdin io.Reader, stdout, stderr io.Writer) uint32 {
        queue := svm.sis.driver.Queue
        uuid := regexp.MustCompile(`.{5}-dz642-.{15}`).FindString(command)
        if eta := svm.Boot.Sub(time.Now()); eta > 0 {
@@ -171,6 +173,12 @@ func (svm *StubVM) Exec(command string, stdin io.Reader, stdout, stderr io.Write
                return 1
        }
        if strings.HasPrefix(command, "crunch-run --detach ") {
+               for _, name := range []string{"ARVADOS_API_HOST", "ARVADOS_API_TOKEN"} {
+                       if env[name] == "" {
+                               fmt.Fprintf(stderr, "%s missing from environment %q\n", name, env)
+                               return 1
+                       }
+               }
                svm.Lock()
                if svm.running == nil {
                        svm.running = map[string]bool{}