diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index 70eec069e3..6eb64c3212 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -31,6 +31,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/healthz" "github.com/GoogleCloudPlatform/kubernetes/pkg/runtime" + "github.com/GoogleCloudPlatform/kubernetes/pkg/util" "github.com/GoogleCloudPlatform/kubernetes/pkg/version" "github.com/emicklei/go-restful" @@ -373,6 +374,7 @@ func errorJSON(err error, codec runtime.Codec, w http.ResponseWriter) { // errorJSONFatal renders an error to the response, and if codec fails will render plaintext func errorJSONFatal(err error, codec runtime.Codec, w http.ResponseWriter) { + util.HandleError(fmt.Errorf("apiserver was unable to write a JSON response: %v", err)) status := errToAPIStatus(err) output, err := codec.Encode(status) if err != nil { @@ -387,7 +389,6 @@ func errorJSONFatal(err error, codec runtime.Codec, w http.ResponseWriter) { // writeRawJSON writes a non-API object in JSON. func writeRawJSON(statusCode int, object interface{}, w http.ResponseWriter) { - // PR #2243: Pretty-print JSON by default. output, err := json.MarshalIndent(object, "", " ") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) diff --git a/pkg/apiserver/errors.go b/pkg/apiserver/errors.go index bb85940952..91b7e56414 100644 --- a/pkg/apiserver/errors.go +++ b/pkg/apiserver/errors.go @@ -22,7 +22,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/tools" - "github.com/golang/glog" + "github.com/GoogleCloudPlatform/kubernetes/pkg/util" ) // statusError is an object that can be converted into an api.Status @@ -49,7 +49,7 @@ func errToAPIStatus(err error) *api.Status { // by REST storage - these typically indicate programmer // error by not using pkg/api/errors, or unexpected failure // cases. - glog.V(1).Infof("An unchecked error was received: %v", err) + util.HandleError(fmt.Errorf("apiserver received an error that is not an api.Status: %v", err)) return &api.Status{ Status: api.StatusFailure, Code: status, diff --git a/pkg/controller/replication_controller.go b/pkg/controller/replication_controller.go index b347d94c72..704384edd1 100644 --- a/pkg/controller/replication_controller.go +++ b/pkg/controller/replication_controller.go @@ -17,6 +17,7 @@ limitations under the License. package controller import ( + "fmt" "sync" "time" @@ -65,15 +66,15 @@ func (r RealPodControl) createReplica(namespace string, controller api.Replicati }, } if err := api.Scheme.Convert(&controller.Spec.Template.Spec, &pod.Spec); err != nil { - glog.Errorf("Unable to convert pod template: %v", err) + util.HandleError(fmt.Errorf("unable to convert pod template: %v", err)) return } if labels.Set(pod.Labels).AsSelector().Empty() { - glog.Errorf("Unable to create pod replica, no labels") + util.HandleError(fmt.Errorf("unable to create pod replica, no labels")) return } if _, err := r.kubeClient.Pods(namespace).Create(pod); err != nil { - glog.Errorf("Unable to create pod replica: %v", err) + util.HandleError(fmt.Errorf("unable to create pod replica: %v", err)) } } @@ -108,7 +109,7 @@ func (rm *ReplicationManager) watchControllers(resourceVersion *string) { *resourceVersion, ) if err != nil { - glog.Errorf("Unexpected failure to watch: %v", err) + util.HandleError(fmt.Errorf("unable to watch: %v", err)) time.Sleep(5 * time.Second) return } @@ -125,13 +126,13 @@ func (rm *ReplicationManager) watchControllers(resourceVersion *string) { return } if event.Type == watch.Error { - glog.Errorf("error from watch during sync: %v", errors.FromObject(event.Object)) + util.HandleError(fmt.Errorf("error from watch during sync: %v", errors.FromObject(event.Object))) continue } glog.V(4).Infof("Got watch: %#v", event) rc, ok := event.Object.(*api.ReplicationController) if !ok { - glog.Errorf("unexpected object: %#v", event.Object) + util.HandleError(fmt.Errorf("unexpected object: %#v", event.Object)) continue } // If we get disconnected, start where we left off. @@ -140,7 +141,7 @@ func (rm *ReplicationManager) watchControllers(resourceVersion *string) { // it in the desired state. glog.V(4).Infof("About to sync from watch: %v", rc.Name) if err := rm.syncHandler(*rc); err != nil { - glog.Errorf("unexpected sync. error: %v", err) + util.HandleError(fmt.Errorf("unexpected sync error: %v", err)) } } } @@ -199,7 +200,7 @@ func (rm *ReplicationManager) synchronize() { var controllers []api.ReplicationController list, err := rm.kubeClient.ReplicationControllers(api.NamespaceAll).List(labels.Everything()) if err != nil { - glog.Errorf("Synchronization error: %v (%#v)", err, err) + util.HandleError(fmt.Errorf("synchronization error: %v", err)) return } controllers = list.Items @@ -211,7 +212,7 @@ func (rm *ReplicationManager) synchronize() { glog.V(4).Infof("periodic sync of %v", controllers[ix].Name) err := rm.syncHandler(controllers[ix]) if err != nil { - glog.Errorf("Error synchronizing: %v", err) + util.HandleError(fmt.Errorf("error synchronizing: %v", err)) } }(ix) }