YES ...that helped alot...I got it working now..
Thank you very much
Umair

On Thu, Dec 16, 2010 at 3:03 PM, Stefan Schulte <
stefan.schu...@taunusstein.net> wrote:

> On Thu, Dec 16, 2010 at 01:45:17PM -0600, Umair Ghani wrote:
> > Hello
> >
> [...]
> >
> > But I keep getting the following error message:
> > err: /Stage[main]/some_name/Servicemanager[some_name]: Could not
> evaluate:
> > No ability to determine if servicemanager exists
> >
> > OR
> > err: Could not run Puppet configuration client: No ability to determine
> if
> > servicemanager exists
> >
> > I even tried adding a def exists? function in hostmanager.rb and that
> didnt
> > help.
> >
>
> Puppet handles states not actions. So if you want to define that a service
> is
> running, puppet must have the ability to query if it's running already.
>
> my comments (your problem is #3 and #4)
> 1. you use one property for two things. What if you want to say
> that your service is installed and running?
> 2. restarted is not really a state. But you can define that your restart
> method should get called upon refresh (look in service.rb how such a
> refresh method can be defined)
> 3. you said ensurable. That's just a shortcut to say that you have an
> ensure property which handles absent and present. This means that your
> type (or preferable the provider) must have three functions:
> - exists? to retrieve the current state
> - create to create your type if it does not exist while it should
> - destroy to delete your type if it does exists while it should not
> If an ensure property doesnt make any sense for your type dont say
> ensurable
> 4. Your action property doesnt have any retrieve method so puppet cannot
> check if this property is in sync or not. Because I guess a
> servicemanager resource can be installed AND running, you should split
> that at least in two properties. Then you have to define a retrieve
> method. The default (defined in property.rb) is to just call
> provider.propertyname so just add a method called »action« in
> hostmanager.rb. That method must return a valid value
> (:stopped or :running).
> 5. If you define commands :hostmanager => '...' you get a hostmanager
> method for free so you can just say:
>  hostmanager '-s', @resource[:name], '-r', @resource[:release], '--install'
> If you want to have the command as a string #{:hostmanager} just
> converts the symbol hostmanager to a string (which is "hostmanager"). I
> think what you wanted to say is #{command(:hostmanager)} which will give
> you "/usr/local/bin/hostmanager.py"
>
> Hope that helps.
>
> -Stefan
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to