Module: Fog::Proxmox::EfidiskHelper
- Defined in:
- lib/fog/proxmox/helpers/efidisk_helper.rb
Overview
module EfidiskHelper mixins
Class Method Summary collapse
- .extract(efidisk_key) ⇒ Object
- .extract_key(name, efidisk) ⇒ Object
- .extract_storage(key) ⇒ Object
- .flatten(efidisk) ⇒ Object
Class Method Details
.extract(efidisk_key) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/fog/proxmox/helpers/efidisk_helper.rb', line 58 def self.extract(efidisk_key) efidisk = efidisk_key.dup # convert "-" to "_" in 'local:110/vm-110-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K' efidisk&.gsub!('pre-enrolled-keys', 'pre_enrolled_keys') names = %i[efitype pre_enrolled_keys size] efidisk_hash = { id: 0, volid: efidisk.split(',')[0], storage: extract_storage(efidisk) } names.each do |name| efidisk_hash.store(name.to_sym, extract_key(name, efidisk)) end efidisk_hash end |
.extract_key(name, efidisk) ⇒ Object
47 48 49 50 |
# File 'lib/fog/proxmox/helpers/efidisk_helper.rb', line 47 def self.extract_key(name, efidisk) matches = efidisk.match(%r{,{0,1}#{name}={1}(?<name_value>[\w/.:]+)}) matches ? matches[:name_value] : matches end |
.extract_storage(key) ⇒ Object
52 53 54 55 56 |
# File 'lib/fog/proxmox/helpers/efidisk_helper.rb', line 52 def self.extract_storage(key) values_a = key.scan(%r{^(([\w-]+):{0,1}([\w/.-]+))}) values = values_a.first if values_a values[1] end |
.flatten(efidisk) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/fog/proxmox/helpers/efidisk_helper.rb', line 24 def self.flatten(efidisk) return '' if efidisk.nil? volume = efidisk[:volid] = [] if efidisk.key?(:efitype) .push("efitype=#{efidisk[:efitype]}") else .push('efitype=4m') # default efitype end .push("size=#{efidisk[:size]}") if efidisk.key?(:size) if efidisk.key?(:pre_enrolled_keys) .push("pre-enrolled-keys=#{efidisk[:pre_enrolled_keys]}") else .push('pre-enrolled-keys=0') # Use 0=disabled if not given end { "efidisk#{efidisk[:id]}": "#{volume},#{.join(',')}" } end |