Skip to content

Commit

Permalink
Replace runtimeobjects.CreateMetaNamespaceKey with KeyFunc from cache
Browse files Browse the repository at this point in the history
package.
  • Loading branch information
mborsz committed Jul 20, 2022
1 parent 8f27a51 commit 07429e8
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 100 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import (
measurementutil "k8s.io/perf-tests/clusterloader2/pkg/measurement/util"
"k8s.io/perf-tests/clusterloader2/pkg/measurement/util/checker"
"k8s.io/perf-tests/clusterloader2/pkg/measurement/util/informer"
"k8s.io/perf-tests/clusterloader2/pkg/measurement/util/runtimeobjects"
"k8s.io/perf-tests/clusterloader2/pkg/measurement/util/workerqueue"
"k8s.io/perf-tests/clusterloader2/pkg/util"
)
Expand Down Expand Up @@ -257,7 +256,7 @@ func (s *serviceCreationLatencyMeasurement) handleObject(oldObj, newObj interfac
}

func (s *serviceCreationLatencyMeasurement) deleteObject(svc *corev1.Service) error {
key, err := runtimeobjects.CreateMetaNamespaceKey(svc)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(svc)
if err != nil {
return fmt.Errorf("meta key created error: %v", err)
}
Expand All @@ -272,7 +271,7 @@ func (s *serviceCreationLatencyMeasurement) updateObject(svc *corev1.Service) er
if svc.Spec.Type != corev1.ServiceTypeClusterIP && svc.Spec.Type != corev1.ServiceTypeNodePort && svc.Spec.Type != corev1.ServiceTypeLoadBalancer {
return nil
}
key, err := runtimeobjects.CreateMetaNamespaceKey(svc)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(svc)
if err != nil {
return fmt.Errorf("meta key created error: %v", err)
}
Expand Down Expand Up @@ -315,7 +314,7 @@ type pingChecker struct {
}

func (p *pingChecker) run() {
key, err := runtimeobjects.CreateMetaNamespaceKey(p.svc)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(p.svc)
if err != nil {
klog.Errorf("%s: meta key created error: %v", p.callerName, err)
return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ func (w *waitForControlledPodsRunningMeasurement) handleObjectLocked(oldObj, new
if isObjDeleted {
handledObj = oldObj
}
key, err := runtimeobjects.CreateMetaNamespaceKey(handledObj)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(handledObj)
if err != nil {
return fmt.Errorf("meta key creation error: %v", err)
}
Expand All @@ -456,7 +456,7 @@ func (w *waitForControlledPodsRunningMeasurement) deleteObjectLocked(obj runtime
if obj == nil {
return nil
}
key, err := runtimeobjects.CreateMetaNamespaceKey(obj)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj)
if err != nil {
return fmt.Errorf("meta key creation error: %v", err)
}
Expand Down Expand Up @@ -558,7 +558,7 @@ func (w *waitForControlledPodsRunningMeasurement) waitForRuntimeObject(obj runti
if isDeleted {
runtimeObjectReplicas = &runtimeobjects.ConstReplicas{0}
}
key, err := runtimeobjects.CreateMetaNamespaceKey(obj)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj)
if err != nil {
return nil, fmt.Errorf("meta key creation error: %v", err)
}
Expand Down
5 changes: 2 additions & 3 deletions clusterloader2/pkg/measurement/common/wait_for_jobs.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import (
"k8s.io/perf-tests/clusterloader2/pkg/measurement"
measurementutil "k8s.io/perf-tests/clusterloader2/pkg/measurement/util"
"k8s.io/perf-tests/clusterloader2/pkg/measurement/util/informer"
"k8s.io/perf-tests/clusterloader2/pkg/measurement/util/runtimeobjects"
"k8s.io/perf-tests/clusterloader2/pkg/measurement/util/workerqueue"
"k8s.io/perf-tests/clusterloader2/pkg/util"
)
Expand Down Expand Up @@ -214,7 +213,7 @@ func (w *waitForFinishedJobsMeasurement) handleObject(oldObj, newObj interface{}
if newJob == nil {
handleJob = oldJob
}
key, err := runtimeobjects.CreateMetaNamespaceKey(handleJob)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(handleJob)
if err != nil {
klog.Errorf("Failed obtaining meta key for Job: %v", err)
return
Expand All @@ -241,7 +240,7 @@ func (w *waitForFinishedJobsMeasurement) jobKeys() (sets.String, error) {
}
keys := sets.NewString()
for _, j := range objs.Items {
key, err := runtimeobjects.CreateMetaNamespaceKey(&j)
key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(&j)
if err != nil {
return nil, fmt.Errorf("getting key for Job: %w", err)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,20 +65,6 @@ func ListRuntimeObjectsForKind(d dynamic.Interface, gvr schema.GroupVersionResou
return runtimeObjectsList, nil
}

// GetNameFromRuntimeObject returns name of given runtime object.
func GetNameFromRuntimeObject(obj runtime.Object) (string, error) {
switch typed := obj.(type) {
case *unstructured.Unstructured:
return typed.GetName(), nil
default:
metaObjectAccessor, ok := obj.(metav1.ObjectMetaAccessor)
if !ok {
return "", fmt.Errorf("unsupported kind when getting name: %v", obj)
}
return metaObjectAccessor.GetObjectMeta().GetName(), nil
}
}

// GetResourceVersionFromRuntimeObject returns resource version of given runtime object.
func GetResourceVersionFromRuntimeObject(obj runtime.Object) (uint64, error) {
accessor, err := meta.Accessor(obj)
Expand All @@ -92,20 +78,6 @@ func GetResourceVersionFromRuntimeObject(obj runtime.Object) (uint64, error) {
return strconv.ParseUint(version, 10, 64)
}

// GetNamespaceFromRuntimeObject returns namespace of given runtime object.
func GetNamespaceFromRuntimeObject(obj runtime.Object) (string, error) {
switch typed := obj.(type) {
case *unstructured.Unstructured:
return typed.GetNamespace(), nil
default:
metaObjectAccessor, ok := obj.(metav1.ObjectMetaAccessor)
if !ok {
return "", fmt.Errorf("unsupported kind when getting namespace: %v", obj)
}
return metaObjectAccessor.GetObjectMeta().GetNamespace(), nil
}
}

// GetIsPodUpdatedPredicateFromRuntimeObject returns a func(*corev1.Pod) bool predicate
// that can be used to check if given pod represents the desired state of pod.
func GetIsPodUpdatedPredicateFromRuntimeObject(obj runtime.Object) (func(*corev1.Pod) error, error) {
Expand Down Expand Up @@ -311,19 +283,6 @@ func IsEqualRuntimeObjectsSpec(runtimeObj1, runtimeObj2 runtime.Object) (bool, e
return equality.Semantic.DeepEqual(runtimeObj1Spec, runtimeObj2Spec), nil
}

// CreateMetaNamespaceKey returns meta key (namespace/name) for given runtime object.
func CreateMetaNamespaceKey(obj runtime.Object) (string, error) {
namespace, err := GetNamespaceFromRuntimeObject(obj)
if err != nil {
return "", fmt.Errorf("retrieving namespace error: %v", err)
}
name, err := GetNameFromRuntimeObject(obj)
if err != nil {
return "", fmt.Errorf("retrieving name error: %v", err)
}
return namespace + "/" + name, nil
}

// GetNumObjectsMatchingSelector returns number of objects matching the given selector.
func GetNumObjectsMatchingSelector(c dynamic.Interface, namespace string, resource schema.GroupVersionResource, labelSelector labels.Selector) (int, error) {
var numObjects int
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,55 +263,6 @@ func allocatableResources(memory, cpu string) v1.ResourceList {
}
}

func TestGetNameFromRuntimeObject(t *testing.T) {
objects := []runtime.Object{
replicationcontroller,
replicaset,
deployment,
job,
daemonset,
}

for _, obj := range objects {
unstructured := &unstructured.Unstructured{}
if err := scheme.Scheme.Convert(obj, unstructured, nil); err != nil {
t.Fatalf("error converting controller to unstructured: %v", err)
}
name, err := runtimeobjects.GetNameFromRuntimeObject(unstructured)
if err != nil {
t.Fatalf("get name from runtime object failed: %v", err)
}

if controllerName != name {
t.Fatalf("Unexpected name from runtime object, expected: %s, actual: %s", controllerName, name)
}
}
}

func TestGetNamespaceFromRuntimeObject(t *testing.T) {
objects := []runtime.Object{
replicationcontroller,
replicaset,
deployment,
job,
daemonset,
}
for _, obj := range objects {
unstructured := &unstructured.Unstructured{}
if err := scheme.Scheme.Convert(obj, unstructured, nil); err != nil {
t.Fatalf("error converting controller to unstructured: %v", err)
}
namespace, err := runtimeobjects.GetNamespaceFromRuntimeObject(unstructured)
if err != nil {
t.Fatalf("get namespace from runtime object failed: %v", err)
}

if testNamespace != namespace {
t.Fatalf("Unexpected namespace from runtime object, expected: %s, actual: %s", testNamespace, namespace)
}
}
}

func TestGetResourceVersionFromRuntimeObject(t *testing.T) {
objects := []runtime.Object{
replicationcontroller,
Expand Down

0 comments on commit 07429e8

Please sign in to comment.