LoginUsername: loginUsername,
})
if err != nil {
- fmt.Fprintln(stderr, err)
+ fmt.Fprintln(stderr, "error setting up tunnel:", err)
return 1
}
defer sshconn.Conn.Close()
--- /dev/null
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: Apache-2.0
+
+package main
+
+import (
+ "bytes"
+ "os"
+ "os/exec"
+
+ "git.arvados.org/arvados.git/sdk/go/arvadostest"
+ check "gopkg.in/check.v1"
+)
+
+func (s *ClientSuite) TestShellGatewayNotAvailable(c *check.C) {
+ var stdout, stderr bytes.Buffer
+ cmd := exec.Command("go", "run", ".", "shell", arvadostest.QueuedContainerUUID, "-o", "controlpath=none", "echo", "ok")
+ cmd.Env = append(cmd.Env, os.Environ()...)
+ cmd.Env = append(cmd.Env, "ARVADOS_API_TOKEN="+arvadostest.ActiveTokenV2)
+ cmd.Stdout = &stdout
+ cmd.Stderr = &stderr
+ c.Check(cmd.Run(), check.NotNil)
+ c.Log(stderr.String())
+ c.Check(stderr.String(), check.Matches, `(?ms).*gateway is not available, container is queued.*`)
+}
if resp.StatusCode != http.StatusSwitchingProtocols {
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
- err = fmt.Errorf("tunnel connection failed: %d %q", resp.StatusCode, body)
+ err = fmt.Errorf("server did not provide a tunnel: %d %q", resp.StatusCode, body)
netconn.Close()
return
}
if strings.ToLower(resp.Header.Get("Upgrade")) != "ssh" ||
strings.ToLower(resp.Header.Get("Connection")) != "upgrade" {
- err = fmt.Errorf("bad response: Upgrade %q Connection %q", resp.Header.Get("Upgrade"), resp.Header.Get("Connection"))
+ err = fmt.Errorf("bad response from server: Upgrade %q Connection %q", resp.Header.Get("Upgrade"), resp.Header.Get("Connection"))
netconn.Close()
return
}