Module: HashiCorp::VagrantVMwareDesktop::Cap::Disk
- Defined in:
- lib/vagrant-vmware-desktop/cap/disk.rb
Constant Summary collapse
- DEFAULT_DISK_EXT =
"vmdk".freeze
- BUS_TYPES =
["sata", "ide", "scsi"].map(&:freeze).freeze
- DEFAULT_BUS =
"scsi".freeze
- DEFAULT_DVD_BUS =
"ide".freeze
- DEFAULT_DVD_DEVICE_TYPE =
"cdrom-image"
- DISK_ADAPTER_TYPES =
Adapter types (from vmware-vdiskmanager -h)
["ide", "buslogic", "lsilogic"].map(&:freeze).freeze
- DEFAULT_ADAPTER_TYPE =
"lsilogic".freeze
- DEFAULT_DISK_TYPE =
Disk types (from vmware-vdiskmanager -h) 0 : single growable virtual disk 1 : growable virtual disk split into multiple files 2 : preallocated virtual disk 3 : preallocated virtual disk split into multiple files 4 : preallocated ESX-type virtual disk 5 : compressed disk optimized for streaming 6 : thin provisioned virtual disk - ESX 3.x and above
0.freeze
- PRIMARY_DISK_SLOT =
"scsi0:0".freeze
- @@logger =
Log4r::Logger.new("hashicorp::provider::vmware::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) ⇒ Object
- .set_default_disk_ext(machine) ⇒ Object
Class Method Details
.cleanup_disks(machine, defined_disks, disk_meta) ⇒ nil
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/vagrant-vmware-desktop/cap/disk.rb', line 78 def self.cleanup_disks(machine, defined_disks, ) return if .values.flatten.empty? ["disk", "dvd"].each do |k| if ![k].is_a?(Array) raise TypeError, "Expected `Array` but received `#{[k].class}`" end end # TODO: floppy ["disk"].each do |d| # If disk is defined or the primary disk, don't remove if d["primary"] @@logger.warn("Vagrant will not clean up the primary disk! Primary disk no longer tracked in Vagrantfile") next end next if defined_disks.any? { |dsk| dsk.name == d["Name"]} machine.provider.driver.remove_disk(File.basename(d["Path"])) end ["dvd"].each do |d| # If disk is defined, don't remove next if defined_disks.any? { |dsk| dsk.name == d["Name"]} machine.provider.driver.remove_disk_from_vmx(d["Path"], ["deviceType"]) end nil end |
.configure_disks(machine, defined_disks) ⇒ Hash
Returns configured_disks - A hash of all the current configured disks.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/vagrant-vmware-desktop/cap/disk.rb', line 44 def self.configure_disks(machine, defined_disks) return {} if defined_disks.empty? attached_disks = machine.provider.driver.get_disks(BUS_TYPES) configured_disks = {disk: [], floppy: [], dvd: []} defined_disks.each do |disk| case disk.type when :disk disk_data = setup_disk(machine, disk, attached_disks) if !disk_data.empty? configured_disks[:disk] << disk_data end when :floppy # TODO: Write me machine.ui.info(I18n.t("hashicorp.vagrant_vmware_desktop.cap.disks.floppy_not_supported", name: disk.name)) when :dvd disk_data = setup_dvd(machine, disk, attached_disks) if !disk_data.empty? configured_disks[:dvd] << disk_data end else @@logger.info("Invalid disk type #{disk.type}, carrying on.") end end configured_disks end |
.default_disk_exts(machine) ⇒ Object
37 38 39 |
# File 'lib/vagrant-vmware-desktop/cap/disk.rb', line 37 def self.default_disk_exts(machine) [DEFAULT_DISK_EXT].freeze end |
.set_default_disk_ext(machine) ⇒ Object
33 34 35 |
# File 'lib/vagrant-vmware-desktop/cap/disk.rb', line 33 def self.set_default_disk_ext(machine) DEFAULT_DISK_EXT end |