github.com/cloudfoundry-attic/ltc@v0.0.0-20151123212628-098adc7919fc/ssh/dialer.go (about)

     1  package ssh
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  
     7  	config_package "github.com/cloudfoundry-incubator/ltc/config"
     8  	"github.com/cloudfoundry-incubator/ltc/ssh/sshapi"
     9  )
    10  
    11  type AppDialer struct{}
    12  
    13  func (*AppDialer) Dial(appName string, instanceIndex int, config *config_package.Config) (Client, error) {
    14  	diegoSSHUser := fmt.Sprintf("diego:%s/%d", appName, instanceIndex)
    15  	address := fmt.Sprintf("%s:2222", config.Target())
    16  
    17  	client, err := sshapi.New(diegoSSHUser, config.Username(), config.Password(), address)
    18  	if err != nil {
    19  		return nil, err
    20  	}
    21  
    22  	return client, nil
    23  }
    24  
    25  //go:generate counterfeiter -o mocks/fake_client.go . Client
    26  type Client interface {
    27  	Open(width, height int, desirePTY bool) (*sshapi.Session, error)
    28  	Forward(localConn io.ReadWriteCloser, remoteAddress string) error
    29  }