service/logs: move to cli/internal/logdetails

This package is only used by cli/command/service, and has no
external consumers.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2025-03-08 22:28:33 +01:00
parent 1bd58b0936
commit 6bd6b3e8ac
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
3 changed files with 9 additions and 10 deletions

View File

@ -13,7 +13,7 @@ import (
"github.com/docker/cli/cli/command"
"github.com/docker/cli/cli/command/completion"
"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/container"
"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))
}
// parse the details out
details, err := logs.ParseLogDetails(string(parts[detailsIndex]))
details, err := logdetails.Parse(string(parts[detailsIndex]))
if err != nil {
return 0, err
}

View File

@ -1,6 +1,5 @@
/*Package logs contains tools for parsing docker log lines.
*/
package logs
// Package logdetails contains tools for parsing docker log lines.
package logdetails
import (
"errors"
@ -8,14 +7,14 @@ import (
"strings"
)
// 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
// 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.
//
// The details string encoding is implemented in
// 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, ",")
detailsMap := make(map[string]string, len(pairs))
for _, pair := range pairs {

View File

@ -1,4 +1,4 @@
package logs
package logdetails
import (
"testing"
@ -7,7 +7,7 @@ import (
is "gotest.tools/v3/assert/cmp"
)
func TestParseLogDetails(t *testing.T) {
func TestParse(t *testing.T) {
testCases := []struct {
line string
expected map[string]string
@ -48,7 +48,7 @@ func TestParseLogDetails(t *testing.T) {
}
for _, tc := range testCases {
t.Run(tc.line, func(t *testing.T) {
actual, err := ParseLogDetails(tc.line)
actual, err := Parse(tc.line)
if tc.expectedErr != "" {
assert.Check(t, is.Error(err, tc.expectedErr))
} else {