Class: Chef::Knife::DigitalOceanDropletRebuild

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

Instance Method Summary collapse

Methods included from DigitalOceanBase

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

Instance Method Details

#runObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/chef/knife/digital_ocean_droplet_rebuild.rb', line 32

def run
  $stdout.sync = true

  validate!

  unless locate_config_value(:image)
    ui.error('Image ID cannot be empty. => -i <image-id>')
    exit 1
  end

  unless locate_config_value(:id)
    ui.error('ID cannot be empty. => -I <id>')
    exit 1
  end

  result = client.droplet_actions.rebuild(
    droplet_id: locate_config_value(:id),
    image: locate_config_value(:image)
  )

  unless result.class == DropletKit::Action
    ui.error JSON.parse(result)['message']
    exit 1
  end

  wait_for_status(result, status: 'active')
end