Ok, moving on then... I've created a 'netapp_volume' type and provider, and am trying to test it against one of the existing NetApp device nodes: *manifests/site.pp* contains:
node 'actint-star-nactl01' { > > # Test NetApp volume provider > netapp_volume { 'v_puppet_test': > ensure => present, > } > > } > > When running *'puppet device -v'*, I get: > $ sudo puppet device -v > Info: starting applying configuration to actint-star-nactl01 at > actint-star-nactl01 > Warning: Local environment: "production" doesn't match server specified > node environment "development", switching agent to "development". > Info: Retrieving plugin > /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/type/netapp_volume.rb]/content: > > content changed '{md5}2f3e20a3878f9ed94a5fffc4a9811ef7' to > '{md5}ebe14c73783c97063d9b6ae0bc791896' > Error: Could not autoload puppet/provider/netapp_volume/netapp_volume: > uninitialized constant Puppet::Provider::Netapp > Error: Could not autoload puppet/type/netapp_volume: Could not autoload > puppet/provider/netapp_volume/netapp_volume: uninitialized constant > Puppet::Provider::Netapp > Error: Could not retrieve catalog from remote server: Could not intern > from pson: Could not autoload puppet/type/netapp_volume: Could not autoload > puppet/provider/netapp_volume/netapp_volume: uninitialized constant > Puppet::Provider::Netapp > Using cached catalog > Info: Applying configuration version '1352132516' > Error: > /Stage[main]//Node[actint-star-nactl01]/Netapp_volume[v_puppet_test]: Could > not evaluate: No ability to determine if netapp_volume exists > Finished catalog run in 0.21 seconds > > So it's failing to autoload my new provider, however I'm not sure what 'uninitialised constant' means :s The class *Puppet::Provider::Netapp* is defined in * lib/puppet/provider/netapp.rb*. I've pushed the latest edits into Github<https://github.com/fatmcgav/fatmcgav-netapp>. Ideas welcome. Cheers Gavin On Monday, 5 November 2012 15:26:08 UTC, Gavin Williams wrote: > > Me again... > > I pressed on using the /var/lib/puppet... configdir for the time-being, > and with a bit more jiggery pokery, I've managed to successfully register a > NetApp device, and extract some facts from it... And here's the > photographic proof :) :D http://ow.ly/i/15SLN > > Now to start looking at how to handle the next steps, such as volume > creation, quota creation, export creation... :D > > Latest code has been pushed to > Github<https://github.com/fatmcgav/fatmcgav-netapp> > ... > > Still need to work out how to use a central confdir rather than agent > specific ones, but can come back to that :) > > Cheers > Gavin > > On Monday, 5 November 2012 11:35:26 UTC, Gavin Williams wrote: >> >> Ok, have fixed that error aswell... >> >> Replaced *':configdir' *with *':confdir'*. >> However it's now failing due to the netapp.yml file not being present... >> What's confused me is the path it's come up with for *':confdir'*. >> According to the debug output, it's trying to use >> >> ESC[0;36mDebugESC[0m: Puppet::Device::Netapp: connecting to Netapp device >>> actint-star-nactl01. >>> ESC[0;36mDebugESC[0m: Puppet::Device::Netapp: configdir is >>> /var/lib/puppet/devices/actint-star-nactl01. >>> >> >> However I would prefer it to use */etc/puppet* on the master... >> Any way I could do this, other than hard-coding? >> >> Cheers >> Gavin >> >> On Monday, 5 November 2012 11:24:16 UTC, Gavin Williams wrote: >>> >>> Ok, after a bit more googling, have solved the NaElement load error... >>> >>> Tweaked the NaServer.rb file as follows: >>> >>> #require 'NaElement' >>>> require File.dirname(__FILE__) + "/NaElement" >>>> >>> >>> I've now successfully loaded the require Netapp SDK files, and started >>> working through the connection process... >>> Though it looks like it's hit another error: >>> >>> Debug: Puppet::Device::Netapp: connecting to Netapp device >>>> actint-star-nactl01. >>>> Debug: Puppet::Device::Netapp: configdir is . >>>> Error: Can't load netapp for actint-star-nactl01: undefined method `+' >>>> for nil:NilClass >>>> >>> >>> Tracked the above back to *device.rb*, where it's attempting to use * >>> 'Puppet[:configdir]'* but is failing to find the value... >>> >>> So now to work out what's going on there :) >>> >>> Cheers >>> Gav >>> >>> On Monday, 5 November 2012 10:47:56 UTC, Gavin Williams wrote: >>>> >>>> Hi all >>>> >>>> Following on from my previous post Puppet Network >>>> Devices..<https://groups.google.com/forum/?fromgroups=#!topic/puppet-users/fuXshtYmhhk>I've >>>> now started work on creating a NetApp network device provider for >>>> Puppet... >>>> >>>> I'm trying to start simply by just gathering some facts from our >>>> filers. >>>> >>>> The code soo far is available here: >>>> https://github.com/fatmcgav/shrug-netapp/ Credit to the original >>>> author shrug for setting out the framework... >>>> >>>> Anyhow, onto my first challenge. >>>> >>>> I've downloaded and added the relevant NetApp SDK files into * >>>> modules/shrug-netapp/lib/puppet/util/network_device/netapp/* as shown >>>> below: >>>> >>>> $ ls -l modules/shrug-netapp/lib/puppet/util/network_device/netapp/ >>>>> total 88 >>>>> -rw-r--r--. 1 puppet puppet 924 Nov 2 17:13 device.rb >>>>> -rw-r--r--. 1 puppet puppet 8229 Nov 2 17:16 DfmErrno.rb >>>>> -rw-r--r--. 1 puppet puppet 228 Nov 2 17:00 facts.rb >>>>> -rw-r--r--. 1 puppet puppet 9451 Nov 2 17:16 NaElement.rb >>>>> -rw-r--r--. 1 puppet puppet 36089 Nov 2 17:15 NaErrno.rb >>>>> -rw-r--r--. 1 puppet puppet 19036 Nov 2 17:15 NaServer.rb >>>>> >>>> >>>> The NaServer class is then included within the device.rb file above. >>>> However Puppet is currently failing with: >>>> >>>>> Info: starting applying configuration to actint-star-nactl01 at >>>>> actint-star-nactl01 >>>>> Error: Could not run: no such file to load -- NaElement >>>>> >>>> >>>> This NaElement file is require'd by the NaServer class. >>>> However it seems to be failing due to the include path not including >>>> the NaElement.rb file... >>>> Therefore I'm guessing that Puppet/Ruby is looking for the NaElement >>>> file in some default location, rather than the same location as the >>>> NaServer class... >>>> >>>> I've generated the same error on some tests scripts by moving the >>>> NetApp SDK files into a sdk sub folder, and then just *"require >>>> sdk/NaServer"* in my script, which generates a very similar error: >>>> >>>>> ruby hello_ontapi.rb 192.168.35.118 root xxx >>>>> ./sdk/NaServer.rb:21:in `require': no such file to load -- NaElement >>>>> (LoadError) >>>>> from ./sdk/NaServer.rb:21 >>>>> from hello_ontapi.rb:24:in `require' >>>>> from hello_ontapi.rb:24 >>>>> >>>> >>>> Any ideas how I could work around this? >>>> >>>> Cheers >>>> Gavin >>>> >>>> >>> -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/N_v9Sj98kfwJ. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.