mirror of https://github.com/grafana/grafana
parent
d452e53ce3
commit
1043efe3db
@ -1,4 +1,4 @@ |
||||
package access |
||||
package legacy |
||||
|
||||
import ( |
||||
"context" |
||||
@ -1,4 +1,4 @@ |
||||
package access |
||||
package legacy |
||||
|
||||
import ( |
||||
"context" |
||||
@ -1,4 +1,4 @@ |
||||
package access |
||||
package legacy |
||||
|
||||
import ( |
||||
"fmt" |
||||
@ -1,4 +1,4 @@ |
||||
package access |
||||
package legacy |
||||
|
||||
import ( |
||||
"context" |
||||
@ -0,0 +1,60 @@ |
||||
package dashboard |
||||
|
||||
import ( |
||||
"fmt" |
||||
"time" |
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
||||
"k8s.io/apimachinery/pkg/runtime" |
||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" |
||||
|
||||
"github.com/grafana/grafana/pkg/apis/dashboard/v0alpha1" |
||||
grafanaregistry "github.com/grafana/grafana/pkg/apiserver/registry/generic" |
||||
grafanarest "github.com/grafana/grafana/pkg/apiserver/rest" |
||||
gapiutil "github.com/grafana/grafana/pkg/services/apiserver/utils" |
||||
) |
||||
|
||||
var _ grafanarest.Storage = (*storage)(nil) |
||||
|
||||
type storage struct { |
||||
*genericregistry.Store |
||||
} |
||||
|
||||
func newStorage(scheme *runtime.Scheme) (*storage, error) { |
||||
strategy := grafanaregistry.NewStrategy(scheme) |
||||
resourceInfo := v0alpha1.DashboardResourceInfo |
||||
store := &genericregistry.Store{ |
||||
NewFunc: resourceInfo.NewFunc, |
||||
NewListFunc: resourceInfo.NewListFunc, |
||||
KeyRootFunc: grafanaregistry.KeyRootFunc(resourceInfo.GroupResource()), |
||||
KeyFunc: grafanaregistry.NamespaceKeyFunc(resourceInfo.GroupResource()), |
||||
PredicateFunc: grafanaregistry.Matcher, |
||||
DefaultQualifiedResource: resourceInfo.GroupResource(), |
||||
SingularQualifiedResource: resourceInfo.SingularGroupResource(), |
||||
CreateStrategy: strategy, |
||||
UpdateStrategy: strategy, |
||||
DeleteStrategy: strategy, |
||||
} |
||||
|
||||
store.TableConvertor = gapiutil.NewTableConverter( |
||||
store.DefaultQualifiedResource, |
||||
[]metav1.TableColumnDefinition{ |
||||
{Name: "Name", Type: "string", Format: "name"}, |
||||
{Name: "Title", Type: "string", Format: "string", Description: "The dashboard name"}, |
||||
{Name: "Created At", Type: "date"}, |
||||
}, |
||||
func(obj any) ([]interface{}, error) { |
||||
dash, ok := obj.(*v0alpha1.Dashboard) |
||||
if ok { |
||||
if dash != nil { |
||||
return []interface{}{ |
||||
dash.Name, |
||||
dash.Spec.GetNestedString("title"), |
||||
dash.CreationTimestamp.UTC().Format(time.RFC3339), |
||||
}, nil |
||||
} |
||||
} |
||||
return nil, fmt.Errorf("expected dashboard or summary") |
||||
}) |
||||
return &storage{Store: store}, nil |
||||
} |
||||
Loading…
Reference in new issue