From 02aa5e183c8b0a79347a9db0062f47a99fa91286 Mon Sep 17 00:00:00 2001 From: Prashanth Balasubramanian Date: Wed, 7 Oct 2015 09:59:30 -0700 Subject: [PATCH] Add HTTPHealthCheck crud operations to cloudprovider library. --- pkg/cloudprovider/providers/gce/gce.go | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/pkg/cloudprovider/providers/gce/gce.go b/pkg/cloudprovider/providers/gce/gce.go index 3ca5708ecf5..7b495ccfe71 100644 --- a/pkg/cloudprovider/providers/gce/gce.go +++ b/pkg/cloudprovider/providers/gce/gce.go @@ -876,11 +876,43 @@ func (gce *GCECloud) CreateBackendService(bg *compute.BackendService) error { return gce.waitForGlobalOp(op) } +// Health Checks + // GetHttpHealthCheck returns the given HttpHealthCheck by name. func (gce *GCECloud) GetHttpHealthCheck(name string) (*compute.HttpHealthCheck, error) { return gce.service.HttpHealthChecks.Get(gce.projectID, name).Do() } +// UpdateHttpHealthCheck applies the given HttpHealthCheck as an update. +func (gce *GCECloud) UpdateHttpHealthCheck(hc *compute.HttpHealthCheck) error { + op, err := gce.service.HttpHealthChecks.Update(gce.projectID, hc.Name, hc).Do() + if err != nil { + return err + } + return gce.waitForGlobalOp(op) +} + +// DeleteHttpHealthCheck deletes the given HttpHealthCheck by name. +func (gce *GCECloud) DeleteHttpHealthCheck(name string) error { + op, err := gce.service.HttpHealthChecks.Delete(gce.projectID, name).Do() + if err != nil { + if isHTTPErrorCode(err, http.StatusNotFound) { + return nil + } + return err + } + return gce.waitForGlobalOp(op) +} + +// CreateHttpHealthCheck creates the given HttpHealthCheck. +func (gce *GCECloud) CreateHttpHealthCheck(hc *compute.HttpHealthCheck) error { + op, err := gce.service.HttpHealthChecks.Insert(gce.projectID, hc).Do() + if err != nil { + return err + } + return gce.waitForGlobalOp(op) +} + // InstanceGroup Management // CreateInstanceGroup creates an instance group with the given instances. It is the callers responsibility to add named ports.