From 85a1899dfa9bf2ed8ef23846756e9ff09e479b69 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Mon, 28 Aug 2017 11:29:27 -0700 Subject: [PATCH] Reduce startup time on Mac This PR moves creating the API client into the returned predict function. The creation of the client causes a lookup of all the system certificates and doing that for each command on mac was extremely slow. --- command/alloc_status.go | 4 ++-- command/deployment_fail.go | 2 +- command/deployment_pause.go | 2 +- command/deployment_promote.go | 2 +- command/deployment_resume.go | 2 +- command/deployment_status.go | 2 +- command/eval_status.go | 2 +- command/fs.go | 3 +-- command/inspect.go | 2 +- command/job_deployments.go | 2 +- command/job_dispatch.go | 2 +- command/job_history.go | 2 +- command/job_promote.go | 2 +- command/job_revert.go | 2 +- command/job_status.go | 2 +- command/logs.go | 3 +-- command/node_drain.go | 2 +- command/node_status.go | 2 +- command/status.go | 2 +- command/stop.go | 2 +- 20 files changed, 21 insertions(+), 23 deletions(-) diff --git a/command/alloc_status.go b/command/alloc_status.go index 0c72c8d31..3f3c8a698 100644 --- a/command/alloc_status.go +++ b/command/alloc_status.go @@ -71,9 +71,9 @@ func (c *AllocStatusCommand) AutocompleteFlags() complete.Flags { } func (c *AllocStatusCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() - return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() + if len(a.Completed) > 1 { return nil } diff --git a/command/deployment_fail.go b/command/deployment_fail.go index cc3ceedba..1a26b0165 100644 --- a/command/deployment_fail.go +++ b/command/deployment_fail.go @@ -51,8 +51,8 @@ func (c *DeploymentFailCommand) AutocompleteFlags() complete.Flags { } func (c *DeploymentFailCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/deployment_pause.go b/command/deployment_pause.go index fe16e8e17..bf3610534 100644 --- a/command/deployment_pause.go +++ b/command/deployment_pause.go @@ -43,8 +43,8 @@ func (c *DeploymentPauseCommand) AutocompleteFlags() complete.Flags { } func (c *DeploymentPauseCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/deployment_promote.go b/command/deployment_promote.go index f36da5b50..1ab3e62db 100644 --- a/command/deployment_promote.go +++ b/command/deployment_promote.go @@ -61,8 +61,8 @@ func (c *DeploymentPromoteCommand) AutocompleteFlags() complete.Flags { } func (c *DeploymentPromoteCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/deployment_resume.go b/command/deployment_resume.go index acee08882..43b07bce7 100644 --- a/command/deployment_resume.go +++ b/command/deployment_resume.go @@ -49,8 +49,8 @@ func (c *DeploymentResumeCommand) AutocompleteFlags() complete.Flags { } func (c *DeploymentResumeCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/deployment_status.go b/command/deployment_status.go index 2e82a6c6a..154590467 100644 --- a/command/deployment_status.go +++ b/command/deployment_status.go @@ -52,8 +52,8 @@ func (c *DeploymentStatusCommand) AutocompleteFlags() complete.Flags { } func (c *DeploymentStatusCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/eval_status.go b/command/eval_status.go index 66322ff6e..d0936ac7a 100644 --- a/command/eval_status.go +++ b/command/eval_status.go @@ -59,8 +59,8 @@ func (c *EvalStatusCommand) AutocompleteFlags() complete.Flags { } func (c *EvalStatusCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/fs.go b/command/fs.go index 0542f1993..86ed59074 100644 --- a/command/fs.go +++ b/command/fs.go @@ -94,9 +94,8 @@ func (c *FSCommand) AutocompleteFlags() complete.Flags { } func (f *FSCommand) AutocompleteArgs() complete.Predictor { - client, _ := f.Meta.Client() - return complete.PredictFunc(func(a complete.Args) []string { + client, _ := f.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/inspect.go b/command/inspect.go index 73f88be81..b4a8ec971 100644 --- a/command/inspect.go +++ b/command/inspect.go @@ -51,8 +51,8 @@ func (c *InspectCommand) AutocompleteFlags() complete.Flags { } func (c *InspectCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/job_deployments.go b/command/job_deployments.go index 7083d1266..c8cccfbd7 100644 --- a/command/job_deployments.go +++ b/command/job_deployments.go @@ -54,8 +54,8 @@ func (c *JobDeploymentsCommand) AutocompleteFlags() complete.Flags { } func (c *JobDeploymentsCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/job_dispatch.go b/command/job_dispatch.go index e2e5c0ee6..c630099ee 100644 --- a/command/job_dispatch.go +++ b/command/job_dispatch.go @@ -66,8 +66,8 @@ func (c *JobDispatchCommand) AutocompleteFlags() complete.Flags { } func (c *JobDispatchCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/job_history.go b/command/job_history.go index c32061ab2..87ce14512 100644 --- a/command/job_history.go +++ b/command/job_history.go @@ -66,8 +66,8 @@ func (c *JobHistoryCommand) Autocompleteflags() complete.Flags { } func (c *JobHistoryCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/job_promote.go b/command/job_promote.go index 0780d130b..c9eac97e9 100644 --- a/command/job_promote.go +++ b/command/job_promote.go @@ -62,8 +62,8 @@ func (c *JobPromoteCommand) AutocompleteFlags() complete.Flags { } func (c *JobPromoteCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/job_revert.go b/command/job_revert.go index 21cb860bb..51282e5f3 100644 --- a/command/job_revert.go +++ b/command/job_revert.go @@ -49,8 +49,8 @@ func (c *JobRevertCommand) AutocompleteFlags() complete.Flags { } func (c *JobRevertCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/job_status.go b/command/job_status.go index 03ec16f95..26ec28f26 100644 --- a/command/job_status.go +++ b/command/job_status.go @@ -71,8 +71,8 @@ func (c *JobStatusCommand) AutocompleteFlags() complete.Flags { } func (c *JobStatusCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/logs.go b/command/logs.go index 0ef9a1066..8f7010515 100644 --- a/command/logs.go +++ b/command/logs.go @@ -75,9 +75,8 @@ func (c *LogsCommand) AutocompleteFlags() complete.Flags { } func (l *LogsCommand) AutocompleteArgs() complete.Predictor { - client, _ := l.Meta.Client() - return complete.PredictFunc(func(a complete.Args) []string { + client, _ := l.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/node_drain.go b/command/node_drain.go index a051f3915..cd49625ce 100644 --- a/command/node_drain.go +++ b/command/node_drain.go @@ -56,8 +56,8 @@ func (c *NodeDrainCommand) AutocompleteFlags() complete.Flags { } func (c *NodeDrainCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/node_status.go b/command/node_status.go index 3f1ac1acc..bc9b7aa33 100644 --- a/command/node_status.go +++ b/command/node_status.go @@ -99,8 +99,8 @@ func (c *NodeStatusCommand) AutocompleteFlags() complete.Flags { } func (c *NodeStatusCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/status.go b/command/status.go index 84a795652..cf2c51327 100644 --- a/command/status.go +++ b/command/status.go @@ -37,8 +37,8 @@ func (c *StatusCommand) AutocompleteFlags() complete.Flags { } func (c *StatusCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil } diff --git a/command/stop.go b/command/stop.go index 00d044b82..e349139dc 100644 --- a/command/stop.go +++ b/command/stop.go @@ -62,8 +62,8 @@ func (c *StopCommand) AutocompleteFlags() complete.Flags { } func (c *StopCommand) AutocompleteArgs() complete.Predictor { - client, _ := c.Meta.Client() return complete.PredictFunc(func(a complete.Args) []string { + client, _ := c.Meta.Client() if len(a.Completed) > 1 { return nil }