utils

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func MakeRandomStr

func MakeRandomStr(numBytes int) string

func NewCleanup

func NewCleanup(cl func()) *cleanuper

func NewCleanupErr

func NewCleanupErr(cl func() error) *cleanuper

func PanicIfF

func PanicIfF(cond bool, msg string, args ...interface{})

func Use

func Use(_ interface{})

Types

type AwsMockHandler

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

func NewAwsMockHandler

func NewAwsMockHandler() *AwsMockHandler

Create an AWS mocker to use with the AWS services, it returns an instrumented aws.Config that can be used to create AWS services. You can add as many individual request handlers as you need, as long as handlers correspond to the func(context.Context, <arg>)(<res>, error) format. E.g.: func(context.Context, *ec2.TerminateInstancesInput)(*ec2.TerminateInstancesOutput, error)

You can also use a struct as the handler, in this case the AwsMockHandler will try to search for a method with a conforming signature.

Example
am := NewAwsMockHandler()
am.AddHandler(func(ctx context.Context, arg *ec2.TerminateInstancesInput) (
	*ec2.TerminateInstancesOutput, error) {

	if arg.InstanceIds[0] != "i-123" {
		panic("BadInstanceId")
	}
	return &ec2.TerminateInstancesOutput{}, nil
})

ec := ec2.New(am.AwsConfig())

_, _ = ec.TerminateInstancesRequest(&ec2.TerminateInstancesInput{
	InstanceIds: []string{"i-123"},
}).Send(context.Background())
Output:

func (*AwsMockHandler) AddHandler

func (a *AwsMockHandler) AddHandler(handlerObject interface{})

func (*AwsMockHandler) AwsConfig

func (a *AwsMockHandler) AwsConfig() aws.Config

type LockSession

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

func (*LockSession) Unlock

func (l *LockSession) Unlock()

Idempotent unlock

type MemorySink

type MemorySink struct {
	bytes.Buffer
}

MemorySink implements zap.Sink by writing all messages to a buffer.

func NewMemorySinkLogger

func NewMemorySinkLogger() (*MemorySink, *zap.Logger)

func (*MemorySink) Close

func (s *MemorySink) Close() error

func (*MemorySink) Sync

func (s *MemorySink) Sync() error

type SessionedMutex

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

A mutex that yields a 'lock session' supporting idempotent unlock

func (*SessionedMutex) Lock

func (s *SessionedMutex) Lock() *LockSession

func (*SessionedMutex) ReadLock

func (s *SessionedMutex) ReadLock() *LockSession

Jump to

Keyboard shortcuts

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