From 079f1e701547f25535a421103c6c3fbb6cb71cc9 Mon Sep 17 00:00:00 2001 From: jiangyaoguo Date: Fri, 11 Sep 2015 18:08:09 +0800 Subject: [PATCH] Fix reason reporting in controller --- pkg/controller/node/nodecontroller.go | 6 ++++-- pkg/controller/node/nodecontroller_test.go | 6 ++++-- pkg/controller/service/servicecontroller.go | 20 ++++++++++---------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/pkg/controller/node/nodecontroller.go b/pkg/controller/node/nodecontroller.go index 2e9bdc0c85f..210e01d2e0a 100644 --- a/pkg/controller/node/nodecontroller.go +++ b/pkg/controller/node/nodecontroller.go @@ -515,7 +515,8 @@ func (nc *NodeController) tryUpdateNodeStatus(node *api.Node) (time.Duration, ap node.Status.Conditions = append(node.Status.Conditions, api.NodeCondition{ Type: api.NodeReady, Status: api.ConditionUnknown, - Reason: fmt.Sprintf("Kubelet never posted node status."), + Reason: "NodeStatusNeverUpdated", + Message: fmt.Sprintf("Kubelet never posted node status."), LastHeartbeatTime: node.CreationTimestamp, LastTransitionTime: nc.now(), }) @@ -524,7 +525,8 @@ func (nc *NodeController) tryUpdateNodeStatus(node *api.Node) (time.Duration, ap node.Name, nc.now().Time.Sub(savedNodeStatus.probeTimestamp.Time), lastReadyCondition) if lastReadyCondition.Status != api.ConditionUnknown { readyCondition.Status = api.ConditionUnknown - readyCondition.Reason = fmt.Sprintf("Kubelet stopped posting node status.") + readyCondition.Reason = "NodeStatusUnknown" + readyCondition.Message = fmt.Sprintf("Kubelet stopped posting node status.") // LastProbeTime is the last time we heard from kubelet. readyCondition.LastHeartbeatTime = lastReadyCondition.LastHeartbeatTime readyCondition.LastTransitionTime = nc.now() diff --git a/pkg/controller/node/nodecontroller_test.go b/pkg/controller/node/nodecontroller_test.go index 2b58083cba1..1cfed1e1ee4 100644 --- a/pkg/controller/node/nodecontroller_test.go +++ b/pkg/controller/node/nodecontroller_test.go @@ -400,7 +400,8 @@ func TestMonitorNodeStatusUpdateStatus(t *testing.T) { { Type: api.NodeReady, Status: api.ConditionUnknown, - Reason: fmt.Sprintf("Kubelet never posted node status."), + Reason: "NodeStatusNeverUpdated", + Message: fmt.Sprintf("Kubelet never posted node status."), LastHeartbeatTime: util.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), LastTransitionTime: fakeNow, }, @@ -486,7 +487,8 @@ func TestMonitorNodeStatusUpdateStatus(t *testing.T) { { Type: api.NodeReady, Status: api.ConditionUnknown, - Reason: fmt.Sprintf("Kubelet stopped posting node status."), + Reason: "NodeStatusStopUpdated", + Message: fmt.Sprintf("Kubelet stopped posting node status."), LastHeartbeatTime: util.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), LastTransitionTime: util.Time{Time: util.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC).Add(time.Hour)}, }, diff --git a/pkg/controller/service/servicecontroller.go b/pkg/controller/service/servicecontroller.go index 688283b015f..d765944e82f 100644 --- a/pkg/controller/service/servicecontroller.go +++ b/pkg/controller/service/servicecontroller.go @@ -245,7 +245,7 @@ func (s *ServiceController) processDelta(delta *cache.Delta) (error, bool) { message += " (will not retry): " } message += err.Error() - s.eventRecorder.Event(service, "creating loadbalancer failed", message) + s.eventRecorder.Event(service, "CreatingLoadBalancerFailed", message) return err, retry } // Always update the cache upon success. @@ -255,14 +255,14 @@ func (s *ServiceController) processDelta(delta *cache.Delta) (error, bool) { cachedService.appliedState = service s.cache.set(namespacedName.String(), cachedService) case cache.Deleted: - s.eventRecorder.Event(service, "deleting loadbalancer", "deleting loadbalancer") + s.eventRecorder.Event(service, "DeletingLoadBalancer", "deleting loadbalancer") err := s.balancer.EnsureTCPLoadBalancerDeleted(s.loadBalancerName(service), s.zone.Region) if err != nil { message := "error deleting load balancer (will retry): " + err.Error() - s.eventRecorder.Event(service, "deleting loadbalancer failed", message) + s.eventRecorder.Event(service, "DeletingLoadBalancerFailed", message) return err, retryable } - s.eventRecorder.Event(service, "deleted loadbalancer", "deleted loadbalancer") + s.eventRecorder.Event(service, "DeletedLoadBalancer", "deleted loadbalancer") s.cache.delete(namespacedName.String()) default: glog.Errorf("Unexpected delta type: %v", delta.Type) @@ -305,11 +305,11 @@ func (s *ServiceController) createLoadBalancerIfNeeded(namespacedName types.Name if needDelete { glog.Infof("Deleting existing load balancer for service %s that no longer needs a load balancer.", namespacedName) - s.eventRecorder.Event(service, "deleting loadbalancer", "deleting loadbalancer") + s.eventRecorder.Event(service, "DeletingLoadBalancer", "deleting loadbalancer") if err := s.balancer.EnsureTCPLoadBalancerDeleted(s.loadBalancerName(service), s.zone.Region); err != nil { return err, retryable } - s.eventRecorder.Event(service, "deleted loadbalancer", "deleted loadbalancer") + s.eventRecorder.Event(service, "DeletedLoadBalancer", "deleted loadbalancer") } service.Status.LoadBalancer = api.LoadBalancerStatus{} @@ -319,12 +319,12 @@ func (s *ServiceController) createLoadBalancerIfNeeded(namespacedName types.Name // TODO: We could do a dry-run here if wanted to avoid the spurious cloud-calls & events when we restart // The load balancer doesn't exist yet, so create it. - s.eventRecorder.Event(service, "creating loadbalancer", "creating loadbalancer") + s.eventRecorder.Event(service, "CreatingLoadBalancer", "creating loadbalancer") err := s.createExternalLoadBalancer(service) if err != nil { return fmt.Errorf("failed to create external load balancer for service %s: %v", namespacedName, err), retryable } - s.eventRecorder.Event(service, "created loadbalancer", "created loadbalancer") + s.eventRecorder.Event(service, "CreatedLoadBalancer", "created loadbalancer") } // Write the state if changed @@ -659,7 +659,7 @@ func (s *ServiceController) lockedUpdateLoadBalancerHosts(service *api.Service, name := cloudprovider.GetLoadBalancerName(service) err := s.balancer.UpdateTCPLoadBalancer(name, s.zone.Region, hosts) if err == nil { - s.eventRecorder.Event(service, "updated loadbalancer", "updated loadbalancer with new hosts") + s.eventRecorder.Event(service, "UpdatedLoadBalancer", "updated loadbalancer with new hosts") return nil } @@ -671,7 +671,7 @@ func (s *ServiceController) lockedUpdateLoadBalancerHosts(service *api.Service, } message := "error updating loadbalancer with new hosts: " + err.Error() - s.eventRecorder.Event(service, "updating loadbalancer failed", message) + s.eventRecorder.Event(service, "LoadBalancerUpdateFailed", message) return err }