Skip to content

Commit 256ac52

Browse files
author
Chris Baker
authored
Merge pull request #5212 from hashicorp/b-taskrunner-does-not-set-taskgroupname
task_runner does not set TaskGroupName in TaskConfig
2 parents 4e4ecc9 + b43f803 commit 256ac52

File tree

3 files changed

+47
-4
lines changed

3 files changed

+47
-4
lines changed

client/allocrunner/taskrunner/task_runner.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -797,9 +797,10 @@ func (tr *TaskRunner) buildTaskConfig() *drivers.TaskConfig {
797797
env := tr.envBuilder.Build()
798798

799799
return &drivers.TaskConfig{
800-
ID: fmt.Sprintf("%s/%s/%s", alloc.ID, task.Name, invocationid),
801-
Name: task.Name,
802-
JobName: alloc.Job.Name,
800+
ID: fmt.Sprintf("%s/%s/%s", alloc.ID, task.Name, invocationid),
801+
Name: task.Name,
802+
JobName: alloc.Job.Name,
803+
TaskGroupName: alloc.TaskGroup,
803804
Resources: &drivers.Resources{
804805
NomadResources: taskResources,
805806
LinuxResources: &drivers.LinuxResources{

client/allocrunner/taskrunner/task_runner_test.go

+42
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,48 @@ func TestTaskRunner_TaskEnv(t *testing.T) {
209209
assert.Equal(t, "global bar somebody", mockCfg.StdoutString)
210210
}
211211

212+
func TestTaskRunner_TaskConfig(t *testing.T) {
213+
t.Parallel()
214+
require := require.New(t)
215+
216+
alloc := mock.BatchAlloc()
217+
task := alloc.Job.TaskGroups[0].Tasks[0]
218+
task.Driver = "mock_driver"
219+
220+
//// Use interpolation from both node attributes and meta vars
221+
//task.Config = map[string]interface{}{
222+
// "run_for": "1ms",
223+
//}
224+
225+
conf, cleanup := testTaskRunnerConfig(t, alloc, task.Name)
226+
defer cleanup()
227+
228+
// Run the first TaskRunner
229+
tr, err := NewTaskRunner(conf)
230+
require.NoError(err)
231+
go tr.Run()
232+
defer tr.Kill(context.Background(), structs.NewTaskEvent("cleanup"))
233+
234+
// Wait for task to complete
235+
select {
236+
case <-tr.WaitCh():
237+
case <-time.After(3 * time.Second):
238+
}
239+
240+
// Get the mock driver plugin
241+
driverPlugin, err := conf.DriverManager.Dispense(mockdriver.PluginID.Name)
242+
require.NoError(err)
243+
mockDriver := driverPlugin.(*mockdriver.Driver)
244+
245+
// Assert its config has been properly interpolated
246+
driverCfg, mockCfg := mockDriver.GetTaskConfig()
247+
require.NotNil(driverCfg)
248+
require.NotNil(mockCfg)
249+
assert.Equal(t, alloc.Job.Name, driverCfg.JobName)
250+
assert.Equal(t, alloc.TaskGroup, driverCfg.TaskGroupName)
251+
assert.Equal(t, alloc.Job.TaskGroups[0].Tasks[0].Name, driverCfg.Name)
252+
}
253+
212254
// Test that devices get sent to the driver
213255
func TestTaskRunner_DevicePropogation(t *testing.T) {
214256
t.Parallel()

plugins/shared/loader/loader_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ func TestPluginLoader_External_Config_Bad(t *testing.T) {
371371
t.Parallel()
372372
require := require.New(t)
373373

374-
// Create two plugins
374+
// Create a plugin
375375
plugins := []string{"mock-device"}
376376
pluginVersions := []string{"v0.0.1"}
377377
h := newHarness(t, plugins)

0 commit comments

Comments
 (0)