Skip to content

Commit 035c3fd

Browse files
committed
cleanup datadir
1 parent 221b370 commit 035c3fd

File tree

4 files changed

+36
-24
lines changed

4 files changed

+36
-24
lines changed

agent/agent.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,12 @@ func (a *agent) init(ctx context.Context) {
258258
}
259259
a.sshServer = sshSrv
260260
a.scriptRunner = agentscripts.New(agentscripts.Options{
261-
LogDir: a.logDir,
262-
DataDir: a.scriptDataDir,
263-
Logger: a.logger,
264-
SSHServer: sshSrv,
265-
Filesystem: a.filesystem,
266-
PatchLogs: a.client.PatchLogs,
261+
LogDir: a.logDir,
262+
DataDirBase: a.scriptDataDir,
263+
Logger: a.logger,
264+
SSHServer: sshSrv,
265+
Filesystem: a.filesystem,
266+
PatchLogs: a.client.PatchLogs,
267267
})
268268
// Register runner metrics. If the prom registry is nil, the metrics
269269
// will not report anywhere.

agent/agent_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,8 @@ func TestAgent_Session_EnvironmentVariables(t *testing.T) {
287287

288288
tmpdir := t.TempDir()
289289

290-
// Defined by the coder script runner.
290+
// Defined by the coder script runner, hardcoded here since we don't
291+
// have a reference to it.
291292
scriptBinDir := filepath.Join(tmpdir, "coder-script-data", "bin")
292293

293294
manifest := agentsdk.Manifest{

agent/agentscripts/agentscripts.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ var (
4343

4444
// Options are a set of options for the runner.
4545
type Options struct {
46-
DataDir string
47-
LogDir string
48-
Logger slog.Logger
49-
SSHServer *agentssh.Server
50-
Filesystem afero.Fs
51-
PatchLogs func(ctx context.Context, req agentsdk.PatchLogs) error
46+
DataDirBase string
47+
LogDir string
48+
Logger slog.Logger
49+
SSHServer *agentssh.Server
50+
Filesystem afero.Fs
51+
PatchLogs func(ctx context.Context, req agentsdk.PatchLogs) error
5252
}
5353

5454
// New creates a runner for the provided scripts.
@@ -60,7 +60,7 @@ func New(opts Options) *Runner {
6060
cronCtxCancel: cronCtxCancel,
6161
cron: cron.New(cron.WithParser(parser)),
6262
closed: make(chan struct{}),
63-
dataDir: filepath.Join(opts.DataDir, "coder-script-data"),
63+
dataDir: filepath.Join(opts.DataDirBase, "coder-script-data"),
6464
scriptsExecuted: prometheus.NewCounterVec(prometheus.CounterOpts{
6565
Namespace: "agent",
6666
Subsystem: "scripts",
@@ -88,6 +88,11 @@ type Runner struct {
8888
scriptsExecuted *prometheus.CounterVec
8989
}
9090

91+
// DataDir returns the directory where scripts data is stored.
92+
func (r *Runner) DataDir() string {
93+
return r.dataDir
94+
}
95+
9196
// ScriptBinDir returns the directory where scripts can store executable
9297
// binaries.
9398
func (r *Runner) ScriptBinDir() string {
@@ -223,7 +228,7 @@ func (r *Runner) run(ctx context.Context, script codersdk.WorkspaceAgentScript)
223228
logPath = filepath.Join(r.LogDir, logPath)
224229
}
225230

226-
scriptDataDir := filepath.Join(r.dataDir, script.LogSourceID.String())
231+
scriptDataDir := filepath.Join(r.DataDir(), script.LogSourceID.String())
227232
err := r.Filesystem.MkdirAll(scriptDataDir, 0o700)
228233
if err != nil {
229234
return xerrors.Errorf("%s script: create script temp dir: %w", scriptDataDir, err)

agent/agentscripts/agentscripts_test.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ func TestExecuteBasic(t *testing.T) {
2727
t.Parallel()
2828
logs := make(chan agentsdk.PatchLogs, 1)
2929
runner := setup(t, func(ctx context.Context, req agentsdk.PatchLogs) error {
30-
logs <- req
30+
select {
31+
case <-ctx.Done():
32+
case logs <- req:
33+
}
3134
return nil
3235
})
3336
defer runner.Close()
@@ -47,7 +50,10 @@ func TestEnv(t *testing.T) {
4750
t.Parallel()
4851
logs := make(chan agentsdk.PatchLogs, 1)
4952
runner := setup(t, func(ctx context.Context, req agentsdk.PatchLogs) error {
50-
logs <- req
53+
select {
54+
case <-ctx.Done():
55+
case logs <- req:
56+
}
5157
return nil
5258
})
5359
defer runner.Close()
@@ -61,7 +67,7 @@ func TestEnv(t *testing.T) {
6167
return true
6268
}))
6369
log := <-logs
64-
require.Contains(t, log.Logs[0].Output, filepath.Join(runner.DataDir, "coder-script-data", id.String()))
70+
require.Contains(t, log.Logs[0].Output, filepath.Join(runner.DataDir(), id.String()))
6571
require.Contains(t, log.Logs[1].Output, runner.ScriptBinDir())
6672
}
6773

@@ -103,11 +109,11 @@ func setup(t *testing.T, patchLogs func(ctx context.Context, req agentsdk.PatchL
103109
_ = s.Close()
104110
})
105111
return agentscripts.New(agentscripts.Options{
106-
LogDir: t.TempDir(),
107-
DataDir: t.TempDir(),
108-
Logger: logger,
109-
SSHServer: s,
110-
Filesystem: fs,
111-
PatchLogs: patchLogs,
112+
LogDir: t.TempDir(),
113+
DataDirBase: t.TempDir(),
114+
Logger: logger,
115+
SSHServer: s,
116+
Filesystem: fs,
117+
PatchLogs: patchLogs,
112118
})
113119
}

0 commit comments

Comments
 (0)