Adding ability to force a snapshot and to force a backup.

This commit is contained in:
Renan DelValle 2018-09-16 21:22:00 -07:00
parent 3341fe8e11
commit b50fdf8fff
No known key found for this signature in database
GPG key ID: C240AD6D6F443EC9

View file

@ -14,7 +14,10 @@ func init() {
// Sub-commands
startCmd.AddCommand(startMaintCmd)
startCmd.AddCommand(startSnapshotCmd)
startCmd.AddCommand(startBackupCmd)
// Maintenance specific flags
startMaintCmd.Flags().IntVar(&monitorInterval,"interval", 5, "Interval at which to poll scheduler.")
startMaintCmd.Flags().IntVar(&monitorTimeout,"timeout", 50, "Time after which the monitor will stop polling and throw an error.")
@ -22,7 +25,7 @@ func init() {
var startCmd = &cobra.Command{
Use: "start",
Short: "Start a service or maintenance on a host (DRAIN).",
Short: "Start a service, maintenance on a host (DRAIN), a snapshot, or a backup.",
}
var startMaintCmd = &cobra.Command{
@ -64,3 +67,43 @@ func drain(cmd *cobra.Command, args []string) {
fmt.Println(result.String())
}
var startSnapshotCmd = &cobra.Command{
Use: "snapshot",
Short: "Force the leading scheduler to perform a Snapshot.",
Long: `Takes a Snapshot of the in memory state of the Apache Aurora cluster and
writes it to the Mesos replicated log. This should NOT be confused with a backup.`,
Run: snapshot,
}
func snapshot(cmd *cobra.Command, args []string) {
fmt.Println("Forcing scheduler to write snapshot to Mesos replicated log")
err := client.Snapshot()
if err != nil {
fmt.Printf("error: %+v\n", err.Error())
os.Exit(1)
} else {
fmt.Println("Snapshot started successfully")
}
}
var startBackupCmd = &cobra.Command{
Use: "backup",
Short: "Force the leading scheduler to perform a Backup.",
Long: `Force the Aurora Scheduler to write a backup of the latest snapshot to the filesystem
of the leading scheduler.`,
Run: backup,
}
func backup(cmd *cobra.Command, args []string) {
fmt.Println("Forcing scheduler to write a Backup of latest Snapshot to file system")
err := client.PerformBackup()
if err != nil {
fmt.Printf("error: %+v\n", err.Error())
os.Exit(1)
} else {
fmt.Println("Backup started successfully")
}
}