Skip to content

Commit cac15ce

Browse files
committed
Migrated to latest sdk version
1 parent 3d76a26 commit cac15ce

File tree

12 files changed

+148
-84
lines changed

12 files changed

+148
-84
lines changed

.air.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ cmd = "go build -o ./tmp/main ./web/main.go"
1111
# Binary file yields from `cmd`.
1212
bin = "tmp/main"
1313
# Customize binary.
14-
full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"
14+
full_bin = "APP_ENV=dev APP_USER=air ./tmp/main --config config/config.yaml"
1515
# Watch these filename extensions.
1616
include_ext = ["go", "tpl", "tmpl", "html"]
1717
# Ignore these filename extensions or directories.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@
1717
*.db
1818
# tmp builds by air
1919
tmp
20-
logs
20+
logs
21+
config/config.yaml

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,13 @@ A Cloud Infrastructure Management Tool to stop, resume, clean and destroy resour
2323

2424

2525
## Development
26+
Copy `config/config.example.yaml` to `config/config.yaml` and make all necessary changes
2627
```bash
27-
# Web UI
28+
cp config/config.example.yaml config/config.yaml
29+
30+
# Start Web UI
2831
cd web
29-
go run main.go
32+
go run main.go --config ../config/config.yaml
3033
```
3134

3235
using [air](https://github.com/cosmtrek/air) with autoreload UI features

config/aws.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package config
2+
3+
import (
4+
"github.com/aws/aws-sdk-go-v2/aws"
5+
awsCfg "github.com/aws/aws-sdk-go-v2/config"
6+
7+
"github.com/aws/aws-sdk-go-v2/credentials"
8+
log "github.com/sirupsen/logrus"
9+
)
10+
11+
// AwsConfig Related Configurations
12+
type AwsConfig struct {
13+
// AWS Configs
14+
Config aws.Config
15+
AccessKeyID string
16+
SecretAccessKey string
17+
DefaultRegion string
18+
}
19+
20+
func loadAwsConfig(accessKeyID, secretAccessKey, defaultRegion string) aws.Config {
21+
var (
22+
err error
23+
cfg aws.Config
24+
)
25+
if accessKeyID != "" && secretAccessKey != "" {
26+
cfg, err = awsCfg.LoadDefaultConfig(
27+
awsCfg.WithCredentialsProvider(credentials.StaticCredentialsProvider{
28+
Value: aws.Credentials{
29+
AccessKeyID: accessKeyID, SecretAccessKey: secretAccessKey,
30+
Source: "Reka Variables",
31+
},
32+
}))
33+
} else {
34+
cfg, err = awsCfg.LoadDefaultConfig(awsCfg.WithRegion(defaultRegion))
35+
}
36+
if err != nil {
37+
log.Fatal(err)
38+
}
39+
return cfg
40+
}

config/config.example.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,14 @@ refreshInterval: 1
1515
# username: blank # Can
1616
# password: blank
1717
database:
18-
type: sqlite
18+
type: sqlite
19+
20+
aws:
21+
# Env: Access Key ID
22+
# AWS_SECRET_ACCESS_KEY=SECRET
23+
secretAccessKey: blank
24+
# Secret Access Key
25+
# AWS_ACCESS_KEY_ID=AKID
26+
accessKeyID: blank
27+
# AWS_REGION=blank
28+
defaultRegion: us-east-2

config/config.go

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"path/filepath"
88
"strings"
99

10-
"github.com/aws/aws-sdk-go-v2/aws"
1110
log "github.com/sirupsen/logrus"
1211
"github.com/spf13/viper"
1312
)
@@ -22,22 +21,13 @@ const (
2221
appName = "REKA"
2322
)
2423

25-
// AwsConfig Related Configurations
26-
type AwsConfig struct {
27-
// AWS Configs
28-
Config aws.Config
29-
AccessKey string `yaml:"accessKey"`
30-
SecretAccessKey string `yaml:"secretAccessKey"`
31-
DefaultRegion string `yaml:"defaultRegion"`
32-
}
33-
3424
// DatabaseConfig Config for Dabatabase
3525
type DatabaseConfig struct {
36-
Type string `yaml:"type"`
37-
Name string `yaml:"name"`
38-
Host string `yaml:"host"`
39-
User string `yaml:"user"`
40-
Password string `yaml:"password"`
26+
Type string
27+
Name string
28+
Host string
29+
User string
30+
Password string
4131
}
4232

4333
// GetConnectionString the connection string for database
@@ -52,17 +42,18 @@ func (db *DatabaseConfig) SqliteDefaultPath() string {
5242

5343
// Config : The Config values passed to application
5444
type Config struct {
55-
Name string `yaml:"name"`
56-
Providers []string `yaml:"providers"`
57-
Database *DatabaseConfig `yaml:"database"`
58-
Aws *AwsConfig `yaml:"aws"`
59-
RefreshInterval int32 `yaml:"refreshInterval"`
60-
LogPath string `yaml:"logPath"`
61-
45+
Name string
46+
Providers []string
47+
Database *DatabaseConfig
48+
Aws *AwsConfig
49+
RefreshInterval int32
50+
LogPath string
51+
52+
// Authentication Details to login to Reka
6253
Auth struct {
63-
Username string `yaml:"username"`
64-
Password string `yaml:"password"`
65-
} `yaml:"auth"`
54+
Username string
55+
Password string
56+
}
6657

6758
staticPath string // Path to Static File
6859
}
@@ -139,7 +130,6 @@ func LoadConfig() *Config {
139130
}
140131
}
141132

142-
fmt.Println(config.Auth)
143133
return config
144134
}
145135

go.mod

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@ module github.com/mensaah/reka
33
go 1.14
44

55
require (
6-
github.com/aws/aws-sdk-go-v2 v0.23.0
6+
github.com/aws/aws-sdk-go-v2 v0.28.0
7+
github.com/aws/aws-sdk-go-v2/config v0.2.1
8+
github.com/aws/aws-sdk-go-v2/credentials v0.1.3
9+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v0.1.1
10+
github.com/aws/aws-sdk-go-v2/service/ec2 v0.28.0
11+
github.com/aws/aws-sdk-go-v2/service/s3 v0.28.0
712
github.com/fsnotify/fsnotify v1.4.9 // indirect
813
github.com/gin-gonic/gin v1.6.3
914
github.com/go-co-op/gocron v0.3.1
15+
github.com/go-sql-driver/mysql v1.5.0 // indirect
1016
github.com/jinzhu/now v1.1.1
1117
github.com/labstack/gommon v0.3.0
1218
github.com/pelletier/go-toml v1.8.1 // indirect

go.sum

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,30 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV
2323
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
2424
github.com/aws/aws-sdk-go-v2 v0.23.0 h1:+E1q1LLSfHSDn/DzOtdJOX+pLZE2HiNV2yO5AjZINwM=
2525
github.com/aws/aws-sdk-go-v2 v0.23.0/go.mod h1:2LhT7UgHOXK3UXONKI5OMgIyoQL6zTAw/jwIeX6yqzw=
26+
github.com/aws/aws-sdk-go-v2 v0.28.0 h1:+LRTQpWWXQBsjqd5nNkOGvKey6LWL01xZnyMQB/ZLwo=
27+
github.com/aws/aws-sdk-go-v2 v0.28.0/go.mod h1:P9h1Cf+uOpElAT533QXKOzrpFaOlm8JMorThJNUfQ6Q=
28+
github.com/aws/aws-sdk-go-v2/config v0.2.1 h1:VJHy+Pf3tTcj4QCF3y8sAvERHjMYKCpYGAMkbQkoJi4=
29+
github.com/aws/aws-sdk-go-v2/config v0.2.1/go.mod h1:589BDFDfGgBgwpTUgiCBiZMzzwlyA6F5gVmm3mNHG50=
30+
github.com/aws/aws-sdk-go-v2/credentials v0.1.3 h1:RO+Zd6vbsfRmr1M/hyzALKN2uuSzfR9x0DLVXSy6icA=
31+
github.com/aws/aws-sdk-go-v2/credentials v0.1.3/go.mod h1:Bkc9+5pYXzMEv0lTLALes2mKqxHJuSGUQZpT8cm0RYc=
32+
github.com/aws/aws-sdk-go-v2/ec2imds v0.1.3 h1:PwcbtgVwH5IhNIzpkK+g7/f5lJ5YmcetMGcFJ5Z+VM4=
33+
github.com/aws/aws-sdk-go-v2/ec2imds v0.1.3/go.mod h1:7TwGIbQjJpNi4BB2fdAR4YrVcPe9025baOkFcuYIgLY=
34+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v0.1.1 h1:IaB5I9QPhMVmVkJaN9xYZjcnazcyt32O3vfnq1HsXnI=
35+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v0.1.1/go.mod h1:v8zMKLr4BzY8/44aFkHpkuGySGmoXzLBsQFNhPC3NG0=
36+
github.com/aws/aws-sdk-go-v2/service/ec2 v0.28.0 h1:yPZURCMZsYOXN1yoGArWbKnw4700SrPgD0b0mKm/Jiw=
37+
github.com/aws/aws-sdk-go-v2/service/ec2 v0.28.0/go.mod h1:jg4gBSpwnAHiaDRdXbmoToyD4wMzddziQt6JjTztZkQ=
38+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v0.3.0 h1:OGNwNNeQvOZsa+zAK5nE7r6e0serfSAFznoXqbvbzFE=
39+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v0.3.0/go.mod h1:bMiNrEKNefchodwRJnuwaiAZj2NJq8ZHAYASve6mbFs=
40+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v0.1.0 h1:r6FAnK2190ahYhtzj0HRcxCWlb7SE9/zI8v73npLkYU=
41+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v0.1.0/go.mod h1:aLwdZO0CArC1N9dbBxt7C2PBxkPktM0sDsr9iS7A9SY=
42+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v0.3.0 h1:W9iV5Wv4ENG/tZJNj5cGAPqaIqTzYbfAuSLufE+nFHk=
43+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v0.3.0/go.mod h1:+jAbMTkZ52kAOhaU0NUn5/gY6i4oRcIJxfPUVrpDdq4=
44+
github.com/aws/aws-sdk-go-v2/service/s3 v0.28.0 h1:SwlO55TpntMeMvUCWwPae6RgsbplIx5ktxJ5CQnpq68=
45+
github.com/aws/aws-sdk-go-v2/service/s3 v0.28.0/go.mod h1:0cSPvUIK053aHptJM5Z8KflwHky2xTTWZnjh2P/5bcA=
46+
github.com/aws/aws-sdk-go-v2/service/sts v0.28.0 h1:vT3BsN262uYMR2J4JC7oPbUwNvbnYUJ2GTwOtbfK+tk=
47+
github.com/aws/aws-sdk-go-v2/service/sts v0.28.0/go.mod h1:AoXZmcouo9fCC1Ut7dUeBf2JiCjNFb0WOmgSEGnpuKY=
48+
github.com/awslabs/smithy-go v0.2.1 h1:guvR5teu1q6IoZnE9PFyPjxh/H7YEcZGysx9vu5ZwZ0=
49+
github.com/awslabs/smithy-go v0.2.1/go.mod h1:hPOQwnmBLHsUphH13tVSjQhTAFma0/0XoZGbBcOuABI=
2650
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
2751
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
2852
github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=
@@ -94,6 +118,8 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a
94118
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
95119
github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
96120
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
121+
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
122+
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
97123
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
98124
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
99125
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
@@ -186,6 +212,9 @@ github.com/jinzhu/now v1.1.1 h1:g39TucaRWyV3dwDO++eEc6qf8TVIQ/Da48WmqjZ3i7E=
186212
github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
187213
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
188214
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
215+
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
216+
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
217+
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
189218
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
190219
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
191220
github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns=
@@ -463,6 +492,8 @@ golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8T
463492
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
464493
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
465494
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
495+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
496+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
466497
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
467498
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
468499
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=

provider/aws/aws.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"fmt"
55

66
"github.com/aws/aws-sdk-go-v2/aws"
7-
"github.com/aws/aws-sdk-go-v2/aws/external"
7+
awsCfg "github.com/aws/aws-sdk-go-v2/config"
88
log "github.com/sirupsen/logrus"
99

1010
"github.com/mensaah/reka/config"
@@ -22,7 +22,7 @@ func GetName() string {
2222
}
2323

2424
func GetConfig() aws.Config {
25-
cfg, err := external.LoadDefaultAWSConfig()
25+
cfg, err := awsCfg.LoadDefaultConfig()
2626
if err != nil {
2727
panic("unable to load SDK config, " + err.Error())
2828
}

provider/aws/ec2.go

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
)
1515

1616
// returns only instance IDs of unprotected ec2 instances
17-
func getInstanceDetails(svc *ec2.Client, output *ec2.DescribeInstancesResponse, region string, logger *log.Entry) ([]*types.Resource, error) {
17+
func getInstanceDetails(svc *ec2.Client, output *ec2.DescribeInstancesOutput, region string, logger *log.Entry) ([]*types.Resource, error) {
1818
var ec2Instances []*types.Resource
1919
logger.Debug("Fetching EC2 Details")
2020
for _, reservation := range output.Reservations {
@@ -42,14 +42,12 @@ func getInstanceDetails(svc *ec2.Client, output *ec2.DescribeInstancesResponse,
4242
// GetAllEC2Instances Get all instances
4343
func GetAllEC2Instances(cfg aws.Config, region string, logger *log.Entry) ([]*types.Resource, error) {
4444
logger.Debug("Fetching EC2 Instances")
45-
svc := ec2.New(cfg)
45+
svc := ec2.NewFromConfig(cfg)
4646
params := &ec2.DescribeInstancesInput{}
4747

4848
// Build the request with its input parameters
49-
req := svc.DescribeInstancesRequest(params)
49+
resp, err := svc.DescribeInstances(context.Background(), params)
5050

51-
// Send the request, and get the response or error back
52-
resp, err := req.Send(context.Background())
5351
if err != nil {
5452
return nil, err
5553
}
@@ -63,12 +61,12 @@ func GetAllEC2Instances(cfg aws.Config, region string, logger *log.Entry) ([]*ty
6361

6462
// StopEC2Instances Stop Running Instances
6563
func StopEC2Instances(cfg aws.Config, instances []*types.Resource, logger *log.Entry) error {
66-
svc := ec2.New(cfg)
67-
var instanceIds []string
64+
svc := ec2.NewFromConfig(cfg)
65+
var instanceIds []*string
6866

6967
for _, instance := range instances {
7068
if instance.IsActive() {
71-
instanceIds = append(instanceIds, instance.UUID)
69+
instanceIds = append(instanceIds, &instance.UUID)
7270
}
7371
}
7472

@@ -82,8 +80,7 @@ func StopEC2Instances(cfg aws.Config, instances []*types.Resource, logger *log.E
8280
InstanceIds: instanceIds,
8381
}
8482

85-
req := svc.StopInstancesRequest(params)
86-
resp, err := req.Send(context.Background())
83+
resp, err := svc.StopInstances(context.Background(), params)
8784
// TODO Attach error to specific instance where the error occurred if possible
8885
if err != nil {
8986
fmt.Println(resp, err)
@@ -93,12 +90,12 @@ func StopEC2Instances(cfg aws.Config, instances []*types.Resource, logger *log.E
9390

9491
// ResumeEC2Instances Resume Stopped instances
9592
func ResumeEC2Instances(cfg aws.Config, instances []*types.Resource, logger *log.Entry) error {
96-
svc := ec2.New(cfg)
97-
var instanceIds []string
93+
svc := ec2.NewFromConfig(cfg)
94+
var instanceIds []*string
9895

9996
for _, instance := range instances {
10097
if instance.IsStopped() {
101-
instanceIds = append(instanceIds, instance.UUID)
98+
instanceIds = append(instanceIds, &instance.UUID)
10299
}
103100
}
104101

@@ -111,23 +108,22 @@ func ResumeEC2Instances(cfg aws.Config, instances []*types.Resource, logger *log
111108
}
112109
logger.Debug("Starting EC2 Instances ", instanceIds, " ...")
113110

114-
req := svc.StartInstancesRequest(params)
115-
resp, err := req.Send(context.Background())
111+
resp, err := svc.StartInstances(context.Background(), params)
116112
// TODO Attach error to specific instance where the error occurred if possible
117113
if err != nil {
118114
fmt.Println(resp, err)
119115
}
120116
return err
121117
}
122118

123-
// StartEC2Instances Start Stopped instances
119+
// TerminateEC2Instances Shutdown instances
124120
func TerminateEC2Instances(cfg aws.Config, instances []*types.Resource, logger *log.Entry) error {
125-
svc := ec2.New(cfg)
126-
var instanceIds []string
121+
svc := ec2.NewFromConfig(cfg)
122+
var instanceIds []*string
127123

128124
for _, instance := range instances {
129125
if instance.IsStopped() || instance.IsActive() {
130-
instanceIds = append(instanceIds, instance.UUID)
126+
instanceIds = append(instanceIds, &instance.UUID)
131127
}
132128
}
133129

@@ -141,8 +137,7 @@ func TerminateEC2Instances(cfg aws.Config, instances []*types.Resource, logger *
141137
InstanceIds: instanceIds,
142138
}
143139

144-
req := svc.TerminateInstancesRequest(params)
145-
resp, err := req.Send(context.Background())
140+
resp, err := svc.TerminateInstances(context.Background(), params)
146141
// TODO Attach error to specific instance where the error occurred if possible
147142
if err != nil {
148143
fmt.Println(resp, err)

0 commit comments

Comments
 (0)