Update rabbitmq module
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / lib / puppet / provider / rabbitmq_erlang_cookie / ruby.rb
1 require 'puppet'
2 require 'set'
3 Puppet::Type.type(:rabbitmq_erlang_cookie).provide(:ruby) do
4   confine feature: :posix
5
6   def exists?
7     # Hack to prevent the create method from being called.
8     # We never need to create or destroy this resource, only change its value
9     true
10   end
11
12   def content=(value)
13     raise('The current erlang cookie needs to change. In order to do this the RabbitMQ database needs to be wiped.  Please set force => true to allow this to happen automatically.') unless resource[:force] == :true # Danger!
14
15     Puppet::Type.type(:service).new(name: resource[:service_name]).provider.stop
16     FileUtils.rm_rf(resource[:rabbitmq_home] + File::SEPARATOR + 'mnesia')
17     File.open(resource[:path], 'w') do |cookie|
18       cookie.chmod(0o400)
19       cookie.write(value)
20     end
21     FileUtils.chown(resource[:rabbitmq_user], resource[:rabbitmq_group], resource[:path])
22   end
23
24   def content
25     if File.exist?(resource[:path])
26       File.read(resource[:path])
27     else
28       ''
29     end
30   end
31 end