4
"github.com/cubefs/cubefs/proto"
5
"github.com/cubefs/cubefs/sdk/master"
6
"github.com/cubefs/cubefs/util"
7
"github.com/spf13/cobra"
11
cmdAclUse = "acl [COMMAND]"
12
cmdAclShort = "Manage cluster volumes acl black list"
13
cmdAclAddShort = "add volume ip"
14
cmdAclDelShort = "del volume ip"
15
cmdAclListShort = "list volume ip list"
16
cmdAclCheckShort = "check volume ip"
20
cliAclListShort = "list"
25
func newAclCmd(client *master.MasterClient) *cobra.Command {
26
cmd := &cobra.Command{
29
Args: cobra.MinimumNArgs(0),
30
Aliases: []string{"acl"},
35
newAclListCmd(client),
36
newAclCheckCmd(client),
41
func newAclAddCmd(client *master.MasterClient) *cobra.Command {
43
cmd := &cobra.Command{
45
Short: cmdAclAddShort,
46
Aliases: []string{"add"},
47
Run: func(cmd *cobra.Command, args []string) {
49
stdout("example:cfs-cli acl aclAdd volName 192.168.0.1\n")
56
var aclInfo *proto.AclRsp
57
if aclInfo, err = client.UserAPI().AclOperation(args[0], args[1], util.AclAddIP); err != nil || !aclInfo.OK {
63
cmd.Flags().StringVar(&optKeyword, "keyword", "", "Specify keyword of volume name to filter")
67
func newAclListCmd(client *master.MasterClient) *cobra.Command {
69
cmd := &cobra.Command{
71
Short: cmdAclListShort,
72
Aliases: []string{"list"},
73
Run: func(cmd *cobra.Command, args []string) {
75
stdout("need volume name\n")
83
var aclInfo *proto.AclRsp
84
if aclInfo, err = client.UserAPI().AclOperation(volumeName, "", util.AclListIP); err != nil || !aclInfo.OK {
85
stdout("AclOperation return \n")
88
stdout("%v\n", volumeAclTableHeader)
89
for _, info := range aclInfo.List {
90
stdout("%v\n", formatAclInfoTableRow(info))
94
cmd.Flags().StringVar(&optKeyword, "keyword", "", "Specify keyword of volume name to filter")
98
func newAclDelCmd(client *master.MasterClient) *cobra.Command {
100
cmd := &cobra.Command{
102
Short: cmdAclDelShort,
103
Aliases: []string{"del"},
104
Run: func(cmd *cobra.Command, args []string) {
106
stdout("USAGE:./cfs-cli acl aclDel volName ipAddr\n")
114
var aclInfo *proto.AclRsp
115
if aclInfo, err = client.UserAPI().AclOperation(args[0], args[1], util.AclDelIP); err != nil || !aclInfo.OK {
121
cmd.Flags().StringVar(&optKeyword, "keyword", "", "Specify keyword of volume name to filter")
125
func newAclCheckCmd(client *master.MasterClient) *cobra.Command {
126
var optKeyword string
127
cmd := &cobra.Command{
129
Short: cmdAclCheckShort,
130
Aliases: []string{"check"},
131
Run: func(cmd *cobra.Command, args []string) {
133
stdout("USAGE:./cfs-cli acl aclCheck volName ipAddr\n")
141
var aclInfo *proto.AclRsp
142
if aclInfo, err = client.UserAPI().AclOperation(args[0], args[1], util.AclCheckIP); err != nil || !aclInfo.OK {
145
stdout("%v\n", volumeAclTableHeader)
146
for _, info := range aclInfo.List {
147
stdout("%v\n", formatAclInfoTableRow(info))
151
cmd.Flags().StringVar(&optKeyword, "keyword", "", "Specify keyword of volume name to filter")