Ver Fonte

ensure that we get versioning information for buckets

Chris Mague há 6 anos atrás
pai
commit
21311d02fd
1 ficheiros alterados com 16 adições e 16 exclusões
  1. 16 16
      lib/neoinfra/aws.rb

+ 16 - 16
lib/neoinfra/aws.rb

@@ -101,6 +101,7 @@ module NeoInfra
     end
 
     def load_buckets
+      aws = NeoInfra::Aws.new
       cw = NeoInfra::Cloudwatch.new
       @cfg.accounts.each do |account|
         base_conf = {
@@ -108,25 +109,24 @@ module NeoInfra
           aws_access_key_id: account[:key],
           aws_secret_access_key: account[:secret]
         }
-        s = Fog::Storage.new(base_conf)
-        s.directories.each do |bucket|
-          next unless Bucket.where(name: bucket.key).empty?
-          begin
+        aws.regions.each do |region|
+          region_conf = { region: region }
+          s = Fog::Storage.new(region_conf.merge(base_conf))
+          s.directories.each do |bucket|
+            next unless bucket.location == region
+            next unless Bucket.where(name: bucket.key).empty?
             vers = bucket.versioning?.to_s
             crea = bucket.creation_date.to_s
-          rescue StandardError
-            vers = 'unknown'
-            crea = 'unknown'
+            b = Bucket.new(
+              name: bucket.key,
+              versioning: vers,
+              creation: crea,
+              size: cw.get_bucket_size(account[:key], account[:secret], bucket.location, bucket.key)
+            )
+            b.save
+            BucketRegion.create(from_node: b, to_node: Region.where(region: bucket.location).first)
+            BucketAccount.create(from_node: b, to_node: AwsAccount.where(name: account[:name]).first)
           end
-          b = Bucket.new(
-            name: bucket.key,
-            versioning: vers,
-            creation: crea,
-            size: cw.get_bucket_size(account[:key], account[:secret], bucket.location, bucket.key)
-          )
-          b.save
-          BucketRegion.create(from_node: b, to_node: Region.where(region: bucket.location).first)
-          BucketAccount.create(from_node: b, to_node: AwsAccount.where(name: account[:name]).first)
         end
       end
     end