diff --git a/util/ansible/node.go b/util/ansible/node.go index baabfd245..e96e77a28 100644 --- a/util/ansible/node.go +++ b/util/ansible/node.go @@ -57,7 +57,7 @@ func RunNodeInstallCmd(option NodeInstallOption) (err error) { if err := preCheckNodeInstall(&option); err != nil { return err } - line := fmt.Sprintf("%s -r %s -i %s -t %s -k %s -u %s", + line := fmt.Sprintf("'%s' -r '%s' -i '%s' -t '%s' -k '%s' -u '%s'", installNodeShellPath, option.HostRole, option.InternalIP, option.linkModel, option.loginValue, option.NodeID) cmd := exec.Command("bash", "-c", line) cmd.Stdin = option.Stdin diff --git a/util/ansible/node_test.go b/util/ansible/node_test.go new file mode 100644 index 000000000..42b6316bc --- /dev/null +++ b/util/ansible/node_test.go @@ -0,0 +1,32 @@ +package ansible + +import ( + "testing" +) + +func TestPreCheckNodeInstall(t *testing.T) { + tests := []struct { + name string + opt *NodeInstallOption + wanterr bool + }{ + { + name: "empty node id", + opt: &NodeInstallOption{ + HostRole: "host role", + InternalIP: "192.168.1.1", + RootPass: "root pass", + }, + wanterr: true, + }, + } + + for idx := range tests { + tc := tests[idx] + t.Run(tc.name, func(t *testing.T) { + if err := preCheckNodeInstall(tc.opt); (err != nil) != tc.wanterr { + t.Errorf("want error: %v, but got %v", tc.wanterr, err) + } + }) + } +}