Looks like the below error was caused by some locally cached code that 
hadn't been updated by my Git pull :s

Resolved that, and now am getting the following:

$ 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]/mode: mode 
> changed '0775' to '0755'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/provider]/mode: 
> mode changed '0775' to '0755'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/provider/netapp.rb]/content:
>  
> content changed '{md5}399796914d8aeb68387455de5b24f735' to 
> '{md5}3be2121ab99116c4bc89db21d5d4b54b'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/provider/netapp_volume/netapp_volume.rb]/content:
>  
> content changed '{md5}46b2a0004e0245c577974e7a645e08f7' to 
> '{md5}1b06628868826a8ea64744a7ae8ec8da'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/type]/mode: 
> mode changed '0775' to '0755'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/type/netapp_volume.rb]/content:
>  
> content changed '{md5}ebe14c73783c97063d9b6ae0bc791896' to 
> '{md5}2fb244482c7d760e6cc132f104be619d'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/util/network_device/netapp/facts.rb]/content:
>  
> content changed '{md5}c7e59e79e19486cba9ae7e5314b2a061' to 
> '{md5}b0c912dc663d5251219bbad895455834'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/util/network_device/netapp/device.rb]/content:
>  
> content changed '{md5}7354a748bd41582fcf76bf2643098fcd' to 
> '{md5}9d2e26f97c7ea6ea16177acb8df85714'
> /File[/var/lib/puppet/devices/actint-star-nactl01/lib/puppet/util/network_device/netapp/NaServer.rb]/content:
>  
> content changed '{md5}cd815964f9a2dfe757f5365a848b80d5' to 
> '{md5}63f12abed9d1145b6d326c9fc06eb0c0'
> Info: Caching catalog for actint-star-nactl01
> Info: Applying configuration version '1352132516'
> Error: 
> /Stage[main]//Node[actint-star-nactl01]/Netapp_volume[v_puppet_test]: Could 
> not evaluate: undefined method `transport' for 
> #<Puppet::Util::NetworkDevice::Netapp::Device:0x7ff3142c80f8>
> Finished catalog run in 0.11 seconds
>

If I change *provider/netapp_volume/netapp_volume.rb *as follows*:*

>
> /File[/var/lib/puppet/lib/puppet/provider/netapp_volume/netapp_volume.rb]/content:
> --- /var/lib/puppet/lib/puppet/provider/netapp_volume/netapp_volume.rb  
> 2012-11-05 17:26:56.257616498 +0000
> +++ /tmp/puppet-file20121105-8521-10tepn6-0     2012-11-05 
> 17:40:16.440612301 +0000
> @@ -19,7 +19,7 @@
>
>    def exists?
>      Puppet.debug("Puppet::Provider::Netapp_volume: checking existance of 
> Netapp Volume #{resource[:name]}")
> -    transport.invoke("volume-list-info").include?(resource[:name])
> +    @transport.invoke("volume-list-info").include?(resource[:name])
>    end
>
I get:

>  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/provider/netapp_volume/netapp_volume.rb]/content:
>  
> content changed '{md5}1b06628868826a8ea64744a7ae8ec8da' to 
> '{md5}feb535835cefd0921c8be5d0af6e11f2'
> Info: Caching catalog for actint-star-nactl01
> Info: Applying configuration version '1352132516'
> Error: 
> /Stage[main]//Node[actint-star-nactl01]/Netapp_volume[v_puppet_test]: Could 
> not evaluate: undefined method `invoke' for nil:NilClass
> Finished catalog run in 0.20 seconds
>

So not sure why it's not working either way... 

Any ideas???

Cheers
Gavin  
 

On Monday, 5 November 2012 16:44:15 UTC, Gavin Williams wrote:
>
> 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/-/rFre1Mb_m0wJ.
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.

Reply via email to