Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9780c67

Browse files
committed
fixup! feat(cli): add capability for SSH command to connect to a running container
1 parent e599cef commit 9780c67

File tree

2 files changed

+11
-19
lines changed

2 files changed

+11
-19
lines changed

agent/agentssh/agentssh.go

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -469,27 +469,19 @@ func (s *Server) sessionStart(logger slog.Logger, session ssh.Session, env []str
469469
}
470470

471471
// plumb in envinfoer here to modify command for container exec?
472-
cmd, err := s.CreateCommand(ctx, session.RawCommand(), env, nil)
473-
if err != nil {
474-
s.metrics.sessionErrors.WithLabelValues(magicTypeLabel, ptyLabel, "create_command").Add(1)
475-
return err
476-
}
477-
472+
var ei usershell.EnvInfoer
473+
var err error
478474
if s.config.ExperimentalContainersEnabled && container != "" {
479-
ei, err := agentcontainers.EnvInfo(ctx, s.Execer, container, containerUser)
475+
ei, err = agentcontainers.EnvInfo(ctx, s.Execer, container, containerUser)
480476
if err != nil {
481477
s.metrics.sessionErrors.WithLabelValues(magicTypeLabel, ptyLabel, "container_env_info").Add(1)
482478
return err
483479
}
484-
modifiedCmd, modifiedArgs := ei.ModifyCommand(cmd.Path, cmd.Args...)
485-
if modifiedCmd != cmd.Path || slices.Compare(modifiedArgs, cmd.Args) != 0 {
486-
logger.Debug(ctx, "modified command for container",
487-
slog.F("before", append([]string{cmd.Path}, cmd.Args...)),
488-
slog.F("after", append([]string{modifiedCmd}, modifiedArgs...)),
489-
)
490-
cmd.Path = modifiedCmd
491-
cmd.Args = modifiedArgs
492-
}
480+
}
481+
cmd, err := s.CreateCommand(ctx, session.RawCommand(), env, ei)
482+
if err != nil {
483+
s.metrics.sessionErrors.WithLabelValues(magicTypeLabel, ptyLabel, "create_command").Add(1)
484+
return err
493485
}
494486

495487
if ssh.AgentRequested(session) {

cli/ssh_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1928,9 +1928,9 @@ Expire-Date: 0
19281928

19291929
func TestSSH_Container(t *testing.T) {
19301930
t.Parallel()
1931-
// if runtime.GOOS != "linux" {
1932-
// t.Skip("Skipping test on non-Linux platform")
1933-
// }
1931+
if runtime.GOOS != "linux" {
1932+
t.Skip("Skipping test on non-Linux platform")
1933+
}
19341934

19351935
client, workspace, agentToken := setupWorkspaceForAgent(t)
19361936
ctx := testutil.Context(t, testutil.WaitLong)

0 commit comments

Comments
 (0)