1
1
package dashboard
2
2
3
3
import (
4
- "fmt"
5
- "time"
6
-
7
4
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
8
5
"k8s.io/apimachinery/pkg/runtime"
9
6
"k8s.io/apimachinery/pkg/runtime/schema"
10
7
"k8s.io/apimachinery/pkg/runtime/serializer"
11
8
"k8s.io/apiserver/pkg/registry/generic"
12
- genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
13
9
"k8s.io/apiserver/pkg/registry/rest"
14
10
genericapiserver "k8s.io/apiserver/pkg/server"
15
11
common "k8s.io/kube-openapi/pkg/common"
@@ -24,7 +20,6 @@ import (
24
20
"github.com/grafana/grafana/pkg/registry/apis/dashboard/access"
25
21
"github.com/grafana/grafana/pkg/services/accesscontrol"
26
22
"github.com/grafana/grafana/pkg/services/apiserver/endpoints/request"
27
- "github.com/grafana/grafana/pkg/services/apiserver/utils"
28
23
"github.com/grafana/grafana/pkg/services/dashboards"
29
24
dashver "github.com/grafana/grafana/pkg/services/dashboardversion"
30
25
"github.com/grafana/grafana/pkg/services/featuremgmt"
@@ -119,43 +114,10 @@ func (b *DashboardsAPIBuilder) GetAPIGroupInfo(
119
114
apiGroupInfo := genericapiserver .NewDefaultAPIGroupInfo (v0alpha1 .GROUP , scheme , metav1 .ParameterCodec , codecs )
120
115
121
116
resourceInfo := v0alpha1 .DashboardResourceInfo
122
- strategy := grafanaregistry .NewStrategy (scheme )
123
- store := & genericregistry.Store {
124
- NewFunc : resourceInfo .NewFunc ,
125
- NewListFunc : resourceInfo .NewListFunc ,
126
- PredicateFunc : grafanaregistry .Matcher ,
127
- DefaultQualifiedResource : resourceInfo .GroupResource (),
128
- SingularQualifiedResource : resourceInfo .SingularGroupResource (),
129
- CreateStrategy : strategy ,
130
- UpdateStrategy : strategy ,
131
- DeleteStrategy : strategy ,
117
+ store , err := newStorage (scheme )
118
+ if err != nil {
119
+ return nil , err
132
120
}
133
- store .TableConvertor = utils .NewTableConverter (
134
- store .DefaultQualifiedResource ,
135
- []metav1.TableColumnDefinition {
136
- {Name : "Name" , Type : "string" , Format : "name" },
137
- {Name : "Title" , Type : "string" , Format : "string" , Description : "The dashboard name" },
138
- {Name : "Created At" , Type : "date" },
139
- },
140
- func (obj any ) ([]interface {}, error ) {
141
- dash , ok := obj .(* v0alpha1.Dashboard )
142
- if ok {
143
- return []interface {}{
144
- dash .Name ,
145
- dash .Spec .GetNestedString ("title" ),
146
- dash .CreationTimestamp .UTC ().Format (time .RFC3339 ),
147
- }, nil
148
- }
149
- summary , ok := obj .(* v0alpha1.DashboardSummary )
150
- if ok {
151
- return []interface {}{
152
- dash .Name ,
153
- summary .Spec .Title ,
154
- dash .CreationTimestamp .UTC ().Format (time .RFC3339 ),
155
- }, nil
156
- }
157
- return nil , fmt .Errorf ("expected dashboard or summary" )
158
- })
159
121
160
122
legacyStore := & dashboardStorage {
161
123
resource : resourceInfo ,
0 commit comments