mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package folders
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
|
"github.com/grafana/grafana/pkg/apis/folder/v0alpha1"
|
|
"github.com/grafana/grafana/pkg/services/apiserver/endpoints/request"
|
|
"github.com/grafana/grafana/pkg/services/apiserver/utils"
|
|
"github.com/grafana/grafana/pkg/services/folder"
|
|
)
|
|
|
|
func convertToK8sResource(v *folder.Folder, namespacer request.NamespaceMapper) *v0alpha1.Folder {
|
|
f := &v0alpha1.Folder{
|
|
TypeMeta: v0alpha1.FolderResourceInfo.TypeMeta(),
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: v.UID,
|
|
ResourceVersion: fmt.Sprintf("%d", v.Updated.UnixMilli()),
|
|
CreationTimestamp: metav1.NewTime(v.Created),
|
|
Namespace: namespacer(v.OrgID),
|
|
},
|
|
Spec: v0alpha1.Spec{
|
|
Title: v.Title,
|
|
Description: v.Description,
|
|
},
|
|
}
|
|
|
|
meta, err := utils.MetaAccessor(f)
|
|
if err == nil {
|
|
meta.SetUpdatedTimestamp(&v.Updated)
|
|
if v.ID > 0 { // nolint:staticcheck
|
|
meta.SetOriginInfo(&utils.ResourceOriginInfo{
|
|
Name: "SQL",
|
|
Key: fmt.Sprintf("%d", v.ID), // nolint:staticcheck
|
|
})
|
|
}
|
|
if v.CreatedBy > 0 {
|
|
meta.SetCreatedBy(fmt.Sprintf("user:%d", v.CreatedBy))
|
|
}
|
|
if v.UpdatedBy > 0 {
|
|
meta.SetUpdatedBy(fmt.Sprintf("user:%d", v.UpdatedBy))
|
|
}
|
|
}
|
|
if v.ParentUID != "" {
|
|
meta.SetFolder(v.ParentUID)
|
|
}
|
|
f.UID = utils.CalculateClusterWideUID(f)
|
|
return f
|
|
}
|