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.

Reply via email to