add common commHost function

This commit is contained in:
Megan Marsh 2019-07-03 13:30:50 -07:00
parent c03c3f4410
commit 8718e98efe
1 changed files with 22 additions and 0 deletions

View File

@ -0,0 +1,22 @@
package communicator
import (
"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
}
}