Index: packstack/puppet/modules/network/lib/puppet/provider/network_config/redhat.rb --- a/packstack/puppet/modules/network/lib/puppet/provider/network_config/redhat.rb +++ b/packstack/puppet/modules/network/lib/puppet/provider/network_config/redhat.rb @@ -224,6 +224,11 @@ pairs = self.unmunge props + ip_version = provider.send(:family) + if (ip_version.to_s == "inet6") + pairs = self.ipv6_fixup pairs + end + content = pairs.inject('') do |str, (key, val)| str << %{#{key}=#{val}\n} end @@ -259,6 +264,30 @@ pairs end + def self.ipv6_fixup(pairs) + pairs['IPV6INIT'] = 'yes' + + if (pairs.include? 'NETMASK' and pairs.include? 'IPADDR') + pairs['IPV6ADDR'] = pairs['IPADDR'].to_s + "/" + pairs['NETMASK'].to_s + pairs.delete('NETMASK') + pairs.delete('IPADDR') + elsif (pairs.include? 'IPADDR') + pairs['IPV6ADDR'] = pairs['IPADDR'].to_s + pairs.delete('IPADDR') + end + + if (pairs.include? 'GATEWAY') + pairs['IPV6_DEFAULTGW'] = pairs['GATEWAY'] + pairs.delete('GATEWAY') + end + + if (pairs['BOOTPROTO'].to_s == 'dhcp') + pairs['DHCPV6C'] = 'yes' + pairs['DHCLIENTARGS'] = '-1' + end + pairs + end + def self.header str = <<-HEADER # HEADER: This file is is being managed by puppet. Changes to