From 64fb916d6557e2587a34f32d3feda2924ac55fba Mon Sep 17 00:00:00 2001 From: derailed Date: Fri, 15 Nov 2019 19:55:38 -0700 Subject: [PATCH] update codebeat linter --- .codebeatsettings | 16 +-- internal/k8s/api.go | 8 +- internal/view/master_detail.go | 29 ++-- internal/view/registrar.go | 245 +++++++++++---------------------- internal/view/resource.go | 2 + 5 files changed, 107 insertions(+), 193 deletions(-) diff --git a/.codebeatsettings b/.codebeatsettings index f7365e93..f9aacdcf 100644 --- a/.codebeatsettings +++ b/.codebeatsettings @@ -3,26 +3,26 @@ "TOO_MANY_IVARS": [ 8, 10, - 14, - 20 + 12, + 15 ], "LOC": [ + 30, 50, - 60, 80, 100 ], "TOTAL_LOC": [ - 300, + 200, 400, - 600, - 1000 + 500, + 600 ], "TOO_MANY_FUNCTIONS": [ + 20, 30, 40, - 50, - 60 + 50 ] } } \ No newline at end of file diff --git a/internal/k8s/api.go b/internal/k8s/api.go index e13efaff..927c5df5 100644 --- a/internal/k8s/api.go +++ b/internal/k8s/api.go @@ -65,17 +65,13 @@ type ( CanIAccess(ns, rvg string, verbs []string) (bool, error) } - clients struct { + // APIClient represents a Kubernetes api client. + APIClient struct { client kubernetes.Interface dClient dynamic.Interface nsClient dynamic.NamespaceableResourceInterface mxsClient *versioned.Clientset cachedDiscovery *disk.CachedDiscoveryClient - } - - // APIClient represents a Kubernetes api client. - APIClient struct { - clients config *Config useMetricServer bool mx sync.Mutex diff --git a/internal/view/master_detail.go b/internal/view/master_detail.go index c4985783..e961da89 100644 --- a/internal/view/master_detail.go +++ b/internal/view/master_detail.go @@ -9,31 +9,24 @@ import ( "github.com/gdamore/tcell" ) -type TableExtender struct { - extraActionsFn func(ui.KeyActions) - colorerFn ui.ColorerFunc - decorateFn decorateFn - enterFn enterFn -} - // MasterDetail presents a master-detail viewer. type MasterDetail struct { *PageStack - *TableExtender - master *Table - details *Details - currentNS string - title string + master *Table + details *Details + currentNS string + title string + extraActionsFn func(ui.KeyActions) + enterFn enterFn } // NewMasterDetail returns a new master-detail viewer. func NewMasterDetail(title, ns string) *MasterDetail { return &MasterDetail{ - PageStack: NewPageStack(), - TableExtender: &TableExtender{}, - title: title, - currentNS: ns, + PageStack: NewPageStack(), + title: title, + currentNS: ns, } } @@ -74,12 +67,12 @@ func (m *MasterDetail) Hints() model.MenuHints { return nil } +// Protocol... + func (m *MasterDetail) setExtraActionsFn(f ActionsFunc) { m.extraActionsFn = f } -// Protocol... - func (m *MasterDetail) setEnterFn(f enterFn) { m.enterFn = f } diff --git a/internal/view/registrar.go b/internal/view/registrar.go index b0854296..a795d44c 100644 --- a/internal/view/registrar.go +++ b/internal/view/registrar.go @@ -17,7 +17,11 @@ type ( enterFn func(app *App, ns, resource, selection string) decorateFn func(resource.TableData) resource.TableData - viewerCapability struct { + viewer struct { + gvr string + kind string + namespaced bool + verbs metav1.Verbs viewFn viewFn listFn listFn enterFn enterFn @@ -25,15 +29,6 @@ type ( decorateFn decorateFn } - viewer struct { - viewerCapability - - gvr string - kind string - namespaced bool - verbs metav1.Verbs - } - viewers map[string]viewer ) @@ -74,12 +69,10 @@ func allCRDs(c k8s.Connection, vv viewers) { } vv[gvrs] = viewer{ - gvr: gvrs, - kind: meta.Kind, - viewerCapability: viewerCapability{ - viewFn: listFunc(resource.NewCustomList(c, meta.Namespaced, "", gvrs)), - colorerFn: ui.DefaultColorer, - }, + gvr: gvrs, + kind: meta.Kind, + viewFn: listFunc(resource.NewCustomList(c, meta.Namespaced, "", gvrs)), + colorerFn: ui.DefaultColorer, } } } @@ -177,242 +170,172 @@ func resourceViews(c k8s.Connection, m viewers) { func coreRes(vv viewers) { vv["v1/nodes"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewNode, - listFn: resource.NewNodeList, - colorerFn: nsColorer, - }, + viewFn: NewNode, + listFn: resource.NewNodeList, + colorerFn: nsColorer, } vv["v1/namespaces"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewNamespace, - listFn: resource.NewNamespaceList, - colorerFn: nsColorer, - }, + viewFn: NewNamespace, + listFn: resource.NewNamespaceList, + colorerFn: nsColorer, } vv["v1/pods"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewPod, - listFn: resource.NewPodList, - colorerFn: podColorer, - }, + viewFn: NewPod, + listFn: resource.NewPodList, + colorerFn: podColorer, } vv["v1/serviceaccounts"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewServiceAccountList, - enterFn: showSAPolicy, - }, + listFn: resource.NewServiceAccountList, + enterFn: showSAPolicy, } vv["v1/services"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewService, - listFn: resource.NewServiceList, - }, + viewFn: NewService, + listFn: resource.NewServiceList, } vv["v1/configmaps"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewConfigMapList, - }, + listFn: resource.NewConfigMapList, } vv["v1/persistentvolumes"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewPersistentVolumeList, - colorerFn: pvColorer, - }, + listFn: resource.NewPersistentVolumeList, + colorerFn: pvColorer, } vv["v1/persistentvolumeclaims"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewPersistentVolumeClaimList, - colorerFn: pvcColorer, - }, + listFn: resource.NewPersistentVolumeClaimList, + colorerFn: pvcColorer, } vv["v1/secrets"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewSecret, - listFn: resource.NewSecretList, - }, + viewFn: NewSecret, + listFn: resource.NewSecretList, } vv["v1/endpoints"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewEndpointsList, - }, + listFn: resource.NewEndpointsList, } vv["v1/events"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewEventList, - colorerFn: evColorer, - }, + listFn: resource.NewEventList, + colorerFn: evColorer, } vv["v1/replicationcontrollers"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewScalableResource, - listFn: resource.NewReplicationControllerList, - colorerFn: rsColorer, - }, + viewFn: NewScalableResource, + listFn: resource.NewReplicationControllerList, + colorerFn: rsColorer, } } func miscRes(vv viewers) { vv["storage.k8s.io/v1/storageclasses"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewStorageClassList, - }, + listFn: resource.NewStorageClassList, } vv["contexts"] = viewer{ - gvr: "contexts", - kind: "Contexts", - viewerCapability: viewerCapability{ - viewFn: NewContext, - listFn: resource.NewContextList, - colorerFn: ctxColorer, - }, + gvr: "contexts", + kind: "Contexts", + viewFn: NewContext, + listFn: resource.NewContextList, + colorerFn: ctxColorer, } vv["users"] = viewer{ - gvr: "users", - viewerCapability: viewerCapability{ - viewFn: NewSubject, - }, + gvr: "users", + viewFn: NewSubject, } vv["groups"] = viewer{ - gvr: "groups", - viewerCapability: viewerCapability{ - viewFn: NewSubject, - }, + gvr: "groups", + viewFn: NewSubject, } vv["portforwards"] = viewer{ - gvr: "portforwards", - viewerCapability: viewerCapability{ - viewFn: NewPortForward, - }, + gvr: "portforwards", + viewFn: NewPortForward, } vv["benchmarks"] = viewer{ - gvr: "benchmarks", - viewerCapability: viewerCapability{ - viewFn: NewBench, - }, + gvr: "benchmarks", + viewFn: NewBench, } vv["screendumps"] = viewer{ - gvr: "screendumps", - viewerCapability: viewerCapability{ - viewFn: NewScreenDump, - }, + gvr: "screendumps", + viewFn: NewScreenDump, } } func appsRes(vv viewers) { vv["apps/v1/deployments"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewDeploy, - listFn: resource.NewDeploymentList, - colorerFn: dpColorer, - }, + viewFn: NewDeploy, + listFn: resource.NewDeploymentList, + colorerFn: dpColorer, } vv["apps/v1/replicasets"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewReplicaSet, - listFn: resource.NewReplicaSetList, - colorerFn: rsColorer, - }, + viewFn: NewReplicaSet, + listFn: resource.NewReplicaSetList, + colorerFn: rsColorer, } vv["apps/v1/statefulsets"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewStatefulSet, - listFn: resource.NewStatefulSetList, - colorerFn: stsColorer, - }, + viewFn: NewStatefulSet, + listFn: resource.NewStatefulSetList, + colorerFn: stsColorer, } vv["apps/v1/daemonsets"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewDaemonSet, - listFn: resource.NewDaemonSetList, - colorerFn: dpColorer, - }, + viewFn: NewDaemonSet, + listFn: resource.NewDaemonSetList, + colorerFn: dpColorer, } } func authRes(vv viewers) { vv["rbac.authorization.k8s.io/v1/clusterroles"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewClusterRoleList, - enterFn: showRBAC, - }, + listFn: resource.NewClusterRoleList, + enterFn: showRBAC, } vv["rbac.authorization.k8s.io/v1/clusterrolebindings"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewClusterRoleBindingList, - enterFn: showClusterRole, - }, + listFn: resource.NewClusterRoleBindingList, + enterFn: showClusterRole, } vv["rbac.authorization.k8s.io/v1/rolebindings"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewRoleBindingList, - enterFn: showRole, - }, + listFn: resource.NewRoleBindingList, + enterFn: showRole, } vv["rbac.authorization.k8s.io/v1/roles"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewRoleList, - enterFn: showRBAC, - }, + listFn: resource.NewRoleList, + enterFn: showRBAC, } } func extRes(vv viewers) { vv["apiextensions.k8s.io/v1/customresourcedefinitions"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewCustomResourceDefinitionList, - enterFn: showCRD, - }, + listFn: resource.NewCustomResourceDefinitionList, + enterFn: showCRD, } vv["apiextensions.k8s.io/v1beta1/customresourcedefinitions"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewCustomResourceDefinitionList, - enterFn: showCRD, - }, + listFn: resource.NewCustomResourceDefinitionList, + enterFn: showCRD, } } func netRes(vv viewers) { vv["networking.k8s.io/v1/networkpolicies"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewNetworkPolicyList, - }, + listFn: resource.NewNetworkPolicyList, } vv["extensions/v1beta1/ingresses"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewIngressList, - }, + listFn: resource.NewIngressList, } } func batchRes(vv viewers) { vv["batch/v1beta1/cronjobs"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewCronJob, - listFn: resource.NewCronJobList, - }, + viewFn: NewCronJob, + listFn: resource.NewCronJobList, } vv["batch/v1/jobs"] = viewer{ - viewerCapability: viewerCapability{ - viewFn: NewJob, - listFn: resource.NewJobList, - }, + viewFn: NewJob, + listFn: resource.NewJobList, } } func policyRes(vv viewers) { vv["policy/v1beta1/poddisruptionbudgets"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewPDBList, - colorerFn: pdbColorer, - }, + listFn: resource.NewPDBList, + colorerFn: pdbColorer, } } func hpaRes(vv viewers) { vv["autoscaling/v1/horizontalpodautoscalers"] = viewer{ - viewerCapability: viewerCapability{ - listFn: resource.NewHorizontalPodAutoscalerV1List, - }, + listFn: resource.NewHorizontalPodAutoscalerV1List, } } diff --git a/internal/view/resource.go b/internal/view/resource.go index 61bc0cc6..cfadf55d 100644 --- a/internal/view/resource.go +++ b/internal/view/resource.go @@ -30,6 +30,8 @@ type Resource struct { path *string envFn envFn gvr string + colorerFn ui.ColorerFunc + decorateFn decorateFn } // NewResource returns a new viewer.