# File lib/rudy/routines/handlers/disks.rb, line 291
291:     def restore(rbox, disk, index)
292: 
293:       if disk.exists?
294:         li "Disk found: #{disk.name}"
295:         disk.refresh!       
296:       end
297:       
298:       unless @@global.force
299:         raise Rudy::Disks::AlreadyAttached, disk.name if disk.volume_attached?
300:       end
301:       
302:       latest_backup = disk.backups.last
303:       
304:       if latest_backup.fstype.nil? || latest_backup.fstype.empty?
305:         latest_backup.fstype = rbox.stash.default_fstype
306:       end
307:       
308:       disk.size, disk.fstype = latest_backup.size, latest_backup.fstype
309:       
310:       li "Backup found: #{latest_backup.name}"
311:       
312:       Rudy::Routines.rescue {
313:         unless disk.volume_exists?
314:           msg = "Creating volume... "
315:           disk.create latest_backup.size, latest_backup.zone, latest_backup.snapid
316:           Rudy::Utils.waiter(2, 60, STDOUT, msg) { 
317:             disk.volume_available?
318:           }
319:           disk.raw = false
320:           disk.save :replace  
321:         end
322:       }
323:       
324:       attach rbox, disk, index unless disk.volume_attached?
325:       mount rbox, disk, index unless disk.mounted?
326:       
327:       disk.save :replace
328: 
329:     end