code: func (os *OpenStack) LoadBalancer() (cloudprovider.LoadBalancer, bool) {
  	glog.V(4).Info("openstack.LoadBalancer() called")
  
  	// TODO: Search for and support Rackspace loadbalancer API, and others.
  	network, err := os.NewNetworkV2()
  	if err != nil {
  		return nil, false
  	}
  
  	compute, err := os.NewComputeV2()
  	if err != nil {
  		return nil, false
  	}
  
  	lbVersion := os.lbOpts.LBVersion
  	if lbVersion == "" {
  		// No version specified, try newest supported by server
  		netExts, err := networkExtensions(network)
  		if err != nil {
  			glog.Warningf("Failed to list neutron extensions: %v", err)
  			return nil, false
  		}
  
  		if netExts["lbaasv2"] {
  			lbVersion = "v2"
  		} else if netExts["lbaas"] {
  			lbVersion = "v1"
  		} else {
  			glog.Warningf("Failed to find neutron LBaaS extension (v1 or v2)")
  			return nil, false
  		}
  		glog.V(3).Infof("Using LBaaS extension %v", lbVersion)
  	}
  
  	glog.V(1).Info("Claiming to support LoadBalancer")
  
  	if lbVersion == "v2" {
  		return &LbaasV2{LoadBalancer{network, compute, os.lbOpts}}, true
  	} else if lbVersion == "v1" {
  		return &LbaasV1{LoadBalancer{network, compute, os.lbOpts}}, true
  	} else {
  		glog.Warningf("Config error: unrecognised lb-version \"%v\"", lbVersion)
  		return nil, false
  	}
  }
docs: // LoadBalancer returns a load balancer