Module: FogExtensions::Hyperv::NetworkAdapter

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/fog_extensions/hyperv/network_adapter.rb

Instance Method Summary collapse

Instance Method Details

#access_vlan_idObject



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

def access_vlan_id
  return nil if vlan_setting.access_vlan_id.zero?

  vlan_setting.access_vlan_id
end

#allowed_vlan_idsObject



59
60
61
62
63
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 59

def allowed_vlan_ids
  return nil unless vlan_setting.allowed_vlan_id_list&.any?

  Fog::Hyperv::Compute::NetworkAdapterVlan.render_vlan_list vlan_setting.allowed_vlan_id_list
end

#allowed_vlan_ids=(ids) ⇒ Object



65
66
67
68
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 65

def allowed_vlan_ids=(ids)
  ids ||= ''
  vlan_setting.allowed_vlan_id_list = parse_vlan_list(ids)
end

#compute_attributesObject



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 97

def compute_attributes
  attributes
    .slice(
      :id,
      :switch_id
    )
    .merge(
      vlan_setting.attributes.slice(
        :vlan_operation_mode,
        :vlan_private_mode,
        :access_vlan_id,
        :native_vlan_id,
        :primary_vlan_id,
        :secondary_vlan_id
      )
    )
    .merge(
      secondary_vlan_ids: secondary_vlan_ids,
      allowed_vlan_ids: allowed_vlan_ids
    )
    .compact
end

#macObject



8
9
10
11
12
13
14
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 8

def mac
  return unless mac_address
  return if mac_address.to_i(16).zero?

  # Downcase and split every 2 chars, join with :
  mac_address.downcase.scan(/.{2}/).join(':')
end

#mac=(m) ⇒ Object



16
17
18
19
20
21
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 16

def mac=(m)
  mac_address = m&.upcase&.delete(':')
  mac_address = Fog::Hyperv::Compute::NetworkAdapter::NIC_FALLBACK_MAC if mac_address.nil? || mac_address.blank?
  mac_address.to_i(16)
  0
end

#native_vlan_idObject



51
52
53
54
55
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 51

def native_vlan_id
  return nil if vlan_setting.native_vlan_id.zero?

  vlan_setting.native_vlan_id
end

#primary_vlan_idObject



70
71
72
73
74
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 70

def primary_vlan_id
  return nil if vlan_setting.primary_vlan_id.zero?

  vlan_setting.primary_vlan_id
end

#secondary_vlan_idObject



78
79
80
81
82
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 78

def secondary_vlan_id
  return nil if vlan_setting.secondary_vlan_id.zero?

  vlan_setting.secondary_vlan_id
end

#secondary_vlan_idsObject



86
87
88
89
90
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 86

def secondary_vlan_ids
  return nil unless vlan_setting.secondary_vlan_id_list&.any?

  Fog::Hyperv::Compute::NetworkAdapterVlan.render_vlan_list vlan_setting.secondary_vlan_id_list
end

#secondary_vlan_ids=(ids) ⇒ Object



92
93
94
95
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 92

def secondary_vlan_ids=(ids)
  ids ||= ''
  vlan_setting.secondary_vlan_id_list = parse_vlan_list(ids)
end

#vlan_operation_modeObject

VLAN settings



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

def vlan_operation_mode
  vlan_setting.operation_mode
end

#vlan_operation_mode=(mode) ⇒ Object



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

def vlan_operation_mode=(mode)
  vlan_setting.operation_mode = mode
end

#vlan_private_modeObject



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

def vlan_private_mode
  return nil if vlan_setting.private_vlan_mode == :Unknown

  vlan_setting.private_vlan_mode
end

#vlan_private_mode=(mode) ⇒ Object



39
40
41
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 39

def vlan_private_mode=(mode)
  vlan_setting.private_vlan_mode = mode
end