2016-07-19 18:53:57 +00:00
|
|
|
package server
|
|
|
|
|
|
|
|
import (
|
2016-10-20 20:13:41 +00:00
|
|
|
"github.com/Sirupsen/logrus"
|
2016-10-18 14:48:33 +00:00
|
|
|
"github.com/containers/image/copy"
|
2016-07-19 18:53:57 +00:00
|
|
|
"golang.org/x/net/context"
|
2016-09-26 23:55:12 +00:00
|
|
|
pb "k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
|
2016-07-19 18:53:57 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// PullImage pulls a image with authentication config.
|
|
|
|
func (s *Server) PullImage(ctx context.Context, req *pb.PullImageRequest) (*pb.PullImageResponse, error) {
|
2016-10-18 14:48:33 +00:00
|
|
|
logrus.Debugf("PullImageRequest: %+v", req)
|
|
|
|
// TODO(runcom?): deal with AuthConfig in req.GetAuth()
|
|
|
|
// TODO: what else do we need here? (Signatures when the story isn't just pulling from docker://)
|
|
|
|
image := ""
|
|
|
|
img := req.GetImage()
|
|
|
|
if img != nil {
|
|
|
|
image = img.GetImage()
|
2016-07-20 08:42:55 +00:00
|
|
|
}
|
2016-10-18 14:48:33 +00:00
|
|
|
options := ©.Options{}
|
|
|
|
_, err := s.images.PullImage(s.imageContext, image, options)
|
2016-07-20 08:42:55 +00:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2017-01-17 11:21:32 +00:00
|
|
|
resp := &pb.PullImageResponse{
|
|
|
|
ImageRef: &image,
|
|
|
|
}
|
2016-10-18 14:48:33 +00:00
|
|
|
logrus.Debugf("PullImageResponse: %+v", resp)
|
|
|
|
return resp, nil
|
2016-07-19 18:53:57 +00:00
|
|
|
}
|