aws

package
v1.18.2 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// VirtualMachinePowerStatePoweredOff state
	VirtualMachinePowerStatePoweredOff = VirtualMachinePowerState("poweredOff")

	// VirtualMachinePowerStatePoweredOn state
	VirtualMachinePowerStatePoweredOn = VirtualMachinePowerState("poweredOn")

	// VirtualMachinePowerStateSuspended state
	VirtualMachinePowerStateSuspended = VirtualMachinePowerState("suspended")
)

Variables

This section is empty.

Functions

func Copy

func Copy(dst interface{}, src interface{}) error

Copy Make a deep copy from src into dst.

Types

type CallbackCheckIPReady

type CallbackCheckIPReady interface {
	CheckIfIPIsReady(name, address string) error
}

CallbackCheckIPReady callback to test if IP is up

type Configuration

type Configuration struct {
	AccessKey string   `json:"accessKey"`
	SecretKey string   `json:"secretKey"`
	Token     string   `json:"token"`
	Profile   string   `json:"profile"`
	Region    string   `json:"region"`
	Timeout   float64  `json:"timeout"`
	ImageID   string   `json:"ami"`
	IamRole   string   `json:"iam-role-arn"`
	KeyName   string   `json:"keyName"`
	Tags      []Tag    `json:"tags"`
	Network   *Network `json:"network"`
	Disk      int      `json:"diskSize"`
}

Configuration declares aws connection info

func (*Configuration) Create

func (conf *Configuration) Create(nodeIndex int, nodeGroup, name, instanceType string, disk int, userData interface{}) (*Ec2Instance, error)

Create will create a named VM not powered memory and disk are in megabytes

func (*Configuration) GetInstanceID

func (conf *Configuration) GetInstanceID(name string) (*Ec2Instance, error)

GetInstanceID return aws instance id from named ec2 instance

func (*Configuration) Log

func (conf *Configuration) Log(args ...interface{})

Log logging

type Context

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

Context wrapper

func NewContext

func NewContext(timeout float64) *Context

NewContext return a context. Timeout is in seconds

func (*Context) Cancel

func (c *Context) Cancel()

Cancel the current context

func (*Context) Context

func (c *Context) Context() context.Context

Context returns the embed context object

func (*Context) Deadline

func (c *Context) Deadline() (deadline time.Time, ok bool)

Deadline returns the time when work done on behalf of this context should be canceled. Deadline returns ok==false when no deadline is set. Successive calls to Deadline return the same results.

func (*Context) Done

func (c *Context) Done() <-chan struct{}

Done returns a channel that's closed when work done on behalf of this context should be canceled. Done may return nil if this context can never be canceled. Successive calls to Done return the same value.

WithCancel arranges for Done to be closed when cancel is called; WithDeadline arranges for Done to be closed when the deadline expires; WithTimeout arranges for Done to be closed when the timeout elapses.

Done is provided for use in select statements:

// Stream generates values with DoSomething and sends them to out
// until DoSomething returns an error or ctx.Done is closed.
func Stream(ctx context.Context, out chan<- Value) error {
	for {
		v, err := DoSomething(ctx)
		if err != nil {
			return err
		}
		select {
		case <-ctx.Done():
			return ctx.Err()
		case out <- v:
		}
	}
}

See https://blog.golang.org/pipelines for more examples of how to use a Done channel for cancelation.

func (*Context) Err

func (c *Context) Err() error

Err as string If Done is not yet closed, Err returns nil. If Done is closed, Err returns a non-nil error explaining why: Canceled if the context was canceled or DeadlineExceeded if the context's deadline passed. After Err returns a non-nil error, successive calls to Err return the same error.

func (*Context) Value

func (c *Context) Value(key interface{}) interface{}

Value returns the value associated with this context for key, or nil if no value is associated with key. Successive calls to Value with the same key returns the same result.

Use context values only for request-scoped data that transits processes and API boundaries, not for passing optional parameters to functions.

A key identifies a specific value in a Context. Functions that wish to store values in Context typically allocate a key in a global variable then use that key as the argument to context.WithValue and Context.Value. A key can be any type that supports equality; packages should define keys as an unexported type to avoid collisions.

Packages that define a Context key should provide type-safe accessors for the values stored using that key:

// Package user defines a User type that's stored in Contexts.
package user

import "context"

// User is the type of value stored in the Contexts.
type User struct {...}

// key is an unexported type for keys defined in this package.
// This prevents collisions with keys defined in other packages.
type key int

// userKey is the key for user.User values in Contexts. It is
// unexported; clients use user.NewContext and user.FromContext
// instead of using this key directly.
var userKey key

// NewContext returns a new Context that carries value u.
func NewContext(ctx context.Context, u *User) context.Context {
	return context.WithValue(ctx, userKey, u)
}

// FromContext returns the User value stored in ctx, if any.
func FromContext(ctx context.Context) (*User, bool) {
	u, ok := ctx.Value(userKey).(*User)
	return u, ok
}

func (*Context) WithValue

func (c *Context) WithValue(key, val interface{})

WithValue returns a copy of parent in which the value associated with key is val.

Use context Values only for request-scoped data that transits processes and APIs, not for passing optional parameters to functions.

The provided key must be comparable and should not be of type string or any other built-in type to avoid collisions between packages using context. Users of WithValue should define their own types for keys. To avoid allocating when assigning to an interface{}, context keys often have concrete type struct{}. Alternatively, exported context key variables' static type should be a pointer or interface.

type Ec2Instance

type Ec2Instance struct {
	InstanceName string
	InstanceID   *string
	// contains filtered or unexported fields
}

Ec2Instance Running instance

func GetEc2Instance

func GetEc2Instance(config *Configuration, instanceName string) (*Ec2Instance, error)

GetEc2Instance return an existing instance from name

func NewEc2Instance

func NewEc2Instance(config *Configuration, instanceName string) (*Ec2Instance, error)

NewEc2Instance create a new instance

func (*Ec2Instance) Create

func (instance *Ec2Instance) Create(nodeIndex int, nodeGroup, instanceType, userData string, disk int) error

Create will create a named VM not powered memory and disk are in megabytes

func (*Ec2Instance) Delete

func (instance *Ec2Instance) Delete() error

Delete a VM by name

func (*Ec2Instance) NewContext

func (instance *Ec2Instance) NewContext() *Context

NewContext create instance context

func (*Ec2Instance) PowerOff

func (instance *Ec2Instance) PowerOff() error

PowerOff power off a VM by name

func (*Ec2Instance) PowerOn

func (instance *Ec2Instance) PowerOn() error

PowerOn power on a VM by name

func (*Ec2Instance) ShutdownGuest

func (instance *Ec2Instance) ShutdownGuest() error

ShutdownGuest power off a VM by name

func (*Ec2Instance) Status

func (instance *Ec2Instance) Status() (*Status, error)

Status return the current status of VM by name

func (*Ec2Instance) WaitForIP

func (instance *Ec2Instance) WaitForIP(callback CallbackCheckIPReady) (*string, error)

WaitForIP wait ip a VM by name

func (*Ec2Instance) WaitForPowered

func (instance *Ec2Instance) WaitForPowered() error

WaitForPowered wait ip a VM by name

type Eni

type Eni struct {
	SubnetID        string `json:"subnet"`
	SecurityGroupID string `json:"securityGroup"`
	PublicIP        bool   `json:"publicIP"`
}

Eni decalre ENI interface

type Network

type Network struct {
	ENI []Eni `json:"eni"`
}

Network declare network configuration

type Status

type Status struct {
	Address string
	Powered bool
}

Status shortened vm status

type Tag

type Tag struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

Tag aws tag

type VirtualMachinePowerState

type VirtualMachinePowerState string

VirtualMachinePowerState alias string

Jump to

Keyboard shortcuts

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