func (s *S) TestCommandsToRun(c *gocheck.C) { rfs := ftesting.RecordingFs{} f, err := rfs.Create("/opt/me/id_dsa.pub") c.Assert(err, gocheck.IsNil) f.Write([]byte("ssh-rsa ohwait! me@machine\n")) f.Close() old := fsystem fsystem = &rfs defer func() { fsystem = old }() config.Set("docker:ssh:sshd-path", "/opt/bin/sshd") config.Set("docker:ssh:public-key", "/opt/me/id_dsa.pub") config.Set("docker:ssh:private-key", "/opt/me/id_dsa") defer config.Unset("docker:ssh:sshd-path") defer config.Unset("docker:ssh:public-key") defer config.Unset("docker:ssh:private-key") app := testing.NewFakeApp("myapp", "python", 1) cmd, err := commandToRun(app) c.Assert(err, gocheck.IsNil) sshCmd := "/var/lib/tsuru/add-key ssh-rsa ohwait! me@machine && /opt/bin/sshd -D" expected := []string{ "docker", "run", "-d", "-t", "-p", s.port, fmt.Sprintf("%s/python", s.repoNamespace), "/bin/bash", "-c", sshCmd, } c.Assert(cmd, gocheck.DeepEquals, expected) }
func (s *S) TestSSHCmdsDefaultKeyFile(c *gocheck.C) { rfs := ftesting.RecordingFs{} f, err := rfs.Create(os.ExpandEnv("${HOME}/.ssh/id_rsa.pub")) c.Assert(err, gocheck.IsNil) f.Write([]byte("ssh-rsa ohwait! me@machine")) f.Close() old := fsystem fsystem = &rfs defer func() { fsystem = old }() commands, err := sshCmds() c.Assert(err, gocheck.IsNil) c.Assert(commands[0], gocheck.Equals, "/var/lib/tsuru/add-key ssh-rsa ohwait! me@machine") }
func (s *S) TestSSHCmdsDefaultSSHDPath(c *gocheck.C) { rfs := ftesting.RecordingFs{} f, err := rfs.Create("/opt/me/id_dsa.pub") c.Assert(err, gocheck.IsNil) f.Write([]byte("ssh-rsa ohwait! me@machine")) f.Close() old := fsystem fsystem = &rfs defer func() { fsystem = old }() config.Set("docker:ssh:public-key", "/opt/me/id_dsa.pub") defer config.Unset("docker:ssh:public-key") commands, err := sshCmds() c.Assert(err, gocheck.IsNil) c.Assert(commands[1], gocheck.Equals, "sudo /usr/sbin/sshd -D") }