Skip to content

Commit

Permalink
Merge pull request #131 from redBorder/development
Browse files Browse the repository at this point in the history
Release 1.3.1
  • Loading branch information
JPeraltaNic committed Jun 12, 2024
2 parents 41e803b + e14ff7b commit e79f9f4
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 12 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.0
1.3.1
40 changes: 29 additions & 11 deletions resources/scripts/rb_init_conf.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

init_conf = YAML.load_file(INITCONF)

management_interface = init_conf['network']['management_interface'] if init_conf['network'] && init_conf['network']['management_interface']
hostname = init_conf['hostname']
cdomain = init_conf['cdomain']
network = init_conf['network']
Expand Down Expand Up @@ -82,16 +83,31 @@
dev = iface['device']
iface_mode = iface['mode']
open("/etc/sysconfig/network-scripts/ifcfg-#{dev}", 'w') { |f|
# Commom configuration to all interfaces
f.puts "BOOTPROTO=#{iface_mode}"
f.puts "DEVICE=#{dev}"
f.puts "ONBOOT=yes"
dev_uuid = File.read("/proc/sys/kernel/random/uuid").chomp
f.puts "UUID=#{dev_uuid}"

if iface_mode != 'dhcp'
if Config_utils.check_ipv4({:ip => iface['ip'], :netmask => iface['netmask']})
f.puts "IPADDR=#{iface['ip']}"
f.puts "NETMASK=#{iface['netmask']}"
# Specific handling for static and management interfaces
if dev == management_interface || Config_utils.check_ipv4(ip: iface['ip'], netmask: iface['netmask'], gateway: iface['gateway'])
f.puts "IPADDR=#{iface['ip']}" if iface['ip']
f.puts "NETMASK=#{iface['netmask']}" if iface['netmask']
unless iface['gateway'].nil? or iface['gateway'].empty? or not Config_utils.check_ipv4(:ip => iface['gateway'])
if network['interfaces'].count > 1 and not Config_utils.network_contains(serf['sync_net'], iface['gateway'])
f.puts "GATEWAY=#{iface['gateway']}"
elsif network['interfaces'].count == 1
f.puts "GATEWAY=#{iface['gateway']}"
end

if dev == management_interface
f.puts "DEFROUTE=yes"
else
f.puts "DEFROUTE=no"
end

end
else
p err_msg = "Invalid network configuration for device #{dev}. Please review #{INITCONF} file"
Expand All @@ -100,13 +116,14 @@
else
interface_info=Config_utils.get_ipv4_network(iface['device'])
ip=interface_info[:ip]
f.puts "DEFROUTE=no" if network['interfaces'].count > 1 and Config_utils.network_contains(serf['sync_net'], ip)
if network['interfaces'].count >= 1
if dev == management_interface
f.puts "DEFROUTE=yes"
else
f.puts "DEFROUTE=no"
end
end
end
dev_uuid = File.read("/proc/sys/kernel/random/uuid").chomp
f.puts "BOOTPROTO=#{iface_mode}"
f.puts "DEVICE=#{dev}"
f.puts "ONBOOT=yes"
f.puts "UUID=#{dev_uuid}"
}

# if we have management and sync network
Expand Down Expand Up @@ -134,7 +151,9 @@
f.puts "#{metric} #{iface['device']}tbl" #if File.readlines("/etc/iproute2/rt_tables").grep(/#{metric} #{iface['device']}tbl/).any?
}
open("/etc/sysconfig/network-scripts/route-#{dev}", 'w') { |f|
f.puts "default via #{gateway} dev #{iface['device']} table #{iface['device']}tbl" unless gateway.nil? or gateway.empty?
if dev == management_interface
f.puts "default via #{gateway} dev #{iface['device']} table #{iface['device']}tbl" unless gateway.nil? or gateway.empty?
end
f.puts "#{iprange} dev #{iface['device']} table #{iface['device']}tbl"
f.puts "#{iprange} dev #{iface['device']} table main"
}
Expand All @@ -147,7 +166,6 @@
# Enable network service
system('ip route flush table main &> /dev/null')
system('systemctl restart network &> /dev/null')

end

# TODO: check network connectivity. Try to resolve repo.redborder.com
Expand Down
29 changes: 29 additions & 0 deletions resources/scripts/rb_setup_wizard.rb
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,29 @@ def cancel_wizard()
cancel_wizard if netconf.cancel
general_conf["network"]["interfaces"] = netconf.conf

if general_conf["network"]["interfaces"].size > 1
static_interface = general_conf["network"]["interfaces"].find { |i| i["mode"] == "static" }
dhcp_interfaces = general_conf["network"]["interfaces"].select { |i| i["mode"] == "dhcp" }
if static_interface.size == 1 && dhcp_interfaces.size >= 1
general_conf["network"]["management_interface"] = static_interface["device"]
else
interface_options = general_conf["network"]["interfaces"].map { |i| [i["device"]] }
text = <<EOF
You have multiple network interfaces configured.
Please select one to be used as the management interface.
EOF
dialog = MRDialog.new
dialog.clear = true
dialog.title = "Select Management Interface"
management_iface = dialog.menu(text, interface_options, 10, 50)

if management_iface.nil? || management_iface.empty?
cancel_wizard
else
general_conf["network"]["management_interface"] = management_iface
end
end
end
# Conf for DNS
text = <<EOF
Expand Down Expand Up @@ -304,6 +327,12 @@ def cancel_wizard()
end
end

unless general_conf["network"]["management_interface"].nil?
text += "- Management Interface:\n"
text += " #{general_conf["network"]["management_interface"]}\n"
text += "\n"
end

unless general_conf["network"]["dns"].nil?
text += "- DNS:\n"
general_conf["network"]["dns"].each do |dns|
Expand Down

0 comments on commit e79f9f4

Please sign in to comment.