* refactor: take clients out of internal * refactor: move stdio to pkg * Move internal/api to api * refactor: final changes for Kapacitor to access shared functionality * chore: regenerate mocks * fix: bad automated refactor * chore: extra formatting not caught by make fmt
135 lines
3.3 KiB
Go
135 lines
3.3 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/influxdata/influx-cli/v2/clients/org"
|
|
"github.com/influxdata/influx-cli/v2/pkg/cli/middleware"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
func newOrgMembersCmd() *cli.Command {
|
|
return &cli.Command{
|
|
Name: "members",
|
|
Usage: "Organization membership commands",
|
|
Subcommands: []*cli.Command{
|
|
newOrgMembersAddCmd(),
|
|
newOrgMembersListCmd(),
|
|
newOrgMembersRemoveCmd(),
|
|
},
|
|
}
|
|
}
|
|
|
|
func newOrgMembersAddCmd() *cli.Command {
|
|
var params org.AddMemberParams
|
|
return &cli.Command{
|
|
Name: "add",
|
|
Usage: "Add organization member",
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Flags: append(
|
|
commonFlagsNoPrint(),
|
|
&cli.GenericFlag{
|
|
Name: "member",
|
|
Usage: "The member ID",
|
|
Aliases: []string{"m"},
|
|
Required: true,
|
|
Value: ¶ms.MemberId,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "name",
|
|
Usage: "The organization name",
|
|
Aliases: []string{"n"},
|
|
EnvVars: []string{"INFLUX_ORG"},
|
|
Destination: ¶ms.OrgName,
|
|
},
|
|
&cli.GenericFlag{
|
|
Name: "id",
|
|
Usage: "The organization ID",
|
|
Aliases: []string{"i"},
|
|
EnvVars: []string{"INFLUX_ORG_ID"},
|
|
Value: ¶ms.OrgID,
|
|
},
|
|
),
|
|
Action: func(ctx *cli.Context) error {
|
|
client := org.Client{
|
|
CLI: getCLI(ctx),
|
|
OrganizationsApi: getAPI(ctx).OrganizationsApi,
|
|
}
|
|
return client.AddMember(ctx.Context, ¶ms)
|
|
},
|
|
}
|
|
}
|
|
|
|
func newOrgMembersListCmd() *cli.Command {
|
|
var params org.ListMemberParams
|
|
return &cli.Command{
|
|
Name: "list",
|
|
Aliases: []string{"find", "ls"},
|
|
Usage: "List organization members",
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Flags: append(
|
|
commonFlags(),
|
|
&cli.StringFlag{
|
|
Name: "name",
|
|
Usage: "The organization name",
|
|
Aliases: []string{"n"},
|
|
EnvVars: []string{"INFLUX_ORG"},
|
|
Destination: ¶ms.OrgName,
|
|
},
|
|
&cli.GenericFlag{
|
|
Name: "id",
|
|
Usage: "The organization ID",
|
|
Aliases: []string{"i"},
|
|
EnvVars: []string{"INFLUX_ORG_ID"},
|
|
Value: ¶ms.OrgID,
|
|
},
|
|
),
|
|
Action: func(ctx *cli.Context) error {
|
|
client := org.Client{
|
|
CLI: getCLI(ctx),
|
|
OrganizationsApi: getAPI(ctx).OrganizationsApi,
|
|
UsersApi: getAPI(ctx).UsersApi,
|
|
}
|
|
return client.ListMembers(ctx.Context, ¶ms)
|
|
},
|
|
}
|
|
}
|
|
|
|
func newOrgMembersRemoveCmd() *cli.Command {
|
|
var params org.RemoveMemberParams
|
|
return &cli.Command{
|
|
Name: "remove",
|
|
Usage: "Remove organization member",
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Flags: append(
|
|
commonFlagsNoPrint(),
|
|
&cli.GenericFlag{
|
|
Name: "member",
|
|
Usage: "The member ID",
|
|
Aliases: []string{"m"},
|
|
Required: true,
|
|
Value: ¶ms.MemberId,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "name",
|
|
Usage: "The organization name",
|
|
Aliases: []string{"n"},
|
|
EnvVars: []string{"INFLUX_ORG"},
|
|
Destination: ¶ms.OrgName,
|
|
},
|
|
&cli.GenericFlag{
|
|
Name: "id",
|
|
Usage: "The organization ID",
|
|
Aliases: []string{"i"},
|
|
EnvVars: []string{"INFLUX_ORG_ID"},
|
|
Value: ¶ms.OrgID,
|
|
},
|
|
),
|
|
Action: func(ctx *cli.Context) error {
|
|
client := org.Client{
|
|
CLI: getCLI(ctx),
|
|
OrganizationsApi: getAPI(ctx).OrganizationsApi,
|
|
}
|
|
return client.RemoveMember(ctx.Context, ¶ms)
|
|
},
|
|
}
|
|
}
|