Skip to content

Commit

Permalink
BuildLogFormatUpstream function was always using the default log-for…
Browse files Browse the repository at this point in the history
…mat-upstream,
  • Loading branch information
gianrubio committed Mar 3, 2017
1 parent 0b48d3b commit 1e5081b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 6 deletions.
11 changes: 9 additions & 2 deletions controllers/nginx/pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ func NewDefault() Configuration {
KeepAlive: 75,
LargeClientHeaderBuffers: "4 8k",
LogFormatStream: logFormatStream,
LogFormatUpstream: BuildLogFormatUpstream(false),
LogFormatUpstream: BuildLogFormatUpstream(false, ""),
MaxWorkerConnections: 16384,
MapHashBucketSize: 64,
ProxyRealIPCIDR: defIPCIDR,
Expand Down Expand Up @@ -307,7 +307,14 @@ func NewDefault() Configuration {
}

// BuildLogFormatUpstream format the log_format upstream based on proxy_protocol
func BuildLogFormatUpstream(useProxyProtocol bool) string {
func BuildLogFormatUpstream(useProxyProtocol bool, curLogFormatUpstream string) string {

// test if log_format comes from configmap
if curLogFormatUpstream != "" &&
curLogFormatUpstream != fmt.Sprintf(logFormatUpstream, "$proxy_protocol_addr") &&
curLogFormatUpstream != fmt.Sprintf(logFormatUpstream, "$remote_addr") {
return curLogFormatUpstream
}

if useProxyProtocol {
return fmt.Sprintf(logFormatUpstream, "$proxy_protocol_addr")
Expand Down
9 changes: 6 additions & 3 deletions controllers/nginx/pkg/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,18 @@ func TestBuildLogFormatUpstream(t *testing.T) {

testCases := []struct {
useProxyProtocol bool // use proxy protocol
curLogFormat string
expected string
}{
{true, fmt.Sprintf(logFormatUpstream, "$proxy_protocol_addr")},
{false, fmt.Sprintf(logFormatUpstream, "$remote_addr")},
{true, "", fmt.Sprintf(logFormatUpstream, "$proxy_protocol_addr")},
{false, "", fmt.Sprintf(logFormatUpstream, "$remote_addr")},
{true, "my-log-format", "my-log-format"},
{false, "john-log-format", "john-log-format"},
}

for _, testCase := range testCases {

result := BuildLogFormatUpstream(testCase.useProxyProtocol)
result := BuildLogFormatUpstream(testCase.useProxyProtocol, testCase.curLogFormat)

if result != testCase.expected {
t.Errorf(" expected %v but return %v", testCase.expected, result)
Expand Down
2 changes: 1 addition & 1 deletion controllers/nginx/pkg/template/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ func buildLogFormatUpstream(input interface{}) string {
glog.Errorf("error an ingress.buildLogFormatUpstream type but %T was returned", input)
}

return nginxconfig.BuildLogFormatUpstream(config.UseProxyProtocol)
return nginxconfig.BuildLogFormatUpstream(config.UseProxyProtocol, config.LogFormatUpstream)

}

Expand Down

0 comments on commit 1e5081b

Please sign in to comment.