module CloudImagesRunDeck::Do
> This is the Do
Module. It interacts with DigitalOcean resources.¶ ↑
Public Instance Methods
cleanup_images()
click to toggle source
> Image Cleanup¶ ↑
# File lib/cloudimages-rundeck/do.rb, line 56 def cleanup_images # rubocop:disable AbcSize # => Ensure we have a Filter return unless Config.query_params['filter'] && Config.query_params['keep'].to_i >= 1 # => Grab the Images & Sort by ImageID # => NOTE: If ImageID's aren't reliable, try DateTime.parse(hsh['name']) for sorting cleanup = list_images.sort_by { |img| img['value'] }.reverse.drop(Config.query_params['keep'].to_i) return unless cleanup.is_a?(Array) # => Delete the Images cleanup.each do |img| do_client.images.delete(id: img['value']) end end
do_client()
click to toggle source
# File lib/cloudimages-rundeck/do.rb, line 20 def do_client # => Instantiate a new DigitalOcean Client DropletKit::Client.new(access_token: Util.filestring(Config.do_api_key)) end
images()
click to toggle source
list_images()
click to toggle source
> Custom-Tailor for Resource-JSON & Optionally Filter by Image Name¶ ↑
# File lib/cloudimages-rundeck/do.rb, line 39 def list_images # rubocop:disable AbcSize, MethodLength list = images return list.message if list.is_a?(DropletKit::Error) list = list.collect do |image| { 'name' => image['name'] || image['message'], 'value' => image['id'].to_s } end filter = Util.serialize_csv(Config.query_params['filter']) return list.select { |i| filter.any? { |f| i['name'] =~ /#{f}/i } } if filter list end