bugfix: monitor variables were dependent on order in which commands were initialized inside on init(). Using PreRun we can control the value per command called by having the function run only when the function is executed.

This commit is contained in:
Renan DelValle 2019-03-22 20:47:42 -07:00
parent fee20090d0
commit d1097f33ac
No known key found for this signature in database
GPG key ID: C240AD6D6F443EC9
3 changed files with 40 additions and 16 deletions

View file

@ -1,24 +1,23 @@
package cmd
import (
"github.com/spf13/cobra"
"github.com/spf13/cobra/doc"
"github.com/spf13/cobra"
"github.com/spf13/cobra/doc"
)
func init() {
rootCmd.AddCommand(docsCmd)
rootCmd.AddCommand(docsCmd)
}
var docsCmd = &cobra.Command{
Use: "docs",
Short: "Kill an Aurora Job",
Use: "docs",
Short: "Kill an Aurora Job",
PersistentPreRun: func(cmd *cobra.Command, args []string) {}, // We don't need a realis client for this cmd
PersistentPostRun: func(cmd *cobra.Command, args []string) {}, // We don't need a realis client for this cmd
Run: func(cmd *cobra.Command, args []string) {
err := doc.GenMarkdownTree(rootCmd, "./docs")
if err != nil {
log.Fatal(err)
}
},
Run: func(cmd *cobra.Command, args []string) {
err := doc.GenMarkdownTree(rootCmd, "./docs")
if err != nil {
log.Fatal(err)
}
},
}

View file

@ -29,6 +29,7 @@ var count int64
var filename string
var message = new(string)
var updateID string
var statusList = make([]string, 0, 0)
var log = logrus.New()
const australisVer = "v0.0.8"

View file

@ -58,7 +58,13 @@ are not allowed to schedule new tasks and any tasks already running on this Agen
are killed and rescheduled in an Agent that is not in maintenance mode. Command
expects a space separated list of hosts to place into maintenance mode.`,
Args: cobra.MinimumNArgs(1),
Run: drain,
PreRun: func(cmd *cobra.Command, args []string) {
// Manually initializing default values for this command as the default value for shared variables will
// be dependent on the order in which all commands were initialized
monitorTimeout = time.Minute * 10
monitorInterval = time.Second * 5
},
Run: drain,
}
var startSLADrainCmd = &cobra.Command{
@ -76,7 +82,13 @@ var startSLACountDrainCmd = &cobra.Command{
Long: `Adds a Mesos Agent to Aurora's Drain list. Tasks will be drained using the count SLA policy as a fallback
when a Job does not have a defined SLA policy.`,
Args: cobra.MinimumNArgs(1),
Run: SLACountDrain,
PreRun: func(cmd *cobra.Command, args []string) {
// Manually initializing default values for this command as the default value for shared variables will
// be dependent on the order in which all commands were initialized
monitorTimeout = time.Minute * 20
monitorInterval = time.Second * 10
},
Run: SLACountDrain,
}
var startSLAPercentageDrainCmd = &cobra.Command{
@ -85,7 +97,13 @@ var startSLAPercentageDrainCmd = &cobra.Command{
Long: `Adds a Mesos Agent to Aurora's Drain list. Tasks will be drained using the percentage SLA policy as a fallback
when a Job does not have a defined SLA policy.`,
Args: cobra.MinimumNArgs(1),
Run: SLAPercentageDrain,
PreRun: func(cmd *cobra.Command, args []string) {
// Manually initializing default values for this command as the default value for shared variables will
// be dependent on the order in which all commands were initialized
monitorTimeout = time.Minute * 20
monitorInterval = time.Second * 10
},
Run: SLAPercentageDrain,
}
var startMaintenanceCmd = &cobra.Command{
@ -95,7 +113,13 @@ var startMaintenanceCmd = &cobra.Command{
are de-prioritized for scheduling a task. Command
expects a space separated list of hosts to place into maintenance mode.`,
Args: cobra.MinimumNArgs(1),
Run: maintenance,
PreRun: func(cmd *cobra.Command, args []string) {
// Manually initializing default values for this command as the default value for shared variables will
// be dependent on the order in which all commands were initialized
monitorTimeout = time.Minute * 1
monitorInterval = time.Second * 5
},
Run: maintenance,
}
func drain(cmd *cobra.Command, args []string) {