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



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

def access_vlan_id
  return nil if vlan_setting.access_vlan_id.zero?

  vlan_setting.access_vlan_id
end

#access_vlan_id=(id) ⇒ Object



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

def access_vlan_id=(id)
  vlan_setting.access_vlan_id = id
end

#allowed_vlan_idsObject



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

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



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

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

#compute_attributesObject



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

def compute_attributes
  attributes
    .slice(
      :id,
      :switch_id
    )
    .merge(
      {
        vlan_operation_mode:,
        vlan_private_mode:,
        access_vlan_id:,
        native_vlan_id:,
        allowed_vlan_ids:,
        primary_vlan_id:,
        secondary_vlan_id:,
        secondary_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) == 0

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

#mac=(m) ⇒ Object



16
17
18
19
20
# 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?
  dynamic_mac_address_enabled = (mac_address.to_i(16) == 0)
end

#native_vlan_idObject



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

def native_vlan_id
  return nil if vlan_setting.native_vlan_id.zero?

  vlan_setting.native_vlan_id
end

#native_vlan_id=(id) ⇒ Object



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

def native_vlan_id=(id)
  vlan_setting.native_vlan_id = id
end

#primary_vlan_idObject



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

def primary_vlan_id
  return nil if vlan_setting.primary_vlan_id.zero?

  vlan_setting.primary_vlan_id
end

#primary_vlan_id=(id) ⇒ Object



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

def primary_vlan_id=(id)
  vlan_setting.primary_vlan_id = id
end

#secondary_vlan_idObject



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

def secondary_vlan_id
  return nil if vlan_setting.secondary_vlan_id.zero?

  vlan_setting.secondary_vlan_id
end

#secondary_vlan_id=(id) ⇒ Object



82
83
84
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 82

def secondary_vlan_id=(id)
  vlan_setting.secondary_vlan_id = 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



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

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

#vlan_operation_modeObject

VLAN settings



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

def vlan_operation_mode
  vlan_setting.operation_mode
end

#vlan_operation_mode=(mode) ⇒ Object



27
28
29
# File 'app/models/concerns/fog_extensions/hyperv/network_adapter.rb', line 27

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

#vlan_private_modeObject



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

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

  vlan_setting.private_vlan_mode
end

#vlan_private_mode=(mode) ⇒ Object



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

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