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 <[email protected]> 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: [email protected] > > 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 [email protected]. > 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 [email protected]. 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.
