github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/pkg/cli/cmd/accounts/list.go (about) 1 /* 2 Copyright (C) 2022-2023 ApeCloud Co., Ltd 3 4 This file is part of KubeBlocks project 5 6 This program is free software: you can redistribute it and/or modify 7 it under the terms of the GNU Affero General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU Affero General Public License for more details. 15 16 You should have received a copy of the GNU Affero General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 package accounts 21 22 import ( 23 "context" 24 "fmt" 25 26 "k8s.io/cli-runtime/pkg/genericiooptions" 27 "k8s.io/klog/v2" 28 cmdutil "k8s.io/kubectl/pkg/cmd/util" 29 30 "github.com/spf13/cobra" 31 32 "github.com/1aal/kubeblocks/pkg/lorry/client" 33 ) 34 35 type ListUserOptions struct { 36 *AccountBaseOptions 37 } 38 39 func NewListUserOptions(f cmdutil.Factory, streams genericiooptions.IOStreams) *ListUserOptions { 40 return &ListUserOptions{ 41 AccountBaseOptions: NewAccountBaseOptions(f, streams), 42 } 43 } 44 func (o ListUserOptions) Validate(args []string) error { 45 return o.AccountBaseOptions.Validate(args) 46 } 47 48 func (o *ListUserOptions) Complete(f cmdutil.Factory) error { 49 return o.AccountBaseOptions.Complete(f) 50 } 51 52 func (o *ListUserOptions) Run(cmd *cobra.Command, f cmdutil.Factory, streams genericiooptions.IOStreams) error { 53 klog.V(1).Info(fmt.Sprintf("connect to cluster %s, component %s, instance %s\n", o.ClusterName, o.ComponentName, o.PodName)) 54 lorryClient, err := client.NewK8sExecClientWithPod(o.Pod) 55 if err != nil { 56 return err 57 } 58 59 users, err := lorryClient.ListUsers(context.Background()) 60 if err != nil { 61 o.printGeneralInfo("fail", err.Error()) 62 return err 63 } 64 o.printUserInfo(users) 65 return nil 66 }