ソースを参照

etcdctl: return non-zero exit code if defrag fails on any endpoint

Anthony Romano 9 年 前
コミット
721ed6ba2b
1 ファイル変更6 行追加0 行削除
  1. 6 0
      etcdctl/ctlv3/command/defrag_command.go

+ 6 - 0
etcdctl/ctlv3/command/defrag_command.go

@@ -31,6 +31,7 @@ func NewDefragCommand() *cobra.Command {
 }
 
 func defragCommandFunc(cmd *cobra.Command, args []string) {
+	failures := 0
 	c := mustClientFromCmd(cmd)
 	for _, ep := range c.Endpoints() {
 		ctx, cancel := commandCtx(cmd)
@@ -38,8 +39,13 @@ func defragCommandFunc(cmd *cobra.Command, args []string) {
 		cancel()
 		if err != nil {
 			fmt.Fprintf(os.Stderr, "Failed to defragment etcd member[%s] (%v)\n", ep, err)
+			failures++
 		} else {
 			fmt.Printf("Finished defragmenting etcd member[%s]\n", ep)
 		}
 	}
+
+	if failures != 0 {
+		os.Exit(ExitError)
+	}
 }