github.com/mitchellh/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  }