Hi Gavin,

I know it's almost a 2 yrs. old thread but I'm still getting the very same 
"*Could 
not find a suitable provider for domain*" error. Did you able to solve the 
this prob at all in the end?

Best!


On Wednesday, October 24, 2012 9:36:33 PM UTC+1, Gavin Williams wrote:
>
> Stefan 
>
> Cheers for the feedback. 
>
> Understood on the exists element. 
>
> Yes, what I'm trying to achieve is a working provider without asadmin 
> being in the path. That's what I've worked towards by using a full path to 
> the relevant asadmin file, as it's possible a given node could have one or 
> more versions of glassfish installed. 
>
> Currently, the asadmin path gets calculated using several parameter 
> values, which allows a user calling the class to override any given 
> parameter. 
>
> The actual command execution appears to work as expected currently, though 
> will take another look at the execute command. 
>
> Cheers 
> Gavin 
> On Oct 24, 2012 6:15 PM, "Stefan Schulte" <[email protected] 
> <javascript:>> wrote:
>
>> On Wed, Oct 24, 2012 at 03:38:20AM -0700, Gavin Williams wrote:
>> > Ok, I've gone about it a slightly different way now, and have stripped 
>> the
>> > 'commands' argument from the domain function provider, and am trying to
>> > validate the presence of asadmin at the main asadmin.rb level.
>> >
>> > I've created an 'exists?' definition, but it doesn't appear to be 
>> getting
>> > called. Any ideas how I can force it to be called prior to attempting to
>> > execute asadmin?
>> >
>> > Latest code commit has been pushed to github, available here:
>> > 
>> https://github.com/fatmcgav/puppet-glassfish/commit/429f9e8e1d08e99c69d8ffdcb3043648af5fa18a
>> >
>> > Any comments welcome.
>> >
>> > Regards
>> > Gavin
>>
>> Your exists? method in puppet/provider/domain/el.rb overwrites the
>> exists? method in puppet/provider/asadmin.rb. I don't know if you get
>> problems when you have an el.rb file but you define an asadmin provider
>> here. This may create classname clashes with the asadmin provider defined 
>> in
>> provider/asadmin.rb
>>
>> The exists? method in asadmin.rb is not going to work because `commands`
>> is a class method while `exists` is an instance method. It does make no
>> sense to call `commands` inside an instance method.
>>
>> What exactly are you trying to archive anyhow? If the excutable is not in
>> PATH how should your provider work? The best approach in my opinion
>> is to always specify the full path to the executable. If you want your
>> provider considered suitable even if commands are missing, you can use
>>
>>   optional_commands :asadmin => 'binary_that_may_be_absent'
>>
>> If you want the user to supply the path to the binary via a resource
>> parameter then you cannot realize this at a class level but at an
>> instance level. That beeing said, you cannot define your executables
>> with use the `commands` method.
>>
>> To execute something you can use the execute method. You then have to
>> do something like.
>>
>>   output = execute([resource[:asadmin_binary], "arg1", "arg2"])
>>
>> -Stefan
>>
>> >
>> > On Wednesday, 26 September 2012 17:01:47 UTC+1, Gavin Williams wrote:
>> > >
>> > > Hi there,
>> > >
>> > > I'm trying to setup Glassfish config management using puppet.
>> > > I've found larstobi's module here
>> > > <https://github.com/larstobi/puppet-glassfish/>which I've cloned and 
>> am
>> > > starting to tweak, as it would appear that the mentioned module is 
>> based on
>> > > Solaris, therefore I'm starting to add support for EL. My code tree is
>> > > here <https://github.com/fatmcgav/puppet-glassfish>.
>> > >
>> > > The challenge I'm hitting currently is that upon executing, it's 
>> failing
>> > > with
>> > >
>> > >> *err: Could not find a suitable provider for domain*
>> > >>
>> > >
>> > > When running at debug level, I can see the following:
>> > >
>> > >> *debug: Puppet::Type::Domain::ProviderAsadmin: file asadmin does not
>> > >> exist
>> > >> debug: Class[Glassfish::Domain]: The container Stage[main] will 
>> propagate
>> > >> my refresh event
>> > >> err: Could not find a suitable provider for domain
>> > >> *
>> > >
>> > >
>> > > I've verified that the asadmin file exists, as follows:
>> > >
>> > >> *notice: /Stage[main]/Glassfish::Domain/Notify[gfdomain]/message:
>> > >> defined 'message' as 'Creating Glassfish domain cms using portbase 
>> 9000.
>> > >>  Asadmin file is: /usr/local/glassfish-3.1.2/bin/asadmin.'*
>> > >>
>> > >
>> > > *# file /usr/local/glassfish-3.1.2/bin/asadmin
>> > >> /usr/local/glassfish-3.1.2/bin/asadmin: POSIX shell script text 
>> executable
>> > >> *
>> > >>
>> > >
>> > > So the file definitely exists, and is a valid 'asadmin' file.
>> > >
>> > > Any ideas?
>> > >
>> > > Cheers
>> > > Gavin
>> > >
>> >
>> > --
>> > You received this message because you are subscribed to the Google 
>> Groups "Puppet Users" group.
>> > To view this discussion on the web visit 
>> https://groups.google.com/d/msg/puppet-users/-/_pJvxmzaEmUJ.
>> > To post to this group, send email to [email protected] 
>> <javascript:>.
>> > To unsubscribe from this group, send email to 
>> [email protected] <javascript:>.
>> > For more options, visit this group at 
>> http://groups.google.com/group/puppet-users?hl=en.
>> >
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Puppet Users" group.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> To unsubscribe from this group, send email to 
>> [email protected] <javascript:>.
>> For more options, visit this group at 
>> http://groups.google.com/group/puppet-users?hl=en.
>>
>>  

-- 
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/9ce4c89d-4f47-4884-854d-e3c916e388a7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to