From 75e1c929a575cf1e10e713dc3b75d1f056da09a0 Mon Sep 17 00:00:00 2001 From: sean sorrell Date: Wed, 18 Jan 2017 16:47:58 -0800 Subject: [PATCH] p2-rctl has learned how to delete Rolling Updates --- bin/p2-rctl/main.go | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/bin/p2-rctl/main.go b/bin/p2-rctl/main.go index 1344809ae..5dcffc825 100644 --- a/bin/p2-rctl/main.go +++ b/bin/p2-rctl/main.go @@ -33,15 +33,16 @@ import ( ) const ( - cmdCreateText = "create" - cmdDeleteText = "delete" - cmdReplicasText = "set-replicas" - cmdListText = "list" - cmdGetText = "get" - cmdEnableText = "enable" - cmdDisableText = "disable" - cmdRollText = "rolling-update" - cmdSchedupText = "schedule-update" + cmdCreateText = "create" + cmdDeleteText = "delete" + cmdReplicasText = "set-replicas" + cmdListText = "list" + cmdGetText = "get" + cmdEnableText = "enable" + cmdDisableText = "disable" + cmdRollText = "rolling-update" + cmdDeleteRollText = "delete-rolling-update" + cmdSchedupText = "schedule-update" ) var ( @@ -82,6 +83,9 @@ var ( rollNeed = cmdRoll.Flag("minimum", "minimum number of healthy replicas during update").Required().Short('m').Int() rollPagerdutyServiceKey = cmdRoll.Flag("pagerduty-service-key", "Pagerduty Service Key to use for alerting if provided").String() + cmdDeleteRoll = kingpin.Command(cmdDeleteRollText, "Delete a rolling update.") + deleteRollID = cmdDeleteRoll.Flag("id", "rolling update uuid").Required().Short('i').String() + cmdSchedup = kingpin.Command(cmdSchedupText, "Schedule new rolling update (will be run by farm)") schedupOldID = cmdSchedup.Flag("old", "old replication controller uuid").Required().Short('o').String() schedupNewID = cmdSchedup.Flag("new", "new replication controller uuid").Required().Short('n').String() @@ -142,6 +146,8 @@ func main() { rctl.RollingUpdate(*rollOldID, *rollNewID, *rollWant, *rollNeed, *rollPagerdutyServiceKey) case cmdSchedupText: rctl.ScheduleUpdate(*schedupOldID, *schedupNewID, *schedupWant, *schedupNeed) + case cmdDeleteRollText: + rctl.DeleteRollingUpdate(*deleteRollID) } } @@ -211,6 +217,13 @@ func (r rctlParams) Delete(id string, force bool) { r.logger.WithField("id", id).Infoln("Deleted replication controller") } +func (r rctlParams) DeleteRollingUpdate(id string) { + err := r.rls.Delete(roll_fields.ID(id)) + if err != nil { + r.logger.WithError(err).Fatalln("Could not delete RU. Consider a retry.") + } +} + func (r rctlParams) SetReplicas(id string, replicas int) { if replicas < 0 { r.logger.NoFields().Fatalln("Cannot set negative replica count")