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.

Reply via email to