code: func (gce *Cloud) EnsureLoadBalancerDeleted(clusterName string, service *v1.Service) error {
  	loadBalancerName := cloudprovider.GetLoadBalancerName(service)
  	glog.V(2).Infof("EnsureLoadBalancerDeleted(%v, %v, %v, %v, %v)", clusterName, service.Namespace, service.Name, loadBalancerName,
  		gce.region)
  
  	var hc *compute.HttpHealthCheck
  	if path, _ := apiservice.GetServiceHealthCheckPathPort(service); path != "" {
  		var err error
  		hc, err = gce.GetHTTPHealthCheck(loadBalancerName)
  		if err != nil && !isHTTPErrorCode(err, http.StatusNotFound) {
  			glog.Infof("Failed to retrieve health check %v:%v", loadBalancerName, err)
  			return err
  		}
  	}
  
  	errs := utilerrors.AggregateGoroutines(
  		func() error { return gce.deleteFirewall(loadBalancerName, gce.region) },
  		// Even though we don't hold on to static IPs for load balancers, it's
  		// possible that EnsureLoadBalancer left one around in a failed
  		// creation/update attempt, so make sure we clean it up here just in case.
  		func() error { return gce.deleteStaticIP(loadBalancerName, gce.region) },
  		func() error {
  			// The forwarding rule must be deleted before either the target pool can,
  			// unfortunately, so we have to do these two serially.
  			if err := gce.deleteForwardingRule(loadBalancerName, gce.region); err != nil {
  				return err
  			}
  			if err := gce.deleteTargetPool(loadBalancerName, gce.region, hc); err != nil {
  				return err
  			}
  			return nil
  		},
  	)
  	if errs != nil {
  		return utilerrors.Flatten(errs)
  	}
  	return nil
  }
docs: // EnsureLoadBalancerDeleted is an implementation of LoadBalancer.EnsureLoadBalancerDeleted.