Updating GetArtifact to support GCS.

This commit is contained in:
Aleksandr Melnikov
2020-07-08 14:00:51 -07:00
parent 81c05f9954
commit 6727b00b05

View File

@@ -1096,23 +1096,52 @@ func (c *Client) GetArtifact(namespace, uid, key string) (data []byte, err error
if err != nil { if err != nil {
return return
} }
var (
stream io.ReadCloser
)
switch {
case config.ArtifactRepository.S3 != nil:
{
s3Client, err := c.GetS3Client(namespace, config.ArtifactRepository.S3) s3Client, err := c.GetS3Client(namespace, config.ArtifactRepository.S3)
if err != nil { if err != nil {
return return
} }
opts := s3.GetObjectOptions{} opts := s3.GetObjectOptions{}
stream, err := s3Client.GetObject(config.ArtifactRepository.S3.Bucket, key, opts) stream, err = s3Client.GetObject(config.ArtifactRepository.S3.Bucket, key, opts)
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"Namespace": namespace, "Namespace": namespace,
"UID": uid, "UID": uid,
"Key": key, "Key": key,
"Error": err.Error(), "Error": err.Error(),
}).Error("Metrics do not exist.") }).Error("Artifact does not exist.")
return return
} }
}
case config.ArtifactRepository.GCS != nil:
{
ctx := context.Background()
gcsClient, err := c.GetGCSClient(namespace, config.ArtifactRepository.GCS)
if err != nil {
log.WithFields(log.Fields{
"Namespace": namespace,
"UID": uid,
"Error": err.Error(),
}).Error("Artifact does not exist.")
return nil, util.NewUserError(codes.NotFound, "Artifact does not exist.")
}
stream, err = gcsClient.Bucket(config.ArtifactRepository.GCS.Bucket).Object(key).NewReader(ctx)
if err != nil {
log.WithFields(log.Fields{
"Namespace": namespace,
"UID": uid,
"Error": err.Error(),
}).Error("Artifact does not exist.")
return nil, util.NewUserError(codes.NotFound, "Artifact does not exist.")
}
}
}
data, err = ioutil.ReadAll(stream) data, err = ioutil.ReadAll(stream)
if err != nil { if err != nil {