diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 5b22bd7..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: CI - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Setup Go for use with actions - uses: actions/setup-go@v2 - with: - go-version: 1.15 - - name: Install goimports - run: go get golang.org/x/tools/cmd/goimports - - name: Set env with list of directories in repo containin go code - run: echo GO_USR_DIRS=$(go list -f {{.Dir}} ./... | grep -E -v "/gen-go/|/vendor/") >> $GITHUB_ENV - - name: Run goimports check - run: test -z `for d in $GO_USR_DIRS; do goimports -d "$d" | tee /dev/stderr; done` - - name: Run tests - run: go build -o australis *.go diff --git a/CHANGELOG b/CHANGELOG index 2c36ee7..a23d7a5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,33 +1,6 @@ -1.0.6 (unreleased) +0.1.2 -1.0.5 - -* fetch mesos & aurora master nodes -* kill an instance from a job - -1.0.4 - -* fetch free capacity -* simulate task fitting - compute how many tasks can be fit in the remaining capacity - -1.0.3 - -* update CI to compile on PRs -* Add tier and production in task config -* Add fetch quota command -* Add priority into job config - -1.0.2 - -* Fixing broken Thrift dependency by bumping up backported version to thrift v0.13.2 - -1.0.1 - -* Added flag -m and --monitor that can be set in order to monitor a job creation or a job kill. By default monitor is set to true. - -1.0.0 - -* First stable release. +* Unreleased 0.1.1 diff --git a/cmd/completion.go b/cmd/completion.go index 258a45f..efc260e 100644 --- a/cmd/completion.go +++ b/cmd/completion.go @@ -42,3 +42,4 @@ In MacOS this directory is $(brew --prefix)/etc/bash_completion.d if auto comple rootCmd.GenBashCompletionFile(filename) }, } + diff --git a/cmd/create.go b/cmd/create.go index 6ea8b93..c062c4c 100644 --- a/cmd/create.go +++ b/cmd/create.go @@ -21,14 +21,13 @@ import ( func init() { rootCmd.AddCommand(createCmd) - createCmd.Flags().BoolVarP(&monitor, "monitor", "m", true, "monitor the result after sending the command") } var createCmd = &cobra.Command{ Use: "create", Short: "Create an Aurora Job", Run: createJob, - Args: cobra.RangeArgs(1, 2), + Args: cobra.ExactArgs(1), } func createJob(cmd *cobra.Command, args []string) { @@ -47,15 +46,14 @@ func createJob(cmd *cobra.Command, args []string) { log.Fatal("unable to create Aurora job: ", err) } - if monitor { - if ok, monitorErr := client.MonitorInstances(auroraJob.JobKey(), - auroraJob.GetInstanceCount(), - 5, - 50); !ok || monitorErr != nil { - if err := client.KillJob(auroraJob.JobKey()); err != nil { - log.Fatal(monitorErr, err) - } - log.Fatal(monitorErr) + if ok, monitorErr := client.MonitorInstances(auroraJob.JobKey(), + auroraJob.GetInstanceCount(), + 5, + 50); !ok || monitorErr != nil { + if err := client.KillJob(auroraJob.JobKey()); err != nil { + log.Fatal(monitorErr, err) } + log.Fatal(monitorErr) } + } diff --git a/cmd/fetch.go b/cmd/fetch.go index fbdc309..0f778d2 100644 --- a/cmd/fetch.go +++ b/cmd/fetch.go @@ -15,12 +15,7 @@ package cmd import ( - "encoding/json" - "errors" "fmt" - "io/ioutil" - "net/http" - "strings" "github.com/aurora-scheduler/australis/internal" realis "github.com/aurora-scheduler/gorealis/v2" @@ -29,19 +24,6 @@ import ( "github.com/spf13/pflag" ) -const ( - localAgentStateURL = "http://127.0.0.1:5051/state" -) - -type mesosAgentState struct { - Flags mesosAgentFlags `json:"flags,omitempty"` -} - -type mesosAgentFlags struct { - Master string `json:"master,omitempty"` - hasMaster bool // indicates if the master flag contains direct Master's address -} - func init() { rootCmd.AddCommand(fetchCmd) @@ -80,100 +62,12 @@ func init() { help(cmd, s) }) - mesosLeaderCmd.Flags().String("zkPath", "/mesos", "Zookeeper node path where mesos leader election happens") - mesosCmd.AddCommand(mesosLeaderCmd) - - fetchCmd.AddCommand(mesosCmd) - - // Hijack help function to hide unnecessary global flags - mesosCmd.SetHelpFunc(func(cmd *cobra.Command, s []string) { - if cmd.HasInheritedFlags() { - cmd.InheritedFlags().VisitAll(func(f *pflag.Flag) { - if f.Name != "logLevel" { - f.Hidden = true - } - }) - } - help(cmd, s) - }) - - /* Fetch Master nodes/Leader */ - masterCmd.Flags().String("zkPath", "/aurora/scheduler", "Zookeeper node path to get master nodes/leader") - - fetchCmd.AddCommand(masterCmd) - - // Hijack help function to hide unnecessary global flags - masterCmd.SetHelpFunc(func(cmd *cobra.Command, s []string) { - if cmd.HasInheritedFlags() { - cmd.InheritedFlags().VisitAll(func(f *pflag.Flag) { - if f.Name != "logLevel" { - f.Hidden = true - } - }) - } - help(cmd, s) - }) - - mesosMasterCmd.Flags().String("zkPath", "/mesos", "Zookeeper node path to get mesos master nodes/leader") - mesosCmd.AddCommand(mesosMasterCmd) - - // Hijack help function to hide unnecessary global flags - mesosMasterCmd.SetHelpFunc(func(cmd *cobra.Command, s []string) { - if cmd.HasInheritedFlags() { - cmd.InheritedFlags().VisitAll(func(f *pflag.Flag) { - if f.Name != "logLevel" { - f.Hidden = true - } - }) - } - help(cmd, s) - }) - // Fetch jobs fetchJobsCmd.Flags().StringVarP(role, "role", "r", "", "Aurora Role") fetchCmd.AddCommand(fetchJobsCmd) // Fetch Status fetchCmd.AddCommand(fetchStatusCmd) - - // fetch quota - fetchCmd.AddCommand(fetchQuotaCmd) - - // fetch capacity - fetchCmd.AddCommand(fetchAvailCapacityCmd) - - // Hijack help function to hide unnecessary global flags - fetchAvailCapacityCmd.SetHelpFunc(func(cmd *cobra.Command, s []string) { - if cmd.HasInheritedFlags() { - cmd.InheritedFlags().VisitAll(func(f *pflag.Flag) { - if f.Name != "logLevel" { - f.Hidden = true - } - }) - } - help(cmd, s) - }) - - // fetch tasks with status - fetchCmd.AddCommand(fetchTasksWithStatusCmd) - - fetchTasksWithStatusCmd.Flags().StringVarP(taskStatus, "status", "x", "", "Task Status") - fetchTasksWithStatusCmd.MarkFlagRequired("status") - fetchTasksWithStatusCmd.Flags().StringVarP(env, "environment", "e", "", "Aurora Environment") - fetchTasksWithStatusCmd.Flags().StringVarP(role, "role", "r", "", "Aurora Role") - fetchTasksWithStatusCmd.Flags().StringVarP(name, "name", "n", "", "Aurora Name") - - // Hijack help function to hide unnecessary global flags - fetchTasksWithStatusCmd.SetHelpFunc(func(cmd *cobra.Command, s []string) { - if cmd.HasInheritedFlags() { - cmd.InheritedFlags().VisitAll(func(f *pflag.Flag) { - if f.Name != "logLevel" { - f.Hidden = true - } - }) - } - help(cmd, s) - }) } var fetchCmd = &cobra.Command{ @@ -212,48 +106,6 @@ Pass Zookeeper nodes separated by a space as an argument to this command.`, Run: fetchLeader, } -var masterCmd = &cobra.Command{ - Use: "master [zkNode0 zkNode1 ...zkNodeN]", - 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 - PreRun: setConfig, - Args: cobra.MinimumNArgs(1), - Short: "Fetch current Aurora master nodes/leader given Zookeeper nodes. ", - Long: `Gets the current aurora master nodes/leader using information from Zookeeper path. -Pass Zookeeper nodes separated by a space as an argument to this command.`, - Run: fetchMaster, -} - -var mesosCmd = &cobra.Command{ - Use: "mesos", - PreRun: setConfig, - Short: "Fetch information from Mesos.", -} - -var mesosLeaderCmd = &cobra.Command{ - Use: "leader [zkNode0, zkNode1, ...zkNodeN]", - 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 - PreRun: setConfig, - Short: "Fetch current Mesos-master leader given Zookeeper nodes.", - Long: `Gets the current leading Mesos-master instance using information from Zookeeper path. -Pass Zookeeper nodes separated by a space as an argument to this command. If no nodes are provided, -it fetches leader from local Mesos agent or Zookeeper`, - Run: fetchMesosLeader, -} - -var mesosMasterCmd = &cobra.Command{ - Use: "master [zkNode0 zkNode1 ...zkNodeN]", - 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 - PreRun: setConfig, - Short: "Fetch current Mesos-master nodes/leader given Zookeeper nodes.", - Long: `Gets the current Mesos-master instances using information from Zookeeper path. -Pass Zookeeper nodes separated by a space as an argument to this command. If no nodes are provided, -it fetches Mesos-master nodes/leader from local Mesos agent or Zookeeper`, - Run: fetchMesosMaster, -} - var fetchJobsCmd = &cobra.Command{ Use: "jobs", Short: "Fetch a list of task Aurora running under a role.", @@ -268,28 +120,6 @@ var fetchStatusCmd = &cobra.Command{ Run: fetchHostStatus, } -var fetchQuotaCmd = &cobra.Command{ - Use: "quota", - Short: "Fetch the quotas of given roles", - Long: `This command will print list of resource quotas with the aggregated resources for the given roles`, - Run: fetchQuota, -} - -var fetchAvailCapacityCmd = &cobra.Command{ - Use: "capacity", - PreRun: setConfig, - Short: "Fetch capacity report", - Long: `This command will show detailed capacity report of the cluster`, - Run: fetchAvailCapacity, -} - -var fetchTasksWithStatusCmd = &cobra.Command{ - Use: "tasks", - Short: "Fetch tasks with status", - Long: `This command will return the list of tasks with a given status`, - Run: fetchTasksWithStatus, -} - func fetchTasksConfig(cmd *cobra.Command, args []string) { log.Infof("Fetching job configuration for [%s/%s/%s] \n", *env, *role, *name) @@ -388,135 +218,6 @@ func fetchLeader(cmd *cobra.Command, args []string) { fmt.Println(url) } -func fetchMesosLeader(cmd *cobra.Command, args []string) { - if len(args) < 1 { - mesosAgentFlags, err := fetchMasterFromAgent(localAgentStateURL) - if err != nil || mesosAgentFlags.Master == "" { - log.Debugf("unable to fetch Mesos leader via local Mesos agent: %v", err) - args = append(args, "localhost") - } else if mesosAgentFlags.hasMaster { - fmt.Println(mesosAgentFlags.Master) - return - } else { - args = append(args, strings.Split(mesosAgentFlags.Master, ",")...) - } - } - log.Infof("Fetching Mesos-master leader from Zookeeper node(s): %v \n", args) - - url, err := realis.MesosFromZKOpts(realis.ZKEndpoints(args...), realis.ZKPath(cmd.Flag("zkPath").Value.String())) - - if err != nil { - log.Fatalf("error: %+v\n", err) - } - - fmt.Println(url) -} - -func fetchMaster(cmd *cobra.Command, args []string) { - log.Infof("Fetching master nodes from %v \n", args) - - if len(args) < 1 { - log.Fatalln("At least one Zookeeper node address must be passed in.") - } - - masterMap, err := realis.MasterNodesFromZKOpts(realis.ZKEndpoints(args...), realis.ZKPath(cmd.Flag("zkPath").Value.String())) - - if err != nil { - log.Fatalf("error: %+v\n", err) - } - - if toJson { - fmt.Println(internal.ToJSON(masterMap)) - } else { - for key, masterNodes := range masterMap { - for _, masterNode := range masterNodes { - fmt.Println(key + "=" + masterNode) - } - } - } -} - -func fetchMesosMaster(cmd *cobra.Command, args []string) { - if len(args) < 1 { - mesosAgentFlags, err := fetchMasterFromAgent(localAgentStateURL) - if err != nil || mesosAgentFlags.Master == "" { - log.Debugf("unable to fetch Mesos master nodes via local Mesos agent: %v", err) - args = append(args, "localhost") - } else { - args = append(args, strings.Split(mesosAgentFlags.Master, ",")...) - } - } - log.Infof("Fetching Mesos-master nodes from Zookeeper node(s): %v \n", args) - - mesosMasterMap, err := realis.MesosMasterNodesFromZKOpts(realis.ZKEndpoints(args...), realis.ZKPath(cmd.Flag("zkPath").Value.String())) - - if err != nil { - log.Fatalf("error: %+v\n", err) - } - if toJson { - fmt.Println(internal.ToJSON(mesosMasterMap)) - } else { - for key, mesosMasterNodes := range mesosMasterMap { - for _, mesosMasterNode := range mesosMasterNodes { - fmt.Println(key + "=" + mesosMasterNode) - } - } - } -} - -func fetchMasterFromAgent(url string) (mesosAgentFlags mesosAgentFlags, err error) { - resp, err := http.Get(url) - if err != nil { - return - } - if resp.StatusCode != 200 { - return - } - defer resp.Body.Close() - - state := &mesosAgentState{} - err = json.NewDecoder(resp.Body).Decode(state) - if err != nil { - return - } - mesosAgentFlags = state.Flags - err = updateMasterFlag(&mesosAgentFlags) - return -} - -/* - Master flag can be passed as one of : - host:port - zk://host1:port1,host2:port2,.../path - zk://username:password@host1:port1,host2:port2,.../path - file:///path/to/file - This function takes care of all the above cases and updates flags with parsed values -*/ -func updateMasterFlag(flags *mesosAgentFlags) error { - zkPathPrefix := "zk://" - filePathPrefix := "file://" - if strings.HasPrefix(flags.Master, zkPathPrefix) { - beginIndex := len(zkPathPrefix) - if strings.Contains(flags.Master, "@") { - beginIndex = strings.Index(flags.Master, "@") + 1 - } - flags.Master = flags.Master[beginIndex:strings.LastIndex(flags.Master, "/")] - } else if strings.HasPrefix(flags.Master, filePathPrefix) { - content, err := ioutil.ReadFile(flags.Master) - if err != nil { - return err - } - if strings.Contains(string(content), filePathPrefix) { - return errors.New("invalid master file content") - } - flags.Master = string(content) - return updateMasterFlag(flags) - } else { - flags.hasMaster = true - } - return nil -} - // TODO: Expand this to be able to filter by job name and environment. func fetchJobs(cmd *cobra.Command, args []string) { log.Infof("Fetching tasks under role: %s \n", *role) @@ -550,136 +251,3 @@ func fetchJobs(cmd *cobra.Command, args []string) { } } } - -//fetchQuota gets quotas for roles in args -func fetchQuota(cmd *cobra.Command, args []string) { - for _, role := range args { - log.Infof("Fetching quota for role: %s \n", role) - result, err := client.GetQuota(role) - if err != nil { - log.Fatalf("error: %+v\n", err) - } - - if toJson { - fmt.Println(internal.ToJSON(result)) - } else { - fmt.Printf(" Quota: %v\n", internal.ToJSON(result.Quota.GetResources())) - fmt.Printf(" Aggregated Resources: \n") - fmt.Printf(" ProdSharedConsumption: %v\n", internal.ToJSON(result.ProdSharedConsumption.GetResources())) - fmt.Printf(" NonProdSharedConsumption: %v\n", - internal.ToJSON(result.NonProdSharedConsumption.GetResources())) - fmt.Printf(" ProdDedicatedConsumption: %v\n", - internal.ToJSON(result.ProdDedicatedConsumption.GetResources())) - fmt.Printf(" NonProdDedicatedConsumption: %v\n", - internal.ToJSON(result.NonProdDedicatedConsumption.GetResources())) - } - } -} - -//fetchAvailCapacity reports free capacity in details -func fetchAvailCapacity(cmd *cobra.Command, args []string) { - log.Infof("Fetching available capacity from %s/offers\n", client.GetSchedulerURL()) - - report, err := client.AvailOfferReport() - if err != nil { - log.Fatalf("error: %+v\n", err) - } - - // convert report to user-friendly structure - capacity := map[string]map[string]map[string]int64{} - for g, gv := range report { - if _, ok := capacity[g]; !ok { - capacity[g] = map[string]map[string]int64{} - } - - for r, rc := range gv { - if _, ok := capacity[g][r]; !ok { - capacity[g][r] = map[string]int64{} - } - - for v, c := range rc { - capacity[g][r][fmt.Sprint(v)] = c - } - } - } - - if toJson { - fmt.Println(internal.ToJSON(capacity)) - if err != nil { - log.Fatalf("error: %+v\n", err) - } - } else { - fmt.Println(capacity) - } -} - -//fetchTasksWithStatus returns lists of tasks for a given set of status -func fetchTasksWithStatus(cmd *cobra.Command, args []string) { - status := *taskStatus - - log.Infof("Fetching tasks for role/environment/job:[%s/%s/%s] \n", *role, *env, *name) - log.Infof("Fetching tasks for a given status: %v \n", status) - - // This Query takes nil for values it shouldn't need to match against. - // This allows us to potentially avoid expensive calls for specific environments, roles, or job names. - if *env == "" { - env = nil - } - if *role == "" { - role = nil - } - if *name == "" { - name = nil - } - // role needs to be specified if env is specified - if env != nil { - if role == nil { - log.Fatalln("Role must be specified when env is specified.") - } - } - // role or env needs to be specified if name is specified - if name != nil { - if role == nil && env == nil { - log.Fatalln("Role or env must be specified when name is specified.") - } - } - - queryStatuses, err := scheduleStatusFromString(status) - if err != nil { - log.Fatalf("error: %+v", err) - } - - taskQuery := &aurora.TaskQuery{Environment: env, Role: role, JobName: name, Statuses: queryStatuses} - - tasks, err := client.GetTasksWithoutConfigs(taskQuery) - if err != nil { - log.Fatalf("error: %+v", err) - } - - if toJson { - taskStatus := strings.ToUpper(status) - // convert task lists to a list of task id like role-env-name-[instance-id] - taskIdsMap := map[string][]string{} - var taskIds []string - for _, task := range tasks { - taskIds = append(taskIds, task.AssignedTask.TaskId) - } - taskIdsMap[taskStatus] = taskIds - fmt.Println(internal.ToJSON(taskIdsMap)) - } else { - fmt.Printf("Tasks for status %s:\n", strings.ToUpper(status)) - for _, t := range tasks { - fmt.Println(t.AssignedTask.TaskId) - } - } -} - -// Convert status slice into ScheduleStatus slice -func scheduleStatusFromString(status string) ([]aurora.ScheduleStatus, error) { - scheduleStatus, err := aurora.ScheduleStatusFromString(strings.ToUpper(status)) - if err != nil { - return nil, err - } - result := []aurora.ScheduleStatus{scheduleStatus} - return result, nil -} diff --git a/cmd/kill.go b/cmd/kill.go index 98e4401..3c3542b 100644 --- a/cmd/kill.go +++ b/cmd/kill.go @@ -15,9 +15,6 @@ package cmd import ( - "strconv" - "strings" - realis "github.com/aurora-scheduler/gorealis/v2" "github.com/spf13/cobra" ) @@ -29,26 +26,13 @@ func init() { // Kill Job killCmd.AddCommand(killJobCmd) - killCmd.AddCommand(killTasksCmd) killJobCmd.Flags().StringVarP(env, "environment", "e", "", "Aurora Environment") killJobCmd.Flags().StringVarP(role, "role", "r", "", "Aurora Role") killJobCmd.Flags().StringVarP(name, "name", "n", "", "Aurora Name") - killJobCmd.Flags().BoolVarP(&monitor, "monitor", "m", true, "monitor the result after sending the command") killJobCmd.MarkFlagRequired("environment") killJobCmd.MarkFlagRequired("role") killJobCmd.MarkFlagRequired("name") - - //Set flags for killTask sub-command - killTasksCmd.Flags().StringVarP(env, "environment", "e", "", "Aurora Environment") - killTasksCmd.Flags().StringVarP(role, "role", "r", "", "Aurora Role") - killTasksCmd.Flags().StringVarP(name, "name", "n", "", "Aurora Name") - killTasksCmd.Flags().StringVarP(instances, "instances", "I", "", "Instances e.g. 1, 2, 5") - killTasksCmd.Flags().BoolVarP(&monitor, "monitor", "m", true, "monitor the result after sending the command") - killTasksCmd.MarkFlagRequired("environment") - killTasksCmd.MarkFlagRequired("role") - killTasksCmd.MarkFlagRequired("name") - killTasksCmd.MarkFlagRequired("instances") } var killCmd = &cobra.Command{ @@ -62,24 +46,6 @@ var killJobCmd = &cobra.Command{ Run: killJob, } -/* -* The killTasks command allows the user to kill a specific task of a job. -* The command also allows the user to kill multiple tasks of the same job. To do so the user needs to pass a list of instance numbers as comma separated values. -* Pass the instance number of the job to be killed after the --instances or -I flag -* Please note that all the instances passed must belong to the same job. -* -* example : australis kill tasks -e "environment" -r "role" -n "job_name" -I "1" -* The above example kills instance number 1. -* -* example 2 : australis kill tasks -e "environment" -r "role" -n "job_name" -I "1, 5, 9" -* The above example kills tasks 1, 5 and 9, which are part of the same job - */ -var killTasksCmd = &cobra.Command{ - Use: "tasks", - Short: "Kill Aurora Tasks", - Run: killTasks, -} - func killJob(cmd *cobra.Command, args []string) { log.Infof("Killing job [Env:%s Role:%s Name:%s]\n", *env, *role, *name) @@ -91,49 +57,8 @@ func killJob(cmd *cobra.Command, args []string) { if err != nil { log.Fatalln(err) } - if monitor { - if ok, err := client.MonitorInstances(job.JobKey(), 0, 5, 50); !ok || err != nil { - log.Fatalln("Unable to kill all instances of job") - } - } -} - -func killTasks(cmd *cobra.Command, args []string) { - log.Infof("Killing task [Env:%s Role:%s Name:%s Instance:%s]\n", *env, *role, *name, *instances) - - //Set jobKey for the tasks to be killed. - task := realis.NewTask(). - Environment(*env). - Role(*role). - Name(*name) - - /* - * In the following block, we convert instance numbers, which were passed as strings, to integer values - * After converting them to integers, we add them to a slice of type int32. - */ - - splitString := strings.Split(*instances, ",") - instanceList := make([]int32, len(splitString)) - - for i := range instanceList { - splitString[i] = strings.TrimSpace(splitString[i]) - instanceNumber, intErr := strconv.Atoi(splitString[i]) - if intErr != nil { - log.Fatalln("Instance passed should be a number. Error: " + intErr.Error()) - return - } else { - instanceList[i] = int32(instanceNumber) - } - } - - //Call the killtasks function, passing the instanceList as the list of instances to be killed. - if _, err := client.KillInstances(task.JobKey(), instanceList...); err != nil { - log.Fatalln(err) - } - - if monitor { - if ok, err := client.MonitorInstances(task.JobKey(), 0, 5, 50); !ok || err != nil { - log.Fatalln("Unable to kill the given task") - } + + if ok, err := client.MonitorInstances(job.JobKey(), 0, 5, 50); !ok || err != nil { + log.Fatalln("Unable to kill all instances of job") } } diff --git a/cmd/restart.go b/cmd/restart.go index c207ffb..e5f8701 100644 --- a/cmd/restart.go +++ b/cmd/restart.go @@ -15,96 +15,34 @@ package cmd import ( - "strconv" - "strings" - - realis "github.com/aurora-scheduler/gorealis/v2" - - "github.com/aurora-scheduler/gorealis/v2/gen-go/apache/aurora" - "github.com/spf13/cobra" + "github.com/aurora-scheduler/gorealis/v2/gen-go/apache/aurora" + "github.com/spf13/cobra" ) func init() { - rootCmd.AddCommand(restartCmd) + rootCmd.AddCommand(restartCmd) - restartCmd.AddCommand(restartJobCmd) - restartJobCmd.Flags().StringVarP(env, "environment", "e", "", "Aurora Environment") - restartJobCmd.Flags().StringVarP(role, "role", "r", "", "Aurora Role") - restartJobCmd.Flags().StringVarP(name, "name", "n", "", "Aurora Name") - restartCmd.AddCommand(restartTasksCmd) - restartTasksCmd.Flags().StringVarP(env, "environment", "e", "", "Aurora Environment") - restartTasksCmd.Flags().StringVarP(role, "role", "r", "", "Aurora Role") - restartTasksCmd.Flags().StringVarP(name, "name", "n", "", "Aurora Name") - restartTasksCmd.Flags().StringVarP(instances, "instances", "I", "", "Instances e.g. 1, 2, 5") - restartTasksCmd.Flags().BoolVarP(&monitor, "monitor", "m", true, "monitor the result after sending the command") - restartTasksCmd.MarkFlagRequired("environment") - restartTasksCmd.MarkFlagRequired("role") - restartTasksCmd.MarkFlagRequired("name") - restartTasksCmd.MarkFlagRequired("instances") + restartCmd.AddCommand(restartJobCmd) + restartJobCmd.Flags().StringVarP(env, "environment", "e", "", "Aurora Environment") + restartJobCmd.Flags().StringVarP(role, "role", "r", "", "Aurora Role") + restartJobCmd.Flags().StringVarP(name, "name", "n", "", "Aurora Name") } var restartCmd = &cobra.Command{ - Use: "restart", - Short: "Restart an Aurora Job.", + Use: "restart", + Short: "Restart an Aurora Job.", } var restartJobCmd = &cobra.Command{ - Use: "job", - Short: "Restart a Job.", - Run: restartJob, -} - -var restartTasksCmd = &cobra.Command{ - Use: "tasks", - Short: "Restart tasks for a Job.", - Run: restartTasks, + Use: "job", + Short: "Restart a Job.", + Run: restartJob, } func restartJob(cmd *cobra.Command, args []string) { - key := aurora.JobKey{Environment: *env, Role: *role, Name: *name} - if err := client.RestartJob(key); err != nil { - log.Fatal("unable to create Aurora job: ", err) - } -} - -func restartTasks(cmd *cobra.Command, args []string) { - log.Infof("Restarts task [Env:%s Role:%s Name:%s Instance:%s Monitor:%s]\n", *env, *role, *name, *instances, strconv.FormatBool(monitor)) - - //Set jobKey for the tasks to be killed. - task := realis.NewTask(). - Environment(*env). - Role(*role). - Name(*name) - - /* - * In the following block, we convert instance numbers, which were passed as strings, to integer values - * After converting them to integers, we add them to a slice of type int32. - */ - - splitString := strings.Split(*instances, ",") - instanceList := make([]int32, len(splitString)) - - for i := range instanceList { - splitString[i] = strings.TrimSpace(splitString[i]) - var instanceNumber int - var err error - if instanceNumber, err = strconv.Atoi(splitString[i]); err != nil { - log.Fatalln("Instance passed should be a number. Error: " + err.Error()) - return - } - instanceList[i] = int32(instanceNumber) - } - - //Call the RestartInstances function, passing the instanceList as the list of instances to be restarted. - if err := client.RestartInstances(task.JobKey(), instanceList...); err != nil { - log.Fatalln(err) - } - - if monitor { - if ok, err := client.MonitorInstances(task.JobKey(), int32(len(instanceList)), 5, 50); !ok || err != nil { - log.Fatalln("Monitor failed to monitor the given task after restart. Error: " + err.Error()) - } - } - + key := aurora.JobKey{Environment: *env, Role: *role, Name: *name} + if err := client.RestartJob(key); err != nil { + log.Fatal("unable to create Aurora job: ", err) + } } diff --git a/cmd/root.go b/cmd/root.go index 722358b..ad50772 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -29,8 +29,7 @@ import ( var username, password, zkAddr, schedAddr string var env, role, name = new(string), new(string), new(string) -var dedicated string -var ram, disk, gpu, port int64 +var ram, disk int64 var cpu float64 var client *realis.Client var skipCertVerification bool @@ -47,13 +46,9 @@ var count int64 var filename string var message = new(string) var updateID string -var monitor bool -var timeout time.Duration var log = logrus.New() -var taskStatus = new(string) -var instances = new(string) -const australisVer = "v1.0.5" +const australisVer = "v0.22.0" var forceDrainTimeout time.Duration @@ -72,7 +67,6 @@ func init() { rootCmd.PersistentFlags().StringVar(&configFile, "config", "/etc/aurora/australis.yml", "Config file to use.") rootCmd.PersistentFlags().BoolVar(&toJson, "toJSON", false, "Print output in JSON format.") rootCmd.PersistentFlags().StringVarP(&logLevel, "logLevel", "l", "info", "Set logging level ["+internal.GetLoggingLevels()+"].") - rootCmd.PersistentFlags().DurationVarP(&timeout, "timeout", "t", 20*time.Second, "Gorealis timeout.") } var rootCmd = &cobra.Command{ @@ -147,7 +141,7 @@ func connect(cmd *cobra.Command, args []string) { realisOptions := []realis.ClientOption{realis.BasicAuth(username, password), realis.ThriftJSON(), - realis.Timeout(timeout), + realis.Timeout(20 * time.Second), realis.BackOff(realis.Backoff{ Steps: 2, Duration: 10 * time.Second, diff --git a/cmd/simulate.go b/cmd/simulate.go deleted file mode 100644 index a292693..0000000 --- a/cmd/simulate.go +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package cmd - -import ( - "fmt" - - "github.com/aurora-scheduler/australis/internal" - "github.com/spf13/cobra" -) - -func init() { - rootCmd.AddCommand(simulateCmd) - - simulateCmd.AddCommand(fitCmd) -} - -var simulateCmd = &cobra.Command{ - Use: "simulate", - Short: "Simulate some work based on the current cluster condition, and return the output", -} - -var fitCmd = &cobra.Command{ - Use: "fit", - Short: "Compute how many tasks can we fit to a cluster", - Run: fit, - Args: cobra.RangeArgs(1, 2), -} - -func fit(cmd *cobra.Command, args []string) { - log.Infof("Compute how many tasks can be fit in the remaining cluster capacity") - - taskConfig, err := internal.UnmarshalTaskConfig(args[0]) - if err != nil { - log.Fatalln(err) - } - - offers, err := client.Offers() - if err != nil { - log.Fatal("error: %+v", err) - } - - numTasks, err := client.FitTasks(taskConfig, offers) - if err != nil { - log.Fatal("error: %+v", err) - } - - fmt.Println(numTasks) -} diff --git a/deb-packaging/Dockerfile b/deb-packaging/Dockerfile index 6088aa8..ab6b14e 100644 --- a/deb-packaging/Dockerfile +++ b/deb-packaging/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:16.04 RUN apt-get update -y && \ apt-get install -y build-essential devscripts dh-exec dh-make git lintian wget && \ - wget https://dl.google.com/go/go1.15.2.linux-amd64.tar.gz -O /tmp/go.tar.gz + wget https://dl.google.com/go/go1.12.6.linux-amd64.tar.gz -O /tmp/go.tar.gz RUN tar -C /usr/local -xzf /tmp/go.tar.gz diff --git a/deb-packaging/build_deb.sh b/deb-packaging/build_deb.sh index 958eaa8..6906d3d 100644 --- a/deb-packaging/build_deb.sh +++ b/deb-packaging/build_deb.sh @@ -2,4 +2,4 @@ docker build . -t australis_deb_builder -docker run --rm -v $HOME/go/pkg/mod:/go/pkg/mod -v $(pwd)/..:/australis australis_deb_builder +docker run --rm -v $HOME/go/pkg/mod:/go/pkg/mod -v $(pwd)/..:/australis australis_builder diff --git a/deb-packaging/entrypoint.sh b/deb-packaging/entrypoint.sh index 601733e..b871d59 100755 --- a/deb-packaging/entrypoint.sh +++ b/deb-packaging/entrypoint.sh @@ -1,9 +1,12 @@ #!/bin/bash +# Temporary fix for a go mods bug +rm /australis/go.sum + # Build debian package cd /australis debuild -d -us -uc -b # Move resulting packages to the dist folder mkdir -p /australis/dist -mv /australis_*_amd64* /australis/dist +mv /australis_*_amd64* /australis/dist \ No newline at end of file diff --git a/debian/changelog b/debian/changelog index 07a8161..50dc650 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,51 +1,8 @@ -australis (1.0.5) stable; urgency=medium +australis (0.1.2) unstable; urgency=medium - * kill tasks - * fetch all aurora & mesos master nodes + * Unreleased - -- Nhat Tan Le Wed, 31 Aug 2022 15:03:24 -0700 - -australis (1.0.4) stable; urgency=medium - - * fetch free capacity - * simulate task fitting - compute how many tasks can be fit in the remaining capacity - - -- Nhat Tan Le Tue, 2 Aug 2022 16:19:24 -0700 - -australis (1.0.3) stable; urgency=medium - - * Update CI to compile on PRs - * Add tier and production in task config - * Add fetch quota command - * Add priority into job config - - -- Nhat Tan Le Wed, 20 Oct 2021 14:24:10 -0700 - -australis (1.0.2) stable; urgency=medium - - * Fixing broken Thrift dependency by bumping up backported version to thrift v0.13.2 - - -- Renan Del Valle Mon, 11 Jan 2021 17:57:10 -0800 - -australis (1.0.1) stable; urgency=medium - - * Added flag -m and --monitor that can be set in order to monitor a job creation or a job kill. By default monitor is set to true. - - -- Renan Del Valle Wed, 30 Sep 2020 16:46:56 -0700 - -australis (1.0.0) stable; urgency=medium - - * First stable release. - - -- Renan Del Valle Wed, 30 Sep 2020 15:39:29 -0700 - -australis (0.22.0) unstable; urgency=medium - - * Added support for starting job updates. - * Added support for setting SlaAwareness for updates. - * Added upport for scheduling cron jobs. - - -- Renan Del Valle Thu, 07 May 2020 12:00:00 -0700 + -- Renan DelValle Mon, 19 Feb 2020 12:00:00 -0700 australis (0.1.1) unstable; urgency=medium diff --git a/docs/australis.md b/docs/australis.md index 4c257ec..1374c86 100644 --- a/docs/australis.md +++ b/docs/australis.md @@ -18,7 +18,6 @@ A light-weight command line client for use with Apache Aurora built using goreal -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -37,8 +36,7 @@ A light-weight command line client for use with Apache Aurora built using goreal * [australis rollback](australis_rollback.md) - Rollback an operation such as an Update * [australis schedule](australis_schedule.md) - Schedule a cron job on Aurora scheduler * [australis set](australis_set.md) - Set a value in the Aurora Scheduler. -* [australis simulate](australis_simulate.md) - Simulate some work based on the current cluster condition, and return the output * [australis start](australis_start.md) - Start a service, maintenance on a host (DRAIN), a snapshot, an update, or a backup. * [australis stop](australis_stop.md) - Stop a service or maintenance on a host (DRAIN). -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_create.md b/docs/australis_create.md index dc01c77..3a605c8 100644 --- a/docs/australis_create.md +++ b/docs/australis_create.md @@ -13,8 +13,7 @@ australis create [flags] ### Options ``` - -h, --help help for create - -m, --monitor monitor the result after sending the command (default true) + -h, --help help for create ``` ### Options inherited from parent commands @@ -28,7 +27,6 @@ australis create [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -38,4 +36,4 @@ australis create [flags] * [australis](australis.md) - australis is a client for Apache Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch.md b/docs/australis_fetch.md index 8853103..d229a42 100644 --- a/docs/australis_fetch.md +++ b/docs/australis_fetch.md @@ -23,7 +23,6 @@ Fetch information from Aurora -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -32,14 +31,9 @@ Fetch information from Aurora ### SEE ALSO * [australis](australis.md) - australis is a client for Apache Aurora -* [australis fetch capacity](australis_fetch_capacity.md) - Fetch capacity report * [australis fetch jobs](australis_fetch_jobs.md) - Fetch a list of task Aurora running under a role. * [australis fetch leader](australis_fetch_leader.md) - Fetch current Aurora leader given Zookeeper nodes. -* [australis fetch master](australis_fetch_master.md) - Fetch current Aurora master nodes/leader given Zookeeper nodes. -* [australis fetch mesos](australis_fetch_mesos.md) - Fetch information from Mesos. -* [australis fetch quota](australis_fetch_quota.md) - Fetch the quotas of given roles * [australis fetch status](australis_fetch_status.md) - Fetch the maintenance status of a node from Aurora * [australis fetch task](australis_fetch_task.md) - Task information from Aurora -* [australis fetch tasks](australis_fetch_tasks.md) - Fetch tasks with status -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_jobs.md b/docs/australis_fetch_jobs.md index a150ae4..ad9c045 100644 --- a/docs/australis_fetch_jobs.md +++ b/docs/australis_fetch_jobs.md @@ -28,7 +28,6 @@ australis fetch jobs [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -38,4 +37,4 @@ australis fetch jobs [flags] * [australis fetch](australis_fetch.md) - Fetch information from Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_leader.md b/docs/australis_fetch_leader.md index 0a326b8..e69dab3 100644 --- a/docs/australis_fetch_leader.md +++ b/docs/australis_fetch_leader.md @@ -29,7 +29,6 @@ australis fetch leader [zkNode0, zkNode1, ...zkNodeN] [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -39,4 +38,4 @@ australis fetch leader [zkNode0, zkNode1, ...zkNodeN] [flags] * [australis fetch](australis_fetch.md) - Fetch information from Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_master.md b/docs/australis_fetch_master.md deleted file mode 100644 index 9f8da1c..0000000 --- a/docs/australis_fetch_master.md +++ /dev/null @@ -1,42 +0,0 @@ -## australis fetch master - -Fetch current Aurora master nodes/leader given Zookeeper nodes. - -### Synopsis - -Gets the current aurora master nodes/leader using information from Zookeeper path. -Pass Zookeeper nodes separated by a space as an argument to this command. - -``` -australis fetch master [zkNode0 zkNode1 ...zkNodeN] [flags] -``` - -### Options - -``` - -h, --help help for master - --zkPath string Zookeeper node path to get master nodes/leader (default "/aurora/scheduler") -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis fetch](australis_fetch.md) - Fetch information from Aurora - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_fetch_mesos.md b/docs/australis_fetch_mesos.md deleted file mode 100644 index 3926905..0000000 --- a/docs/australis_fetch_mesos.md +++ /dev/null @@ -1,38 +0,0 @@ -## australis fetch mesos - -Fetch information from Mesos. - -### Synopsis - -Fetch information from Mesos. - -### Options - -``` - -h, --help help for mesos -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis fetch](australis_fetch.md) - Fetch information from Aurora -* [australis fetch mesos leader](australis_fetch_mesos_leader.md) - Fetch current Mesos-master leader given Zookeeper nodes. -* [australis fetch mesos master](australis_fetch_mesos_master.md) - Fetch current Mesos-master nodes/leader given Zookeeper nodes. - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_fetch_mesos_leader.md b/docs/australis_fetch_mesos_leader.md deleted file mode 100644 index c6557b9..0000000 --- a/docs/australis_fetch_mesos_leader.md +++ /dev/null @@ -1,43 +0,0 @@ -## australis fetch mesos leader - -Fetch current Mesos-master leader given Zookeeper nodes. - -### Synopsis - -Gets the current leading Mesos-master instance using information from Zookeeper path. -Pass Zookeeper nodes separated by a space as an argument to this command. If no nodes are provided, -it fetches leader from local Mesos agent or Zookeeper - -``` -australis fetch mesos leader [zkNode0, zkNode1, ...zkNodeN] [flags] -``` - -### Options - -``` - -h, --help help for leader - --zkPath string Zookeeper node path where mesos leader election happens (default "/mesos") -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis fetch mesos](australis_fetch_mesos.md) - Fetch information from Mesos. - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_fetch_mesos_master.md b/docs/australis_fetch_mesos_master.md deleted file mode 100644 index 7f35c9a..0000000 --- a/docs/australis_fetch_mesos_master.md +++ /dev/null @@ -1,43 +0,0 @@ -## australis fetch mesos master - -Fetch current Mesos-master nodes/leader given Zookeeper nodes. - -### Synopsis - -Gets the current Mesos-master instances using information from Zookeeper path. -Pass Zookeeper nodes separated by a space as an argument to this command. If no nodes are provided, -it fetches Mesos-master nodes/leader from local Mesos agent or Zookeeper - -``` -australis fetch mesos master [zkNode0 zkNode1 ...zkNodeN] [flags] -``` - -### Options - -``` - -h, --help help for master - --zkPath string Zookeeper node path to get mesos master nodes/leader (default "/mesos") -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis fetch mesos](australis_fetch_mesos.md) - Fetch information from Mesos. - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_fetch_quota.md b/docs/australis_fetch_quota.md deleted file mode 100644 index d3583ff..0000000 --- a/docs/australis_fetch_quota.md +++ /dev/null @@ -1,40 +0,0 @@ -## australis fetch quota - -Fetch the quotas of given roles - -### Synopsis - -This command will print list of resource quotas with the aggregated resources for the given roles - -``` -australis fetch quota [flags] -``` - -### Options - -``` - -h, --help help for quota -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis fetch](australis_fetch.md) - Fetch information from Aurora - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_fetch_status.md b/docs/australis_fetch_status.md index a80cacf..62f944e 100644 --- a/docs/australis_fetch_status.md +++ b/docs/australis_fetch_status.md @@ -27,7 +27,6 @@ australis fetch status [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -37,4 +36,4 @@ australis fetch status [flags] * [australis fetch](australis_fetch.md) - Fetch information from Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_task.md b/docs/australis_fetch_task.md index b6ce7c2..b902053 100644 --- a/docs/australis_fetch_task.md +++ b/docs/australis_fetch_task.md @@ -23,7 +23,6 @@ Task information from Aurora -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -35,4 +34,4 @@ Task information from Aurora * [australis fetch task config](australis_fetch_task_config.md) - Fetch a list of task configurations from Aurora. * [australis fetch task status](australis_fetch_task_status.md) - Fetch task status for a Job key. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_task_config.md b/docs/australis_fetch_task_config.md index 23b1005..88e6c56 100644 --- a/docs/australis_fetch_task_config.md +++ b/docs/australis_fetch_task_config.md @@ -30,7 +30,6 @@ australis fetch task config [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -40,4 +39,4 @@ australis fetch task config [flags] * [australis fetch task](australis_fetch_task.md) - Task information from Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_task_status.md b/docs/australis_fetch_task_status.md index bd44edf..f378e3c 100644 --- a/docs/australis_fetch_task_status.md +++ b/docs/australis_fetch_task_status.md @@ -30,7 +30,6 @@ australis fetch task status [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -40,4 +39,4 @@ australis fetch task status [flags] * [australis fetch task](australis_fetch_task.md) - Task information from Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_tasks.md b/docs/australis_fetch_tasks.md deleted file mode 100644 index 71dd4a8..0000000 --- a/docs/australis_fetch_tasks.md +++ /dev/null @@ -1,44 +0,0 @@ -## australis fetch tasks - -Fetch tasks with status - -### Synopsis - -This command will return the list of tasks with a given status - -``` -australis fetch tasks [flags] -``` - -### Options - -``` - -e, --environment string Aurora Environment - -h, --help help for tasks - -n, --name string Aurora Name - -r, --role string Aurora Role - -x, --status string Task Status -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis fetch](australis_fetch.md) - Fetch information from Aurora - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_force.md b/docs/australis_force.md index 420123d..cd62da0 100644 --- a/docs/australis_force.md +++ b/docs/australis_force.md @@ -23,7 +23,6 @@ Force the scheduler to do a snapshot, a backup, or a task reconciliation. -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -36,4 +35,4 @@ Force the scheduler to do a snapshot, a backup, or a task reconciliation. * [australis force recon](australis_force_recon.md) - Force the leading scheduler to perform a reconciliation. * [australis force snapshot](australis_force_snapshot.md) - Force the leading scheduler to perform a Snapshot. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_force_backup.md b/docs/australis_force_backup.md index 81ce196..453c91f 100644 --- a/docs/australis_force_backup.md +++ b/docs/australis_force_backup.md @@ -28,7 +28,6 @@ australis force backup [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -38,4 +37,4 @@ australis force backup [flags] * [australis force](australis_force.md) - Force the scheduler to do a snapshot, a backup, or a task reconciliation. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_force_recon.md b/docs/australis_force_recon.md index b470706..17758d2 100644 --- a/docs/australis_force_recon.md +++ b/docs/australis_force_recon.md @@ -30,7 +30,6 @@ state for all currently known non-terminal tasks. -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -42,4 +41,4 @@ state for all currently known non-terminal tasks. * [australis force recon explicit](australis_force_recon_explicit.md) - Force the leading scheduler to perform an explicit recon. * [australis force recon implicit](australis_force_recon_implicit.md) - Force the leading scheduler to perform an implicit recon. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_force_recon_explicit.md b/docs/australis_force_recon_explicit.md index cbc1be8..802450b 100644 --- a/docs/australis_force_recon_explicit.md +++ b/docs/australis_force_recon_explicit.md @@ -29,7 +29,6 @@ australis force recon explicit [batch_size] [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -39,4 +38,4 @@ australis force recon explicit [batch_size] [flags] * [australis force recon](australis_force_recon.md) - Force the leading scheduler to perform a reconciliation. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_force_recon_implicit.md b/docs/australis_force_recon_implicit.md index e5b1159..ff30e2b 100644 --- a/docs/australis_force_recon_implicit.md +++ b/docs/australis_force_recon_implicit.md @@ -28,7 +28,6 @@ australis force recon implicit [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -38,4 +37,4 @@ australis force recon implicit [flags] * [australis force recon](australis_force_recon.md) - Force the leading scheduler to perform a reconciliation. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_force_snapshot.md b/docs/australis_force_snapshot.md index 1e89739..8ce8081 100644 --- a/docs/australis_force_snapshot.md +++ b/docs/australis_force_snapshot.md @@ -28,7 +28,6 @@ australis force snapshot [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -38,4 +37,4 @@ australis force snapshot [flags] * [australis force](australis_force.md) - Force the scheduler to do a snapshot, a backup, or a task reconciliation. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_kill.md b/docs/australis_kill.md index 0398dac..89e914d 100644 --- a/docs/australis_kill.md +++ b/docs/australis_kill.md @@ -23,7 +23,6 @@ Kill an Aurora Job -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -33,6 +32,5 @@ Kill an Aurora Job * [australis](australis.md) - australis is a client for Apache Aurora * [australis kill job](australis_kill_job.md) - Kill an Aurora Job -* [australis kill tasks](australis_kill_tasks.md) - Kill Aurora Tasks -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_fetch_capacity.md b/docs/australis_kill_entire-cluster.md similarity index 72% rename from docs/australis_fetch_capacity.md rename to docs/australis_kill_entire-cluster.md index d26f37c..5d8585d 100644 --- a/docs/australis_fetch_capacity.md +++ b/docs/australis_kill_entire-cluster.md @@ -1,19 +1,19 @@ -## australis fetch capacity +## australis kill entire-cluster -Fetch capacity report +Kill every task in the cluster. ### Synopsis -This command will show detailed capacity report of the cluster +To be written. ``` -australis fetch capacity [flags] +australis kill entire-cluster [flags] ``` ### Options ``` - -h, --help help for capacity + -h, --help help for entire-cluster ``` ### Options inherited from parent commands @@ -27,7 +27,6 @@ australis fetch capacity [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -35,6 +34,6 @@ australis fetch capacity [flags] ### SEE ALSO -* [australis fetch](australis_fetch.md) - Fetch information from Aurora +* [australis kill](australis_kill.md) - Kill an Aurora Job -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 22-Mar-2019 diff --git a/docs/australis_kill_job.md b/docs/australis_kill_job.md index 4ca1e6e..0a12da3 100644 --- a/docs/australis_kill_job.md +++ b/docs/australis_kill_job.md @@ -15,7 +15,6 @@ australis kill job [flags] ``` -e, --environment string Aurora Environment -h, --help help for job - -m, --monitor monitor the result after sending the command (default true) -n, --name string Aurora Name -r, --role string Aurora Role ``` @@ -31,7 +30,6 @@ australis kill job [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -41,4 +39,4 @@ australis kill job [flags] * [australis kill](australis_kill.md) - Kill an Aurora Job -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_kill_tasks.md b/docs/australis_kill_tasks.md deleted file mode 100644 index 274ad4d..0000000 --- a/docs/australis_kill_tasks.md +++ /dev/null @@ -1,45 +0,0 @@ -## australis kill tasks - -Kill Aurora Tasks - -### Synopsis - -Kill Aurora Tasks - -``` -australis kill tasks [flags] -``` - -### Options - -``` - -e, --environment string Aurora Environment - -h, --help help for tasks - -I, --instances string Instances e.g. 1, 2, 5 - -m, --monitor monitor the result after sending the command (default true) - -n, --name string Aurora Name - -r, --role string Aurora Role -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis kill](australis_kill.md) - Kill an Aurora Job - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_monitor.md b/docs/australis_monitor.md index 50fea35..aa77d1c 100644 --- a/docs/australis_monitor.md +++ b/docs/australis_monitor.md @@ -23,7 +23,6 @@ Watch for a specific state change -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -34,4 +33,4 @@ Watch for a specific state change * [australis](australis.md) - australis is a client for Apache Aurora * [australis monitor hosts](australis_monitor_hosts.md) - Watch a host maintenance status until it enters one of the desired statuses. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_monitor_hosts.md b/docs/australis_monitor_hosts.md index 8264253..4dd1ded 100644 --- a/docs/australis_monitor_hosts.md +++ b/docs/australis_monitor_hosts.md @@ -17,6 +17,7 @@ australis monitor hosts [flags] -h, --help help for hosts --interval duration Interval at which to poll scheduler. (default 5s) --statuses strings List of acceptable statuses for a host to be in. (case-insensitive) [NONE, SCHEDULED, DRAINED, DRAINING] (default [DRAINED]) + --timeout duration Time after which the monitor will stop polling and throw an error. (default 10m0s) ``` ### Options inherited from parent commands @@ -30,7 +31,6 @@ australis monitor hosts [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -40,4 +40,4 @@ australis monitor hosts [flags] * [australis monitor](australis_monitor.md) - Watch for a specific state change -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_pulse.md b/docs/australis_pulse.md index a152e9b..0dc480a 100644 --- a/docs/australis_pulse.md +++ b/docs/australis_pulse.md @@ -31,7 +31,6 @@ australis pulse [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -41,4 +40,4 @@ australis pulse [flags] * [australis](australis.md) - australis is a client for Apache Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_restart.md b/docs/australis_restart.md index 81ea511..79037d4 100644 --- a/docs/australis_restart.md +++ b/docs/australis_restart.md @@ -23,7 +23,6 @@ Restart an Aurora Job. -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -34,4 +33,4 @@ Restart an Aurora Job. * [australis](australis.md) - australis is a client for Apache Aurora * [australis restart job](australis_restart_job.md) - Restart a Job. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_restart_job.md b/docs/australis_restart_job.md index 83be678..4225b66 100644 --- a/docs/australis_restart_job.md +++ b/docs/australis_restart_job.md @@ -30,7 +30,6 @@ australis restart job [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -40,4 +39,4 @@ australis restart job [flags] * [australis restart](australis_restart.md) - Restart an Aurora Job. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_restart_tasks.md b/docs/australis_restart_tasks.md deleted file mode 100644 index 1f33c79..0000000 --- a/docs/australis_restart_tasks.md +++ /dev/null @@ -1,45 +0,0 @@ -## australis restart tasks - -Restart tasks for a Job. - -### Synopsis - -Restart tasks for a Job. - -``` -australis restart tasks [flags] -``` - -### Options - -``` - -e, --environment string Aurora Environment - -h, --help help for tasks - -I, --instances string Instances e.g. 1, 2, 5 - -m, --monitor monitor the result after sending the command (default true) - -n, --name string Aurora Name - -r, --role string Aurora Role -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis restart](australis_restart.md) - Restart an Aurora Job. - -###### Auto generated by spf13/cobra on 21-Sep-2022 diff --git a/docs/australis_resume.md b/docs/australis_resume.md index 8a63327..f7697c4 100644 --- a/docs/australis_resume.md +++ b/docs/australis_resume.md @@ -32,7 +32,6 @@ australis resume [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -42,4 +41,4 @@ australis resume [flags] * [australis](australis.md) - australis is a client for Apache Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_rollback.md b/docs/australis_rollback.md index e6a2da9..7b0f871 100644 --- a/docs/australis_rollback.md +++ b/docs/australis_rollback.md @@ -23,7 +23,6 @@ Rollback an operation such as an Update -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -34,4 +33,4 @@ Rollback an operation such as an Update * [australis](australis.md) - australis is a client for Apache Aurora * [australis rollback update](australis_rollback_update.md) - Rollback an update -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_rollback_update.md b/docs/australis_rollback_update.md index e4dedee..5d798ba 100644 --- a/docs/australis_rollback_update.md +++ b/docs/australis_rollback_update.md @@ -32,7 +32,6 @@ australis rollback update [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -42,4 +41,4 @@ australis rollback update [flags] * [australis rollback](australis_rollback.md) - Rollback an operation such as an Update -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_schedule.md b/docs/australis_schedule.md index 7e139ba..0218243 100644 --- a/docs/australis_schedule.md +++ b/docs/australis_schedule.md @@ -27,7 +27,6 @@ australis schedule [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -37,4 +36,4 @@ australis schedule [flags] * [australis](australis.md) - australis is a client for Apache Aurora -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_set.md b/docs/australis_set.md index f462012..6efb0b4 100644 --- a/docs/australis_set.md +++ b/docs/australis_set.md @@ -23,7 +23,6 @@ Set a value in the Aurora Scheduler. -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -34,4 +33,4 @@ Set a value in the Aurora Scheduler. * [australis](australis.md) - australis is a client for Apache Aurora * [australis set quota](australis_set_quota.md) - Set Quota resources for a role. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_set_quota.md b/docs/australis_set_quota.md index cf28a6b..555f195 100644 --- a/docs/australis_set_quota.md +++ b/docs/australis_set_quota.md @@ -27,7 +27,6 @@ australis set quota cpu: ram: disk: [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -37,4 +36,4 @@ australis set quota cpu: ram: disk: [flags] * [australis set](australis_set.md) - Set a value in the Aurora Scheduler. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_simulate.md b/docs/australis_simulate.md deleted file mode 100644 index 33de188..0000000 --- a/docs/australis_simulate.md +++ /dev/null @@ -1,37 +0,0 @@ -## australis simulate - -Simulate some work based on the current cluster condition, and return the output - -### Synopsis - -Simulate some work based on the current cluster condition, and return the output - -### Options - -``` - -h, --help help for simulate -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis](australis.md) - australis is a client for Apache Aurora -* [australis simulate fit](australis_simulate_fit.md) - Compute how many tasks can we fit to a cluster - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_simulate_fit.md b/docs/australis_simulate_fit.md deleted file mode 100644 index 384c96d..0000000 --- a/docs/australis_simulate_fit.md +++ /dev/null @@ -1,40 +0,0 @@ -## australis simulate fit - -Compute how many tasks can we fit to a cluster - -### Synopsis - -Compute how many tasks can we fit to a cluster - -``` -australis simulate fit [flags] -``` - -### Options - -``` - -h, --help help for fit -``` - -### Options inherited from parent commands - -``` - -a, --caCertsPath string Path where CA certificates can be found. - -c, --clientCert string Client certificate to use to connect to Aurora. - -k, --clientKey string Client key to use to connect to Aurora. - --config string Config file to use. (default "/etc/aurora/australis.yml") - -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") - -p, --password string Password to use for API authentication - -s, --scheduler_addr string Aurora Scheduler's address. - -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) - --toJSON Print output in JSON format. - -u, --username string Username to use for API authentication - -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) -``` - -### SEE ALSO - -* [australis simulate](australis_simulate.md) - Simulate some work based on the current cluster condition, and return the output - -###### Auto generated by spf13/cobra on 8-Sep-2022 diff --git a/docs/australis_start.md b/docs/australis_start.md index 1ca4b1a..b4390c7 100644 --- a/docs/australis_start.md +++ b/docs/australis_start.md @@ -23,7 +23,6 @@ Start a service, maintenance on a host (DRAIN), a snapshot, an update, or a back -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -37,4 +36,4 @@ Start a service, maintenance on a host (DRAIN), a snapshot, an update, or a back * [australis start sla-drain](australis_start_sla-drain.md) - Place a list of space separated Mesos Agents into maintenance mode using SLA aware strategies. * [australis start update](australis_start_update.md) - Start an update on an Aurora long running service. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_start_drain.md b/docs/australis_start_drain.md index bd16f94..5462952 100644 --- a/docs/australis_start_drain.md +++ b/docs/australis_start_drain.md @@ -20,6 +20,7 @@ australis start drain [space separated host list or use JSON flags] [flags] --interval duration Interval at which to poll scheduler. (default 5s) --json Read JSON list of agents from the STDIN. --json-file string JSON file to read list of agents from. + --timeout duration Time after which the monitor will stop polling and throw an error. (default 10m0s) ``` ### Options inherited from parent commands @@ -33,7 +34,6 @@ australis start drain [space separated host list or use JSON flags] [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -43,4 +43,4 @@ australis start drain [space separated host list or use JSON flags] [flags] * [australis start](australis_start.md) - Start a service, maintenance on a host (DRAIN), a snapshot, an update, or a backup. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_start_maintenance.md b/docs/australis_start_maintenance.md index 78b88da..ff93667 100644 --- a/docs/australis_start_maintenance.md +++ b/docs/australis_start_maintenance.md @@ -19,6 +19,7 @@ australis start maintenance [space separated host list or use JSON flags] [flags --interval duration Interval at which to poll scheduler. (default 5s) --json Read JSON list of agents from the STDIN. --json-file string JSON file to read list of agents from. + --timeout duration Time after which the monitor will stop polling and throw an error. (default 10m0s) ``` ### Options inherited from parent commands @@ -32,7 +33,6 @@ australis start maintenance [space separated host list or use JSON flags] [flags -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -42,4 +42,4 @@ australis start maintenance [space separated host list or use JSON flags] [flags * [australis start](australis_start.md) - Start a service, maintenance on a host (DRAIN), a snapshot, an update, or a backup. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_start_sla-drain.md b/docs/australis_start_sla-drain.md index cafc961..831507d 100644 --- a/docs/australis_start_sla-drain.md +++ b/docs/australis_start_sla-drain.md @@ -28,6 +28,7 @@ australis start sla-drain [space separated host list or use JSON flags] [flags] --json-file string JSON file to read list of agents from. --percentage float Percentage of instances that should be running to meet SLA. (default 80) --sla-limit duration Time limit after which SLA-Aware drain sheds SLA Awareness. (default 1h0m0s) + --timeout duration Time after which the monitor will stop polling and throw an error. (default 20m0s) ``` ### Options inherited from parent commands @@ -41,7 +42,6 @@ australis start sla-drain [space separated host list or use JSON flags] [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -51,4 +51,4 @@ australis start sla-drain [space separated host list or use JSON flags] [flags] * [australis start](australis_start.md) - Start a service, maintenance on a host (DRAIN), a snapshot, an update, or a backup. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_start_sla-drain_count.md b/docs/australis_start_sla-drain_count.md new file mode 100644 index 0000000..457d559 --- /dev/null +++ b/docs/australis_start_sla-drain_count.md @@ -0,0 +1,45 @@ +## australis start sla-drain count + +Place a list of space separated Mesos Agents into maintenance mode using the count SLA aware policy as a fallback. + +### Synopsis + +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. + +``` +australis start sla-drain count [space separated host list] [flags] +``` + +### Options + +``` + --count int Instances count that should be running to meet SLA. (default 5) + --duration RUNNING Minimum time duration a task needs to be RUNNING to be treated as active. (default 45s) + -h, --help help for count + --interval duration Interval at which to poll scheduler. (default 10s) + --sla-limit duration Time limit after which SLA-Aware drain sheds SLA Awareness. (default 1h0m0s) + --timeout duration Time after which the monitor will stop polling and throw an error. (default 20m0s) +``` + +### Options inherited from parent commands + +``` + -a, --caCertsPath string Path where CA certificates can be found. + -c, --clientCert string Client certificate to use to connect to Aurora. + -k, --clientKey string Client key to use to connect to Aurora. + --config string Config file to use. (default "/etc/aurora/australis.yml") + -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") + -p, --password string Password to use for API authentication + -s, --scheduler_addr string Aurora Scheduler's address. + -i, --skipCertVerification Skip CA certificate hostname verification. + --toJSON Print output in JSON format. + -u, --username string Username to use for API authentication + -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) +``` + +### SEE ALSO + +* [australis start sla-drain](australis_start_sla-drain.md) - Place a list of space separated Mesos Agents into maintenance mode using SLA aware strategies. + +###### Auto generated by spf13/cobra on 22-Mar-2019 diff --git a/docs/australis_start_sla-drain_percentage.md b/docs/australis_start_sla-drain_percentage.md new file mode 100644 index 0000000..d431564 --- /dev/null +++ b/docs/australis_start_sla-drain_percentage.md @@ -0,0 +1,45 @@ +## australis start sla-drain percentage + +Place a list of space separated Mesos Agents into maintenance mode using the percentage SLA aware policy as a fallback. + +### Synopsis + +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. + +``` +australis start sla-drain percentage [space separated host list] [flags] +``` + +### Options + +``` + --duration RUNNING Minimum time duration a task needs to be RUNNING to be treated as active. (default 45s) + -h, --help help for percentage + --interval duration Interval at which to poll scheduler. (default 10s) + --percent float Percentage of instances that should be running to meet SLA. (default 75) + --sla-limit duration Time limit after which SLA-Aware drain sheds SLA Awareness. (default 1h0m0s) + --timeout duration Time after which the monitor will stop polling and throw an error. (default 20m0s) +``` + +### Options inherited from parent commands + +``` + -a, --caCertsPath string Path where CA certificates can be found. + -c, --clientCert string Client certificate to use to connect to Aurora. + -k, --clientKey string Client key to use to connect to Aurora. + --config string Config file to use. (default "/etc/aurora/australis.yml") + -l, --logLevel string Set logging level [panic fatal error warning info debug trace]. (default "info") + -p, --password string Password to use for API authentication + -s, --scheduler_addr string Aurora Scheduler's address. + -i, --skipCertVerification Skip CA certificate hostname verification. + --toJSON Print output in JSON format. + -u, --username string Username to use for API authentication + -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) +``` + +### SEE ALSO + +* [australis start sla-drain](australis_start_sla-drain.md) - Place a list of space separated Mesos Agents into maintenance mode using SLA aware strategies. + +###### Auto generated by spf13/cobra on 22-Mar-2019 diff --git a/docs/australis_start_update.md b/docs/australis_start_update.md index 4bd89f0..bc1f0e0 100644 --- a/docs/australis_start_update.md +++ b/docs/australis_start_update.md @@ -16,6 +16,7 @@ australis start update [update config] [flags] ``` -h, --help help for update --interval duration Interval at which to poll scheduler. (default 5s) + --timeout duration Time after which the monitor will stop polling and throw an error. (default 10m0s) ``` ### Options inherited from parent commands @@ -29,7 +30,6 @@ australis start update [update config] [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -39,4 +39,4 @@ australis start update [update config] [flags] * [australis start](australis_start.md) - Start a service, maintenance on a host (DRAIN), a snapshot, an update, or a backup. -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_stop.md b/docs/australis_stop.md index eb0c92f..f7f8970 100644 --- a/docs/australis_stop.md +++ b/docs/australis_stop.md @@ -23,7 +23,6 @@ Stop a service or maintenance on a host (DRAIN). -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -35,4 +34,4 @@ Stop a service or maintenance on a host (DRAIN). * [australis stop drain](australis_stop_drain.md) - Stop maintenance on a host (move to NONE). * [australis stop update](australis_stop_update.md) - Stop update -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_stop_drain.md b/docs/australis_stop_drain.md index 9a4ea99..f9fb293 100644 --- a/docs/australis_stop_drain.md +++ b/docs/australis_stop_drain.md @@ -15,6 +15,7 @@ australis stop drain [space separated host list] [flags] ``` -h, --help help for drain --interval duration Interval at which to poll scheduler. (default 5s) + --timeout duration Time after which the monitor will stop polling and throw an error. (default 1m0s) ``` ### Options inherited from parent commands @@ -28,7 +29,6 @@ australis stop drain [space separated host list] [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -38,4 +38,4 @@ australis stop drain [space separated host list] [flags] * [australis stop](australis_stop.md) - Stop a service or maintenance on a host (DRAIN). -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/docs/australis_stop_update.md b/docs/australis_stop_update.md index faa7be9..894925b 100644 --- a/docs/australis_stop_update.md +++ b/docs/australis_stop_update.md @@ -30,7 +30,6 @@ australis stop update [update ID] [flags] -p, --password string Password to use for API authentication -s, --scheduler_addr string Aurora Scheduler's address. -i, --skipCertVerification Skip CA certificate hostname verification. - -t, --timeout duration Gorealis timeout. (default 20s) --toJSON Print output in JSON format. -u, --username string Username to use for API authentication -z, --zookeeper string Zookeeper node(s) where Aurora stores information. (comma separated list) @@ -40,4 +39,4 @@ australis stop update [update ID] [flags] * [australis stop](australis_stop.md) - Stop a service or maintenance on a host (DRAIN). -###### Auto generated by spf13/cobra on 8-Sep-2022 +###### Auto generated by spf13/cobra on 7-May-2020 diff --git a/go.mod b/go.mod index 0fcf130..a4ef81b 100644 --- a/go.mod +++ b/go.mod @@ -1,16 +1,17 @@ module github.com/aurora-scheduler/australis -go 1.15 - require ( - github.com/aurora-scheduler/gorealis/v2 v2.29.0 + github.com/aurora-scheduler/gorealis/v2 v2.22.1 github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.6.0 github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.6.3 + github.com/stretchr/objx v0.1.1 // indirect github.com/stretchr/testify v1.5.0 gopkg.in/yaml.v2 v2.2.8 ) -replace github.com/apache/thrift v0.13.0 => github.com/ridv/thrift v0.13.2 +go 1.14 + +replace github.com/apache/thrift v0.13.0 => github.com/ridv/thrift v0.13.1 diff --git a/internal/job.go b/internal/job.go index b2ffc8b..dcbf771 100644 --- a/internal/job.go +++ b/internal/job.go @@ -47,17 +47,6 @@ type Container struct { Docker *DockerContainer `yaml:"docker"` } -type ValueConstraint struct { - Name string `yaml:"name"` - Values []string `yaml:"values"` - Negated bool `yaml:"negated"` -} - -type LimitConstraint struct { - Name string `yaml:"name"` - Limit int32 `yaml:"limit"` -} - type Job struct { Environment string `yaml:"environment"` Role string `yaml:"role"` @@ -65,23 +54,16 @@ type Job struct { CPU float64 `yaml:"cpu"` RAM int64 `yaml:"ram"` Disk int64 `yaml:"disk"` - Port int64 `yaml:"port"` - GPU int64 `yaml:"gpu"` Executor Executor `yaml:"executor"` Instances int32 `yaml:"instances"` MaxFailures int32 `yaml:"maxFailures"` URIs []URI `yaml:"uris"` Metadata map[string]string `yaml:"labels"` Service bool `yaml:"service"` - Tier string `yaml:"tier,omitempty" default:"preemptible"` - Priority int32 `yaml:"priority"` - Production bool `yaml:"production"` Thermos []ThermosProcess `yaml:",flow,omitempty"` Container *Container `yaml:"container,omitempty"` CronSchedule *string `yaml:"cronSchedule,omitempty"` CronCollisionPolicy *string `yaml:"cronCollisionPolicy,omitempty"` - ValueConstraints []ValueConstraint `yaml:"valueConstraints,flow,omitempty"` - LimitConstraints []LimitConstraint `yaml:"limitConstraints,flow,omitempty"` } func (j *Job) ToRealis() (*realis.AuroraJob, error) { @@ -92,18 +74,10 @@ func (j *Job) ToRealis() (*realis.AuroraJob, error) { CPU(j.CPU). RAM(j.RAM). Disk(j.Disk). - AddPorts(int(j.Port)). IsService(j.Service). - Tier(j.Tier). - Priority(j.Priority). - Production(j.Production). InstanceCount(j.Instances). MaxFailure(j.MaxFailures) - if j.GPU > 0 { - auroraJob.GPU(j.GPU) - } - if j.CronSchedule != nil { auroraJob.CronSchedule(*j.CronSchedule) } @@ -151,15 +125,6 @@ func (j *Job) ToRealis() (*realis.AuroraJob, error) { } - // Setting Constraints - for _, valConstraint := range j.ValueConstraints { - auroraJob.AddValueConstraint(valConstraint.Name, valConstraint.Negated, valConstraint.Values...) - } - - for _, limit := range j.LimitConstraints { - auroraJob.AddLimitConstraint(limit.Name, limit.Limit) - } - return auroraJob, nil } @@ -197,7 +162,6 @@ func (j *Job) Validate() error { } return nil } - func (j *Job) ValidateCron() error { if j.CronSchedule == nil { return errors.New("cron schedule must be set") diff --git a/internal/util.go b/internal/util.go index dbf56be..cc81cdb 100644 --- a/internal/util.go +++ b/internal/util.go @@ -118,26 +118,6 @@ func UnmarshalJob(filename string) (Job, error) { return job, nil } -func UnmarshalTaskConfig(filename string) (*aurora.TaskConfig, error) { - if jobsFile, err := os.Open(filename); err != nil { - return nil, errors.Wrap(err, "unable to read the task config file") - } else { - job := Job{} - - if err := yaml.NewDecoder(jobsFile).Decode(&job); err != nil { - return nil, errors.Wrap(err, "unable to parse task config file") - } - - if auroraJob, err := job.ToRealis(); err != nil { - return nil, errors.Wrap(err, "unable to parse task config file") - } else { - return auroraJob.JobConfig().TaskConfig, nil - } - } - - return nil, nil -} - func UnmarshalUpdate(filename string) (UpdateJob, error) { updateJob := UpdateJob{} diff --git a/internal/util_test.go b/internal/util_test.go index 366ffb0..05cb686 100644 --- a/internal/util_test.go +++ b/internal/util_test.go @@ -25,11 +25,6 @@ func TestUnmarshalJob(t *testing.T) { assert.NoError(t, err) } -func TestUnmarshalDedicatedJob(t *testing.T) { - _, err := UnmarshalJob("../test/hello_world_dedicated.yaml") - assert.NoError(t, err) -} - func TestUnmarshalCron(t *testing.T) { cron, err := UnmarshalJob("../test/hello_world_cron.yaml") assert.NoError(t, err) @@ -40,3 +35,4 @@ func TestUnmarshalUpdate(t *testing.T) { _, err := UnmarshalUpdate("../test/update_hello_world.yaml") assert.NoError(t, err) } + diff --git a/test/hello_world_dedicated.yaml b/test/hello_world_dedicated.yaml deleted file mode 100644 index 95dac27..0000000 --- a/test/hello_world_dedicated.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -environment: "prod" -role: "vagrant" -name: "hello_world" -cpu: 0.09 -ram: 64 -disk: 128 -instances: 1 -valueConstraints: - - name: "dedicated" - values: - - "vagrant/bar" -thermos: - - name: "bootstrap" - cmd: "echo bootstrapping" - - name: "hello_gorealis" - cmd: "while true; do echo hello world from gorealis; sleep 10; done" -updateSettings: - maxPerInstanceFailures: 1 - maxFailedInstances: 1 - minTimeInRunning: 1m - rollbackOnFailure: true - instanceRanges: - - start: 1 - end: 4 - blockIfNoPulseAfter: 1m - slaAware: false - strategy: - name: Batch - groupSize: 2 \ No newline at end of file diff --git a/test/task_config.yaml b/test/task_config.yaml deleted file mode 100644 index addb8c1..0000000 --- a/test/task_config.yaml +++ /dev/null @@ -1,20 +0,0 @@ -environment: "prod" -role: "vagrant" -name: "hello_world" -cpu: 0.09 -ram: 64 -disk: 128 -valueConstraints: - - name: "dedicated" - values: - - "vagrant/bar" -limitConstraints: - - name: "host" - limit: 1 - - name: "zone" - limit: 2 -thermos: - - name: "bootstrap" - cmd: "echo bootstrapping" - - name: "hello_gorealis" - cmd: "while true; do echo hello world from gorealis; sleep 10; done"