in clusterloader2/pkg/measurement/common/service_creation_latency.go [222:256]
func (s *serviceCreationLatencyMeasurement) handleObject(oldObj, newObj interface{}) {
var oldService *corev1.Service
var newService *corev1.Service
var ok bool
oldService, ok = oldObj.(*corev1.Service)
if oldObj != nil && !ok {
klog.Errorf("%s: uncastable old object: %v", s, oldObj)
return
}
newService, ok = newObj.(*corev1.Service)
if newObj != nil && !ok {
klog.Errorf("%s: uncastable new object: %v", s, newObj)
return
}
if isEqual := oldService != nil &&
newService != nil &&
equality.Semantic.DeepEqual(oldService.Spec, newService.Spec) &&
equality.Semantic.DeepEqual(oldService.Status, newService.Status); isEqual {
return
}
// TODO(#680): Make it thread-safe.
if !s.isRunning {
return
}
if newObj == nil {
if err := s.deleteObject(oldService); err != nil {
klog.Errorf("%s: delete checker error: %v", s, err)
}
return
}
if err := s.updateObject(newService); err != nil {
klog.Errorf("%s: create checker error: %v", s, err)
}
}