class Wire::UpDownCommand
Base class for up/down commands
Public Class Methods
get_networks_for_zone(networks, zone_name)
click to toggle source
returns networks from given networks
array that belong to zone_name
params: networks
: array of all networks zone_name
: name of desired zone returns: # => [Array] of networks for given zone
# File lib/wire/commands/updown_command_base.rb, line 73 def self.get_networks_for_zone(networks, zone_name) # select networks in given zone only networks.select do |_, network_data| network_data[:zone] == zone_name end end
Public Instance Methods
default_handle_dhcp(zone_name, network_name, network_data, handler)
click to toggle source
if dhcp is part of given network_data
, use handler
to process it.
zone_name
-
Name of zone
network_name
-
Name of network
# File lib/wire/commands/updown_command_base.rb, line 40 def default_handle_dhcp(zone_name, network_name, network_data, handler) dhcp_data = network_data[:dhcp] return true unless dhcp_data $log.debug 'Processing dhcp/dnsmasq ...' handler.handle_dhcp(zone_name, network_name, network_data, dhcp_data[:start], dhcp_data[:end]) end
default_handle_hostip(network_name, network_data, handler)
click to toggle source
if host ip is enabled for given network (network_name
, network_data
) use handler
to process it
# File lib/wire/commands/updown_command_base.rb, line 52 def default_handle_hostip(network_name, network_data, handler) hostip = network_data[:hostip] return true unless hostip $log.debug "Processing host ip on network #{network_name} ..." # if the hostip is not in cidr, take netmask # from network entry, add to hostip hostip = ensure_hostip_netmask(hostip, network_data) # forward to handler handler.handle_hostip(network_name, hostip) end
run_on_project()
click to toggle source
generic method, calls run_on_project_zones
for all zones in model
# File lib/wire/commands/updown_command_base.rb, line 13 def run_on_project zones = @project.get_element('zones') # iterates all zones, descend into zone # for further checks, mark all those bad # zones, decide upon boolean return flag (run_on_project_zones(zones) .each do |_zone_name, zone_data| # error occured in run_on_zone call. Lets mark this zone_data.store :status, :failed end.size > 0) end
run_on_project_zones(zones)
click to toggle source
run on all given zones
Returns [Hash] of zones that failed.
# File lib/wire/commands/updown_command_base.rb, line 29 def run_on_project_zones(zones) zones.select do |zone_name, _| $log.debug("Processing zone #{zone_name} ...") run_on_zone(zone_name) == false end end