Issue #1128 has been updated by luke. Status changed from Accepted to Ready for Checkin Assigned to changed from community to jamtur01
I've committed some changes that make the problems with this type clear, but I could not fix them all. The changes are in my tickets/0.24.x/1128 branch. In particular, the name of interfaces between redhat and solaris nodes is braindead -- solaris uses the hostname but redhat uses the ip address, if it's there, else it uses something else silly. As a result, I've decided to remove the type for now. The last commit in that branch removes all of the interface-related code (in commit be169da98d34f7305019d9e3be2a7da2bcb3e28c). If you want to make this work, just apply that as a reverse patch and hack away. The failing tests aren't a bad place to start, but a better place to start is to remove everything you don't understand and only add back when you know you need it. ---------------------------------------- Bug #1128: interface errors on centos / redhat http://reductivelabs.com/redmine/issues/show/1128 Author: otto Status: Ready for Checkin Priority: Normal Assigned to: jamtur01 Category: interface Target version: 0.24.5 Keywords: Complexity: Unknown Patch: None Affected version: I'm trying to use the 'interface' type resource for setting up interface aliases. I'm using Puppet version 0.24.2, [[CentOS]] 5. My interface declaration: <pre> node "dev1" { interface { "192.168.10.229": interface_type => "alias", interface => "eth0", ensure => "present", netmask => "255.255.255.0", } } </pre> puppetd reports the following error: <pre> err: Could not prefetch interface provider 'redhat': undefined method @bootproto=' for #<Puppet::Type::Interface::ProviderRedhat:0xb78cc8ac> err: //Node[dev2]/Interface[10.0.1.201]: Failed to retrieve current state of resource: undefined method @[]' for #<Puppet::Type::Interface::ProviderRedhat:0xb7825638> </pre> I removed the BOOTPROTO line from /etc/sysconfig/network-scripts/icfg-eth0, but then it complains about the HWADDR. If I take out HWADDR (which is probably is not a good idea), it complains about NETWORK. If I take out NETWORK, it complains about GATEWAY. If I take out GATEWAY, it complains about BROADCAST. Finally, I take out BROADCAST, and it complains about '[]'. I've even tried removing both my ifcfg-eth0 and ifcfg-lo files to see what puppet does. I get no errors about <pre> "Could not prefetch interface provider 'redhat'... " </pre> but I still get the same <pre> "Failed to retrieve current state of resource: undefined method @[]'..." </pre> at the bottom of the output. I see that there was a ticket submitted for what looks like a similar problem, but it was marked as fixed back in November 2007: http://reductivelabs.com/trac/puppet/ticket/762 Below is the puppet output and trace for when my ifcfg* files are in place, but with the mentioned properties commented out in ifcfg-eth0. My current eth0 interface file (with lots of commenting out): <pre> [EMAIL PROTECTED] network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Realtek Semiconductor Co., Ltd. RTL-8029(AS) DEVICE=eth0 ONBOOT=yes #HWADDR=00:1c:42:af:2b:83 IPADDR=192.168.10.228 NETMASK=255.255.255.0 #NETWORK=192.168.10.0 ONBOOT=yes #GATEWAY=192.168.10.1 #BROADCAST=192.168.10.255 </pre> The output and stacktrace from puppetd --test: <pre> [EMAIL PROTECTED] network-scripts]# puppetd --test --trace notice: Ignoring cache info: Caching catalog at /var/puppet/state/localconfig.yaml notice: Starting catalog run /usr/lib/ruby/site_ruby/1.8/puppet/provider/interface/redhat.rb:63:in @instances' /usr/lib/ruby/site_ruby/1.8/puppet/provider/interface/redhat.rb:59:in @collect' /usr/lib/ruby/site_ruby/1.8/puppet/provider/interface/redhat.rb:59:in @instances' /usr/lib/ruby/site_ruby/1.8/puppet/provider/interface/redhat.rb:112:in @prefetch' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:492:in @prefetch' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:489:in @each' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:489:in @prefetch' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:504:in @prepare' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:301:in @evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/node/catalog.rb:102:in @apply' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:260:in @run' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:212:in @benchmark' /usr/lib/ruby/1.8/benchmark.rb:293:in @measure' /usr/lib/ruby/1.8/benchmark.rb:307:in @realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:211:in @benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:259:in @run' /usr/lib/ruby/1.8/sync.rb:229:in @synchronize' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:241:in @run' /usr/sbin/puppetd:429 err: Could not prefetch interface provider 'redhat': undefined method @[]' for #<Puppet::Type::Interface::ProviderRedhat:0xb79870a8> info: /Schedule[weekly]: Evaluated in 0.00 seconds info: /Schedule[puppet]: Evaluated in 0.00 seconds /usr/lib/ruby/site_ruby/1.8/puppet/provider.rb:359:in @name' /usr/lib/ruby/site_ruby/1.8/puppet/provider/interface/redhat.rb:154:in @file_path' /usr/lib/ruby/site_ruby/1.8/puppet/provider/interface/redhat.rb:135:in @exists?' /usr/lib/ruby/site_ruby/1.8/puppet/property.rb:517:in @retrieve' /usr/lib/ruby/site_ruby/1.8/puppet/metatype/evaluation.rb:103:in @currentpropvalues' /usr/lib/ruby/site_ruby/1.8/puppet/external/gratr/search.rb:325:in @inject' /usr/lib/ruby/site_ruby/1.8/puppet/metatype/evaluation.rb:101:in @each' /usr/lib/ruby/site_ruby/1.8/puppet/metatype/evaluation.rb:101:in @inject' /usr/lib/ruby/site_ruby/1.8/puppet/metatype/evaluation.rb:101:in @currentpropvalues' /usr/lib/ruby/site_ruby/1.8/puppet/metatype/evaluation.rb:94:in @retrieve' /usr/lib/ruby/site_ruby/1.8/puppet/metatype/evaluation.rb:23:in @evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:60:in @apply' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:240:in @eval_resource' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:444:in @thinmark' /usr/lib/ruby/1.8/benchmark.rb:293:in @measure' /usr/lib/ruby/1.8/benchmark.rb:307:in @realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:443:in @thinmark' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:239:in @eval_resource' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:311:in @evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:444:in @thinmark' /usr/lib/ruby/1.8/benchmark.rb:293:in @measure' /usr/lib/ruby/1.8/benchmark.rb:307:in @realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:443:in @thinmark' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:310:in @evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:304:in @collect' /usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:304:in @evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/node/catalog.rb:102:in @apply' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:260:in @run' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:212:in @benchmark' /usr/lib/ruby/1.8/benchmark.rb:293:in @measure' /usr/lib/ruby/1.8/benchmark.rb:307:in @realtime' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:211:in @benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:259:in @run' /usr/lib/ruby/1.8/sync.rb:229:in @synchronize' /usr/lib/ruby/site_ruby/1.8/puppet/network/client/master.rb:241:in @run' /usr/sbin/puppetd:429 err: //Node[dev1]/Interface[192.168.10.229]: Failed to retrieve current state of resource: undefined method @[]' for #<Puppet::Type::Interface::ProviderRedhat:0xb797f1c8> info: //Node[dev1]/Interface[192.168.10.229]: Evaluated in 0.01 seconds info: /Schedule[monthly]: Evaluated in 0.00 seconds info: /Schedule[hourly]: Evaluated in 0.00 seconds info: /Schedule[never]: Evaluated in 0.00 seconds info: /Schedule[daily]: Evaluated in 0.00 seconds info: /Filebucket[puppet]: Evaluated in 0.00 seconds Changes: Resources: Failed: 1 Scheduled: 8 Total: 10 Time: Config retrieval: 0.84 Filebucket: 0.00 Interface: 0.01 Schedule: 0.00 Total: 0.85 info: Sent transaction report in 0.11 seconds notice: Finished catalog run in 0.38 seconds </pre> ---------------------------------------- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
