hoverfly

package
v1.0.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2019 License: Apache-2.0 Imports: 48 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HoverflyAuthEnabledEV     = "HoverflyAuthEnabled"
	HoverflySecretEV          = "HoverflySecret"
	HoverflyTokenExpirationEV = "HoverflyTokenExpiration"

	HoverflyAdminPortEV = "AdminPort"
	HoverflyProxyPortEV = "ProxyPort"

	HoverflyDBEV         = "HoverflyDB"
	HoverflyMiddlewareEV = "HoverflyMiddleware"

	HoverflyTLSVerification = "HoverflyTlsVerification"

	HoverflyAdminUsernameEV = "HoverflyAdmin"
	HoverflyAdminPasswordEV = "HoverflyAdminPass"

	HoverflyImportRecordsEV = "HoverflyImport"

	HoverflyUpstreamProxyPortEV = "UpstreamProxy"
)

Environment variables

View Source
const DefaultAdminPort = "8888"

DefaultAdminPort - default admin interface port

View Source
const DefaultDatabasePath = "requests.db"

DefaultDatabasePath - default database name that will be created or used by Hoverfly

View Source
const DefaultJWTExpirationDelta = 1 * 24 * 60 * 60

DefaultJWTExpirationDelta - default token expiration if environment variable is no provided

View Source
const DefaultListenOnHost = "127.0.0.1"
View Source
const DefaultPort = "8500"

DefaultPort - default proxy port

View Source
const URL string = `` /* 321-byte string literal not displayed */

URL is regexp to match http urls

Variables

View Source
var ProxyAuthorizationHeader string

Functions

func GetDefaultHoverflyHTTPClient added in v0.9.0

func GetDefaultHoverflyHTTPClient(tlsVerification bool, upstreamProxy string) *http.Client

func GetHttpClient added in v0.17.4

func GetHttpClient(hf *Hoverfly, host string) (*http.Client, error)

func NewProxy

func NewProxy(hoverfly *Hoverfly) *goproxy.ProxyHttpServer

Creates goproxy.ProxyHttpServer and configures it to be used as a proxy for Hoverfly goproxy is given handlers that use the Hoverfly request processing

func NewWebserverProxy

func NewWebserverProxy(hoverfly *Hoverfly) *goproxy.ProxyHttpServer

Creates goproxy.ProxyHttpServer and configures it to be used as a webserver for Hoverfly goproxy is given a non proxy handler that uses the Hoverfly request processing

Types

type AdminApi added in v0.9.0

type AdminApi struct{}

func (*AdminApi) StartAdminInterface added in v0.9.0

func (this *AdminApi) StartAdminInterface(hoverfly *Hoverfly)

Starts the Admin API on a new HTTP port. Port is chosen by hoverfly.Cfg.AdminPort.

type Configuration

type Configuration struct {
	AdminPort    string
	ProxyPort    string
	ListenOnHost string
	Mode         string
	Destination  string
	Middleware   middleware.Middleware
	DatabasePath string
	Webserver    bool

	TLSVerification bool

	UpstreamProxy string
	PACFile       []byte

	Verbose bool

	DisableCache bool

	SecretKey          []byte
	JWTExpirationDelta int
	AuthEnabled        bool

	ProxyAuthorizationHeader string

	HttpsOnly bool

	PlainHttpTunneling bool

	ClientAuthenticationDestination string
	ClientAuthenticationClientCert  string
	ClientAuthenticationClientKey   string
	ClientAuthenticationCACert      string

	ProxyControlWG sync.WaitGroup
	// contains filtered or unexported fields
}

Configuration - initial structure of configuration

func InitSettings

func InitSettings() *Configuration

InitSettings gets and returns initial configuration from env variables or sets defaults

func (*Configuration) GetMode

func (c *Configuration) GetMode() string

GetMode - provides safe way to get current mode

func (*Configuration) SetMode

func (c *Configuration) SetMode(mode string)

SetMode - provides safe way to set new mode

func (*Configuration) SetUpstreamProxy added in v0.10.1

func (c *Configuration) SetUpstreamProxy(upstreamProxy string)

type Fields added in v0.11.0

type Fields map[string]interface{}

type Hoverfly

type Hoverfly struct {
	CacheMatcher   matching.CacheMatcher
	Authentication backends.Authentication

	HTTP    *http.Client
	Cfg     *Configuration
	Counter *metrics.CounterByMode

	Proxy *goproxy.ProxyHttpServer
	SL    *StoppableListener

	Simulation    *models.Simulation
	StoreLogsHook *StoreLogsHook
	Journal       *journal.Journal
	// contains filtered or unexported fields
}

Hoverfly provides access to hoverfly - updating/starting/stopping proxy, http client and configuration, cache access

func GetNewHoverfly

func GetNewHoverfly(cfg *Configuration, requestCache cache.Cache, authentication backends.Authentication) *Hoverfly

GetNewHoverfly returns a configured ProxyHttpServer and DBClient

func NewHoverfly added in v0.11.2

func NewHoverfly() *Hoverfly

func NewHoverflyWithConfiguration added in v0.11.0

func NewHoverflyWithConfiguration(cfg *Configuration) *Hoverfly

func (*Hoverfly) AddDiff added in v0.16.0

func (this *Hoverfly) AddDiff(requestView v2.SimpleRequestDefinitionView, diffReport v2.DiffReport)

func (Hoverfly) ApplyMiddleware added in v0.10.0

func (this Hoverfly) ApplyMiddleware(pair models.RequestResponsePair) (models.RequestResponsePair, error)

func (*Hoverfly) ClearDiff added in v0.16.0

func (this *Hoverfly) ClearDiff()

func (*Hoverfly) ClearState added in v0.14.0

func (this *Hoverfly) ClearState()

func (*Hoverfly) DeletePACFile added in v0.17.4

func (this *Hoverfly) DeletePACFile()

func (*Hoverfly) DeleteResponseDelays added in v0.9.0

func (hf *Hoverfly) DeleteResponseDelays()

func (*Hoverfly) DeleteResponseDelaysLogNormal

func (hf *Hoverfly) DeleteResponseDelaysLogNormal()

func (*Hoverfly) DeleteSimulation added in v0.9.0

func (this *Hoverfly) DeleteSimulation()

func (*Hoverfly) DoRequest added in v0.10.0

func (hf *Hoverfly) DoRequest(request *http.Request) (*http.Response, error)

DoRequest - performs request and returns response that should be returned to client and error

func (Hoverfly) FlushCache added in v0.11.0

func (hf Hoverfly) FlushCache() error

func (Hoverfly) GetCache added in v0.11.0

func (this Hoverfly) GetCache() (v2.CacheView, error)

func (Hoverfly) GetDestination added in v0.9.0

func (this Hoverfly) GetDestination() string

func (*Hoverfly) GetDiff added in v0.16.0

func (this *Hoverfly) GetDiff() map[v2.SimpleRequestDefinitionView][]v2.DiffReport

func (Hoverfly) GetFilteredSimulation added in v0.15.1

func (hf Hoverfly) GetFilteredSimulation(urlPattern string) (v2.SimulationViewV5, error)

func (Hoverfly) GetMiddleware added in v0.9.0

func (hf Hoverfly) GetMiddleware() (string, string, string)

func (Hoverfly) GetMode added in v0.9.0

func (this Hoverfly) GetMode() v2.ModeView

func (*Hoverfly) GetPACFile added in v0.17.4

func (this *Hoverfly) GetPACFile() []byte

func (Hoverfly) GetRequestCacheCount added in v0.9.0

func (hf Hoverfly) GetRequestCacheCount() (int, error)

func (*Hoverfly) GetResponse added in v0.10.0

func (hf *Hoverfly) GetResponse(requestDetails models.RequestDetails) (*models.ResponseDetails, *errors.HoverflyError)

GetResponse returns stored response from cache

func (Hoverfly) GetSimulation added in v0.9.0

func (hf Hoverfly) GetSimulation() (v2.SimulationViewV5, error)

func (*Hoverfly) GetState added in v0.14.0

func (this *Hoverfly) GetState() map[string]string

func (Hoverfly) GetStats added in v0.9.0

func (hf Hoverfly) GetStats() metrics.Stats

func (Hoverfly) GetUpstreamProxy added in v0.10.1

func (this Hoverfly) GetUpstreamProxy() string

func (Hoverfly) GetVersion added in v0.10.1

func (this Hoverfly) GetVersion() string

func (*Hoverfly) Import

func (hf *Hoverfly) Import(uri string) error

Import is a function that based on input decides whether it is a local resource or whether it should fetch it from remote server. It then imports given payload into the database or returns an error

func (*Hoverfly) ImportFromDisk

func (hf *Hoverfly) ImportFromDisk(path string) error

ImportFromDisk - takes one string value and tries to open a file, then parse it into recordedRequests structure (which is default format in which Hoverfly exports captured requests) and imports those requests into the database

func (*Hoverfly) ImportFromURL

func (hf *Hoverfly) ImportFromURL(url string) error

ImportFromURL - takes one string value and tries connect to a remote server, then parse response body into recordedRequests structure (which is default format in which Hoverfly exports captured requests) and imports those requests into the database

func (Hoverfly) IsMiddlewareSet added in v0.10.0

func (this Hoverfly) IsMiddlewareSet() bool

func (Hoverfly) IsWebServer added in v0.15.0

func (this Hoverfly) IsWebServer() bool

func (*Hoverfly) PatchState added in v0.14.0

func (this *Hoverfly) PatchState(toPatch map[string]string)

func (*Hoverfly) PutSimulation added in v0.9.0

func (this *Hoverfly) PutSimulation(simulationView v2.SimulationViewV5) v2.SimulationImportResult

func (*Hoverfly) Save added in v0.10.0

func (hf *Hoverfly) Save(request *models.RequestDetails, response *models.ResponseDetails, headersWhitelist []string, recordSequence bool) error

save gets request fingerprint, extracts request body, status code and headers, then saves it to cache

func (*Hoverfly) SetDestination added in v0.9.0

func (hf *Hoverfly) SetDestination(destination string) (err error)

UpdateDestination - updates proxy with new destination regexp

func (*Hoverfly) SetMiddleware added in v0.8.0

func (hf *Hoverfly) SetMiddleware(binary, script, remote string) error

func (*Hoverfly) SetMode added in v0.9.0

func (this *Hoverfly) SetMode(mode string) error

func (*Hoverfly) SetModeWithArguments added in v0.11.0

func (this *Hoverfly) SetModeWithArguments(modeView v2.ModeView) error

func (*Hoverfly) SetPACFile added in v0.17.4

func (this *Hoverfly) SetPACFile(pacFile []byte)

func (*Hoverfly) SetResponseDelays added in v0.9.0

func (hf *Hoverfly) SetResponseDelays(payloadView v1.ResponseDelayPayloadView) error

func (*Hoverfly) SetResponseDelaysLogNormal

func (hf *Hoverfly) SetResponseDelaysLogNormal(payloadView v1.ResponseDelayLogNormalPayloadView) error

func (*Hoverfly) SetState added in v0.14.0

func (this *Hoverfly) SetState(state map[string]string)

func (*Hoverfly) StartProxy

func (hf *Hoverfly) StartProxy() error

StartProxy - starts proxy with current configuration, this method is non blocking.

func (*Hoverfly) StopProxy

func (hf *Hoverfly) StopProxy()

StopProxy - stops proxy

type StoppableListener

type StoppableListener struct {
	*net.TCPListener
	// contains filtered or unexported fields
}

StoppableListener - wrapper for tcp listener that can stop

func NewStoppableListener

func NewStoppableListener(l net.Listener) (*StoppableListener, error)

NewStoppableListener returns new StoppableListener listener

func (*StoppableListener) Accept

func (sl *StoppableListener) Accept() (net.Conn, error)

Accept - TCPListener waits for the next call, implements default interface method

func (*StoppableListener) Stop

func (sl *StoppableListener) Stop()

Stop - stops listener

type StoreLogsHook added in v0.11.0

type StoreLogsHook struct {
	Entries   []*logrus.Entry
	LogsLimit int
}

func NewStoreLogsHook added in v0.11.0

func NewStoreLogsHook() *StoreLogsHook

func (*StoreLogsHook) Fire added in v0.11.0

func (hook *StoreLogsHook) Fire(entry *logrus.Entry) error

func (StoreLogsHook) GetLogs added in v0.11.4

func (hook StoreLogsHook) GetLogs(limit int, from *time.Time) ([]*logrus.Entry, error)

func (StoreLogsHook) Levels added in v0.11.0

func (hook StoreLogsHook) Levels() []logrus.Level

Jump to

Keyboard shortcuts

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