Without the "newproperty(:provider)" I receive this message: err: Could not run Puppet configuration client: Could not find a default provider for rvmgem
-- Greg On Thu, Dec 8, 2011 at 9:52 AM, Nick Lewis <[email protected]> wrote: > On Thursday, December 8, 2011 at 9:44 AM, ghellings wrote: > > I've been trying to create a custom provider and I keep running into > the same error > err: /Stage[main]/Rvmspokeo::Install/Rvmgem[gearman-ruby]: Could not > evaluate: No ability to determine if rvmgem exists > > My type and provider seem pretty straight forward to me, what am I > doing wrong? > > lib/puppet/type/rvmgem.rb > > Puppet::Type.newtype(:rvmgem) do > @doc = "Manage RVM Gems" > ensurable > newproperty(:provider) do > desc "Provider from gem" > newvalue(:gem) > end > newparam(:name) do > desc "Name of gem" > isnamevar > end > newparam(:version) do > desc "Version of gem" > end > end > > lib/puppet/provider/rvmgem/gem.rb > > Puppet::Type.type(:rvmgem).provide(:gem) do > desc "Provides RVM Gem support" > commands :gemcmd => "su - rvmuser -c" > def exists? > if resource[:version].empty? > gemcmd "'gem query -n #{resource[:gem]} -i'" > else > gemcmd "'gem query -n #{resource[:gem]} -v #{resource[:version]} > -i'" > end > return true > end > def create > if resource[:version].empty? > gemcmd "'gem install #{resource[:gem]}'" > else > gemcmd "'gem install #{resource[:gem]} -v > #{resource[:version]}'" > end > end > def destroy > gemcmd "'gem uninstall #{resource[:gem]}'" > end > end > > -- > Greg > > > You don't need to explicitly specify newproperty(:provider). There is a > default provider parameter which is added when you create a provider for > the type. That default parameter handles making the provider available via > resource.provider (rather than the usual resource[:provider]), which is how > the default ensure property interacts with it. So currently Puppet doesn't > realize your type has a provider as Puppet understand providers. Other than > that, your code looks fine. Remove the provider property, and it should > work. > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" 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-dev?hl=en. > > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" 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-dev?hl=en. > -- You received this message because you are subscribed to the Google Groups "Puppet Developers" 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-dev?hl=en.
