mirror of
https://github.com/kemko/nomad.git
synced 2026-01-05 01:45:44 +03:00
Use new combined meta data function in env
This commit is contained in:
@@ -150,11 +150,8 @@ func NewExecContext(alloc *allocdir.AllocDir, allocID string) *ExecContext {
|
||||
func GetTaskEnv(allocDir *allocdir.AllocDir, node *structs.Node,
|
||||
task *structs.Task, alloc *structs.Allocation, vaultToken string) (*env.TaskEnvironment, error) {
|
||||
|
||||
tg := alloc.Job.LookupTaskGroup(alloc.TaskGroup)
|
||||
env := env.NewTaskEnvironment(node).
|
||||
SetTaskMeta(task.Meta).
|
||||
SetTaskGroupMeta(tg.Meta).
|
||||
SetJobMeta(alloc.Job.Meta).
|
||||
SetTaskMeta(alloc.Job.CombinedTaskMeta(alloc.TaskGroup, task.Name)).
|
||||
SetJobName(alloc.Job.Name).
|
||||
SetEnvvars(task.Env).
|
||||
SetTaskName(task.Name)
|
||||
|
||||
30
client/driver/env/env.go
vendored
30
client/driver/env/env.go
vendored
@@ -85,8 +85,6 @@ const (
|
||||
type TaskEnvironment struct {
|
||||
Env map[string]string
|
||||
TaskMeta map[string]string
|
||||
TaskGroupMeta map[string]string
|
||||
JobMeta map[string]string
|
||||
AllocDir string
|
||||
TaskDir string
|
||||
SecretsDir string
|
||||
@@ -138,11 +136,9 @@ func (t *TaskEnvironment) Build() *TaskEnvironment {
|
||||
t.NodeValues = make(map[string]string)
|
||||
t.TaskEnv = make(map[string]string)
|
||||
|
||||
// Build the meta with the following precedence: task, task group, job.
|
||||
for _, meta := range []map[string]string{t.JobMeta, t.TaskGroupMeta, t.TaskMeta} {
|
||||
for k, v := range meta {
|
||||
t.TaskEnv[fmt.Sprintf("%s%s", MetaPrefix, strings.ToUpper(k))] = v
|
||||
}
|
||||
// Build the meta
|
||||
for k, v := range t.TaskMeta {
|
||||
t.TaskEnv[fmt.Sprintf("%s%s", MetaPrefix, strings.ToUpper(k))] = v
|
||||
}
|
||||
|
||||
// Build the ports
|
||||
@@ -336,26 +332,6 @@ func (t *TaskEnvironment) ClearTaskMeta() *TaskEnvironment {
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *TaskEnvironment) SetTaskGroupMeta(m map[string]string) *TaskEnvironment {
|
||||
t.TaskGroupMeta = m
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *TaskEnvironment) ClearTaskGroupMeta() *TaskEnvironment {
|
||||
t.TaskGroupMeta = nil
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *TaskEnvironment) SetJobMeta(m map[string]string) *TaskEnvironment {
|
||||
t.JobMeta = m
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *TaskEnvironment) ClearJobMeta() *TaskEnvironment {
|
||||
t.JobMeta = nil
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *TaskEnvironment) SetEnvvars(m map[string]string) *TaskEnvironment {
|
||||
t.Env = m
|
||||
return t
|
||||
|
||||
22
client/driver/env/env_test.go
vendored
22
client/driver/env/env_test.go
vendored
@@ -140,7 +140,6 @@ func TestEnvironment_AsList(t *testing.T) {
|
||||
env := NewTaskEnvironment(n).
|
||||
SetNetworks(networks).
|
||||
SetPortMap(portMap).
|
||||
SetTaskGroupMeta(map[string]string{"foo": "bar", "baz": "bam"}).
|
||||
SetTaskMeta(map[string]string{"foo": "baz"}).Build()
|
||||
|
||||
act := env.EnvList()
|
||||
@@ -154,7 +153,6 @@ func TestEnvironment_AsList(t *testing.T) {
|
||||
"NOMAD_HOST_PORT_http=80",
|
||||
"NOMAD_HOST_PORT_https=8080",
|
||||
"NOMAD_META_FOO=baz",
|
||||
"NOMAD_META_BAZ=bam",
|
||||
}
|
||||
sort.Strings(act)
|
||||
sort.Strings(exp)
|
||||
@@ -259,23 +257,3 @@ func TestEnvironment_AppendHostEnvVars(t *testing.T) {
|
||||
t.Fatalf("Didn't filter environment variable %q", skip)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnvironment_MetaPrecedence(t *testing.T) {
|
||||
n := mock.Node()
|
||||
env := NewTaskEnvironment(n).
|
||||
SetJobMeta(map[string]string{"foo": "job", "bar": "job", "baz": "job"}).
|
||||
SetTaskGroupMeta(map[string]string{"foo": "tg", "bar": "tg"}).
|
||||
SetTaskMeta(map[string]string{"foo": "task"}).Build()
|
||||
|
||||
act := env.EnvList()
|
||||
exp := []string{
|
||||
"NOMAD_META_FOO=task",
|
||||
"NOMAD_META_BAR=tg",
|
||||
"NOMAD_META_BAZ=job",
|
||||
}
|
||||
sort.Strings(act)
|
||||
sort.Strings(exp)
|
||||
if !reflect.DeepEqual(act, exp) {
|
||||
t.Fatalf("env.List() returned %v; want %v", act, exp)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user