Module: VagrantPlugins::QEMU::Cap::Disk
- Defined in:
- lib/vagrant-qemu/cap/disk.rb
Constant Summary collapse
- DEFAULT_DISK_EXT_LIST =
["qcow2", "iso"].map(&:freeze).freeze
- DEFAULT_DISK_EXT =
"qcow2".freeze
- @@logger =
Log4r::Logger.new("vagrant_qemu::cap::disk")
Class Method Summary collapse
- .cleanup_disks(machine, defined_disks, disk_meta) ⇒ nil
-
.configure_disks(machine, defined_disks) ⇒ Hash
Configured_disks - A hash of all the current configured disks.
- .default_disk_exts(machine) ⇒ Array
- .set_default_disk_ext(machine) ⇒ String
-
.setup_disk(machine, disk) ⇒ Hash
Sets up all disk configs of type ‘:disk`.
-
.setup_dvd(machine, disk) ⇒ Hash
Sets up all disk configs of type ‘:dvd`.
- .validate_disk_ext(machine, disk_ext) ⇒ Bool
Class Method Details
.cleanup_disks(machine, defined_disks, disk_meta) ⇒ nil
68 69 70 |
# File 'lib/vagrant-qemu/cap/disk.rb', line 68 def self.cleanup_disks(machine, defined_disks, ) return if .values.flatten.empty? end |
.configure_disks(machine, defined_disks) ⇒ Hash
Returns configured_disks - A hash of all the current configured disks.
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 59 60 61 |
# File 'lib/vagrant-qemu/cap/disk.rb', line 34 def self.configure_disks(machine, defined_disks) return {} if defined_disks.empty? configured_disks = {disk: [], floppy: [], dvd: []} defined_disks.each do |disk| @@logger.info("Disk: #{disk.to_yaml}") case disk.type when :disk disk_data = setup_disk(machine, disk) if !disk_data.empty? configured_disks[:disk] << disk_data machine.provider.driver.attach_disk(disk_data) end when :floppy machine.ui.info(I18n.t("vagrant_qemu.errors.floppy_unsupported")) when :dvd disk_data = setup_dvd(machine, disk) if !disk_data.empty? configured_disks[:dvd] << disk_data machine.provider.driver.attach_dvd(disk_data) end else @@logger.info("unsupported disk type: #{disk.type}") end end configured_disks end |
.default_disk_exts(machine) ⇒ Array
20 21 22 |
# File 'lib/vagrant-qemu/cap/disk.rb', line 20 def self.default_disk_exts(machine) DEFAULT_DISK_EXT_LIST end |
.set_default_disk_ext(machine) ⇒ String
14 15 16 |
# File 'lib/vagrant-qemu/cap/disk.rb', line 14 def self.set_default_disk_ext(machine) DEFAULT_DISK_EXT end |
.setup_disk(machine, disk) ⇒ Hash
Sets up all disk configs of type ‘:disk`
79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/vagrant-qemu/cap/disk.rb', line 79 def self.setup_disk(machine, disk) disk_dir = machine.provider.driver.disk_dir disk_path = disk_dir.join("#{disk.name}.#{disk.disk_ext}") args = ["create", "-f", "qcow2"] disk_provider_config = disk.provider_config[:qemu] if disk.provider_config args.push(disk_path.to_s) args.push("#{disk.size}") machine.provider.driver.execute("qemu-img", *args) {UUID: disk.id, Name: disk.name, Path: disk_path.to_s, primary: !!disk.primary} end |
.setup_dvd(machine, disk) ⇒ Hash
Sets up all disk configs of type ‘:dvd`
97 98 99 |
# File 'lib/vagrant-qemu/cap/disk.rb', line 97 def self.setup_dvd(machine, disk) {UUID: disk.id, Name: disk.name, Path: disk.file, primary: !!disk.primary} end |
.validate_disk_ext(machine, disk_ext) ⇒ Bool
27 28 29 |
# File 'lib/vagrant-qemu/cap/disk.rb', line 27 def self.validate_disk_ext(machine, disk_ext) DEFAULT_DISK_EXT_LIST.include?(disk_ext) end |