hercules-team/augeasproviders_shellvar — pull request #3 by raphink (2014-11-10 19:37:55+00:00)
Title: Error 'can't convert nil into String'

I am using this module to manage NFS settings in my NFS module, https://github.com/treydock/puppet-nfs/tree/1.x, and am getting the error "can't convert nil into String" when running beaker tests. This is with v2.0.2. The test system had Puppet 3.7.3 but I verified it also occurs with 3.6.2. The system had augeas-libs-1.0.0-7.el6 and ruby-augeas-0.4.1-3.el6.

Here is test file I am verified the issue with interactively:

```
shellvar { 'LOCKD_TCPPORT':
ensure => present,
target => '/etc/sysconfig/nfs',
value => '32803',
}
```

Here's full trace

```
Wrapped exception:
can't convert nil into String
/etc/puppet/modules/augeasproviders_shellvar/lib/puppet/provider/shellvar/augeas.rb:182:in `insert'
/etc/puppet/modules/augeasproviders_shellvar/lib/puppet/provider/shellvar/augeas.rb:182:in `create'
/etc/puppet/modules/augeasproviders_core/lib/puppet/provider/augeasprovider/default.rb:693:in `call'
/etc/puppet/modules/augeasproviders_core/lib/puppet/provider/augeasprovider/default.rb:693:in `augopen_internal'
/etc/puppet/modules/augeasproviders_core/lib/puppet/provider/augeasprovider/default.rb:138:in `augopen!'
/etc/puppet/modules/augeasproviders_core/lib/puppet/provider/augeasprovider/default.rb:775:in `augopen!'
/etc/puppet/modules/augeasproviders_shellvar/lib/puppet/provider/shellvar/augeas.rb:165:in `create'
/usr/lib/ruby/site_ruby/1.8/puppet/property/ensure.rb:16:in `set_present'
/usr/lib/ruby/site_ruby/1.8/puppet/property.rb:197:in `send'
/usr/lib/ruby/site_ruby/1.8/puppet/property.rb:197:in `call_valuemethod'
/usr/lib/ruby/site_ruby/1.8/puppet/property.rb:498:in `set'
/usr/lib/ruby/site_ruby/1.8/puppet/property.rb:581:in `sync'
/etc/puppet/modules/augeasproviders_shellvar/lib/puppet/type/shellvar.rb:46:in `sync'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:204:in `sync'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:128:in `sync_if_needed'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:81:in `perform_changes'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction/resource_harness.rb:20:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:204:in `apply'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:217:in `eval_resource'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:147:in `call'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:147:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:327:in `thinmark'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:326:in `thinmark'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:147:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/graph/relationship_graph.rb:118:in `traverse'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:138:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:169:in `apply'
/usr/lib/ruby/site_ruby/1.8/puppet/util/log.rb:149:in `with_destination'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction/report.rb:112:in `as_logging_destination'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:168:in `apply'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:118:in `apply_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:161:in `benchmark'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:160:in `benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:117:in `apply_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:224:in `run_internal'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:132:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/context.rb:64:in `override'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:244:in `override'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:131:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:297:in `apply_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:231:in `main'
/usr/lib/ruby/site_ruby/1.8/puppet/context.rb:64:in `override'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:244:in `override'
/usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:193:in `main'
/usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:154:in `run_command'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:507:in `plugin_hook'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:488:in `exit_on_fail'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:146:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:92:in `execute'
/usr/bin/puppet:8
Error: /Stage[main]/Main/Shellvar[LOCKD_TCPPORT]/ensure: change from absent to present failed: Could not set 'present' on ensure: can't convert nil into String at 5:/root/test.pp
```