Merge pull request #2494 from hashicorp/b-2491-task-env

Don't take a reference a var in a loop
This commit is contained in:
Michael Schurter 2017-03-28 12:26:41 -07:00 committed by GitHub
commit 33ed383911
3 changed files with 35 additions and 7 deletions

View file

@ -10,6 +10,7 @@ BUG FIXES:
* api: Fix TLS in logs and fs commands/APIs [GH-2290]
* cli/plan: Fix diff alignment and remove no change DC output [GH-2465]
* client: Fix panic when restarting non-running tasks [GH-2480]
* client: Fix env vars when multiple tasks and ports present [GH-2491]
* client: Fix `user` attribute disregarding membership of non-main group
[GH-2461]
* client/vault: Stop Vault token renewal on task exit [GH-2495]

View file

@ -203,12 +203,12 @@ func (t *TaskEnvironment) Build() *TaskEnvironment {
continue
}
for _, nw := range resources.Networks {
ports := make([]*structs.Port, 0, len(nw.ReservedPorts)+len(nw.DynamicPorts))
ports := make([]structs.Port, 0, len(nw.ReservedPorts)+len(nw.DynamicPorts))
for _, port := range nw.ReservedPorts {
ports = append(ports, &port)
ports = append(ports, port)
}
for _, port := range nw.DynamicPorts {
ports = append(ports, &port)
ports = append(ports, port)
}
for _, p := range ports {
key := fmt.Sprintf("%s%s_%s", AddrPrefix, taskName, p.Label)

View file

@ -138,7 +138,24 @@ func TestEnvironment_ReplaceEnv_Mixed(t *testing.T) {
func TestEnvironment_AsList(t *testing.T) {
n := mock.Node()
a := mock.Alloc()
a.Resources.Networks[0].ReservedPorts = append(a.Resources.Networks[0].ReservedPorts,
structs.Port{Label: "ssh", Value: 22},
structs.Port{Label: "other", Value: 1234},
)
a.TaskResources["web"].Networks[0].DynamicPorts[0].Value = 2000
a.TaskResources["ssh"] = &structs.Resources{
Networks: []*structs.NetworkResource{
{
Device: "eth0",
IP: "192.168.0.100",
MBits: 50,
ReservedPorts: []structs.Port{
{Label: "ssh", Value: 22},
{Label: "other", Value: 1234},
},
},
},
}
env := NewTaskEnvironment(n).
SetNetworks(networks).
SetPortMap(portMap).
@ -165,13 +182,23 @@ func TestEnvironment_AsList(t *testing.T) {
"NOMAD_IP_web_main=192.168.0.100",
"NOMAD_IP_web_http=192.168.0.100",
"NOMAD_TASK_NAME=taskA",
"NOMAD_ADDR_ssh_other=192.168.0.100:1234",
"NOMAD_ADDR_ssh_ssh=192.168.0.100:22",
"NOMAD_IP_ssh_other=192.168.0.100",
"NOMAD_IP_ssh_ssh=192.168.0.100",
"NOMAD_PORT_ssh_other=1234",
"NOMAD_PORT_ssh_ssh=22",
fmt.Sprintf("NOMAD_ALLOC_ID=%s", a.ID),
}
allocID := fmt.Sprintf("NOMAD_ALLOC_ID=%s", a.ID)
exp = append(exp, allocID)
sort.Strings(act)
sort.Strings(exp)
if !reflect.DeepEqual(act, exp) {
t.Fatalf("env.List() returned %v;\n want:\n%v", strings.Join(act, "\n"), strings.Join(exp, "\n"))
if len(act) != len(exp) {
t.Fatalf("wat: %d != %d", len(act), len(exp))
}
for i := range act {
if act[i] != exp[i] {
t.Errorf("%d %q != %q", i, act[i], exp[i])
}
}
}