Hello
I need some help with a problem I cant figure out. I tried to look for
the same problem in the puppet forums but I couldn't find anything.
I have created a custom Type and a custom Provider but I keep getting
the same error no matter what I do. So any help will very appreciated.
My Type is called 'servicemanager'
My Provider is called 'hostmanager'
Please see below for these files. And my manifest file looks like:
servicemanager{
"some_name":
artifact => "some_name",
action => stopped,
release => $releases_file,
provider => hostmanager;
}
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.
BTW.. I have "pluginsync = true" on both client and the master in
puppet.conf. Also
my Type "servicemanager.rb" is in "/etc/puppet/modules/custom/lib/
puppet/type",
and my Provider "hostmanager.rb" is in "/etc/puppet/modules/custom/lib/
puppet/provider/servicemanager"
and im running puppet 2.6.3
Thanks
############# servicemanager.rb #####################
Puppet::Type.newtype(:servicemanager) do
@doc = "Manage hosts through hostmanager"
ensurable
# Handle whether the service should actually be running right
now.
newproperty(:action) do
desc "Whether a service should be running."
newvalue(:stopped, :event => :service_stopped) do
provider.stop
end
newvalue(:running, :event => :service_started) do
provider.start
end
newvalue(:installed, :event => :service_installed) do
provider.install
end
newvalue(:latest, :event => :service_latest) do
provider.update
end
newvalue(:restarted, :event => :service_restarted) do
provider.restart
end
end
newparam(:artifact) do
desc "Artifact name"
isnamevar
end
newparam(:release) do
desc "Releases file for the artifact"
end
end
########### hostmanager.rb ###############
require 'puppet'
require 'puppet/util/package'
require 'puppet/provider/package'
Puppet::Type.type(:servicemanager).provide :hostmanager do
@doc = "Manage hosts through hostmanager"
desc "Manage hosts through hostmanager"
commands :hostmanager => "/usr/local/bin/hostmanager.py"
def install
`echo #{:hostmanager} "-s", #...@resource[:name]}, "-r",
#...@resource[:release]}, "--install" >> /tmp/test`
end
def status
`echo #{:hostmanager} "-s", #...@resource[:name]}, "-r",
#...@resource[:release]}, "--status" >> /tmp/test`
end
def start
`echo #{:hostmanager} "-s", #...@resource[:name]}, "-r",
#...@resource[:release]}, "--start" >> /tmp/test`
end
def stop
`echo #{:hostmanager} "-s", #...@resource[:name]}, "-r",
#...@resource[:release]}, "--stop" >> /tmp/test`
end
def update
`echo #{:hostmanager} "-s", #...@resource[:name]}, "-r",
#...@resource[:release]}, "--promote" >> /tmp/test`
end
def restart
`echo #{:hostmanager} "-s", #...@resource[:name]}, "-r",
#...@resource[:release]}, "--restart" >> /tmp/test`
end
end
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.