Module: FogExtensions::Hyperv::Server

Extended by:
ActiveSupport::Concern
Includes:
ActionView::Helpers::NumberHelper
Defined in:
app/models/concerns/fog_extensions/hyperv/server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#startObject

Returns the value of attribute start.



7
8
9
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 7

def start
  @start
end

Instance Method Details

#clean_mac_addressesObject



21
22
23
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 21

def clean_mac_addresses
  network_adapters.map { |n| mac(n.mac_address) }
end

#folder_nameObject



13
14
15
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 13

def folder_name
  name.gsub(/[^0-9A-Za-z.\-]/, '_')
end

#interfacesObject



25
26
27
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 25

def interfaces
  network_adapters
end

#interfaces_attributes=(_attributes) ⇒ Object



37
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 37

def interfaces_attributes=(_attributes); end

#mac(m = mac_addresses.first) ⇒ Object



17
18
19
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 17

def mac(m = mac_addresses.first)
  "#{m[0, 2]}:#{m[2, 2]}:#{m[4, 2]}:#{m[6, 2]}:#{m[8, 2]}:#{m[10, 2]}"
end

#persisted?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 33

def persisted?
  identity.present?
end

#resetObject



48
49
50
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 48

def reset
  restart(force: true)
end

#secure_boot_enabledObject



43
44
45
46
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 43

def secure_boot_enabled
  return false if generation == 1
  firmware.secure_boot == :On
end

#secure_boot_enabled=(_) ⇒ Object



41
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 41

def secure_boot_enabled=(_); end

#select_nic(fog_nics, nic) ⇒ Object



67
68
69
70
71
72
73
74
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 67

def select_nic(fog_nics, nic)
  nic_attrs = nic.compute_attributes
  logger.debug "select_nic(#{fog_nics}, #{nic}[#{nic_attrs}])"
  match =   fog_nics.detect { |fn| fn.id == nic_attrs['id'] } # Check the id
  match ||= fog_nics.detect { |fn| fn.name == nic_attrs['name'] } # Check the name
  match ||= fog_nics.detect { |fn| fn.switch_name == nic_attrs['network'] } # Fall back to the switch
  match
end

#stopObject



52
53
54
55
56
57
58
59
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 52

def stop
  requires :name, :computer_name
  service.stop_vm options.merge(
    name: name,
    computer_name: computer_name,
    force: true
  )
end

#to_sObject



9
10
11
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 9

def to_s
  name
end

#vm_descriptionObject



61
62
63
64
65
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 61

def vm_description
  format _('%{cpus} CPUs and %{ram} memory'),
         cpus: processor_count,
         ram: number_to_human_size(memory_startup)
end

#volumesObject



29
30
31
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 29

def volumes
  vhds
end

#volumes_attributes=(_attributes) ⇒ Object



39
# File 'app/models/concerns/fog_extensions/hyperv/server.rb', line 39

def volumes_attributes=(_attributes); end