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).
This commit is contained in:
Pradyumna Kaushik 2018-10-04 19:14:50 -04:00
parent 1e2fae9f80
commit b8f2248810

View file

@ -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")
}