ec2

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2021 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func DescribeInstancesInput

func DescribeInstancesInput(filter ...*ec2.Filter) *ec2.DescribeInstancesInput

DescribeInstancesInput builds an input with one or multiple filters

Useful in conjunction with Filter

Example
package main

import (
	"fmt"
	"github.com/NETWAYS/check_cloud_aws/internal/ec2"
)

func main() {
	input := ec2.DescribeInstancesInput(
		ec2.Filter("tag:aws:autoscaling:groupName", "magic"),
		ec2.Filter("tag:Name", "web*"),
	)
	fmt.Println(input)
}
Output:

{
  Filters: [{
      Name: "tag:aws:autoscaling:groupName",
      Values: ["magic"]
    },{
      Name: "tag:Name",
      Values: ["web*"]
    }]
}

func Filter

func Filter(name, value string) *ec2.Filter

Filter builds a simple key value filter for EC2

Example
package main

import (
	"fmt"
	"github.com/NETWAYS/check_cloud_aws/internal/ec2"
)

func main() {
	filter := ec2.Filter("tag:Name", "vm1")
	fmt.Println(filter)
}
Output:

{
  Name: "tag:Name",
  Values: ["vm1"]
}

Types

type Client

type Client struct {
	Client *ec2.EC2
}

Client implementation to offer various load functions for getting data from the API

func NewClient

func NewClient(session *session.Session) *Client

NewClient sets up a Client with a AWS session.Session

func (*Client) LoadAllInstancesByFilter

func (c *Client) LoadAllInstancesByFilter(filter *ec2.DescribeInstancesInput) (instances *Instances, err error)

LoadAllInstancesByFilter returns Instances with a list of Instance to work with

Also see our Filter and DescribeInstancesInput

func (*Client) LoadInstance

func (c *Client) LoadInstance(id string) (instance *Instance, err error)

LoadInstance returns a single Instance looking for its id

func (*Client) LoadInstanceByFilter

func (c *Client) LoadInstanceByFilter(filter *ec2.DescribeInstancesInput) (instance *Instance, err error)

LoadInstanceByFilter returns a single Instance using a ec2.DescribeInstancesInput with a ec2.Filter in it

The function expects the result to have exactly one match.

Also see our Filter and DescribeInstancesInput

func (*Client) LoadInstanceByName

func (c *Client) LoadInstanceByName(name string) (instance *Instance, err error)

LoadInstanceByName returns a single Instance looking for a name

Name is not required to be unique, but our interface expects it is.

func (*Client) LoadInstanceStatus

func (c *Client) LoadInstanceStatus(id string) (status *ec2.InstanceStatus, err error)

LoadInstanceStatus returns the ec2.Instance for an id

type Instance

type Instance struct {
	Instance *ec2.Instance
	Status   *ec2.InstanceStatus
}

func (*Instance) GetLongOutput

func (i *Instance) GetLongOutput() (out string)

func (*Instance) GetOutput

func (i *Instance) GetOutput() (out string)

func (*Instance) GetStatus

func (i *Instance) GetStatus() int

* instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

* instance-status.status - The status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

* system-status.status - The system status of the instance (ok | impaired | initializing | insufficient-data | not-applicable).

type Instances

type Instances struct {
	Instances []*Instance
}

func (Instances) GetOutput

func (i Instances) GetOutput() (output string)

func (Instances) GetStatus

func (i Instances) GetStatus() int

Jump to

Keyboard shortcuts

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