Skip to content

Commit aca1e41

Browse files
added error email
1 parent 9955c1a commit aca1e41

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ app.json
22
app2.json
33
cloudbuild.yaml
44
dist/
5-
dns-check
5+
dns-sync
66
deployment.yaml
7+
cronjob.yaml
78
Makefile
89
bin/
910
ignored.json

pkg/helper.go

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var logger = log.Logger{
2525
func (d *Domain) getCNAMERecords() string {
2626
cname, err := net.LookupCNAME(d.Name)
2727
if err != nil {
28-
logger.Errorf("Error looking up CNAME for %s: %s", d.Name, err)
28+
logger.Errorf("error looking up CNAME for %s: %s", d.Name, err)
2929
return ""
3030
}
3131
return cname
@@ -42,14 +42,18 @@ func (d *Domain) Check() bool {
4242
}
4343

4444
func checkDNSTarget(domain Domain, ses SES) {
45-
logger.Infof("Checking %s", domain.Name)
45+
logger.Infof("checking %s", domain.Name)
4646
if !domain.Check() {
47-
//@todo send email with aws ses
4847
logger.Errorf("%s is not pointing to %s", domain.Name, domain.Target)
49-
sendEmail(domain, ses)
48+
sendEmail(Subject(domain, ses), HtmlBody(domain, ses), TextBody(domain, ses), ses)
5049
}
5150
}
5251

52+
func errorEmail(ses SES, err error) {
53+
errorMessage := fmt.Sprintf("Error in DNS Check(%s)", err.Error())
54+
sendEmail(errorMessage, errorMessage, errorMessage, ses)
55+
}
56+
5357
const (
5458
CharSet = "UTF-8"
5559
)
@@ -64,19 +68,20 @@ func TextBody(d Domain, ses SES) string {
6468
return fmt.Sprintf(ses.Body, d.Name)
6569
}
6670

67-
func sendEmail(d Domain, sesc SES) {
71+
func sendEmail(subject, htmlBody, body string, s SES) {
6872
sess, err := session.NewSession(&aws.Config{
69-
Region: aws.String(sesc.Region)},
73+
Region: aws.String(s.Region)},
7074
)
7175
if err != nil {
72-
logger.Errorf("Error creating session: %s", err)
76+
logger.Errorf("error creating session: %s", err)
77+
errorEmail(s, err)
7378
return
7479
}
7580

7681
svc := ses.New(sess, &aws.Config{
7782
Credentials: credentials.NewStaticCredentials(
78-
sesc.AccessKey,
79-
sesc.SecretKey,
83+
s.AccessKey,
84+
s.SecretKey,
8085
"",
8186
),
8287
})
@@ -85,26 +90,26 @@ func sendEmail(d Domain, sesc SES) {
8590
Destination: &ses.Destination{
8691
CcAddresses: []*string{},
8792
ToAddresses: []*string{
88-
aws.String(sesc.Recipient),
93+
aws.String(s.Recipient),
8994
},
9095
},
9196
Message: &ses.Message{
9297
Body: &ses.Body{
9398
Html: &ses.Content{
9499
Charset: aws.String(CharSet),
95-
Data: aws.String(HtmlBody(d, sesc)),
100+
Data: aws.String(htmlBody),
96101
},
97102
Text: &ses.Content{
98103
Charset: aws.String(CharSet),
99-
Data: aws.String(TextBody(d, sesc)),
104+
Data: aws.String(body),
100105
},
101106
},
102107
Subject: &ses.Content{
103108
Charset: aws.String(CharSet),
104-
Data: aws.String(Subject(d, sesc)),
109+
Data: aws.String(subject),
105110
},
106111
},
107-
Source: aws.String(sesc.Sender),
112+
Source: aws.String(s.Sender),
108113
}
109114
result, err := svc.SendEmail(input)
110115

@@ -123,8 +128,9 @@ func sendEmail(d Domain, sesc SES) {
123128
} else {
124129
logger.Println(err.Error())
125130
}
131+
errorEmail(s, err)
126132
return
127133
}
128-
logger.Println("Email Sent to address: " + sesc.Recipient)
134+
logger.Println("email sent to address: " + s.Recipient)
129135
logger.Println(result.MessageId)
130136
}

0 commit comments

Comments
 (0)