Merge pull request #5910 from thaJeztah/move_service_logs
service/logs: move to cli/internal/logdetails
This commit is contained in:
commit
60ae1bb1fc
@ -13,7 +13,7 @@ import (
|
|||||||
"github.com/docker/cli/cli/command"
|
"github.com/docker/cli/cli/command"
|
||||||
"github.com/docker/cli/cli/command/completion"
|
"github.com/docker/cli/cli/command/completion"
|
||||||
"github.com/docker/cli/cli/command/idresolver"
|
"github.com/docker/cli/cli/command/idresolver"
|
||||||
"github.com/docker/cli/service/logs"
|
"github.com/docker/cli/cli/internal/logdetails"
|
||||||
"github.com/docker/docker/api/types"
|
"github.com/docker/docker/api/types"
|
||||||
"github.com/docker/docker/api/types/container"
|
"github.com/docker/docker/api/types/container"
|
||||||
"github.com/docker/docker/api/types/swarm"
|
"github.com/docker/docker/api/types/swarm"
|
||||||
@ -267,7 +267,7 @@ func (lw *logWriter) Write(buf []byte) (int, error) {
|
|||||||
return 0, errors.Errorf("invalid context in log message: %v", string(buf))
|
return 0, errors.Errorf("invalid context in log message: %v", string(buf))
|
||||||
}
|
}
|
||||||
// parse the details out
|
// parse the details out
|
||||||
details, err := logs.ParseLogDetails(string(parts[detailsIndex]))
|
details, err := logdetails.Parse(string(parts[detailsIndex]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
@ -1,22 +1,20 @@
|
|||||||
/*Package logs contains tools for parsing docker log lines.
|
// Package logdetails contains tools for parsing docker log lines.
|
||||||
*/
|
package logdetails
|
||||||
package logs
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ParseLogDetails parses a string of key value pairs in the form
|
// Parse parses a string of key value pairs in the form
|
||||||
// "k=v,l=w", where the keys and values are url query escaped, and each pair
|
// "k=v,l=w", where the keys and values are url query escaped, and each pair
|
||||||
// is separated by a comma. Returns a map of the key value pairs on success,
|
// is separated by a comma. Returns a map of the key value pairs on success,
|
||||||
// and an error if the details string is not in a valid format.
|
// and an error if the details string is not in a valid format.
|
||||||
//
|
//
|
||||||
// The details string encoding is implemented in
|
// The details string encoding is implemented in
|
||||||
// github.com/moby/moby/api/server/httputils/write_log_stream.go
|
// github.com/moby/moby/api/server/httputils/write_log_stream.go
|
||||||
func ParseLogDetails(details string) (map[string]string, error) {
|
func Parse(details string) (map[string]string, error) {
|
||||||
pairs := strings.Split(details, ",")
|
pairs := strings.Split(details, ",")
|
||||||
detailsMap := make(map[string]string, len(pairs))
|
detailsMap := make(map[string]string, len(pairs))
|
||||||
for _, pair := range pairs {
|
for _, pair := range pairs {
|
@ -1,4 +1,4 @@
|
|||||||
package logs
|
package logdetails
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
@ -7,7 +7,7 @@ import (
|
|||||||
is "gotest.tools/v3/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestParseLogDetails(t *testing.T) {
|
func TestParse(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
line string
|
line string
|
||||||
expected map[string]string
|
expected map[string]string
|
||||||
@ -48,9 +48,9 @@ func TestParseLogDetails(t *testing.T) {
|
|||||||
}
|
}
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.line, func(t *testing.T) {
|
t.Run(tc.line, func(t *testing.T) {
|
||||||
actual, err := ParseLogDetails(tc.line)
|
actual, err := Parse(tc.line)
|
||||||
if tc.expectedErr != "" {
|
if tc.expectedErr != "" {
|
||||||
assert.Check(t, is.ErrorContains(err, tc.expectedErr))
|
assert.Check(t, is.Error(err, tc.expectedErr))
|
||||||
} else {
|
} else {
|
||||||
assert.Check(t, err)
|
assert.Check(t, err)
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user