Adding command to fetch leader given zookeeper endpoints.

This commit is contained in:
Renan DelValle 2018-03-13 17:00:38 -07:00
parent 0a93854a52
commit becb32c7ff
No known key found for this signature in database
GPG key ID: C240AD6D6F443EC9

View file

@ -4,6 +4,7 @@ import (
"fmt"
"os"
"github.com/paypal/gorealis"
"github.com/paypal/gorealis/gen-go/apache/aurora"
"github.com/spf13/cobra"
)
@ -12,10 +13,15 @@ func init() {
rootCmd.AddCommand(fetchCmd)
// Sub-commands
// Fetch Task Config
fetchCmd.AddCommand(taskConfigCmd)
taskConfigCmd.Flags().StringVarP(&env, "environment", "e", "", "Aurora Environment")
taskConfigCmd.Flags().StringVarP(&role, "role", "r", "", "Aurora Role")
taskConfigCmd.Flags().StringVarP(&name, "name", "n", "", "Aurora Name")
// Fetch Leader
fetchCmd.AddCommand(leaderCmd)
}
var fetchCmd = &cobra.Command{
@ -24,10 +30,19 @@ var fetchCmd = &cobra.Command{
}
var taskConfigCmd = &cobra.Command{
Use: "config" ,
Use: "config",
Short: "Fetch a list of task configurations from Aurora.",
Long: `To be written.`,
Run: fetchTasks,
Long: `To be written.`,
Run: fetchTasks,
}
var leaderCmd = &cobra.Command{
Use: "leader",
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
Short: "Fetch current Aurora leader given Zookeeper nodes. Pass Zookeeper nodes separated by a space as an argument to this command.",
Long: `To be written.`,
Run: fetchLeader,
}
func fetchTasks(cmd *cobra.Command, args []string) {
@ -46,3 +61,21 @@ func fetchTasks(cmd *cobra.Command, args []string) {
fmt.Println(t)
}
}
func fetchLeader(cmd *cobra.Command, args []string) {
fmt.Printf("Fetching leader from %v \n", args)
if len(args) < 1 {
fmt.Println("At least one Zookeper node address must be passed in.")
os.Exit(1)
}
url, err := realis.LeaderFromZKOpts(realis.ZKEndpoints(args...), realis.ZKPath("/aurora/scheduler"))
if err != nil {
fmt.Printf("error: %+v\n", err.Error())
os.Exit(1)
}
fmt.Print(url)
}