checkpoint
parent
ef0aab3f4c
commit
85970d8525
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"GOLANG": {
|
||||||
|
"TOO_MANY_IVARS": [
|
||||||
|
8,
|
||||||
|
10,
|
||||||
|
14,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
"LOC": [
|
||||||
|
50,
|
||||||
|
60,
|
||||||
|
80,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"TOTAL_LOC": [
|
||||||
|
300,
|
||||||
|
400,
|
||||||
|
600,
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"TOO_MANY_FUNCTIONS": [
|
||||||
|
30,
|
||||||
|
40,
|
||||||
|
50,
|
||||||
|
60
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,11 +17,7 @@ type (
|
||||||
enterFn func(app *App, ns, resource, selection string)
|
enterFn func(app *App, ns, resource, selection string)
|
||||||
decorateFn func(resource.TableData) resource.TableData
|
decorateFn func(resource.TableData) resource.TableData
|
||||||
|
|
||||||
viewer struct {
|
viewerCapability struct {
|
||||||
gvr string
|
|
||||||
kind string
|
|
||||||
namespaced bool
|
|
||||||
verbs metav1.Verbs
|
|
||||||
viewFn viewFn
|
viewFn viewFn
|
||||||
listFn listFn
|
listFn listFn
|
||||||
enterFn enterFn
|
enterFn enterFn
|
||||||
|
|
@ -29,6 +25,15 @@ type (
|
||||||
decorateFn decorateFn
|
decorateFn decorateFn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewer struct {
|
||||||
|
viewerCapability
|
||||||
|
|
||||||
|
gvr string
|
||||||
|
kind string
|
||||||
|
namespaced bool
|
||||||
|
verbs metav1.Verbs
|
||||||
|
}
|
||||||
|
|
||||||
viewers map[string]viewer
|
viewers map[string]viewer
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -69,10 +74,12 @@ func allCRDs(c k8s.Connection, vv viewers) {
|
||||||
}
|
}
|
||||||
|
|
||||||
vv[gvrs] = viewer{
|
vv[gvrs] = viewer{
|
||||||
gvr: gvrs,
|
gvr: gvrs,
|
||||||
kind: meta.Kind,
|
kind: meta.Kind,
|
||||||
viewFn: listFunc(resource.NewCustomList(c, meta.Namespaced, "", gvrs)),
|
viewerCapability: viewerCapability{
|
||||||
colorerFn: ui.DefaultColorer,
|
viewFn: listFunc(resource.NewCustomList(c, meta.Namespaced, "", gvrs)),
|
||||||
|
colorerFn: ui.DefaultColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -170,172 +177,242 @@ func resourceViews(c k8s.Connection, m viewers) {
|
||||||
|
|
||||||
func coreRes(vv viewers) {
|
func coreRes(vv viewers) {
|
||||||
vv["v1/nodes"] = viewer{
|
vv["v1/nodes"] = viewer{
|
||||||
viewFn: NewNode,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewNodeList,
|
viewFn: NewNode,
|
||||||
colorerFn: nsColorer,
|
listFn: resource.NewNodeList,
|
||||||
|
colorerFn: nsColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/namespaces"] = viewer{
|
vv["v1/namespaces"] = viewer{
|
||||||
viewFn: NewNamespace,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewNamespaceList,
|
viewFn: NewNamespace,
|
||||||
colorerFn: nsColorer,
|
listFn: resource.NewNamespaceList,
|
||||||
|
colorerFn: nsColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/pods"] = viewer{
|
vv["v1/pods"] = viewer{
|
||||||
viewFn: NewPod,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewPodList,
|
viewFn: NewPod,
|
||||||
colorerFn: podColorer,
|
listFn: resource.NewPodList,
|
||||||
|
colorerFn: podColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/serviceaccounts"] = viewer{
|
vv["v1/serviceaccounts"] = viewer{
|
||||||
listFn: resource.NewServiceAccountList,
|
viewerCapability: viewerCapability{
|
||||||
enterFn: showSAPolicy,
|
listFn: resource.NewServiceAccountList,
|
||||||
|
enterFn: showSAPolicy,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/services"] = viewer{
|
vv["v1/services"] = viewer{
|
||||||
viewFn: NewService,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewServiceList,
|
viewFn: NewService,
|
||||||
|
listFn: resource.NewServiceList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/configmaps"] = viewer{
|
vv["v1/configmaps"] = viewer{
|
||||||
listFn: resource.NewConfigMapList,
|
viewerCapability: viewerCapability{
|
||||||
|
listFn: resource.NewConfigMapList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/persistentvolumes"] = viewer{
|
vv["v1/persistentvolumes"] = viewer{
|
||||||
listFn: resource.NewPersistentVolumeList,
|
viewerCapability: viewerCapability{
|
||||||
colorerFn: pvColorer,
|
listFn: resource.NewPersistentVolumeList,
|
||||||
|
colorerFn: pvColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/persistentvolumeclaims"] = viewer{
|
vv["v1/persistentvolumeclaims"] = viewer{
|
||||||
listFn: resource.NewPersistentVolumeClaimList,
|
viewerCapability: viewerCapability{
|
||||||
colorerFn: pvcColorer,
|
listFn: resource.NewPersistentVolumeClaimList,
|
||||||
|
colorerFn: pvcColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/secrets"] = viewer{
|
vv["v1/secrets"] = viewer{
|
||||||
viewFn: NewSecret,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewSecretList,
|
viewFn: NewSecret,
|
||||||
|
listFn: resource.NewSecretList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/endpoints"] = viewer{
|
vv["v1/endpoints"] = viewer{
|
||||||
listFn: resource.NewEndpointsList,
|
viewerCapability: viewerCapability{
|
||||||
|
listFn: resource.NewEndpointsList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/events"] = viewer{
|
vv["v1/events"] = viewer{
|
||||||
listFn: resource.NewEventList,
|
viewerCapability: viewerCapability{
|
||||||
colorerFn: evColorer,
|
listFn: resource.NewEventList,
|
||||||
|
colorerFn: evColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["v1/replicationcontrollers"] = viewer{
|
vv["v1/replicationcontrollers"] = viewer{
|
||||||
viewFn: NewScalableResource,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewReplicationControllerList,
|
viewFn: NewScalableResource,
|
||||||
colorerFn: rsColorer,
|
listFn: resource.NewReplicationControllerList,
|
||||||
|
colorerFn: rsColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func miscRes(vv viewers) {
|
func miscRes(vv viewers) {
|
||||||
vv["storage.k8s.io/v1/storageclasses"] = viewer{
|
vv["storage.k8s.io/v1/storageclasses"] = viewer{
|
||||||
listFn: resource.NewStorageClassList,
|
viewerCapability: viewerCapability{
|
||||||
|
listFn: resource.NewStorageClassList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["contexts"] = viewer{
|
vv["contexts"] = viewer{
|
||||||
gvr: "contexts",
|
gvr: "contexts",
|
||||||
kind: "Contexts",
|
kind: "Contexts",
|
||||||
viewFn: NewContext,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewContextList,
|
viewFn: NewContext,
|
||||||
colorerFn: ctxColorer,
|
listFn: resource.NewContextList,
|
||||||
|
colorerFn: ctxColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["users"] = viewer{
|
vv["users"] = viewer{
|
||||||
gvr: "users",
|
gvr: "users",
|
||||||
viewFn: NewSubject,
|
viewerCapability: viewerCapability{
|
||||||
|
viewFn: NewSubject,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["groups"] = viewer{
|
vv["groups"] = viewer{
|
||||||
gvr: "groups",
|
gvr: "groups",
|
||||||
viewFn: NewSubject,
|
viewerCapability: viewerCapability{
|
||||||
|
viewFn: NewSubject,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["portforwards"] = viewer{
|
vv["portforwards"] = viewer{
|
||||||
gvr: "portforwards",
|
gvr: "portforwards",
|
||||||
viewFn: NewPortForward,
|
viewerCapability: viewerCapability{
|
||||||
|
viewFn: NewPortForward,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["benchmarks"] = viewer{
|
vv["benchmarks"] = viewer{
|
||||||
gvr: "benchmarks",
|
gvr: "benchmarks",
|
||||||
viewFn: NewBench,
|
viewerCapability: viewerCapability{
|
||||||
|
viewFn: NewBench,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["screendumps"] = viewer{
|
vv["screendumps"] = viewer{
|
||||||
gvr: "screendumps",
|
gvr: "screendumps",
|
||||||
viewFn: NewScreenDump,
|
viewerCapability: viewerCapability{
|
||||||
|
viewFn: NewScreenDump,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func appsRes(vv viewers) {
|
func appsRes(vv viewers) {
|
||||||
vv["apps/v1/deployments"] = viewer{
|
vv["apps/v1/deployments"] = viewer{
|
||||||
viewFn: NewDeploy,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewDeploymentList,
|
viewFn: NewDeploy,
|
||||||
colorerFn: dpColorer,
|
listFn: resource.NewDeploymentList,
|
||||||
|
colorerFn: dpColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["apps/v1/replicasets"] = viewer{
|
vv["apps/v1/replicasets"] = viewer{
|
||||||
viewFn: NewReplicaSet,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewReplicaSetList,
|
viewFn: NewReplicaSet,
|
||||||
colorerFn: rsColorer,
|
listFn: resource.NewReplicaSetList,
|
||||||
|
colorerFn: rsColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["apps/v1/statefulsets"] = viewer{
|
vv["apps/v1/statefulsets"] = viewer{
|
||||||
viewFn: NewStatefulSet,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewStatefulSetList,
|
viewFn: NewStatefulSet,
|
||||||
colorerFn: stsColorer,
|
listFn: resource.NewStatefulSetList,
|
||||||
|
colorerFn: stsColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["apps/v1/daemonsets"] = viewer{
|
vv["apps/v1/daemonsets"] = viewer{
|
||||||
viewFn: NewDaemonSet,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewDaemonSetList,
|
viewFn: NewDaemonSet,
|
||||||
colorerFn: dpColorer,
|
listFn: resource.NewDaemonSetList,
|
||||||
|
colorerFn: dpColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func authRes(vv viewers) {
|
func authRes(vv viewers) {
|
||||||
vv["rbac.authorization.k8s.io/v1/clusterroles"] = viewer{
|
vv["rbac.authorization.k8s.io/v1/clusterroles"] = viewer{
|
||||||
listFn: resource.NewClusterRoleList,
|
viewerCapability: viewerCapability{
|
||||||
enterFn: showRBAC,
|
listFn: resource.NewClusterRoleList,
|
||||||
|
enterFn: showRBAC,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["rbac.authorization.k8s.io/v1/clusterrolebindings"] = viewer{
|
vv["rbac.authorization.k8s.io/v1/clusterrolebindings"] = viewer{
|
||||||
listFn: resource.NewClusterRoleBindingList,
|
viewerCapability: viewerCapability{
|
||||||
enterFn: showClusterRole,
|
listFn: resource.NewClusterRoleBindingList,
|
||||||
|
enterFn: showClusterRole,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["rbac.authorization.k8s.io/v1/rolebindings"] = viewer{
|
vv["rbac.authorization.k8s.io/v1/rolebindings"] = viewer{
|
||||||
listFn: resource.NewRoleBindingList,
|
viewerCapability: viewerCapability{
|
||||||
enterFn: showRole,
|
listFn: resource.NewRoleBindingList,
|
||||||
|
enterFn: showRole,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["rbac.authorization.k8s.io/v1/roles"] = viewer{
|
vv["rbac.authorization.k8s.io/v1/roles"] = viewer{
|
||||||
listFn: resource.NewRoleList,
|
viewerCapability: viewerCapability{
|
||||||
enterFn: showRBAC,
|
listFn: resource.NewRoleList,
|
||||||
|
enterFn: showRBAC,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func extRes(vv viewers) {
|
func extRes(vv viewers) {
|
||||||
vv["apiextensions.k8s.io/v1/customresourcedefinitions"] = viewer{
|
vv["apiextensions.k8s.io/v1/customresourcedefinitions"] = viewer{
|
||||||
listFn: resource.NewCustomResourceDefinitionList,
|
viewerCapability: viewerCapability{
|
||||||
enterFn: showCRD,
|
listFn: resource.NewCustomResourceDefinitionList,
|
||||||
|
enterFn: showCRD,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["apiextensions.k8s.io/v1beta1/customresourcedefinitions"] = viewer{
|
vv["apiextensions.k8s.io/v1beta1/customresourcedefinitions"] = viewer{
|
||||||
listFn: resource.NewCustomResourceDefinitionList,
|
viewerCapability: viewerCapability{
|
||||||
enterFn: showCRD,
|
listFn: resource.NewCustomResourceDefinitionList,
|
||||||
|
enterFn: showCRD,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func netRes(vv viewers) {
|
func netRes(vv viewers) {
|
||||||
vv["networking.k8s.io/v1/networkpolicies"] = viewer{
|
vv["networking.k8s.io/v1/networkpolicies"] = viewer{
|
||||||
listFn: resource.NewNetworkPolicyList,
|
viewerCapability: viewerCapability{
|
||||||
|
listFn: resource.NewNetworkPolicyList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["extensions/v1beta1/ingresses"] = viewer{
|
vv["extensions/v1beta1/ingresses"] = viewer{
|
||||||
listFn: resource.NewIngressList,
|
viewerCapability: viewerCapability{
|
||||||
|
listFn: resource.NewIngressList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func batchRes(vv viewers) {
|
func batchRes(vv viewers) {
|
||||||
vv["batch/v1beta1/cronjobs"] = viewer{
|
vv["batch/v1beta1/cronjobs"] = viewer{
|
||||||
viewFn: NewCronJob,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewCronJobList,
|
viewFn: NewCronJob,
|
||||||
|
listFn: resource.NewCronJobList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
vv["batch/v1/jobs"] = viewer{
|
vv["batch/v1/jobs"] = viewer{
|
||||||
viewFn: NewJob,
|
viewerCapability: viewerCapability{
|
||||||
listFn: resource.NewJobList,
|
viewFn: NewJob,
|
||||||
|
listFn: resource.NewJobList,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func policyRes(vv viewers) {
|
func policyRes(vv viewers) {
|
||||||
vv["policy/v1beta1/poddisruptionbudgets"] = viewer{
|
vv["policy/v1beta1/poddisruptionbudgets"] = viewer{
|
||||||
listFn: resource.NewPDBList,
|
viewerCapability: viewerCapability{
|
||||||
colorerFn: pdbColorer,
|
listFn: resource.NewPDBList,
|
||||||
|
colorerFn: pdbColorer,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func hpaRes(vv viewers) {
|
func hpaRes(vv viewers) {
|
||||||
vv["autoscaling/v1/horizontalpodautoscalers"] = viewer{
|
vv["autoscaling/v1/horizontalpodautoscalers"] = viewer{
|
||||||
listFn: resource.NewHorizontalPodAutoscalerV1List,
|
viewerCapability: viewerCapability{
|
||||||
|
listFn: resource.NewHorizontalPodAutoscalerV1List,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue