Class: Chef::Knife::DigitalOceanImageList

Inherits:
Chef::Knife
  • Object
show all
Includes:
DigitalOceanBase
Defined in:
lib/chef/knife/digital_ocean_image_list.rb

Instance Method Summary collapse

Methods included from DigitalOceanBase

#client, included, load_deps, #locate_config_value, #validate!, #wait_for_status

Instance Method Details

#runObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/chef/knife/digital_ocean_image_list.rb', line 27

def run
  $stdout.sync = true

  validate!

  image_list = [
    ui.color('ID',           :bold),
    ui.color('Distribution', :bold),
    ui.color('Name',         :bold),
    ui.color('Slug',         :bold)
  ]

  images = client.images.all

  if config[:public_images]
    found_images = images.find_all { |i| i.public == true }
  else
    found_images = images.find_all { |i| i.public == false }
  end

  found_images.sort_by(&:distribution).each do |image|
    image_list << image.id.to_s
    image_list << image.distribution.to_s
    image_list << image.name.to_s
    image_list << image.slug.to_s
  end

  puts ui.list(image_list, :uneven_columns_across, 4)
end