github.phpd.cn/hashicorp/packer@v1.3.2/builder/vmware/common/ssh.go (about) 1 package common 2 3 import ( 4 "errors" 5 "fmt" 6 "log" 7 8 "github.com/hashicorp/packer/helper/multistep" 9 ) 10 11 func CommHost(config *SSHConfig) func(multistep.StateBag) (string, error) { 12 return func(state multistep.StateBag) (string, error) { 13 driver := state.Get("driver").(Driver) 14 15 if config.Comm.SSHHost != "" { 16 return config.Comm.SSHHost, nil 17 } 18 19 ipAddress, err := driver.GuestIP(state) 20 if err != nil { 21 log.Printf("IP lookup failed: %s", err) 22 return "", fmt.Errorf("IP lookup failed: %s", err) 23 } 24 25 if ipAddress == "" { 26 log.Println("IP is blank, no IP yet.") 27 return "", errors.New("IP is blank") 28 } 29 30 log.Printf("Detected IP: %s", ipAddress) 31 return ipAddress, nil 32 } 33 }