File: metadata.go

package info (click to toggle)
docker.io 18.09.5+dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 65,324 kB
  • sloc: sh: 9,757; makefile: 833; ansic: 239; python: 162; asm: 10
file content (31 lines) | stat: -rw-r--r-- 540 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package buildid

import (
	"context"
	"strings"

	"google.golang.org/grpc/metadata"
)

var metadataKey = "buildkit-controlapi-buildid"

func AppendToOutgoingContext(ctx context.Context, id string) context.Context {
	if id != "" {
		return metadata.AppendToOutgoingContext(ctx, metadataKey, id)
	}
	return ctx
}

func FromIncomingContext(ctx context.Context) string {
	md, ok := metadata.FromIncomingContext(ctx)
	if !ok {
		return ""
	}

	k := strings.ToLower(metadataKey)
	if ids := md[k]; len(ids) == 1 {
		return ids[0]
	}

	return ""
}