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 }