From aaf77ae13ef811c38d8540517c549df729add10e Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Wed, 6 Jun 2018 13:05:39 -0700 Subject: [PATCH] Handle force draining --- command/node_status.go | 5 +++-- command/node_status_test.go | 11 ++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/command/node_status.go b/command/node_status.go index b1ffee1d8..0d4d03475 100644 --- a/command/node_status.go +++ b/command/node_status.go @@ -304,8 +304,9 @@ func formatDrain(n *api.Node) string { if n.DrainStrategy != nil { b := new(strings.Builder) b.WriteString("true") - - if n.DrainStrategy.ForceDeadline.IsZero() { + if n.DrainStrategy.DrainSpec.Deadline.Nanoseconds() < 0 { + b.WriteString("; force drain") + } else if n.DrainStrategy.ForceDeadline.IsZero() { b.WriteString("; no deadline") } else { fmt.Fprintf(b, "; %s deadline", formatTime(n.DrainStrategy.ForceDeadline)) diff --git a/command/node_status_test.go b/command/node_status_test.go index 30942aa40..500c18a3a 100644 --- a/command/node_status_test.go +++ b/command/node_status_test.go @@ -262,16 +262,17 @@ func TestNodeStatusCommand_FormatDrain(t *testing.T) { assert.Equal("false", formatDrain(node)) node.DrainStrategy = &api.DrainStrategy{} - assert.Equal("true; no deadline", formatDrain(node)) - // formatTime special cases Unix(0, 0), so increment by 1 - node.DrainStrategy.ForceDeadline = time.Unix(1, 0) - t.Logf(node.DrainStrategy.ForceDeadline.String()) + node.DrainStrategy = &api.DrainStrategy{} + node.DrainStrategy.Deadline = -1 * time.Second + assert.Equal("true; force drain", formatDrain(node)) + // formatTime special cases Unix(0, 0), so increment by 1 + node.DrainStrategy = &api.DrainStrategy{} + node.DrainStrategy.ForceDeadline = time.Unix(1, 0).UTC() assert.Equal("true; 1970-01-01T00:00:01Z deadline", formatDrain(node)) node.DrainStrategy.IgnoreSystemJobs = true - assert.Equal("true; 1970-01-01T00:00:01Z deadline; ignoring system jobs", formatDrain(node)) }