15275: Avoids running manage_versioning when not needed.
[arvados.git] / lib / dispatchcloud / ssh_executor / executor.go
index d0fb54c54cd932df806e0129a0f92d78cd3a9999..feed1c2a78b82a84821f22eee99e39e960dbd431 100644 (file)
@@ -38,6 +38,7 @@ func New(t cloud.ExecutorTarget) *Executor {
 type Executor struct {
        target     cloud.ExecutorTarget
        targetPort string
+       targetUser string
        signers    []ssh.Signer
        mtx        sync.RWMutex // controls access to instance after creation
 
@@ -182,6 +183,9 @@ func (exr *Executor) setupSSHClient() (*ssh.Client, error) {
        if h, p, err := net.SplitHostPort(addr); err != nil || p == "" {
                // Target address does not specify a port.  Use
                // targetPort, or "ssh".
+               if h == "" {
+                       h = addr
+               }
                if p = exr.targetPort; p == "" {
                        p = "ssh"
                }
@@ -189,7 +193,7 @@ func (exr *Executor) setupSSHClient() (*ssh.Client, error) {
        }
        var receivedKey ssh.PublicKey
        client, err := ssh.Dial("tcp", addr, &ssh.ClientConfig{
-               User: "root",
+               User: target.RemoteUser(),
                Auth: []ssh.AuthMethod{
                        ssh.PublicKeys(exr.signers...),
                },