Hi David Schmitt,

I create de new module, class and provider with pdk the according this site
puppet.  My puppet is version 'puppet --version . 5.5.6'.

But, the return error: *Could not autoload puppet/type/foo: no such file to
load -- puppet/resource_api *


*My type is:*

*cat lib/puppet/type/foo.rb *

require 'puppet/resource_api'


Puppet::ResourceApi.register_type(

  name: 'foo',

  docs: <<-EOS,

      This type provides Puppet with the capabilities to manage ...

    EOS

  features: [],

  attributes:   {

    ensure:      {

      type:    'Enum[present, absent]',

      desc:    'Whether this resource should be present or absent on the
target system.',

      default: 'present',

    },

    name:        {

      type:      'String',

      desc:      'The name of the resource you want to manage.',

      behaviour: :namevar,

    },

  },

)


*My provider:*

*cat lib/puppet/provider/foo/foo.rb *

require 'puppet/resource_api/simple_provider'


# Implementation for the foo type using the Resource API.

class Puppet::Provider::Foo::Foo < Puppet::ResourceApi::SimpleProvider

  def get(_context)

    [

      {

        name: 'foo',

        ensure: 'present',

      },

      {

        name: 'bar',

        ensure: 'present',

      },

    ]

  end


  def create(context, name, should)

    context.notice("Creating '#{name}' with #{should.inspect}")

  end


  def update(context, name, should)

    context.notice("Updating '#{name}' with #{should.inspect}")

  end


  def delete(context, name)

    context.notice("Deleting '#{name}'")

  end

end


*My init.pp*

*class first_type {*

  foo{ 'my_type':

    ensure => present,

  }

}


What`s problem : *Could not autoload puppet/type/foo: no such file to load
-- puppet/resource_api *

The provider write the ruby, is possible create provider with python? If
yes, is change ruby to python?



Em sáb, 22 de set de 2018 às 05:29, David Schmitt <[email protected]>
escreveu:

> 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
> <https://groups.google.com/d/msgid/puppet-users/CALF7fHa5_QY%2BjKzW5tzw8YL4FVXSBzAvheHKp_i1VbhOLXXhhg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
-- 

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/CAGEUqbB-PsmNt0hzjoJWARd7285O%2BgHwAeqqC4qNv_zH1dWLPA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to