Class: Itamae::Plugin::Resource::FirewalldZone

Inherits:
Resource::Base
  • Object
show all
Defined in:
lib/itamae/plugin/resource/firewalld_zone.rb

Constant Summary collapse

ARRAYABLE_SETTINGS =
[
  :interfaces,
  :sources,
  :services,
  :ports,
  :forward_ports,
  :icmp_blocks,
  :rich_rules
]

Instance Method Summary collapse

Instance Method Details

#action_update(options) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/itamae/plugin/resource/firewalld_zone.rb', line 43

def action_update(options)
  ARRAYABLE_SETTINGS.each do |name|
    update_setting(name, current[name], attributes[name]) if attributes[name]
  end

  if current.masquerade != attributes.masquerade
    update_masquerade(attributes.masquerade)
  end

  # Only perform when `default_zone true` is specified (and current is false)
  if attributes.default_zone && !current.default_zone
    set_default_zone
  end
end

#pre_actionObject



28
29
30
31
32
# File 'lib/itamae/plugin/resource/firewalld_zone.rb', line 28

def pre_action
  ARRAYABLE_SETTINGS.each do |name|
    attributes[name].sort! if attributes[name]
  end
end

#set_current_attributesObject



34
35
36
37
38
39
40
41
# File 'lib/itamae/plugin/resource/firewalld_zone.rb', line 34

def set_current_attributes
  ARRAYABLE_SETTINGS.each do |name|
    current[name] = current_setting(name) if attributes[name]
  end

  current.masquerade    = masquerade_enabled? unless attributes.masquerade.nil?
  current.default_zone  = default_zone? if attributes.default_zone
end