Fix transfer service dependencies:
- Fill OSVersion field of ocispec.Platform for windows OS in transfer service plugin init() - Do not return error from transfer service ReceiveStream if stream.Recv() returned context.Canceled error Signed-off-by: Kirtana Ashok <kiashok@microsoft.com>
This commit is contained in:
		| @@ -164,7 +164,7 @@ func ReceiveStream(ctx context.Context, stream streaming.Stream) io.Reader { | ||||
| 			} | ||||
| 			anyType, err := stream.Recv() | ||||
| 			if err != nil { | ||||
| 				if errors.Is(err, io.EOF) { | ||||
| 				if errors.Is(err, io.EOF) || errors.Is(err, context.Canceled) { | ||||
| 					err = nil | ||||
| 				} else { | ||||
| 					err = fmt.Errorf("received failed: %w", err) | ||||
|   | ||||
| @@ -213,6 +213,10 @@ func Parse(specifier string) (specs.Platform, error) { | ||||
| 				p.Variant = cpuVariant() | ||||
| 			} | ||||
|  | ||||
| 			if p.OS == "windows" { | ||||
| 				p.OSVersion = GetWindowsOsVersion() | ||||
| 			} | ||||
|  | ||||
| 			return p, nil | ||||
| 		} | ||||
|  | ||||
| @@ -235,6 +239,10 @@ func Parse(specifier string) (specs.Platform, error) { | ||||
| 			p.Variant = "" | ||||
| 		} | ||||
|  | ||||
| 		if p.OS == "windows" { | ||||
| 			p.OSVersion = GetWindowsOsVersion() | ||||
| 		} | ||||
|  | ||||
| 		return p, nil | ||||
| 	case 3: | ||||
| 		// we have a fully specified variant, this is rare | ||||
| @@ -244,6 +252,10 @@ func Parse(specifier string) (specs.Platform, error) { | ||||
| 			p.Variant = "v8" | ||||
| 		} | ||||
|  | ||||
| 		if p.OS == "windows" { | ||||
| 			p.OSVersion = GetWindowsOsVersion() | ||||
| 		} | ||||
|  | ||||
| 		return p, nil | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -28,3 +28,7 @@ func newDefaultMatcher(platform specs.Platform) Matcher { | ||||
| 		Platform: Normalize(platform), | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func GetWindowsOsVersion() string { | ||||
| 	return "" | ||||
| } | ||||
|   | ||||
| @@ -17,7 +17,10 @@ | ||||
| package platforms | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
|  | ||||
| 	specs "github.com/opencontainers/image-spec/specs-go/v1" | ||||
| 	"golang.org/x/sys/windows" | ||||
| ) | ||||
|  | ||||
| // NewMatcher returns a Windows matcher that will match on osVersionPrefix if | ||||
| @@ -32,3 +35,8 @@ func newDefaultMatcher(platform specs.Platform) Matcher { | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func GetWindowsOsVersion() string { | ||||
| 	major, minor, build := windows.RtlGetNtVersionNumbers() | ||||
| 	return fmt.Sprintf("%d.%d.%d", major, minor, build) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kirtana Ashok
					Kirtana Ashok