Hi Rafael, if you are just starting out with this, I'd highly recommend looking into the Resource API. It makes the development of types much easier, is a supported part of this week's puppet 6 release, and available as a separate download for previous puppet versions. The PDK also has support for getting you started with a ready to go skeleton using 'pdk new provider'.
See https://puppet.com/docs/puppet/6.0/custom_resources.html for all the details. Cheers, David On Fri, Sep 21, 2018 at 9:34 PM Rafael Tomelin <rafael.tome...@gmail.com> wrote: > Hi guys, > > I am creating a type in custom provider, but I am not able to understand > the following question. > > I created a basic type to understand the concept of things, as follows: > Puppet::Type.newtype(:mydir) do > @doc = "First custom type." > > ensurable do > defaultvalues > defaultto :present > end > > newparam(:name, :namevar => true) do > end > > newparam(:install_location) do > end > end > > > After creating the provider, but does not recognize the same and displays > the following error: > Error: Could not find a suitable provider for mydir > Notice: Applied catalog in 0.63 seconds > > Puppet::Type.type(:mydir).provide(:linux) do > > defaultfor :operatingsystem => :linux > confine :operatingsystem => :linux > > commands :mkdir => "mkdir" > commands :rm => "rm" > > def exists? > Puppet.info("checking if is already deployed") > deploy_dir = "#{resource[:install_location]}/#{resource[:name]}" > > File.directory?(deploy_dir) and Dir.entries(deploy_dir).size > 2 > end > > def create > Puppet.info("Deploying the appliction") > deploy_dir = "#{resource[:install_location]}/#{resource[:name]}" > > mkdir('-p', deploy_dir) > end > > def destroy > Puppet.info("Removing the appliction") > deploy_dir = "#{resource[:install_location]}/#{resource[:name]}" > rm('-rf',deploy_dir) > end > end > > What I did not envisage is how Puppet identifies the provider to be used > in the OS? > -- > > Atenciosamente, > > Rafael Tomelin > > skype: rafael.tomelin > > E-mail: rafael.tome...@gmail.com > > RHCE - Red Hat Certified Engineer > PPT-205 - Puppet Certified Professional 2017 > Zabbix - ZABBIX Certified Specialist > LPI3 > ITIL v3 > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to puppet-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-users/CAGEUqbCtgp2bo7CN8STqDxq5L4WZLCJXNT%2Buq7-qzpvVYaL3%2Bg%40mail.gmail.com > <https://groups.google.com/d/msgid/puppet-users/CAGEUqbCtgp2bo7CN8STqDxq5L4WZLCJXNT%2Buq7-qzpvVYaL3%2Bg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Cheers, David https://twitter.com/dev_el_ops -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CALF7fHa5_QY%2BjKzW5tzw8YL4FVXSBzAvheHKp_i1VbhOLXXhhg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.