mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Merge pull request #14334 from hashicorp/f-govcloud-s3-tags
Don't error out getting s3 object tags in govcloud
This commit is contained in:
commit
f1a8b2888b
@ -127,6 +127,8 @@ func resourceAwsS3BucketObject() *schema.Resource {
|
|||||||
func resourceAwsS3BucketObjectPut(d *schema.ResourceData, meta interface{}) error {
|
func resourceAwsS3BucketObjectPut(d *schema.ResourceData, meta interface{}) error {
|
||||||
s3conn := meta.(*AWSClient).s3conn
|
s3conn := meta.(*AWSClient).s3conn
|
||||||
|
|
||||||
|
restricted := meta.(*AWSClient).IsGovCloud() || meta.(*AWSClient).IsChinaCloud()
|
||||||
|
|
||||||
var body io.ReadSeeker
|
var body io.ReadSeeker
|
||||||
|
|
||||||
if v, ok := d.GetOk("source"); ok {
|
if v, ok := d.GetOk("source"); ok {
|
||||||
@ -192,6 +194,10 @@ func resourceAwsS3BucketObjectPut(d *schema.ResourceData, meta interface{}) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := d.GetOk("tags"); ok {
|
if v, ok := d.GetOk("tags"); ok {
|
||||||
|
if restricted {
|
||||||
|
return fmt.Errorf("This region does not allow for tags on S3 objects")
|
||||||
|
}
|
||||||
|
|
||||||
// The tag-set must be encoded as URL Query parameters.
|
// The tag-set must be encoded as URL Query parameters.
|
||||||
values := url.Values{}
|
values := url.Values{}
|
||||||
for k, v := range v.(map[string]interface{}) {
|
for k, v := range v.(map[string]interface{}) {
|
||||||
@ -216,6 +222,8 @@ func resourceAwsS3BucketObjectPut(d *schema.ResourceData, meta interface{}) erro
|
|||||||
func resourceAwsS3BucketObjectRead(d *schema.ResourceData, meta interface{}) error {
|
func resourceAwsS3BucketObjectRead(d *schema.ResourceData, meta interface{}) error {
|
||||||
s3conn := meta.(*AWSClient).s3conn
|
s3conn := meta.(*AWSClient).s3conn
|
||||||
|
|
||||||
|
restricted := meta.(*AWSClient).IsGovCloud() || meta.(*AWSClient).IsChinaCloud()
|
||||||
|
|
||||||
bucket := d.Get("bucket").(string)
|
bucket := d.Get("bucket").(string)
|
||||||
key := d.Get("key").(string)
|
key := d.Get("key").(string)
|
||||||
|
|
||||||
@ -269,15 +277,17 @@ func resourceAwsS3BucketObjectRead(d *schema.ResourceData, meta interface{}) err
|
|||||||
d.Set("storage_class", resp.StorageClass)
|
d.Set("storage_class", resp.StorageClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
tagResp, err := s3conn.GetObjectTagging(
|
if !restricted {
|
||||||
&s3.GetObjectTaggingInput{
|
tagResp, err := s3conn.GetObjectTagging(
|
||||||
Bucket: aws.String(bucket),
|
&s3.GetObjectTaggingInput{
|
||||||
Key: aws.String(key),
|
Bucket: aws.String(bucket),
|
||||||
})
|
Key: aws.String(key),
|
||||||
if err != nil {
|
})
|
||||||
return fmt.Errorf("Failed to get object tags (bucket: %s, key: %s): %s", bucket, key, err)
|
if err != nil {
|
||||||
|
return fmt.Errorf("Failed to get object tags (bucket: %s, key: %s): %s", bucket, key, err)
|
||||||
|
}
|
||||||
|
d.Set("tags", tagsToMapS3(tagResp.TagSet))
|
||||||
}
|
}
|
||||||
d.Set("tags", tagsToMapS3(tagResp.TagSet))
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user