mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	godep restore pushd $GOPATH/src/github.com/appc/spec git co master popd go get go4.org/errorutil rm -rf Godeps godep save ./... git add vendor git add -f $(git ls-files --other vendor/) git co -- Godeps/LICENSES Godeps/.license_file_state Godeps/OWNERS
		
			
				
	
	
		
			93 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package gophercloud
 | 
						|
 | 
						|
import "errors"
 | 
						|
 | 
						|
var (
 | 
						|
	// ErrServiceNotFound is returned when no service in a service catalog matches
 | 
						|
	// the provided EndpointOpts. This is generally returned by provider service
 | 
						|
	// factory methods like "NewComputeV2()" and can mean that a service is not
 | 
						|
	// enabled for your account.
 | 
						|
	ErrServiceNotFound = errors.New("No suitable service could be found in the service catalog.")
 | 
						|
 | 
						|
	// ErrEndpointNotFound is returned when no available endpoints match the
 | 
						|
	// provided EndpointOpts. This is also generally returned by provider service
 | 
						|
	// factory methods, and usually indicates that a region was specified
 | 
						|
	// incorrectly.
 | 
						|
	ErrEndpointNotFound = errors.New("No suitable endpoint could be found in the service catalog.")
 | 
						|
)
 | 
						|
 | 
						|
// Availability indicates to whom a specific service endpoint is accessible:
 | 
						|
// the internet at large, internal networks only, or only to administrators.
 | 
						|
// Different identity services use different terminology for these. Identity v2
 | 
						|
// lists them as different kinds of URLs within the service catalog ("adminURL",
 | 
						|
// "internalURL", and "publicURL"), while v3 lists them as "Interfaces" in an
 | 
						|
// endpoint's response.
 | 
						|
type Availability string
 | 
						|
 | 
						|
const (
 | 
						|
	// AvailabilityAdmin indicates that an endpoint is only available to
 | 
						|
	// administrators.
 | 
						|
	AvailabilityAdmin Availability = "admin"
 | 
						|
 | 
						|
	// AvailabilityPublic indicates that an endpoint is available to everyone on
 | 
						|
	// the internet.
 | 
						|
	AvailabilityPublic Availability = "public"
 | 
						|
 | 
						|
	// AvailabilityInternal indicates that an endpoint is only available within
 | 
						|
	// the cluster's internal network.
 | 
						|
	AvailabilityInternal Availability = "internal"
 | 
						|
)
 | 
						|
 | 
						|
// EndpointOpts specifies search criteria used by queries against an
 | 
						|
// OpenStack service catalog. The options must contain enough information to
 | 
						|
// unambiguously identify one, and only one, endpoint within the catalog.
 | 
						|
//
 | 
						|
// Usually, these are passed to service client factory functions in a provider
 | 
						|
// package, like "rackspace.NewComputeV2()".
 | 
						|
type EndpointOpts struct {
 | 
						|
	// Type [required] is the service type for the client (e.g., "compute",
 | 
						|
	// "object-store"). Generally, this will be supplied by the service client
 | 
						|
	// function, but a user-given value will be honored if provided.
 | 
						|
	Type string
 | 
						|
 | 
						|
	// Name [optional] is the service name for the client (e.g., "nova") as it
 | 
						|
	// appears in the service catalog. Services can have the same Type but a
 | 
						|
	// different Name, which is why both Type and Name are sometimes needed.
 | 
						|
	Name string
 | 
						|
 | 
						|
	// Region [required] is the geographic region in which the endpoint resides,
 | 
						|
	// generally specifying which datacenter should house your resources.
 | 
						|
	// Required only for services that span multiple regions.
 | 
						|
	Region string
 | 
						|
 | 
						|
	// Availability [optional] is the visibility of the endpoint to be returned.
 | 
						|
	// Valid types include the constants AvailabilityPublic, AvailabilityInternal,
 | 
						|
	// or AvailabilityAdmin from this package.
 | 
						|
	//
 | 
						|
	// Availability is not required, and defaults to AvailabilityPublic. Not all
 | 
						|
	// providers or services offer all Availability options.
 | 
						|
	Availability Availability
 | 
						|
}
 | 
						|
 | 
						|
/*
 | 
						|
EndpointLocator is an internal function to be used by provider implementations.
 | 
						|
 | 
						|
It provides an implementation that locates a single endpoint from a service
 | 
						|
catalog for a specific ProviderClient based on user-provided EndpointOpts. The
 | 
						|
provider then uses it to discover related ServiceClients.
 | 
						|
*/
 | 
						|
type EndpointLocator func(EndpointOpts) (string, error)
 | 
						|
 | 
						|
// ApplyDefaults is an internal method to be used by provider implementations.
 | 
						|
//
 | 
						|
// It sets EndpointOpts fields if not already set, including a default type.
 | 
						|
// Currently, EndpointOpts.Availability defaults to the public endpoint.
 | 
						|
func (eo *EndpointOpts) ApplyDefaults(t string) {
 | 
						|
	if eo.Type == "" {
 | 
						|
		eo.Type = t
 | 
						|
	}
 | 
						|
	if eo.Availability == "" {
 | 
						|
		eo.Availability = AvailabilityPublic
 | 
						|
	}
 | 
						|
}
 |