Skip to content

Commit

Permalink
Log marathon api requests
Browse files Browse the repository at this point in the history
  • Loading branch information
ckaznocha committed Oct 11, 2016
1 parent 64be0d0 commit bd86407
Show file tree
Hide file tree
Showing 187 changed files with 108,364 additions and 5 deletions.
5 changes: 4 additions & 1 deletion cmd/marathon-resource/main.go
Expand Up @@ -26,6 +26,9 @@ func main() {
encoder = json.NewEncoder(os.Stdout)
)

logger.Out = os.Stderr
logger.Level = logrus.InfoLevel

if len(os.Args) < 2 {
logger.Fatal("You must one or more arguments")
}
Expand All @@ -39,7 +42,7 @@ func main() {
logger.WithError(err).Fatalf("Malformed URI %s", input.Source.URI)
}

m := marathon.NewMarathoner(&http.Client{}, uri, input.Source.BasicAuth)
m := marathon.NewMarathoner(&http.Client{}, uri, input.Source.BasicAuth, logger)

switch os.Args[1] {
case check:
Expand Down
16 changes: 14 additions & 2 deletions cmd/marathon-resource/marathon/marathon.go
Expand Up @@ -8,6 +8,7 @@ import (
"net/http"
"net/url"

"github.com/Sirupsen/logrus"
"github.com/ckaznocha/marathon-resource/cmd/marathon-resource/dates"
gomarathon "github.com/gambol99/go-marathon"
)
Expand Down Expand Up @@ -38,6 +39,7 @@ type (
client doer
url *url.URL
auth *AuthCreds
logger logrus.FieldLogger
}

//AuthCreds will be used for HTTP basic auth
Expand All @@ -48,8 +50,12 @@ type (
)

//NewMarathoner returns a new marathoner
func NewMarathoner(client doer, uri *url.URL, auth *AuthCreds) Marathoner {
return &marathon{client: client, url: uri}
func NewMarathoner(
client doer,
uri *url.URL,
auth *AuthCreds,
logger logrus.FieldLogger) Marathoner {
return &marathon{client: client, url: uri, logger: logger}
}

func (m *marathon) handleReq(
Expand All @@ -69,6 +75,12 @@ func (m *marathon) handleReq(
if m.auth != nil && len(m.auth.UserName) > 0 {
req.SetBasicAuth(m.auth.UserName, m.auth.Password)
}
m.logger.WithFields(
logrus.Fields{
"Method": req.Method,
"URL": req.URL.String(),
},
).Info("Sending HTTP API request to Marathon")
res, err := m.client.Do(req)
if err != nil {
return err
Expand Down
20 changes: 18 additions & 2 deletions cmd/marathon-resource/marathon/marathon_test.go
Expand Up @@ -12,13 +12,16 @@ import (
"strings"
"testing"

"github.com/Sirupsen/logrus"
"github.com/Sirupsen/logrus/hooks/test"
"github.com/ckaznocha/marathon-resource/cmd/marathon-resource/mocks"
gomarathon "github.com/gambol99/go-marathon"
"github.com/golang/mock/gomock"
)

func Test_marathon_LatestVersions(t *testing.T) {
var (
logger, _ = test.NewNullLogger()
ctrl = gomock.NewController(t)
mockClient = mocks.NewMockdoer(ctrl)
u, _ = url.Parse("http://foo.bar/")
Expand Down Expand Up @@ -60,6 +63,7 @@ func Test_marathon_LatestVersions(t *testing.T) {
m := &marathon{
client: tt.fields.client,
url: tt.fields.url,
logger: logger,
}
got, err := m.LatestVersions(tt.args.appID, tt.args.version)
if (err != nil) != tt.wantErr {
Expand All @@ -74,6 +78,7 @@ func Test_marathon_LatestVersions(t *testing.T) {

func Test_marathon_handleReq(t *testing.T) {
var (
logger, _ = test.NewNullLogger()
ctrl = gomock.NewController(t)
mockClient = mocks.NewMockdoer(ctrl)
u, _ = url.Parse("http://foo.bar/")
Expand Down Expand Up @@ -200,6 +205,7 @@ func Test_marathon_handleReq(t *testing.T) {
client: tt.fields.client,
url: tt.fields.url,
auth: tt.fields.auth,
logger: logger,
}
if err := m.handleReq(tt.args.method, tt.args.path, tt.args.payload, tt.args.wantCode, tt.args.resObj); (err != nil) != tt.wantErr {
t.Errorf("%q. marathon.handleReq(%v, %v, %v, %v, %v) error = %v, wantErr %v", tt.name, tt.args.method, tt.args.path, tt.args.payload, tt.args.wantCode, tt.args.resObj, err, tt.wantErr)
Expand All @@ -209,6 +215,7 @@ func Test_marathon_handleReq(t *testing.T) {

func Test_marathon_GetApp(t *testing.T) {
var (
logger, _ = test.NewNullLogger()
ctrl = gomock.NewController(t)
mockClient = mocks.NewMockdoer(ctrl)
u, _ = url.Parse("http://foo.bar/")
Expand Down Expand Up @@ -243,6 +250,7 @@ func Test_marathon_GetApp(t *testing.T) {
m := &marathon{
client: tt.fields.client,
url: tt.fields.url,
logger: logger,
}
got, err := m.GetApp(tt.args.appID, tt.args.version)
if (err != nil) != tt.wantErr {
Expand All @@ -257,6 +265,7 @@ func Test_marathon_GetApp(t *testing.T) {

func Test_marathon_UpdateApp(t *testing.T) {
var (
logger, _ = test.NewNullLogger()
ctrl = gomock.NewController(t)
mockClient = mocks.NewMockdoer(ctrl)
u, _ = url.Parse("http://foo.bar/")
Expand Down Expand Up @@ -290,6 +299,7 @@ func Test_marathon_UpdateApp(t *testing.T) {
m := &marathon{
client: tt.fields.client,
url: tt.fields.url,
logger: logger,
}
got, err := m.UpdateApp(tt.args.inApp)
if (err != nil) != tt.wantErr {
Expand All @@ -304,6 +314,7 @@ func Test_marathon_UpdateApp(t *testing.T) {

func Test_marathon_CheckDeployment(t *testing.T) {
var (
logger, _ = test.NewNullLogger()
ctrl = gomock.NewController(t)
mockClient = mocks.NewMockdoer(ctrl)
u, _ = url.Parse("http://foo.bar/")
Expand Down Expand Up @@ -338,6 +349,7 @@ func Test_marathon_CheckDeployment(t *testing.T) {
m := &marathon{
client: tt.fields.client,
url: tt.fields.url,
logger: logger,
}
got, err := m.CheckDeployment(tt.args.deploymentID)
if (err != nil) != tt.wantErr {
Expand All @@ -352,6 +364,7 @@ func Test_marathon_CheckDeployment(t *testing.T) {

func Test_marathon_DeleteDeployment(t *testing.T) {
var (
logger, _ = test.NewNullLogger()
ctrl = gomock.NewController(t)
mockClient = mocks.NewMockdoer(ctrl)
u, _ = url.Parse("http://foo.bar/")
Expand Down Expand Up @@ -391,6 +404,7 @@ func Test_marathon_DeleteDeployment(t *testing.T) {
m := &marathon{
client: tt.fields.client,
url: tt.fields.url,
logger: logger,
}
if err := m.DeleteDeployment(tt.args.deploymentID); (err != nil) != tt.wantErr {
t.Errorf("%q. marathon.DeleteDeployment(%v) error = %v, wantErr %v", tt.name, tt.args.deploymentID, err, tt.wantErr)
Expand All @@ -399,19 +413,21 @@ func Test_marathon_DeleteDeployment(t *testing.T) {
}

func Test_newMarathoner(t *testing.T) {
var logger, _ = test.NewNullLogger()
type args struct {
client doer
uri *url.URL
logger logrus.FieldLogger
}
tests := []struct {
name string
args args
want Marathoner
}{
{"Works", args{http.DefaultClient, &url.URL{}}, &marathon{http.DefaultClient, &url.URL{}, nil}},
{"Works", args{http.DefaultClient, &url.URL{}, logger}, &marathon{http.DefaultClient, &url.URL{}, nil, logger}},
}
for _, tt := range tests {
if got := NewMarathoner(tt.args.client, tt.args.uri, nil); !reflect.DeepEqual(got, tt.want) {
if got := NewMarathoner(tt.args.client, tt.args.uri, nil, logger); !reflect.DeepEqual(got, tt.want) {
t.Errorf("%q. NewMarathoner() = %v, want %v", tt.name, got, tt.want)
}
}
Expand Down
67 changes: 67 additions & 0 deletions vendor/github.com/Sirupsen/logrus/hooks/test/test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 27 additions & 0 deletions vendor/golang.org/x/sys/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions vendor/golang.org/x/sys/PATENTS

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions vendor/golang.org/x/sys/unix/asm.s

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions vendor/golang.org/x/sys/unix/asm_darwin_386.s

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 29 additions & 0 deletions vendor/golang.org/x/sys/unix/asm_darwin_amd64.s

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit bd86407

Please sign in to comment.