etcdctl: print grant/revoke error instead of scanning roles for changes

Fixes #5045
This commit is contained in:
Anthony Romano 2016-04-12 10:26:40 -07:00
parent a0d653b630
commit a12fd9cc92

View File

@ -17,8 +17,6 @@ package command
import (
"fmt"
"os"
"reflect"
"sort"
"strings"
"github.com/bgentry/speakeasy"
@ -195,21 +193,12 @@ func userGrantRevoke(c *cli.Context, grant bool) {
os.Exit(1)
}
var newUser *client.User
if grant {
newUser, err = api.GrantUser(ctx, user, roles)
_, err = api.GrantUser(ctx, user, roles)
} else {
newUser, err = api.RevokeUser(ctx, user, roles)
}
sort.Strings(newUser.Roles)
sort.Strings(currentUser.Roles)
if reflect.DeepEqual(newUser.Roles, currentUser.Roles) {
if grant {
fmt.Printf("User unchanged; roles already granted")
} else {
fmt.Printf("User unchanged; roles already revoked")
}
_, err = api.RevokeUser(ctx, user, roles)
}
if err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)