Skip to content

Commit

Permalink
refactor: extract AsOwnerInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
gitolicious committed Jan 21, 2024
1 parent 9aab918 commit 0edc12f
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 44 deletions.
23 changes: 1 addition & 22 deletions internal/dao/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -332,34 +332,13 @@ func (p *Pod) Scan(ctx context.Context, gvr client.GVR, fqn string, wait bool) (

// GetOwners returns the owners of the resource.
func (p *Pod) GetOwners(path string) ([]OwnerInfo, error) {
var owners []OwnerInfo

pod, err := p.GetInstance(path)
if err != nil {
return nil, err
}
ownerRefs := pod.GetObjectMeta().GetOwnerReferences()

for _, ownerRef := range ownerRefs {
gvr, namespaced, err := GVRForKind(ownerRef.APIVersion, ownerRef.Kind)
if err != nil {
return nil, err
}

var ownerFQN string
if namespaced {
ownerFQN = FQN(pod.Namespace, ownerRef.Name)
} else {
ownerFQN = ownerRef.Name
}

owners = append(owners, OwnerInfo{
GVR: gvr,
FQN: ownerFQN,
})
}

return owners, nil
return AsOwnerInfo(ownerRefs, pod.Namespace)
}

// ----------------------------------------------------------------------------
Expand Down
23 changes: 1 addition & 22 deletions internal/dao/rs.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,34 +130,13 @@ func (r *ReplicaSet) Rollback(fqn string) error {

// GetOwners returns the owners of the resource.
func (r *ReplicaSet) GetOwners(path string) ([]OwnerInfo, error) {
var owners []OwnerInfo

rs, err := r.GetInstance(path)
if err != nil {
return nil, err
}
ownerRefs := rs.GetObjectMeta().GetOwnerReferences()

for _, ownerRef := range ownerRefs {
gvr, namespaced, err := GVRForKind(ownerRef.APIVersion, ownerRef.Kind)
if err != nil {
return nil, err
}

var ownerFQN string
if namespaced {
ownerFQN = FQN(rs.Namespace, ownerRef.Name)
} else {
ownerFQN = ownerRef.Name
}

owners = append(owners, OwnerInfo{
GVR: gvr,
FQN: ownerFQN,
})
}

return owners, nil
return AsOwnerInfo(ownerRefs, rs.Namespace)
}

func (r *ReplicaSet) GetInstance(fqn string) (*appsv1.ReplicaSet, error) {
Expand Down
26 changes: 26 additions & 0 deletions internal/dao/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,29 @@ type Owned interface {
// GetOwners returns the owners of the resource.
GetOwners(path string) ([]OwnerInfo, error)
}

// AsOwnerInfo converts metav1.OwnerReference entries to gvr and fqn owner information.
func AsOwnerInfo(ownerRefs []metav1.OwnerReference, namespace string) ([]OwnerInfo, error) {
var owners []OwnerInfo

for _, ownerRef := range ownerRefs {
gvr, namespaced, err := GVRForKind(ownerRef.APIVersion, ownerRef.Kind)
if err != nil {
return nil, err
}

var ownerFQN string
if namespaced {
ownerFQN = FQN(namespace, ownerRef.Name)
} else {
ownerFQN = ownerRef.Name
}

owners = append(owners, OwnerInfo{
GVR: gvr,
FQN: ownerFQN,
})
}

return owners, nil
}

0 comments on commit 0edc12f

Please sign in to comment.