Class: PruneCloudfilesDbBackups::Pruner
- Inherits:
-
Object
- Object
- PruneCloudfilesDbBackups::Pruner
- Defined in:
- lib/prune_cloudfiles_db_backups/pruner.rb
Instance Attribute Summary collapse
-
#list_to_delete ⇒ Object
readonly
Returns the value of attribute list_to_delete.
-
#list_to_keep ⇒ Object
readonly
Returns the value of attribute list_to_keep.
Instance Method Summary collapse
- #date_sorted_delete_list ⇒ Object
- #date_sorted_keep_list ⇒ Object
- #delete!(&block) ⇒ Object
-
#initialize(opts = {}) ⇒ Pruner
constructor
A new instance of Pruner.
Constructor Details
#initialize(opts = {}) ⇒ Pruner
Returns a new instance of Pruner.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/prune_cloudfiles_db_backups/pruner.rb', line 9 def initialize(opts = {}) cf = OpenStack::Connection.create(username: opts[:user], api_key: opts[:key], auth_url: 'https://identity.api.rackspacecloud.com/v1.0', service_type:'object-store') @container = cf.container(opts[:container]) @objects = @container.objects count = @container.count.to_i while @objects.size < count do @objects.concat(@container.objects(marker: @objects.last)) end calc = RetentionCalculator.new(@objects, opts[:daily], opts[:weekly], opts[:monthly] ) @list_to_delete = calc.list_to_delete @list_to_keep = calc.list_to_keep end |
Instance Attribute Details
#list_to_delete ⇒ Object (readonly)
Returns the value of attribute list_to_delete.
7 8 9 |
# File 'lib/prune_cloudfiles_db_backups/pruner.rb', line 7 def list_to_delete @list_to_delete end |
#list_to_keep ⇒ Object (readonly)
Returns the value of attribute list_to_keep.
7 8 9 |
# File 'lib/prune_cloudfiles_db_backups/pruner.rb', line 7 def list_to_keep @list_to_keep end |
Instance Method Details
#date_sorted_delete_list ⇒ Object
50 51 52 |
# File 'lib/prune_cloudfiles_db_backups/pruner.rb', line 50 def date_sorted_delete_list @list_to_delete.sort_by {|a| a.datetime} end |
#date_sorted_keep_list ⇒ Object
46 47 48 |
# File 'lib/prune_cloudfiles_db_backups/pruner.rb', line 46 def date_sorted_keep_list @list_to_keep.sort_by {|a| a.datetime} end |
#delete!(&block) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/prune_cloudfiles_db_backups/pruner.rb', line 31 def delete!(&block) @list_to_delete.map do |backup| if block block.call(backup) end backup.objects.map do |object| begin @container.delete_object(object) rescue OpenStack::Exception::ItemNotFound # ignored end end end end |