Merge pull request #5758 from GSA/better-user
make user retrieval for Ansible provisioner more robust
This commit is contained in:
commit
15eccb1aa5
|
@ -15,6 +15,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"os/user"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -141,7 +142,12 @@ func (p *Provisioner) Prepare(raws ...interface{}) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if p.config.User == "" {
|
if p.config.User == "" {
|
||||||
p.config.User = os.Getenv("USER")
|
usr, err := user.Current()
|
||||||
|
if err != nil {
|
||||||
|
errs = packer.MultiErrorAppend(errs, err)
|
||||||
|
} else {
|
||||||
|
p.config.User = usr.Username
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if p.config.User == "" {
|
if p.config.User == "" {
|
||||||
errs = packer.MultiErrorAppend(errs, fmt.Errorf("user: could not determine current user from environment."))
|
errs = packer.MultiErrorAppend(errs, fmt.Errorf("user: could not determine current user from environment."))
|
||||||
|
|
|
@ -76,6 +76,16 @@ func TestProvisionerPrepare_Defaults(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("err: %s", err)
|
t.Fatalf("err: %s", err)
|
||||||
}
|
}
|
||||||
|
defer os.Remove(playbook_file.Name())
|
||||||
|
|
||||||
|
err = os.Unsetenv("USER")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
|
err = p.Prepare(config)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("err: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestProvisionerPrepare_PlaybookFile(t *testing.T) {
|
func TestProvisionerPrepare_PlaybookFile(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue