Back to godoc.org

Package utils

v1.4.0
Latest Go to latest

The latest major version is .

Published: Sep 10, 2019 | License: Apache-2.0 | Module: github.com/aurorasolar/go-service-base

Index

Examples

func CheckRequiredFlags

func CheckRequiredFlags(cmd *cobra.Command) error

func GetFlagB

func GetFlagB(cmd *cobra.Command, name string) bool

func GetFlagI

func GetFlagI(cmd *cobra.Command, name string) int64

func GetFlagS

func GetFlagS(cmd *cobra.Command, name string) string

func GetFlagSArr

func GetFlagSArr(cmd *cobra.Command, name string) []string

func GetFreeTcpPort

func GetFreeTcpPort() (int, error)

func MakeCompletionCmd

func MakeCompletionCmd() *cobra.Command

CLI tool helpers

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 StaticClock

func StaticClock(sec int64) func() time.Time

func Use

func Use(_ interface{})

type AbsoluteTimeSec

type AbsoluteTimeSec int64

Time in milliseconds since the Unix epoch

func FromTimeSec

func FromTimeSec(tm time.Time) AbsoluteTimeSec

func (AbsoluteTimeSec) ToTime

func (at AbsoluteTimeSec) ToTime() time.Time

func (AbsoluteTimeSec) ToUnix

func (at AbsoluteTimeSec) ToUnix() int64

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

Code:

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())

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

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier