components

package
v0.0.0-...-32f485c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2024 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FakeProjectID = "test-project-id"
)

Variables

This section is empty.

Functions

func CheckDnsResolverHealth

func CheckDnsResolverHealth(dnsResolverAddress, host, expectIp string) error

func GenerateCert

func GenerateCert(certPath, keyPath string) (*tls.Certificate, error)

GenerateCert generates a certificate from the root cert and key pair.

func GrpcConnectionCheck

func GrpcConnectionCheck(addr string, opts *HealthCheckOptions) error

GrpcConnectionCheck performs a basic connectivity check to the underlying server using the standard gRPC connectivity semantics. https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md This can be used if the server does not support the gRPC health checking protocol, but is generally less accurate.

func GrpcHealthCheck

func GrpcHealthCheck(addr string, opts *HealthCheckOptions) error

GrpcHealthCheck checks the service running on the specified port using the standard gRPC health checking protocol. https://github.com/grpc/grpc/blob/master/doc/health-checking.md Does not support authentication. Supports retries and timeouts. Recommended to use over BasicGrpcConnectionCheck is the underlying server supports the protocol.

func HttpConnectionCheck

func HttpConnectionCheck(host string, port string, opts *HealthCheckOptions) error

func HttpHealthCheck

func HttpHealthCheck(uri string, opts *HealthCheckOptions) error

HttpHealthCheck checks the service running at the specified port and path for a 200 OK response. Does not support authentication. Supports retries and timeouts.

func NewDnsResolver

func NewDnsResolver(port uint16, records map[string][]string) *dns.Server

func QueryDnsResolver

func QueryDnsResolver(dnsResolverAddress, target string) ([]*net.IP, error)

func UdsConnectionCheck

func UdsConnectionCheck(pipe string, opts *HealthCheckOptions) error

UdsConnectionCheck performs a basic connectivity check to the underlying server using a unix domain socket.

Types

type Cmd

type Cmd struct {
	*exec.Cmd
	// contains filtered or unexported fields
}

func (*Cmd) StartAndWait

func (c *Cmd) StartAndWait() error

StartAndWait starts the command and waits for startWaitTime.

func (*Cmd) StopAndWait

func (c *Cmd) StopAndWait() error

StopAndWait stops the command and waits for stopWaitTime, and kills the command if it doesn't stop.

type ConfigManagerServer

type ConfigManagerServer struct {
	*Cmd
	// contains filtered or unexported fields
}

func NewConfigManagerServer

func NewConfigManagerServer(debugMode bool, ports *platform.Ports, args []string) (*ConfigManagerServer, error)

func (ConfigManagerServer) CheckHealth

func (s ConfigManagerServer) CheckHealth() error

func (ConfigManagerServer) String

func (s ConfigManagerServer) String() string

type EchoHTTPServer

type EchoHTTPServer struct {
	*Cmd
}

Echo stores data for Echo HTTP backend process.

func NewEchoHTTPServer

func NewEchoHTTPServer(port uint16, useWrongCert bool, flags *EchoHTTPServerFlags) (*EchoHTTPServer, error)

type EchoHTTPServerFlags

type EchoHTTPServerFlags struct {
	EnableHttps                bool
	EnableRootPathHandler      bool
	MtlsCertFile               string
	DisableHttp2               bool
	BackendAlwaysRespondRST    bool
	BackendRejectRequestNum    int
	BackendRejectRequestStatus int
	UseIPv6Address             bool
}

type Envoy

type Envoy struct {
	*Cmd
	// contains filtered or unexported fields
}

Envoy stores data for Envoy process

func NewEnvoy

func NewEnvoy(args []string, bootstrapArgs []string, confPath string, ports *platform.Ports) (*Envoy, error)

NewEnvoy creates a new Envoy struct and starts envoy.

func (Envoy) CheckHealth

func (s Envoy) CheckHealth() error

func (Envoy) String

func (s Envoy) String() string

type FakeJwtService

type FakeJwtService struct {
	ProviderMap map[string]*MockJwtProvider
}

func NewFakeJwtService

func NewFakeJwtService() *FakeJwtService

Returns a FakeJwtService that is ready to use. All servers will be started.

func (*FakeJwtService) ResetReqCnt

func (fjs *FakeJwtService) ResetReqCnt(provider string)

func (*FakeJwtService) SetupInvalidOpenId

func (fjs *FakeJwtService) SetupInvalidOpenId() error

Setup invalid providers that do not follow the OpenID Connect Discovery protocol.

func (*FakeJwtService) SetupJwt

func (fjs *FakeJwtService) SetupJwt(requestedProviders map[string]bool, ports *platform.Ports) error

Setup non-OpenId providers.

func (*FakeJwtService) SetupValidOpenId

func (fjs *FakeJwtService) SetupValidOpenId() error

This method setup OpenId providers. It can only be called sequentially or in one goroutine during parallel execution because the OpenId providers use hard-coded ports and parallel run will cause the competition for ports.

func (*FakeJwtService) TearDown

func (fjs *FakeJwtService) TearDown()

Stops all running servers.

type FakeTraceServer

type FakeTraceServer struct {
	cloudtracegrpc.TraceServiceServer

	RcvSpan chan *cloudtracepb.Span
	// contains filtered or unexported fields
}

FakeTraceServer implements the cloud trace v2 RPCs (see cloudtracegrpc.TraceServiceServer)

func NewFakeStackdriver

func NewFakeStackdriver() *FakeTraceServer

func (*FakeTraceServer) BatchWriteSpans

func (*FakeTraceServer) CreateSpan

func (s *FakeTraceServer) CreateSpan(ctx context.Context, span *cloudtracepb.Span) (*cloudtracepb.Span, error)

func (*FakeTraceServer) RetrieveSpanNames

func (s *FakeTraceServer) RetrieveSpanNames() ([]string, error)

func (*FakeTraceServer) StartStackdriverServer

func (s *FakeTraceServer) StartStackdriverServer(port uint16)

func (*FakeTraceServer) StopAndWait

func (s *FakeTraceServer) StopAndWait()

func (*FakeTraceServer) VerifyInvariants

func (s *FakeTraceServer) VerifyInvariants() error

When the test is over, there should be no more spans left.

type GrpcEchoGrpcServer

type GrpcEchoGrpcServer struct {
	*Cmd
}

func NewGrpcEchoGrpcServer

func NewGrpcEchoGrpcServer(port uint16) (*GrpcEchoGrpcServer, error)

type GrpcInteropGrpcServer

type GrpcInteropGrpcServer struct {
	*Cmd
}

func NewGrpcInteropGrpcServer

func NewGrpcInteropGrpcServer(port uint16) (*GrpcInteropGrpcServer, error)

type HealthCheckOptions

type HealthCheckOptions struct {
	HealthCheckRetries      int
	HealthCheckRetryBackoff time.Duration
	HealthCheckDeadline     time.Duration
}

Options to configure retries, timeouts, etc. for the retry helpers.

func NewHealthCheckOptions

func NewHealthCheckOptions() *HealthCheckOptions

Constructs a HealthCheckOptions with the default values.

type HealthChecker

type HealthChecker interface {
	fmt.Stringer
	CheckHealth() error
}

All registered HealthCheckers must implement this interface

type HealthRegistry

type HealthRegistry struct {
	// contains filtered or unexported fields
}

Registry of Health Checkers

func NewHealthRegistry

func NewHealthRegistry() *HealthRegistry

func (*HealthRegistry) DeregisterHealthChecker

func (hr *HealthRegistry) DeregisterHealthChecker(checker HealthChecker)

func (*HealthRegistry) RegisterHealthChecker

func (hr *HealthRegistry) RegisterHealthChecker(checker HealthChecker)

func (*HealthRegistry) RunAllHealthChecks

func (hr *HealthRegistry) RunAllHealthChecks() error

Runs all registered health checks in parallel. Will return error if any health check fails.

type MockIamServer

type MockIamServer struct {
	// contains filtered or unexported fields
}

MockIamServer mocks the Metadata server.

func NewIamMetadata

func NewIamMetadata(pathResp map[string]string, wantNumFails int, respTime time.Duration) *MockIamServer

NewMockMetadata creates a new HTTP server.

func (*MockIamServer) GetRequestBody

func (m *MockIamServer) GetRequestBody() (string, error)

func (*MockIamServer) GetRequestToken

func (m *MockIamServer) GetRequestToken() (string, error)

func (*MockIamServer) GetURL

func (m *MockIamServer) GetURL() string

GetURL returns the URL of the MockIamServer.

type MockJwtProvider

type MockJwtProvider struct {
	AuthProvider *scpb.AuthProvider
	// contains filtered or unexported fields
}

MockJwtProvider mocks the Jwt provider.

func (*MockJwtProvider) GetReqCnt

func (m *MockJwtProvider) GetReqCnt() int

func (*MockJwtProvider) GetURL

func (m *MockJwtProvider) GetURL() string

type MockMetadataServer

type MockMetadataServer struct {
	// contains filtered or unexported fields
}

MockMetadataServer mocks the Metadata server.

func NewMockMetadata

func NewMockMetadata(pathResp map[string]string, wantNumFails int) *MockMetadataServer

NewMockMetadata creates a new HTTP server.

func (*MockMetadataServer) GetReqCnt

func (m *MockMetadataServer) GetReqCnt(reqPath string) int

Returns the number of requests to the given path. Query params are ignored.

func (*MockMetadataServer) GetTotalReqCnt

func (m *MockMetadataServer) GetTotalReqCnt() int

func (*MockMetadataServer) GetURL

func (m *MockMetadataServer) GetURL() string

GetURL returns the URL of the MockMetadataServer.

type MockServiceCtrl

type MockServiceCtrl struct {
	// contains filtered or unexported fields
}

MockServiceMrg mocks the Service Management server.

func NewMockServiceCtrl

func NewMockServiceCtrl(serviceName, rolloutId string) *MockServiceCtrl

NewMockServiceCtrl creates a new HTTP server.

func (*MockServiceCtrl) CacheRequest

func (m *MockServiceCtrl) CacheRequest(req *utils.ServiceRequest)

func (*MockServiceCtrl) GetAllRequests

func (m *MockServiceCtrl) GetAllRequests() []*utils.ServiceRequest

GetRequests returns a slice of requests received.

func (*MockServiceCtrl) GetRequestCount

func (m *MockServiceCtrl) GetRequestCount() int

func (*MockServiceCtrl) GetRequests

func (m *MockServiceCtrl) GetRequests(n int) ([]*utils.ServiceRequest, error)

GetRequests returns a slice of requests received.

func (*MockServiceCtrl) GetRequestsWithoutCheckOnlyQuota

func (m *MockServiceCtrl) GetRequestsWithoutCheckOnlyQuota(n int) ([]*utils.ServiceRequest, error)

GetRequestsWithoutCheckOnlyQuota returns a slice of requests received.

func (*MockServiceCtrl) GetURL

func (m *MockServiceCtrl) GetURL() string

GetURL returns the URL of MockServiceCtrl.

func (*MockServiceCtrl) IncrementRequestCount

func (m *MockServiceCtrl) IncrementRequestCount()

IncrementRequestCount increments the request count of MockServiceCtrl.

func (*MockServiceCtrl) OverrideCheckHandler

func (m *MockServiceCtrl) OverrideCheckHandler(checkHandler http.Handler)

OverrideCheckHandler overrides the service control check handler before setup.

func (*MockServiceCtrl) OverrideQuotaHandler

func (m *MockServiceCtrl) OverrideQuotaHandler(quotaHandler http.Handler)

OverrideQuoatHandler overrides the service control quota handler before setup.

func (*MockServiceCtrl) OverrideReportHandler

func (m *MockServiceCtrl) OverrideReportHandler(reportHandler http.Handler)

OverrideReportHandler overrides the service control report handler before setup.

func (*MockServiceCtrl) ResetRequestCount

func (m *MockServiceCtrl) ResetRequestCount()

ResetRequestCount resets the request count of MockServiceCtrl.

func (*MockServiceCtrl) SetCert

func (m *MockServiceCtrl) SetCert(serverCerts *tls.Certificate)

SetCert sets the server cert for ServiceControl server, so it acts as a HTTPS server

func (*MockServiceCtrl) SetCheckResponse

func (m *MockServiceCtrl) SetCheckResponse(checkResponse *scpb.CheckResponse)

SetCheckResponse sets the response for the check of the service control.

func (*MockServiceCtrl) SetCheckResponseStatus

func (m *MockServiceCtrl) SetCheckResponseStatus(status int)

SetCheckResponseStatus sets the response status code for the check of the service control.

func (*MockServiceCtrl) SetGetRequestsTimeout

func (m *MockServiceCtrl) SetGetRequestsTimeout(timeout time.Duration)

SetGetRequestsTimeout sets the timeout for GetRequests.

func (*MockServiceCtrl) SetQuotaResponse

func (m *MockServiceCtrl) SetQuotaResponse(quotaResponse *scpb.AllocateQuotaResponse)

SetCheckResponse sets the response for the check of the service control.

func (*MockServiceCtrl) SetQuotaResponseStatus

func (m *MockServiceCtrl) SetQuotaResponseStatus(status int)

SetQuotaResponseStatus sets the response status code for the quota of the service control.

func (*MockServiceCtrl) SetReportResponseStatus

func (m *MockServiceCtrl) SetReportResponseStatus(statusCode int)

SetReportResponseStatus sets the status of the report response of the service control.

func (*MockServiceCtrl) SetRolloutIdConfigIdInReport

func (m *MockServiceCtrl) SetRolloutIdConfigIdInReport(newRolloutId string)

SetReportResponseStatus sets the status of the report response of the service control.

func (*MockServiceCtrl) SetURL

func (m *MockServiceCtrl) SetURL(url string)

GetURL returns the URL of MockServiceCtrl.

func (*MockServiceCtrl) Setup

func (m *MockServiceCtrl) Setup()

func (*MockServiceCtrl) VerifyRequestCount

func (m *MockServiceCtrl) VerifyRequestCount(wantRequestCount int) error

VerifyRequestCount Verifies the current exact request count with the want request count

type MockServiceMrg

type MockServiceMrg struct {
	ServiceConfig *confpb.Service

	ConfigsHandler http.Handler

	LastServiceConfig []byte
	// contains filtered or unexported fields
}

MockServiceMrg mocks the Service Management server. All requests must be ProtoOverHttp.

func NewMockServiceMrg

func NewMockServiceMrg(serviceName, rolloutId string, serviceConfig *confpb.Service) *MockServiceMrg

NewMockServiceMrg creates a new HTTP server.

func (*MockServiceMrg) ServeHTTP

func (m *MockServiceMrg) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP responds to requests with static service config message.

func (*MockServiceMrg) SetCert

func (m *MockServiceMrg) SetCert(serverCerts *tls.Certificate)

SetCert sets the server cert for ServiceMrg server, so it acts as a HTTPS server

func (*MockServiceMrg) SetRolloutId

func (m *MockServiceMrg) SetRolloutId(newRolloutId string)

func (*MockServiceMrg) Start

func (m *MockServiceMrg) Start() (URL string)

Start launches a mock ServiceManagement server.

type RetryHandler

type RetryHandler struct {
	// contains filtered or unexported fields
}

Handles responding with errors for a specified number of retries. Has the ability to debounce multiple requests made within a time interval.

func NewRetryHandler

func NewRetryHandler(wantNumFails int) *RetryHandler

type StatsVerifier

type StatsVerifier struct {
	// contains filtered or unexported fields
}

func NewStatsVerifier

func NewStatsVerifier(ports *platform.Ports) *StatsVerifier

func (StatsVerifier) CheckExpectedCounters

func (sv StatsVerifier) CheckExpectedCounters(wantCounters utils.StatCounters) error

func (StatsVerifier) CheckExpectedHistograms

func (sv StatsVerifier) CheckExpectedHistograms(wantHistograms utils.StatHistograms) error

func (StatsVerifier) CheckHealth

func (sv StatsVerifier) CheckHealth() error

func (StatsVerifier) String

func (sv StatsVerifier) String() string

func (StatsVerifier) VerifyInvariants

func (sv StatsVerifier) VerifyInvariants() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL