From 3cf1d33626dd2dd2e9c1efa51244c079773ae3b4 Mon Sep 17 00:00:00 2001 From: Chris Bednarski Date: Tue, 22 Sep 2015 23:11:55 -0700 Subject: [PATCH] Check for nils before accessing data --- client/driver/driver.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/client/driver/driver.go b/client/driver/driver.go index 0c68fd543..a2354a261 100644 --- a/client/driver/driver.go +++ b/client/driver/driver.go @@ -111,22 +111,26 @@ func PopulateEnvironment(ctx *ExecContext, task *structs.Task) []string { env := []string{} env = append(env, fmt.Sprintf("NOMAD_ALLOC_DIR=%s", ctx.AllocDir)) - env = append(env, fmt.Sprintf("NOMAD_MEMORY_LIMIT=%d", task.Resources.MemoryMB)) - env = append(env, fmt.Sprintf("NOMAD_CPU_LIMIT=%d", task.Resources.CPU)) + + if task.Resources != nil { + env = append(env, fmt.Sprintf("NOMAD_MEMORY_LIMIT=%d", task.Resources.MemoryMB)) + env = append(env, fmt.Sprintf("NOMAD_CPU_LIMIT=%d", task.Resources.CPU)) + + // Named Ports + if len(task.Resources.Networks) > 0 { + network := task.Resources.Networks[0] + + env = append(env, fmt.Sprintf("NOMAD_HOST_IP=%d", network.IP)) + for idx, port := range network.ListDynamicPorts() { + env = append(env, fmt.Sprintf("NOMAD_PORT_%s=%d", strings.ToUpper(network.DynamicPorts[idx]), port)) + } + } + } // Meta values for key, value := range task.Meta { env = append(env, fmt.Sprintf("NOMAD_META_%s=%s", strings.ToUpper(key), value)) } - // Named Ports - // TODO make this work with multiple network interfaces. - network := task.Resources.Networks[0] - - env = append(env, fmt.Sprintf("NOMAD_HOST_IP=%d", network.IP)) - for idx, port := range network.ListDynamicPorts() { - env = append(env, fmt.Sprintf("NOMAD_PORT_%s=%d", strings.ToUpper(network.DynamicPorts[idx]), port)) - } - return env }