-
Notifications
You must be signed in to change notification settings - Fork 2
/
request.go
46 lines (39 loc) · 990 Bytes
/
request.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package request
import (
"fmt"
"reflect"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/ysugimoto/ginger/config"
)
var debug string = ""
// generateStatementId() generated unique statement string.
func generateStatementId(sType string) string {
return fmt.Sprintf("ginger-statement-%s-%d", sType, time.Now().UnixNano())
}
// Create common AWS session.
func createAWSSession(c *config.Config) *session.Session {
conf := aws.NewConfig().WithRegion(c.Region)
if c.Profile != "" {
conf = conf.WithCredentials(
credentials.NewSharedCredentials("", c.Profile),
)
}
return session.New(conf)
}
// debug print if enables.
func debugRequest(obj fmt.Stringer) {
if debug != "enable" {
return
}
var name string
if t := reflect.TypeOf(obj); t.Kind() == reflect.Ptr {
name = "*" + t.Elem().Name()
} else {
name = t.Name()
}
fmt.Printf("[DEBUG] %s\n", name)
fmt.Println(obj)
}