packer-cn/helper/communicator/comm_host.go

24 lines
565 B
Go
Raw Normal View History

2019-07-03 16:30:50 -04:00
package communicator
import (
2019-07-03 16:34:23 -04:00
"fmt"
2019-07-03 16:30:50 -04:00
"log"
"github.com/hashicorp/packer/helper/multistep"
)
// Generic commHost function that should work for most cloud builders.
func CommHost(host string, statebagKey string) func(multistep.StateBag) (string, error) {
return func(state multistep.StateBag) (string, error) {
if host != "" {
log.Printf("Using ssh_host value: %s", host)
return host, nil
}
ipAddress, hasIP := state.Get(statebagKey).(string)
if !hasIP {
return "", fmt.Errorf("Failed to retrieve IP address.")
}
return ipAddress, nil
}
}