Quellcode durchsuchen

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

Anthony Romano vor 9 Jahren
Ursprung
Commit
721ed6ba2b
1 geänderte Dateien mit 6 neuen und 0 gelöschten Zeilen
  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) {
 func defragCommandFunc(cmd *cobra.Command, args []string) {
+	failures := 0
 	c := mustClientFromCmd(cmd)
 	c := mustClientFromCmd(cmd)
 	for _, ep := range c.Endpoints() {
 	for _, ep := range c.Endpoints() {
 		ctx, cancel := commandCtx(cmd)
 		ctx, cancel := commandCtx(cmd)
@@ -38,8 +39,13 @@ func defragCommandFunc(cmd *cobra.Command, args []string) {
 		cancel()
 		cancel()
 		if err != nil {
 		if err != nil {
 			fmt.Fprintf(os.Stderr, "Failed to defragment etcd member[%s] (%v)\n", ep, err)
 			fmt.Fprintf(os.Stderr, "Failed to defragment etcd member[%s] (%v)\n", ep, err)
+			failures++
 		} else {
 		} else {
 			fmt.Printf("Finished defragmenting etcd member[%s]\n", ep)
 			fmt.Printf("Finished defragmenting etcd member[%s]\n", ep)
 		}
 		}
 	}
 	}
+
+	if failures != 0 {
+		os.Exit(ExitError)
+	}
 }
 }