// getUserFromImageUser gets uid or user name of the image user. // If user is numeric, it will be treated as uid; or else, it is treated as user name. func getUserFromImageUser(imageUser string) (*int64, *string) { user := dockertools.GetUserFromImageUser(imageUser) // return both nil if user is not specified in the image. if user == "" { return nil, nil } // user could be either uid or user name. Try to interpret as numeric uid. uid, err := strconv.ParseInt(user, 10, 64) if err != nil { // If user is non numeric, assume it's user name. return nil, &user } // If user is a numeric uid. return &uid, nil }
func imageInspectToRuntimeAPIImage(image *dockertypes.ImageInspect) (*runtimeApi.Image, error) { if image == nil { return nil, fmt.Errorf("unable to convert a nil pointer to a runtime API image") } size := uint64(image.VirtualSize) user := dockertools.GetUserFromImageUser(image.Config.User) return &runtimeApi.Image{ Id: &image.ID, RepoTags: image.RepoTags, RepoDigests: image.RepoDigests, Size_: &size, User: &user, }, nil }