in container_images/gce-img-resource/in/in_command.go [45:92]
func Run(destinationDir string, request Request) (Response, error) {
err := os.MkdirAll(destinationDir, 0755)
if err != nil {
return Response{}, err
}
ctx := context.Background()
computeService, err := compute.NewService(ctx)
if err != nil {
return Response{}, err
}
image, err := computeService.Images.Get(request.Source.Project, request.Version.Name).Do()
if err != nil {
return Response{}, err
}
creationTime, err := time.Parse(time.RFC3339, image.CreationTimestamp)
if err != nil {
return Response{}, err
}
if err := writeOutput(destinationDir, "creation_timestamp", fmt.Sprintf("%d", creationTime.Unix())); err != nil {
return Response{}, err
}
if err := writeOutput(destinationDir, "name", request.Version.Name); err != nil {
return Response{}, err
}
if err := writeOutput(destinationDir, "url", image.SelfLink); err != nil {
return Response{}, err
}
if err := writeOutput(destinationDir, "version", request.Version.Version); err != nil {
return Response{}, err
}
return Response{
Version: gceimgresource.Version{
Name: request.Version.Name,
Version: request.Version.Version,
},
Metadata: []Metadata{
{Name: "creation_timestamp", Value: image.CreationTimestamp},
{Name: "description", Value: image.Description},
{Name: "image_id", Value: fmt.Sprintf("%d", image.Id)},
{Name: "status", Value: image.Status},
{Name: "url", Value: image.SelfLink},
},
}, nil
}