mirror of https://github.com/rancher/cli.git
79 lines
1.8 KiB
Go
79 lines
1.8 KiB
Go
package cmd
|
|
|
|
import (
|
|
"bufio"
|
|
"io"
|
|
"strings"
|
|
|
|
"github.com/rancher/norman/types"
|
|
managementClient "github.com/rancher/rancher/pkg/client/generated/management/v3"
|
|
)
|
|
|
|
type fakePrincipalGetter struct {
|
|
ByIDFunc func(id string) (*managementClient.Principal, error)
|
|
}
|
|
|
|
func (g *fakePrincipalGetter) ByID(id string) (*managementClient.Principal, error) {
|
|
if g.ByIDFunc != nil {
|
|
return g.ByIDFunc(id)
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
type fakeUserConfig struct {
|
|
FocusedClusterFunc func() string
|
|
FocusedProjectFunc func() string
|
|
}
|
|
|
|
func (c *fakeUserConfig) FocusedCluster() string {
|
|
if c.FocusedClusterFunc != nil {
|
|
return c.FocusedClusterFunc()
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (c *fakeUserConfig) FocusedProject() string {
|
|
if c.FocusedProjectFunc != nil {
|
|
return c.FocusedProjectFunc()
|
|
}
|
|
return ""
|
|
}
|
|
|
|
type fakeCRTBLister struct {
|
|
ListFunc func(opts *types.ListOpts) (*managementClient.ClusterRoleTemplateBindingCollection, error)
|
|
}
|
|
|
|
func (f *fakeCRTBLister) List(opts *types.ListOpts) (*managementClient.ClusterRoleTemplateBindingCollection, error) {
|
|
if f.ListFunc != nil {
|
|
return f.ListFunc(opts)
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
type fakePRTBLister struct {
|
|
ListFunc func(opts *types.ListOpts) (*managementClient.ProjectRoleTemplateBindingCollection, error)
|
|
}
|
|
|
|
func (f *fakePRTBLister) List(opts *types.ListOpts) (*managementClient.ProjectRoleTemplateBindingCollection, error) {
|
|
if f.ListFunc != nil {
|
|
return f.ListFunc(opts)
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
func parseTabWriterOutput(r io.Reader) [][]string {
|
|
var parsed [][]string
|
|
scanner := bufio.NewScanner(r)
|
|
for scanner.Scan() {
|
|
var fields []string
|
|
for _, field := range strings.Split(scanner.Text(), " ") {
|
|
if field == "" {
|
|
continue
|
|
}
|
|
fields = append(fields, strings.TrimSpace(field))
|
|
}
|
|
parsed = append(parsed, fields)
|
|
}
|
|
return parsed
|
|
}
|