From b8f2248810f4e5f2f131772fa8178ac7ec084eb0 Mon Sep 17 00:00:00 2001 From: Pradyumna Kaushik Date: Thu, 4 Oct 2018 19:14:50 -0400 Subject: [PATCH] Adding HostKeyCallback to sshConfig. Fix command. Added HostKeyCallback to sshConfig. Right now using the ssh.InsecureIgnoreHost() callback. This returns a function that in turn returns nil. Note: returning nil would result in acceptance of any host key. Hence, we need to change this to a callback of our own implementation. Fixed the command to run the throttling script. There were spacing issues. Also, using strings.Join(...) instead of adding spaces in the string (which is error prone). --- rapl/cap.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rapl/cap.go b/rapl/cap.go index c630f75..7fc1d95 100644 --- a/rapl/cap.go +++ b/rapl/cap.go @@ -7,6 +7,7 @@ import ( "github.com/pkg/errors" elekEnv "gitlab.com/spdf/elektron/environment" "golang.org/x/crypto/ssh" + "strings" ) func Cap(host, username string, percentage float64) error { @@ -21,6 +22,8 @@ func Cap(host, username string, percentage float64) error { // TODO: CHANGE and MAKE THIS USE SSH KEY!!!! ssh.Password(os.Getenv(elekEnv.RaplPassword)), }, + // TODO Do not allow accepting any host key. + HostKeyCallback: ssh.InsecureIgnoreHostKey(), } connection, err := ssh.Dial("tcp", host+":22", sshConfig) @@ -34,7 +37,8 @@ func Cap(host, username string, percentage float64) error { return errors.Wrap(err, "Failed to create session") } - err = session.Run("sudo " + os.Getenv(elekEnv.RaplThrottleScriptLocation) + "/RAPL_PKG_Throttle.py" + strconv.FormatFloat(percentage, 'f', 2, 64)) + err = session.Run(strings.Join([]string{"sudo", os.Getenv(elekEnv.RaplThrottleScriptLocation), + strconv.FormatFloat(percentage, 'f', 2, 64)}, " ")) if err != nil { return errors.Wrap(err, "Failed to run RAPL script") }