@@ -130,9 +130,9 @@ func (p *Provisioner) Provision(bucketOptions *obAPI.BucketOptions) (*nbv1.Objec
130
130
return nil , err
131
131
}
132
132
133
- err = UpdateBucketTagging ( r . SysClient , r . OBC )
133
+ err = r . putBucketTagging ( )
134
134
if err != nil {
135
- logrus .Warnf ("failed executing UpdateBucketTagging on bucket: %v, %v" , r .BucketName , err )
135
+ logrus .Warnf ("failed executing putBucketTagging on bucket: %v, %v" , r .BucketName , err )
136
136
}
137
137
return r .OB , nil
138
138
}
@@ -243,58 +243,6 @@ func (p *Provisioner) Update(ob *nbv1.ObjectBucket) error {
243
243
return nil
244
244
}
245
245
246
- // UpdateBucketTagging is not handled by lib-bucket-provisioner and is a customized function to update bucket tagging with OBC labels
247
- func UpdateBucketTagging (sysClient * system.Client , obc * nbv1.ObjectBucketClaim ) error {
248
- if obc == nil || obc .Labels == nil {
249
- return fmt .Errorf ("OBC is not provided or doesn't contain any label" )
250
- }
251
-
252
- client := & http.Client {Transport : util .InsecureHTTPTransport }
253
- s3Status := & sysClient .NooBaa .Status .Services .ServiceS3
254
- s3Config := & aws.Config {
255
- Credentials : credentials .NewStaticCredentials (
256
- sysClient .SecretAdmin .StringData ["AWS_ACCESS_KEY_ID" ],
257
- sysClient .SecretAdmin .StringData ["AWS_SECRET_ACCESS_KEY" ],
258
- "" ,
259
- ),
260
- Region : aws .String ("us-east-1" ),
261
- Endpoint : aws .String (s3Status .InternalDNS [0 ]),
262
- S3ForcePathStyle : aws .Bool (true ),
263
- HTTPClient : client ,
264
- }
265
- s3Session , err := session .NewSession (s3Config )
266
- if err != nil {
267
- return err
268
- }
269
- s3Client := s3 .New (s3Session )
270
-
271
- // convert labels to tagging array
272
- taggingArray := []* s3.Tag {}
273
- for key , value := range obc .Labels {
274
- // no need to put tagging of these labels
275
- if ! util .Contains ([]string {"app" , "noobaa-domain" , "bucket-provisioner" }, key ) {
276
- keyPointer := key
277
- valuePointer := value
278
- taggingArray = append (taggingArray , & s3.Tag {Key : & keyPointer , Value : & valuePointer })
279
- }
280
- }
281
- logrus .Infof ("put bucket tagging on bucket: %s tagging: %+v " , obc .Spec .BucketName , taggingArray )
282
- if len (taggingArray ) == 0 {
283
- return nil
284
- }
285
- _ , err = s3Client .PutBucketTagging (& s3.PutBucketTaggingInput {
286
- Bucket : & obc .Spec .BucketName ,
287
- Tagging : & s3.Tagging {
288
- TagSet : taggingArray ,
289
- },
290
- })
291
- if err != nil {
292
- return err
293
- }
294
-
295
- return nil
296
- }
297
-
298
246
// BucketRequest is the context of handling a single bucket request
299
247
type BucketRequest struct {
300
248
Provisioner * Provisioner
@@ -727,6 +675,54 @@ func (r *BucketRequest) DeleteBucket() error {
727
675
return nil
728
676
}
729
677
678
+ // putBucketTagging calls s3 putBucketTagging on the created noobaa bucket
679
+ func (r * BucketRequest ) putBucketTagging () error {
680
+
681
+ client := & http.Client {Transport : util .InsecureHTTPTransport }
682
+ s3Status := & r .SysClient .NooBaa .Status .Services .ServiceS3
683
+ s3Config := & aws.Config {
684
+ Credentials : credentials .NewStaticCredentials (
685
+ r .SysClient .SecretAdmin .StringData ["AWS_ACCESS_KEY_ID" ],
686
+ r .SysClient .SecretAdmin .StringData ["AWS_SECRET_ACCESS_KEY" ],
687
+ "" ,
688
+ ),
689
+ Region : aws .String ("us-east-1" ),
690
+ Endpoint : aws .String (s3Status .InternalDNS [0 ]),
691
+ S3ForcePathStyle : aws .Bool (true ),
692
+ HTTPClient : client ,
693
+ }
694
+ s3Session , err := session .NewSession (s3Config )
695
+ if err != nil {
696
+ return err
697
+ }
698
+ s3Client := s3 .New (s3Session )
699
+
700
+ // convert labels to tagging array
701
+ taggingArray := []* s3.Tag {}
702
+ for key , value := range r .OBC .Labels {
703
+ // no need to put tagging of these labels
704
+ if ! util .Contains ([]string {"app" , "noobaa-domain" , "bucket-provisioner" }, key ) {
705
+ keyPointer := key
706
+ valuePointer := value
707
+ taggingArray = append (taggingArray , & s3.Tag {Key : & keyPointer , Value : & valuePointer })
708
+ }
709
+ }
710
+ logrus .Infof ("put bucket tagging on bucket: %s tagging: %+v " , r .BucketName , taggingArray )
711
+ if len (taggingArray ) == 0 {
712
+ return nil
713
+ }
714
+ _ , err = s3Client .PutBucketTagging (& s3.PutBucketTaggingInput {
715
+ Bucket : & r .BucketName ,
716
+ Tagging : & s3.Tagging {
717
+ TagSet : taggingArray ,
718
+ },
719
+ })
720
+ if err != nil {
721
+ return err
722
+ }
723
+ return nil
724
+ }
725
+
730
726
// PrepareReplicationParams validates and prepare the replication params
731
727
func PrepareReplicationParams (bucketName string , replicationPolicy string , update bool ) (* nb.BucketReplicationParams , * nb.DeleteBucketReplicationParams , error ) {
732
728
0 commit comments