revert hash key issues

This commit is contained in:
Ryan McKinley 2024-06-12 00:29:52 +03:00
parent ac39953d0e
commit 835879aa7a

View File

@ -46,9 +46,11 @@ type ResourceOriginInfo struct {
} }
// Accessor functions for k8s objects // Accessor functions for k8s objects
type GrafanaResourceMetaAccessor interface { type GrafanaMetaAccessor interface {
metav1.Object metav1.Object
metav1.Type
GetAPIVersion() string
GetKind() string
GetUpdatedTimestamp() (*time.Time, error) GetUpdatedTimestamp() (*time.Time, error)
SetUpdatedTimestamp(v *time.Time) SetUpdatedTimestamp(v *time.Time)
@ -78,9 +80,9 @@ type GrafanaResourceMetaAccessor interface {
FindTitle(defaultTitle string) string FindTitle(defaultTitle string) string
} }
var _ GrafanaResourceMetaAccessor = (*grafanaResourceMetaAccessor)(nil) var _ GrafanaMetaAccessor = (*grafanaMetaAccessor)(nil)
type grafanaResourceMetaAccessor struct { type grafanaMetaAccessor struct {
raw interface{} // the original object (it implements metav1.Object) raw interface{} // the original object (it implements metav1.Object)
obj metav1.Object obj metav1.Object
typ metav1.Type typ metav1.Type
@ -90,7 +92,7 @@ type grafanaResourceMetaAccessor struct {
// obj must be a pointer to an API type. An error is returned if the minimum // obj must be a pointer to an API type. An error is returned if the minimum
// required fields are missing. Fields that are not required return the default // required fields are missing. Fields that are not required return the default
// value and are a no-op if set. // value and are a no-op if set.
func MetaAccessor(raw interface{}) (GrafanaResourceMetaAccessor, error) { func MetaAccessor(raw interface{}) (GrafanaMetaAccessor, error) {
obj, err := meta.Accessor(raw) obj, err := meta.Accessor(raw)
if err != nil { if err != nil {
return nil, err return nil, err
@ -98,18 +100,18 @@ func MetaAccessor(raw interface{}) (GrafanaResourceMetaAccessor, error) {
typ, ok := raw.(metav1.Type) typ, ok := raw.(metav1.Type)
if !ok { if !ok {
typ, ok = obj.(metav1.Type) typ, ok = obj.(metav1.Type)
if !ok {
typ = nil
}
} }
if !ok { return &grafanaMetaAccessor{raw, obj, typ}, nil
return nil, fmt.Errorf("expecting the object to be a type")
}
return &grafanaResourceMetaAccessor{raw, obj, typ}, nil
} }
func (m *grafanaResourceMetaAccessor) Object() metav1.Object { func (m *grafanaMetaAccessor) Object() metav1.Object {
return m.obj return m.obj
} }
func (m *grafanaResourceMetaAccessor) set(key string, val string) { func (m *grafanaMetaAccessor) set(key string, val string) {
anno := m.obj.GetAnnotations() anno := m.obj.GetAnnotations()
if val == "" { if val == "" {
if anno != nil { if anno != nil {
@ -124,11 +126,11 @@ func (m *grafanaResourceMetaAccessor) set(key string, val string) {
m.obj.SetAnnotations(anno) m.obj.SetAnnotations(anno)
} }
func (m *grafanaResourceMetaAccessor) get(key string) string { func (m *grafanaMetaAccessor) get(key string) string {
return m.obj.GetAnnotations()[key] return m.obj.GetAnnotations()[key]
} }
func (m *grafanaResourceMetaAccessor) GetUpdatedTimestamp() (*time.Time, error) { func (m *grafanaMetaAccessor) GetUpdatedTimestamp() (*time.Time, error) {
v, ok := m.obj.GetAnnotations()[AnnoKeyUpdatedTimestamp] v, ok := m.obj.GetAnnotations()[AnnoKeyUpdatedTimestamp]
if !ok || v == "" { if !ok || v == "" {
return nil, nil return nil, nil
@ -141,7 +143,7 @@ func (m *grafanaResourceMetaAccessor) GetUpdatedTimestamp() (*time.Time, error)
return &t, nil return &t, nil
} }
func (m *grafanaResourceMetaAccessor) SetUpdatedTimestampMillis(v int64) { func (m *grafanaMetaAccessor) SetUpdatedTimestampMillis(v int64) {
if v > 0 { if v > 0 {
t := time.UnixMilli(v) t := time.UnixMilli(v)
m.SetUpdatedTimestamp(&t) m.SetUpdatedTimestamp(&t)
@ -150,7 +152,7 @@ func (m *grafanaResourceMetaAccessor) SetUpdatedTimestampMillis(v int64) {
} }
} }
func (m *grafanaResourceMetaAccessor) SetUpdatedTimestamp(v *time.Time) { func (m *grafanaMetaAccessor) SetUpdatedTimestamp(v *time.Time) {
txt := "" txt := ""
if v != nil && v.Unix() != 0 { if v != nil && v.Unix() != 0 {
txt = v.UTC().Format(time.RFC3339) txt = v.UTC().Format(time.RFC3339)
@ -158,39 +160,39 @@ func (m *grafanaResourceMetaAccessor) SetUpdatedTimestamp(v *time.Time) {
m.set(AnnoKeyUpdatedTimestamp, txt) m.set(AnnoKeyUpdatedTimestamp, txt)
} }
func (m *grafanaResourceMetaAccessor) GetCreatedBy() string { func (m *grafanaMetaAccessor) GetCreatedBy() string {
return m.get(AnnoKeyCreatedBy) return m.get(AnnoKeyCreatedBy)
} }
func (m *grafanaResourceMetaAccessor) SetCreatedBy(user string) { func (m *grafanaMetaAccessor) SetCreatedBy(user string) {
m.set(AnnoKeyCreatedBy, user) m.set(AnnoKeyCreatedBy, user)
} }
func (m *grafanaResourceMetaAccessor) GetUpdatedBy() string { func (m *grafanaMetaAccessor) GetUpdatedBy() string {
return m.get(AnnoKeyUpdatedBy) return m.get(AnnoKeyUpdatedBy)
} }
func (m *grafanaResourceMetaAccessor) SetUpdatedBy(user string) { func (m *grafanaMetaAccessor) SetUpdatedBy(user string) {
m.set(AnnoKeyUpdatedBy, user) m.set(AnnoKeyUpdatedBy, user)
} }
func (m *grafanaResourceMetaAccessor) GetFolder() string { func (m *grafanaMetaAccessor) GetFolder() string {
return m.get(AnnoKeyFolder) return m.get(AnnoKeyFolder)
} }
func (m *grafanaResourceMetaAccessor) SetFolder(uid string) { func (m *grafanaMetaAccessor) SetFolder(uid string) {
m.set(AnnoKeyFolder, uid) m.set(AnnoKeyFolder, uid)
} }
func (m *grafanaResourceMetaAccessor) GetSlug() string { func (m *grafanaMetaAccessor) GetSlug() string {
return m.get(AnnoKeySlug) return m.get(AnnoKeySlug)
} }
func (m *grafanaResourceMetaAccessor) SetSlug(v string) { func (m *grafanaMetaAccessor) SetSlug(v string) {
m.set(AnnoKeySlug, v) m.set(AnnoKeySlug, v)
} }
func (m *grafanaResourceMetaAccessor) SetOriginInfo(info *ResourceOriginInfo) { func (m *grafanaMetaAccessor) SetOriginInfo(info *ResourceOriginInfo) {
anno := m.obj.GetAnnotations() anno := m.obj.GetAnnotations()
if anno == nil { if anno == nil {
if info == nil { if info == nil {
@ -218,7 +220,7 @@ func (m *grafanaResourceMetaAccessor) SetOriginInfo(info *ResourceOriginInfo) {
m.obj.SetAnnotations(anno) m.obj.SetAnnotations(anno)
} }
func (m *grafanaResourceMetaAccessor) GetOriginInfo() (*ResourceOriginInfo, error) { func (m *grafanaMetaAccessor) GetOriginInfo() (*ResourceOriginInfo, error) {
v, ok := m.obj.GetAnnotations()[AnnoKeyOriginName] v, ok := m.obj.GetAnnotations()[AnnoKeyOriginName]
if !ok { if !ok {
return nil, nil return nil, nil
@ -232,19 +234,19 @@ func (m *grafanaResourceMetaAccessor) GetOriginInfo() (*ResourceOriginInfo, erro
}, err }, err
} }
func (m *grafanaResourceMetaAccessor) GetOriginName() string { func (m *grafanaMetaAccessor) GetOriginName() string {
return m.get(AnnoKeyOriginName) return m.get(AnnoKeyOriginName)
} }
func (m *grafanaResourceMetaAccessor) GetOriginPath() string { func (m *grafanaMetaAccessor) GetOriginPath() string {
return m.get(AnnoKeyOriginPath) return m.get(AnnoKeyOriginPath)
} }
func (m *grafanaResourceMetaAccessor) GetOriginKey() string { func (m *grafanaMetaAccessor) GetOriginKey() string {
return m.get(AnnoKeyOriginKey) return m.get(AnnoKeyOriginKey)
} }
func (m *grafanaResourceMetaAccessor) GetOriginTimestamp() (*time.Time, error) { func (m *grafanaMetaAccessor) GetOriginTimestamp() (*time.Time, error) {
v, ok := m.obj.GetAnnotations()[AnnoKeyOriginTimestamp] v, ok := m.obj.GetAnnotations()[AnnoKeyOriginTimestamp]
if !ok || v == "" { if !ok || v == "" {
return nil, nil return nil, nil
@ -256,173 +258,171 @@ func (m *grafanaResourceMetaAccessor) GetOriginTimestamp() (*time.Time, error) {
return &t, nil return &t, nil
} }
// GetAnnotations implements GrafanaResourceMetaAccessor. // GetAnnotations implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetAnnotations() map[string]string { func (m *grafanaMetaAccessor) GetAnnotations() map[string]string {
return m.obj.GetAnnotations() return m.obj.GetAnnotations()
} }
// GetCreationTimestamp implements GrafanaResourceMetaAccessor. // GetCreationTimestamp implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetCreationTimestamp() metav1.Time { func (m *grafanaMetaAccessor) GetCreationTimestamp() metav1.Time {
return m.obj.GetCreationTimestamp() return m.obj.GetCreationTimestamp()
} }
// GetDeletionGracePeriodSeconds implements GrafanaResourceMetaAccessor. // GetDeletionGracePeriodSeconds implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetDeletionGracePeriodSeconds() *int64 { func (m *grafanaMetaAccessor) GetDeletionGracePeriodSeconds() *int64 {
return m.obj.GetDeletionGracePeriodSeconds() return m.obj.GetDeletionGracePeriodSeconds()
} }
// GetDeletionTimestamp implements GrafanaResourceMetaAccessor. // GetDeletionTimestamp implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetDeletionTimestamp() *metav1.Time { func (m *grafanaMetaAccessor) GetDeletionTimestamp() *metav1.Time {
return m.obj.GetDeletionTimestamp() return m.obj.GetDeletionTimestamp()
} }
// GetFinalizers implements GrafanaResourceMetaAccessor. // GetFinalizers implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetFinalizers() []string { func (m *grafanaMetaAccessor) GetFinalizers() []string {
return m.obj.GetFinalizers() return m.obj.GetFinalizers()
} }
// GetGenerateName implements GrafanaResourceMetaAccessor. // GetGenerateName implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetGenerateName() string { func (m *grafanaMetaAccessor) GetGenerateName() string {
return m.obj.GetGenerateName() return m.obj.GetGenerateName()
} }
// GetGeneration implements GrafanaResourceMetaAccessor. // GetGeneration implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetGeneration() int64 { func (m *grafanaMetaAccessor) GetGeneration() int64 {
return m.obj.GetGeneration() return m.obj.GetGeneration()
} }
// GetLabels implements GrafanaResourceMetaAccessor. // GetLabels implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetLabels() map[string]string { func (m *grafanaMetaAccessor) GetLabels() map[string]string {
return m.obj.GetLabels() return m.obj.GetLabels()
} }
// GetManagedFields implements GrafanaResourceMetaAccessor. // GetManagedFields implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetManagedFields() []metav1.ManagedFieldsEntry { func (m *grafanaMetaAccessor) GetManagedFields() []metav1.ManagedFieldsEntry {
return m.obj.GetManagedFields() return m.obj.GetManagedFields()
} }
// GetName implements GrafanaResourceMetaAccessor. // GetName implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetName() string { func (m *grafanaMetaAccessor) GetName() string {
return m.obj.GetName() return m.obj.GetName()
} }
// GetNamespace implements GrafanaResourceMetaAccessor. // GetNamespace implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetNamespace() string { func (m *grafanaMetaAccessor) GetNamespace() string {
return m.obj.GetNamespace() return m.obj.GetNamespace()
} }
// GetOwnerReferences implements GrafanaResourceMetaAccessor. // GetOwnerReferences implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetOwnerReferences() []metav1.OwnerReference { func (m *grafanaMetaAccessor) GetOwnerReferences() []metav1.OwnerReference {
return m.obj.GetOwnerReferences() return m.obj.GetOwnerReferences()
} }
// GetResourceVersion implements GrafanaResourceMetaAccessor. // GetResourceVersion implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetResourceVersion() string { func (m *grafanaMetaAccessor) GetResourceVersion() string {
return m.obj.GetResourceVersion() return m.obj.GetResourceVersion()
} }
// GetSelfLink implements GrafanaResourceMetaAccessor. // GetSelfLink implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetSelfLink() string { func (m *grafanaMetaAccessor) GetSelfLink() string {
return m.obj.GetSelfLink() return m.obj.GetSelfLink()
} }
// GetUID implements GrafanaResourceMetaAccessor. // GetUID implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) GetUID() types.UID { func (m *grafanaMetaAccessor) GetUID() types.UID {
return m.obj.GetUID() return m.obj.GetUID()
} }
// SetAnnotations implements GrafanaResourceMetaAccessor. // SetAnnotations implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetAnnotations(annotations map[string]string) { func (m *grafanaMetaAccessor) SetAnnotations(annotations map[string]string) {
m.obj.SetAnnotations(annotations) m.obj.SetAnnotations(annotations)
} }
// SetCreationTimestamp implements GrafanaResourceMetaAccessor. // SetCreationTimestamp implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetCreationTimestamp(timestamp metav1.Time) { func (m *grafanaMetaAccessor) SetCreationTimestamp(timestamp metav1.Time) {
m.obj.SetCreationTimestamp(timestamp) m.obj.SetCreationTimestamp(timestamp)
} }
// SetDeletionGracePeriodSeconds implements GrafanaResourceMetaAccessor. // SetDeletionGracePeriodSeconds implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetDeletionGracePeriodSeconds(v *int64) { func (m *grafanaMetaAccessor) SetDeletionGracePeriodSeconds(v *int64) {
m.obj.SetDeletionGracePeriodSeconds(v) m.obj.SetDeletionGracePeriodSeconds(v)
} }
// SetDeletionTimestamp implements GrafanaResourceMetaAccessor. // SetDeletionTimestamp implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetDeletionTimestamp(timestamp *metav1.Time) { func (m *grafanaMetaAccessor) SetDeletionTimestamp(timestamp *metav1.Time) {
m.obj.SetDeletionTimestamp(timestamp) m.obj.SetDeletionTimestamp(timestamp)
} }
// SetFinalizers implements GrafanaResourceMetaAccessor. // SetFinalizers implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetFinalizers(finalizers []string) { func (m *grafanaMetaAccessor) SetFinalizers(finalizers []string) {
m.obj.SetFinalizers(finalizers) m.obj.SetFinalizers(finalizers)
} }
// SetGenerateName implements GrafanaResourceMetaAccessor. // SetGenerateName implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetGenerateName(name string) { func (m *grafanaMetaAccessor) SetGenerateName(name string) {
m.obj.SetGenerateName(name) m.obj.SetGenerateName(name)
} }
// SetGeneration implements GrafanaResourceMetaAccessor. // SetGeneration implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetGeneration(generation int64) { func (m *grafanaMetaAccessor) SetGeneration(generation int64) {
m.obj.SetGeneration(generation) m.obj.SetGeneration(generation)
} }
// SetLabels implements GrafanaResourceMetaAccessor. // SetLabels implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetLabels(labels map[string]string) { func (m *grafanaMetaAccessor) SetLabels(labels map[string]string) {
m.obj.SetLabels(labels) m.obj.SetLabels(labels)
} }
// SetManagedFields implements GrafanaResourceMetaAccessor. // SetManagedFields implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetManagedFields(managedFields []metav1.ManagedFieldsEntry) { func (m *grafanaMetaAccessor) SetManagedFields(managedFields []metav1.ManagedFieldsEntry) {
m.obj.SetManagedFields(managedFields) m.obj.SetManagedFields(managedFields)
} }
// SetName implements GrafanaResourceMetaAccessor. // SetName implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetName(name string) { func (m *grafanaMetaAccessor) SetName(name string) {
m.obj.SetName(name) m.obj.SetName(name)
} }
// SetNamespace implements GrafanaResourceMetaAccessor. // SetNamespace implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetNamespace(namespace string) { func (m *grafanaMetaAccessor) SetNamespace(namespace string) {
m.obj.SetNamespace(namespace) m.obj.SetNamespace(namespace)
} }
// SetOwnerReferences implements GrafanaResourceMetaAccessor. // SetOwnerReferences implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetOwnerReferences(v []metav1.OwnerReference) { func (m *grafanaMetaAccessor) SetOwnerReferences(v []metav1.OwnerReference) {
m.obj.SetOwnerReferences(v) m.obj.SetOwnerReferences(v)
} }
// SetResourceVersion implements GrafanaResourceMetaAccessor. // SetResourceVersion implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetResourceVersion(version string) { func (m *grafanaMetaAccessor) SetResourceVersion(version string) {
m.obj.SetResourceVersion(version) m.obj.SetResourceVersion(version)
} }
// SetSelfLink implements GrafanaResourceMetaAccessor. // SetSelfLink implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetSelfLink(selfLink string) { func (m *grafanaMetaAccessor) SetSelfLink(selfLink string) {
m.obj.SetSelfLink(selfLink) m.obj.SetSelfLink(selfLink)
} }
// SetUID implements GrafanaResourceMetaAccessor. // SetUID implements GrafanaMetaAccessor.
func (m *grafanaResourceMetaAccessor) SetUID(uid types.UID) { func (m *grafanaMetaAccessor) SetUID(uid types.UID) {
m.obj.SetUID(uid) m.obj.SetUID(uid)
} }
func (m *grafanaResourceMetaAccessor) GetAPIVersion() string { func (m *grafanaMetaAccessor) GetAPIVersion() string {
if m.typ == nil {
return ""
}
return m.typ.GetAPIVersion() return m.typ.GetAPIVersion()
} }
func (m *grafanaResourceMetaAccessor) SetAPIVersion(version string) { func (m *grafanaMetaAccessor) GetKind() string {
m.typ.SetAPIVersion(version) if m.typ == nil {
} return ""
}
func (m *grafanaResourceMetaAccessor) GetKind() string {
return m.typ.GetKind() return m.typ.GetKind()
} }
func (m *grafanaResourceMetaAccessor) SetKind(kind string) { func (m *grafanaMetaAccessor) FindTitle(defaultTitle string) string {
m.typ.SetKind(kind)
}
func (m *grafanaResourceMetaAccessor) FindTitle(defaultTitle string) string {
// look for Spec.Title or Spec.Name // look for Spec.Title or Spec.Name
r := reflect.ValueOf(m.raw) r := reflect.ValueOf(m.raw)
if r.Kind() == reflect.Ptr || r.Kind() == reflect.Interface { if r.Kind() == reflect.Ptr || r.Kind() == reflect.Interface {