[Ovirt-devel] [PATCH server] This patch hardcodes support for ovirtbr0 bridge.
Darryl L. Pierce
dpierce at redhat.com
Wed Oct 15 20:45:17 UTC 2008
Currently the node configuration has no explicit way of configuring a
bridged interface. This patch provides a hardcoded bridge and associates
each nic with it
Signed-off-by: Darryl L. Pierce <dpierce at redhat.com>
---
src/host-browser/host-browser.rb | 2 +-
src/lib/managed_node_configuration.rb | 22 ++++++++++++--
.../functional/managed_node_configuration_test.rb | 30 ++++++++++++++++++++
3 files changed, 50 insertions(+), 4 deletions(-)
diff --git a/src/host-browser/host-browser.rb b/src/host-browser/host-browser.rb
index 79d34e8..d228a59 100755
--- a/src/host-browser/host-browser.rb
+++ b/src/host-browser/host-browser.rb
@@ -302,7 +302,7 @@ class HostBrowser
end
# iterate over any nics left and create new records for them.
- boot_type = BootType.find_by_proto('dhcp')
+ boot_type = BootType.find_by_proto('static')
nic_info.collect do |nic|
puts "Creating a new nic..."
diff --git a/src/lib/managed_node_configuration.rb b/src/lib/managed_node_configuration.rb
index 4ade235..93f8448 100644
--- a/src/lib/managed_node_configuration.rb
+++ b/src/lib/managed_node_configuration.rb
@@ -59,10 +59,19 @@ class ManagedNodeConfiguration
end
end
+ has_bridge = false
host.nics.each do |nic|
# only process this nic if it doesn't have a bonding
+ # TODO remove the hack to force a bridge into the picture
if nic.bonding.empty?
- process_nic result, nic, macs
+ process_nic result, nic, macs, nil, false, true
+
+ # TODO remove this when bridges are properly supported
+ unless has_bridge
+ macs[nic.mac] = "ovirtbr0"
+ process_nic result, nic, macs, nil, true, false
+ has_bridge = true
+ end
end
end
@@ -74,7 +83,7 @@ class ManagedNodeConfiguration
private
- def self.process_nic(result, nic, macs, bonding = nil)
+ def self.process_nic(result, nic, macs, bonding = nil, is_bridge = false, bridged = true)
iface_name = macs[nic.mac]
if iface_name
@@ -92,9 +101,16 @@ class ManagedNodeConfiguration
result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/NETMASK #{nic.netmask}"
result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/BROADCAST #{nic.broadcast}"
end
+
+ if bridged
+ result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/BRIDGE ovirtbr0"
+ elsif is_bridge
+ result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/TYPE bridge"
+ result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/PEERNTP yes"
+ result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/DELAY 0"
+ end
end
- result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/BRIDGE #{nic.bridge}" if nic.bridge
result.puts "set #{NIC_ENTRY_PREFIX}/ifcfg-#{iface_name}/ONBOOT yes"
end
end
diff --git a/src/test/functional/managed_node_configuration_test.rb b/src/test/functional/managed_node_configuration_test.rb
index b5a7ec5..d0d8aa3 100644
--- a/src/test/functional/managed_node_configuration_test.rb
+++ b/src/test/functional/managed_node_configuration_test.rb
@@ -50,7 +50,15 @@ cat <<\EOF > /var/tmp/node-augtool
rm /files/etc/sysconfig/network-scripts/ifcfg-eth0
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/DEVICE eth0
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/BOOTPROTO #{nic.boot_type.proto}
+set /files/etc/sysconfig/network-scripts/ifcfg-eth0/BRIDGE ovirtbr0
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/ONBOOT yes
+rm /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/DEVICE ovirtbr0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/BOOTPROTO #{nic.boot_type.proto}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/TYPE bridge
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/PEERNTP yes
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/DELAY 0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/ONBOOT yes
save
EOF
HERE
@@ -80,6 +88,16 @@ set /files/etc/sysconfig/network-scripts/ifcfg-eth0/NETMASK #{nic.netmask}
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/BROADCAST #{nic.broadcast}
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/BRIDGE ovirtbr0
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/ONBOOT yes
+rm /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/DEVICE ovirtbr0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/BOOTPROTO #{nic.boot_type.proto}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/IPADDR #{nic.ip_addr}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/NETMASK #{nic.netmask}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/BROADCAST #{nic.broadcast}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/TYPE bridge
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/PEERNTP yes
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/DELAY 0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/ONBOOT yes
save
EOF
HERE
@@ -108,10 +126,22 @@ set /files/etc/sysconfig/network-scripts/ifcfg-eth0/BOOTPROTO #{nic1.boot_type.p
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/IPADDR #{nic1.ip_addr}
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/NETMASK #{nic1.netmask}
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/BROADCAST #{nic1.broadcast}
+set /files/etc/sysconfig/network-scripts/ifcfg-eth0/BRIDGE ovirtbr0
set /files/etc/sysconfig/network-scripts/ifcfg-eth0/ONBOOT yes
+rm /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/DEVICE ovirtbr0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/BOOTPROTO #{nic1.boot_type.proto}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/IPADDR #{nic1.ip_addr}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/NETMASK #{nic1.netmask}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/BROADCAST #{nic1.broadcast}
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/TYPE bridge
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/PEERNTP yes
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/DELAY 0
+set /files/etc/sysconfig/network-scripts/ifcfg-ovirtbr0/ONBOOT yes
rm /files/etc/sysconfig/network-scripts/ifcfg-eth1
set /files/etc/sysconfig/network-scripts/ifcfg-eth1/DEVICE eth1
set /files/etc/sysconfig/network-scripts/ifcfg-eth1/BOOTPROTO #{nic2.boot_type.proto}
+set /files/etc/sysconfig/network-scripts/ifcfg-eth1/BRIDGE ovirtbr0
set /files/etc/sysconfig/network-scripts/ifcfg-eth1/ONBOOT yes
save
EOF
--
1.5.5.1
More information about the ovirt-devel
mailing list