class Chef::Knife::ProfitbricksVolumeDetach

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/profitbricks_volume_detach.rb, line 21
def run
  connection
  validate_required_params(%i(datacenter_id server_id), Chef::Config[:knife])
  @name_args.each do |volume_id|
    begin
      volume = ProfitBricks::Volume.get(Chef::Config[:knife][:datacenter_id], nil, volume_id)
    rescue Excon::Errors::NotFound
      ui.error("Volume ID #{volume_id} not found. Skipping.")
      next
    end

    msg_pair('ID', volume.id)
    msg_pair('Name', volume.properties['name'])
    msg_pair('Size', volume.properties['size'])
    msg_pair('Bus', volume.properties['bus'])
    msg_pair('Device Number', volume.properties['deviceNumber'])

    confirm('Do you really want to detach this volume')

    volume.detach(Chef::Config[:knife][:server_id])
    ui.msg("Detaching volume #{volume_id} from server")
  end
end