Skip to content

Commit

Permalink
Add svc parameter in args for testing
Browse files Browse the repository at this point in the history
  • Loading branch information
kenzo0107 committed Dec 5, 2019
1 parent a7670df commit 754ab81
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 35 deletions.
24 changes: 6 additions & 18 deletions pkg/awsapi/ec2.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,11 @@ import (
"log"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
fuzzyfinder "github.com/ktr0731/go-fuzzyfinder"
)

// EC2Client : ec2 client
type EC2Client struct {
sess *session.Session
svc *ec2.EC2
}

// EC2Info : required ec2 instance information
type EC2Info struct {
InstanceID string
Expand All @@ -26,14 +20,8 @@ type EC2Info struct {
AvailabilityZone string
}

// NewEC2 : new ec2 client
func NewEC2(sess *session.Session) *EC2Client {
svc := ec2.New(sess)
return &EC2Client{sess, svc}
}

// GetEC2List : get list of ec2 instances
func (d *EC2Client) GetEC2List() ([]EC2Info, error) {
// DescribeRunningEC2Instances : get list of running ec2 instances
func DescribeRunningEC2Instances(svc ec2iface.EC2API) ([]EC2Info, error) {
// condition: running instance only
input := &ec2.DescribeInstancesInput{
Filters: []*ec2.Filter{
Expand All @@ -46,7 +34,7 @@ func (d *EC2Client) GetEC2List() ([]EC2Info, error) {
},
}

res, err := d.svc.DescribeInstances(input)
res, err := svc.DescribeInstances(input)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -89,8 +77,8 @@ func (d *EC2Client) GetEC2List() ([]EC2Info, error) {
return e, nil
}

// FinderEC2Info : find information of ec2 instance through fuzzyfinder
func FinderEC2Info(ec2List []EC2Info) (ec2Info EC2Info, err error) {
// FinderEC2Instance : find information of ec2 instance through fuzzyfinder
func FinderEC2Instance(ec2List []EC2Info) (ec2Info EC2Info, err error) {
idx, err := fuzzyfinder.FindMulti(
ec2List,
func(i int) string {
Expand Down
22 changes: 5 additions & 17 deletions pkg/awsapi/ec2_instance_connect.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,22 @@ import (
"log"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2instanceconnect"
"github.com/aws/aws-sdk-go/service/ec2instanceconnect/ec2instanceconnectiface"
)

// EC2InstanceConnectClient : ec2 instance connect client
type EC2InstanceConnectClient struct {
sess *session.Session
svc *ec2instanceconnect.EC2InstanceConnect
}

// NewEC2InstanceConnect : new ec2 instance connect client
func NewEC2InstanceConnect(sess *session.Session) *EC2InstanceConnectClient {
svc := ec2instanceconnect.New(sess)
return &EC2InstanceConnectClient{sess, svc}
}

// SendSSHPubKey : send ssh public key to using ec2 instance api
func (d *EC2InstanceConnectClient) SendSSHPubKey(user, instanceID, publicKey, availabilityZone string) error {
func SendSSHPubKey(svc ec2instanceconnectiface.EC2InstanceConnectAPI, user, instanceID, publicKey, availabilityZone string) (bool, error) {
input := &ec2instanceconnect.SendSSHPublicKeyInput{
AvailabilityZone: aws.String(availabilityZone),
InstanceId: aws.String(instanceID),
InstanceOSUser: aws.String(user),
SSHPublicKey: aws.String(publicKey),
}
_, err := d.svc.SendSSHPublicKey(input)
r, err := svc.SendSSHPublicKey(input)
if err != nil {
log.Fatal(err)
return err
return *r.Success, err
}
return nil
return *r.Success, nil
}

0 comments on commit 754ab81

Please sign in to comment.