Skip to content

Commit 974f79b

Browse files
authored
Merge pull request #95 from kilgaloon/development
Development
2 parents 8537067 + c22c348 commit 974f79b

File tree

22 files changed

+114
-41
lines changed

22 files changed

+114
-41
lines changed

.travis.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ install: true
2626

2727
# Don't email me the results of the test runs.
2828
notifications:
29-
email: false
29+
email:
30+
recipients:
31+
32+
on_success: never # default: change
33+
on_failure: always # default: always
3034

3135
before_install:
3236
- go get -t ./...

agent/commands.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"net/http"
77
"time"
88

9+
"github.com/getsentry/raven-go"
910
"github.com/kilgaloon/leprechaun/api"
1011
)
1112

@@ -25,6 +26,7 @@ func (d *Default) WorkersList(w http.ResponseWriter, r *http.Request) {
2526
w.WriteHeader(http.StatusOK)
2627
j, err := json.Marshal(resp)
2728
if err != nil {
29+
raven.CaptureError(err, nil)
2830
log.Fatal(err)
2931
}
3032

@@ -47,6 +49,7 @@ func (d *Default) KillWorker(w http.ResponseWriter, r *http.Request) {
4749

4850
j, err := json.Marshal(resp)
4951
if err != nil {
52+
raven.CaptureError(err, nil)
5053
log.Fatal(err)
5154
}
5255

agent/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ func (d *Default) GetContext() *context.Context {
7171
}
7272

7373
// GetConfig return current config for agent
74-
func (d *Default) GetConfig() *config.AgentConfig {
75-
return d.Config
74+
func (d *Default) GetConfig() config.AgentConfig {
75+
return *d.Config
7676
}
7777

7878
func (d Default) Write(p []byte) (n int, err error) {

api/client.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"strings"
1010
"time"
1111

12+
"github.com/getsentry/raven-go"
1213
"github.com/olekukonko/tablewriter"
1314
)
1415

@@ -30,6 +31,7 @@ func (c Cmd) Command() string {
3031

3132
return ""
3233
}
34+
3335
// Args is which args are passed to command
3436
func (c Cmd) Args() []string {
3537
s := strings.Fields(string(c))
@@ -86,6 +88,7 @@ func RevealEndpoint(e string, c Cmd) string {
8688
func Info(c Cmd) {
8789
r, err := HTTPClient.Get(RevealEndpoint(infoEndpoint, c))
8890
if err != nil {
91+
raven.CaptureError(err, nil)
8992
log.Fatal(err)
9093
}
9194

@@ -99,6 +102,7 @@ func Info(c Cmd) {
99102
resp := &InfoResponse{}
100103
err = json.NewDecoder(r.Body).Decode(resp)
101104
if err != nil {
105+
raven.CaptureError(err, nil)
102106
log.Fatal(err)
103107
}
104108

@@ -112,11 +116,12 @@ func Info(c Cmd) {
112116
func Process(c Cmd) {
113117
r, err := HTTPClient.Get(RevealEndpoint(processCmds[c.Command()], c))
114118
if err != nil {
119+
raven.CaptureError(err, nil)
115120
log.Fatal(err)
116121
}
117122

118123
if r.StatusCode != 200 {
119-
fmt.Println("No such command " + c.Command())
124+
fmt.Println("Invalid command")
120125
return
121126
}
122127

@@ -125,6 +130,7 @@ func Process(c Cmd) {
125130
resp := &WorkersResponse{}
126131
err = json.NewDecoder(r.Body).Decode(resp)
127132
if err != nil {
133+
raven.CaptureError(err, nil)
128134
log.Fatal(err)
129135
}
130136

@@ -136,6 +142,7 @@ func Process(c Cmd) {
136142
func WorkersList(c Cmd) {
137143
r, err := HTTPClient.Get(RevealEndpoint(workersListEndpoint, c))
138144
if err != nil {
145+
raven.CaptureError(err, nil)
139146
log.Fatal(err)
140147
}
141148

@@ -149,6 +156,7 @@ func WorkersList(c Cmd) {
149156
resp := &WorkersResponse{}
150157
err = json.NewDecoder(r.Body).Decode(resp)
151158
if err != nil {
159+
raven.CaptureError(err, nil)
152160
log.Fatal(err)
153161
}
154162

@@ -168,6 +176,7 @@ func WorkersList(c Cmd) {
168176
func WorkersKill(c Cmd) {
169177
r, err := HTTPClient.Get(RevealEndpoint(workersKillEndpoint, c) + "?name=" + c.Args()[0])
170178
if err != nil {
179+
raven.CaptureError(err, nil)
171180
log.Fatal(err)
172181
}
173182

@@ -181,6 +190,7 @@ func WorkersKill(c Cmd) {
181190
resp := &WorkersResponse{}
182191
err = json.NewDecoder(r.Body).Decode(resp)
183192
if err != nil {
193+
raven.CaptureError(err, nil)
184194
log.Fatal(err)
185195
}
186196

api/server.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package api
22

33
import (
44
"net/http"
5+
6+
"github.com/getsentry/raven-go"
57
)
68

79
var mux = http.NewServeMux()
@@ -40,6 +42,7 @@ func (a *API) RegisterHandle(e string, h func(w http.ResponseWriter, r *http.Req
4042
func (a *API) Start() {
4143
a.HTTP.Handler = mux
4244
if err := a.HTTP.ListenAndServe(); err != nil {
45+
raven.CaptureError(err, nil)
4346
panic(err)
4447
}
4548
}

client/commands.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"net/http"
77
"strconv"
88

9+
"github.com/getsentry/raven-go"
910
"github.com/kilgaloon/leprechaun/api"
1011
"github.com/kilgaloon/leprechaun/daemon"
1112
)
@@ -24,6 +25,7 @@ func (client *Client) cmdinfo(w http.ResponseWriter, r *http.Request) {
2425

2526
j, err := json.Marshal(resp)
2627
if err != nil {
28+
raven.CaptureError(err, nil)
2729
log.Fatal(err)
2830
}
2931

@@ -41,13 +43,11 @@ func (client *Client) cmdpause(w http.ResponseWriter, r *http.Request) {
4143
if client.GetStatus() == daemon.Paused {
4244
w.WriteHeader(http.StatusOK)
4345
resp.Message = "Client paused"
44-
} else {
45-
w.WriteHeader(http.StatusExpectationFailed)
46-
resp.Message = "Client failed to pause"
4746
}
4847

4948
j, err := json.Marshal(resp)
5049
if err != nil {
50+
raven.CaptureError(err, nil)
5151
log.Fatal(err)
5252
}
5353

@@ -60,19 +60,19 @@ func (client *Client) cmdstart(w http.ResponseWriter, r *http.Request) {
6060
if client.GetStatus() == daemon.Started {
6161
w.WriteHeader(http.StatusExpectationFailed)
6262
resp.Message = "Client already started"
63+
64+
return
6365
}
6466

6567
go client.Start()
6668
if client.GetStatus() == daemon.Started {
6769
w.WriteHeader(http.StatusOK)
6870
resp.Message = "Client started"
69-
} else {
70-
w.WriteHeader(http.StatusExpectationFailed)
71-
resp.Message = "Client failed to start"
7271
}
7372

7473
j, err := json.Marshal(resp)
7574
if err != nil {
75+
raven.CaptureError(err, nil)
7676
log.Fatal(err)
7777
}
7878

@@ -86,13 +86,11 @@ func (client *Client) cmdstop(w http.ResponseWriter, r *http.Request) {
8686
if client.GetStatus() == daemon.Stopped {
8787
w.WriteHeader(http.StatusOK)
8888
resp.Message = "Client stopped"
89-
} else {
90-
w.WriteHeader(http.StatusExpectationFailed)
91-
resp.Message = "Client failed to stop"
9289
}
9390

9491
j, err := json.Marshal(resp)
9592
if err != nil {
93+
raven.CaptureError(err, nil)
9694
log.Fatal(err)
9795
}
9896

client/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"time"
66

77
"github.com/fsnotify/fsnotify"
8+
"github.com/getsentry/raven-go"
89
"github.com/kilgaloon/leprechaun/agent"
910
"github.com/kilgaloon/leprechaun/daemon"
1011

@@ -48,6 +49,7 @@ func (client *Client) Start() {
4849
// watch for new recipes
4950
watcher, err := fsnotify.NewWatcher()
5051
if err != nil {
52+
raven.CaptureError(err, nil)
5153
panic("Failed to create watcher")
5254
}
5355

client/queue.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"path/filepath"
66
"time"
77

8+
"github.com/getsentry/raven-go"
89
"github.com/kilgaloon/leprechaun/daemon"
910
"github.com/kilgaloon/leprechaun/recipe"
1011
schedule "github.com/kilgaloon/leprechaun/recipe/schedule"
@@ -22,6 +23,7 @@ func (client *Client) BuildQueue() {
2223

2324
files, err := ioutil.ReadDir(client.GetConfig().GetRecipesPath())
2425
if err != nil {
26+
raven.CaptureError(err, nil)
2527
panic(err)
2628
}
2729

config/main.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ const (
2323
SMTPHost = ""
2424
SMTPUsername = ""
2525
SMTPPassword = ""
26-
ServerDomain = ""
26+
ServerDomain = "localhost"
27+
ErrorReporting = true
2728
)
2829

2930
// Configs for different agents
@@ -63,6 +64,7 @@ type AgentConfig struct {
6364
SMTPUsername string
6465
SMTPPassword string
6566
Domain string
67+
ErrorReporting bool
6668
}
6769

6870
// GetPath returns path of config file
@@ -172,6 +174,11 @@ func (ac AgentConfig) GetServerDomain() []string {
172174
return []string{domain, wwwdomain}
173175
}
174176

177+
// GetErrorReporting returns flag to decide is remote reporting enabled or not
178+
func (ac AgentConfig) GetErrorReporting() bool {
179+
return ac.ErrorReporting
180+
}
181+
175182
// New Create new config
176183
func (c *Configs) New(name string, path string) *AgentConfig {
177184
cfg, err := ini.Load(path)
@@ -232,6 +239,9 @@ func (c *Configs) New(name string, path string) *AgentConfig {
232239

233240
ac.Domain = cfg.Section("").Key(name + ".domain").MustString(ServerDomain)
234241

242+
gErrorReporting := cfg.Section("").Key("error_reporting").MustBool(ErrorReporting)
243+
ac.ErrorReporting = cfg.Section("").Key(name + ".error_reporting").MustBool(gErrorReporting)
244+
235245
c.cfgs[name] = ac
236246
return ac
237247
}

config/main_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func TestBuildWithoutSettings(t *testing.T) {
3535
assert.Equal(t, "", cfg.GetSMTPHost())
3636
assert.Equal(t, "", cfg.GetSMTPUsername())
3737
assert.Equal(t, "", cfg.GetSMTPPassword())
38-
assert.Equal(t, []string([]string{"", "www."}), cfg.GetServerDomain())
38+
assert.Equal(t, []string([]string{"localhost", "www.localhost"}), cfg.GetServerDomain())
3939
}
4040

4141
func TestBuildGlobalFallback(t *testing.T) {
@@ -88,7 +88,7 @@ func TestBuildWithInvalidValues(t *testing.T) {
8888
assert.Equal(t, LockFile, cfg.GetLockFile())
8989
assert.Equal(t, MaxAllowedWorkers, cfg.GetMaxAllowedWorkers())
9090
assert.Equal(t, MaxAllowedQueueWorkers, cfg.GetMaxAllowedQueueWorkers())
91-
assert.Equal(t, []string([]string{"", "www."}), cfg.GetServerDomain())
91+
assert.Equal(t, []string([]string{"localhost", "www.localhost"}), cfg.GetServerDomain())
9292
}
9393

9494
func TestGettingNotExistingConfig(t *testing.T) {

0 commit comments

Comments
 (0)